Resources: FeedbackRequestStateMachine: Properties: DefinitionString: !Sub - "\n {\n \"Comment\": \"State machine which awaits until defined date to submit a feedback request\",\n \"StartAt\": \"WaitForDueDate\",\n \"States\": {\n\ \ \"WaitForDueDate\": {\n \"Type\": \"Wait\",\n \"TimestampPath\": \"$.plannedAt\",\n \"Next\": \"SubmitFeedbackRequestToSQS\"\ \n },\n \"SubmitFeedbackRequestToSQS\": {\n \"Type\": \"Task\",\n \"Resource\": \"arn:aws:states:::sqs:sendMessage\",\n \ \ \"Parameters\": {\n \"MessageBody.$\": \"$\",\n \"QueueUrl\": \"${feedbackQueueUrl}\"\n },\n \ \ \"End\": true\n }\n }\n }\n " - feedbackQueueUrl: !Ref 'FeedbackRequestsQueue' RoleArn: !Join - / - - !Sub 'arn:aws:iam::${AWS::AccountId}:role' - !Ref 'FeedbackRequestStateMachineRole' StateMachineName: !Sub '${AWS::StackName}-FeedbackRequestStateMachine' Type: AWS::StepFunctions::StateMachine FeedbackRequestStateMachineRole: Properties: AssumeRolePolicyDocument: Statement: - Action: - sts:AssumeRole Effect: Allow Principal: Service: - !Sub 'states.${AWS::Region}.amazonaws.com' Policies: - PolicyDocument: Statement: - Action: - sqs:SendMessage Effect: Allow Resource: !GetAtt 'FeedbackRequestsQueue.Arn' PolicyName: submit_request_to_sqs Type: AWS::IAM::Role FeedbackRequestsQueue: Properties: MessageRetentionPeriod: 172800 VisibilityTimeout: 600 Type: AWS::SQS::Queue