diff --git a/packages/aws-cdk-lib/aws-events/lib/rule.ts b/packages/aws-cdk-lib/aws-events/lib/rule.ts index 7b3f512e692e8..faa7ea7c488f6 100644 --- a/packages/aws-cdk-lib/aws-events/lib/rule.ts +++ b/packages/aws-cdk-lib/aws-events/lib/rule.ts @@ -75,7 +75,9 @@ export class Rule extends Resource implements IRule { public ruleArn = eventRuleArn; public ruleName = parts.resourceName || ''; } - return new Import(scope, id); + return new Import(scope, id, { + environmentFromArn: eventRuleArn, + }); } public readonly ruleArn: string; diff --git a/packages/aws-cdk-lib/aws-events/test/rule.test.ts b/packages/aws-cdk-lib/aws-events/test/rule.test.ts index 6cca0b11ba804..80f3c5cbe53d6 100644 --- a/packages/aws-cdk-lib/aws-events/test/rule.test.ts +++ b/packages/aws-cdk-lib/aws-events/test/rule.test.ts @@ -578,6 +578,20 @@ describe('rule', () => { expect(importedRule.ruleName).toEqual('example'); }); + test('sets account for imported rule env by fromEventRuleArn', () => { + const stack = new cdk.Stack(); + const importedRule = Rule.fromEventRuleArn(stack, 'Imported', 'arn:aws:events:us-west-2:999999999999:rule/example'); + + expect(importedRule.env.account).toEqual('999999999999'); + }); + + test('sets region for imported rule env by fromEventRuleArn', () => { + const stack = new cdk.Stack(); + const importedRule = Rule.fromEventRuleArn(stack, 'Imported', 'arn:aws:events:us-west-2:999999999999:rule/example'); + + expect(importedRule.env.region).toEqual('us-west-2'); + }); + test('rule can be disabled', () => { // GIVEN const stack = new cdk.Stack();