AWSTemplateFormatVersion: "2010-09-09" Description: "(SO0042) - aws-content-analysis. Workflow to run video analyses." Parameters: WorkflowCustomResourceArn: Type: String Description: "ARN of the Media Insights custom resource that handles creating operations, stages and workflows" OperatorLibraryStack: Description: "Name of the MIE operator library stack" Type: String Resources: PreliminaryStage: Type: Custom::CustomResource Properties: ServiceToken: !Ref WorkflowCustomResourceArn ResourceType: "Stage" Name: "defaultPrelimVideoStage" Operations: - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:Thumbnail" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:Mediainfo" defaultVideoStage: Type: Custom::CustomResource Properties: ServiceToken: !Ref WorkflowCustomResourceArn ResourceType: "Stage" Name: "defaultVideoStage" Operations: - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:GenericDataLookup" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:CelebRecognition" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:ContentModeration" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:FaceDetection" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:FaceSearch" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:LabelDetection" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:PersonTracking" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:TextDetection" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:TechnicalCueDetection" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:ShotDetection" defaultAudioStage: Type: Custom::CustomResource Properties: ServiceToken: !Ref WorkflowCustomResourceArn ResourceType: "Stage" Name: "defaultAudioStage" Operations: - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:TranscribeVideo" defaultTextStage: Type: Custom::CustomResource Properties: ServiceToken: !Ref WorkflowCustomResourceArn ResourceType: "Stage" Name: "defaultTextStage" Operations: - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:Translate" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:ComprehendPhrases" - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:ComprehendEntities" defaultTextSynthesisStage: Type: Custom::CustomResource Properties: ServiceToken: !Ref WorkflowCustomResourceArn ResourceType: "Stage" Name: "defaultTextSynthesisStage" Operations: - Fn::ImportValue: Fn::Sub: "${OperatorLibraryStack}:Polly" CasVideoWorkflow: DependsOn: - PreliminaryStage - defaultVideoStage - defaultAudioStage - defaultTextStage - defaultTextSynthesisStage Type: Custom::CustomResource Properties: ServiceToken: !Ref WorkflowCustomResourceArn ResourceType: "Workflow" Name: "CasVideoWorkflow" StartAt: !GetAtt PreliminaryStage.Name Stages: !Sub - |- { "${PreliminaryStage}":{ "Next": "${defaultVideoStage}" }, "${defaultVideoStage}":{ "Next": "${defaultAudioStage}" }, "${defaultAudioStage}":{ "Next": "${defaultTextStage}" }, "${defaultTextStage}":{ "Next": "${defaultTextSynthesisStage}" }, "${defaultTextSynthesisStage}":{ "End": true } } - { PreliminaryStage: !GetAtt PreliminaryStage.Name, defaultVideoStage: !GetAtt defaultVideoStage.Name, defaultAudioStage: !GetAtt defaultAudioStage.Name, defaultTextStage: !GetAtt defaultTextStage.Name, defaultTextSynthesisStage: !GetAtt defaultTextSynthesisStage.Name }