From f7850493495a29a088b7947c4609b01a29ccd3a4 Mon Sep 17 00:00:00 2001 From: Adam Wong Date: Wed, 19 Jul 2023 21:19:43 -0700 Subject: [PATCH 1/3] feat(stepfunctions): add stateMachineRevisionId property to StateMachine --- .../aws-stepfunctions/lib/state-machine.ts | 7 ++++++ .../test/state-machine.test.ts | 22 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts b/packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts index 552a60d7c320e..a3bb194b3c7cf 100644 --- a/packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts +++ b/packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts @@ -407,6 +407,12 @@ export class StateMachine extends StateMachineBase { */ public readonly stateMachineType: StateMachineType; + /** + * Identifier for the state machine revision + * @attribute + */ + public readonly stateMachineRevisionId: string; + constructor(scope: Construct, id: string, props: StateMachineProps) { super(scope, id, { physicalName: props.stateMachineName, @@ -451,6 +457,7 @@ export class StateMachine extends StateMachineBase { resourceName: this.physicalName, arnFormat: ArnFormat.COLON_RESOURCE_NAME, }); + this.stateMachineRevisionId = resource.attrStateMachineRevisionId; } /** diff --git a/packages/aws-cdk-lib/aws-stepfunctions/test/state-machine.test.ts b/packages/aws-cdk-lib/aws-stepfunctions/test/state-machine.test.ts index 4dd9b3c374dde..ab91c0ee39660 100644 --- a/packages/aws-cdk-lib/aws-stepfunctions/test/state-machine.test.ts +++ b/packages/aws-cdk-lib/aws-stepfunctions/test/state-machine.test.ts @@ -579,4 +579,26 @@ describe('State Machine', () => { DeletionPolicy: 'Retain', }); }); + + test('stateMachineRevisionId property uses attribute reference', () => { + // GIVEN + const stack = new cdk.Stack(); + + // WHEN + const stateMachine = new sfn.StateMachine(stack, 'MyStateMachine', { + stateMachineName: 'MyStateMachine', + definitionBody: sfn.DefinitionBody.fromChainable(new sfn.Pass(stack, 'Pass')), + }); + + new sfn.CfnStateMachineVersion(stack, 'MyStateMachineVersion', { + stateMachineRevisionId: stateMachine.stateMachineRevisionId, + stateMachineArn: stateMachine.stateMachineArn, + }); + + // THEN + Template.fromStack(stack).hasResourceProperties('AWS::StepFunctions::StateMachineVersion', { + StateMachineArn: { Ref: 'MyStateMachine' }, + StateMachineRevisionId: { 'Fn::GetAtt': ['MyStateMachine', 'StateMachineRevisionId'] }, + }); + }); }); From 7a984283d942dd0f815e6978a2567bfac098a9ce Mon Sep 17 00:00:00 2001 From: Adam Wong <55506708+wong-a@users.noreply.github.com> Date: Thu, 20 Jul 2023 06:59:35 -0700 Subject: [PATCH 2/3] Update packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts Co-authored-by: Momo Kornher --- packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts b/packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts index a3bb194b3c7cf..e341239f62391 100644 --- a/packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts +++ b/packages/aws-cdk-lib/aws-stepfunctions/lib/state-machine.ts @@ -408,7 +408,7 @@ export class StateMachine extends StateMachineBase { public readonly stateMachineType: StateMachineType; /** - * Identifier for the state machine revision + * Identifier for the state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration. * @attribute */ public readonly stateMachineRevisionId: string; From d4ceaabde7f2a71655a959459eefd554cf584e48 Mon Sep 17 00:00:00 2001 From: Adam Wong Date: Thu, 20 Jul 2023 08:37:15 -0700 Subject: [PATCH 3/3] fixup! feat(stepfunctions): add stateMachineRevisionId property to StateMachine --- .../aws-cdk-lib/aws-stepfunctions/test/state-machine.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/aws-cdk-lib/aws-stepfunctions/test/state-machine.test.ts b/packages/aws-cdk-lib/aws-stepfunctions/test/state-machine.test.ts index ab91c0ee39660..7055ad2fad5d5 100644 --- a/packages/aws-cdk-lib/aws-stepfunctions/test/state-machine.test.ts +++ b/packages/aws-cdk-lib/aws-stepfunctions/test/state-machine.test.ts @@ -597,8 +597,8 @@ describe('State Machine', () => { // THEN Template.fromStack(stack).hasResourceProperties('AWS::StepFunctions::StateMachineVersion', { - StateMachineArn: { Ref: 'MyStateMachine' }, - StateMachineRevisionId: { 'Fn::GetAtt': ['MyStateMachine', 'StateMachineRevisionId'] }, + StateMachineArn: { Ref: 'MyStateMachine6C968CA5' }, + StateMachineRevisionId: { 'Fn::GetAtt': ['MyStateMachine6C968CA5', 'StateMachineRevisionId'] }, }); }); });