@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api EC2 Image Builder
@version 2019-12-02
@auth AWS SigV4
@endpoints 73
@hint download_for_search
@toc CancelImageCreation(1), CancelLifecycleExecution(1), CreateComponent(1), CreateContainerRecipe(1), CreateDistributionConfiguration(1), CreateImage(1), CreateImagePipeline(1), CreateImageRecipe(1), CreateInfrastructureConfiguration(1), CreateLifecyclePolicy(1), CreateWorkflow(1), DeleteComponent(1), DeleteContainerRecipe(1), DeleteDistributionConfiguration(1), DeleteImage(1), DeleteImagePipeline(1), DeleteImageRecipe(1), DeleteInfrastructureConfiguration(1), DeleteLifecyclePolicy(1), DeleteWorkflow(1), GetComponent(1), GetComponentPolicy(1), GetContainerRecipe(1), GetContainerRecipePolicy(1), GetDistributionConfiguration(1), GetImage(1), GetImagePipeline(1), GetImagePolicy(1), GetImageRecipe(1), GetImageRecipePolicy(1), GetInfrastructureConfiguration(1), GetLifecycleExecution(1), GetLifecyclePolicy(1), GetWorkflow(1), GetWorkflowExecution(1), GetWorkflowStepExecution(1), ImportComponent(1), ImportVmImage(1), ListComponentBuildVersions(1), ListComponents(1), ListContainerRecipes(1), ListDistributionConfigurations(1), ListImageBuildVersions(1), ListImagePackages(1), ListImagePipelineImages(1), ListImagePipelines(1), ListImageRecipes(1), ListImageScanFindingAggregations(1), ListImageScanFindings(1), ListImages(1), ListInfrastructureConfigurations(1), ListLifecycleExecutionResources(1), ListLifecycleExecutions(1), ListLifecyclePolicies(1), tags(3), ListWaitingWorkflowSteps(1), ListWorkflowBuildVersions(1), ListWorkflowExecutions(1), ListWorkflowStepExecutions(1), ListWorkflows(1), PutComponentPolicy(1), PutContainerRecipePolicy(1), PutImagePolicy(1), PutImageRecipePolicy(1), SendWorkflowStepAction(1), StartImagePipelineExecution(1), StartResourceStateUpdate(1), UpdateDistributionConfiguration(1), UpdateImagePipeline(1), UpdateInfrastructureConfiguration(1), UpdateLifecyclePolicy(1)

@group CancelImageCreation
@endpoint PUT /CancelImageCreation
@required {imageBuildVersionArn: str, clientToken: str}
@returns(200) {requestId: str?, clientToken: str?, imageBuildVersionArn: str?}

@endgroup

@group CancelLifecycleExecution
@endpoint PUT /CancelLifecycleExecution
@required {lifecycleExecutionId: str, clientToken: str}
@returns(200) {lifecycleExecutionId: str?}

@endgroup

@group CreateComponent
@endpoint PUT /CreateComponent
@required {name: str, semanticVersion: str, platform: str, clientToken: str}
@optional {description: str, changeDescription: str, supportedOsVersions: [str], data: str, uri: str, kmsKeyId: str, tags: map<str,str>}
@returns(200) {requestId: str?, clientToken: str?, componentBuildVersionArn: str?}

@endgroup

@group CreateContainerRecipe
@endpoint PUT /CreateContainerRecipe
@required {containerType: str, name: str, semanticVersion: str, components: [ComponentConfiguration], parentImage: str, targetRepository: TargetContainerRepository, clientToken: str}
@optional {description: str, instanceConfiguration: InstanceConfiguration, dockerfileTemplateData: str, dockerfileTemplateUri: str, platformOverride: str, imageOsVersionOverride: str, tags: map<str,str>, workingDirectory: str, kmsKeyId: str}
@returns(200) {requestId: str?, clientToken: str?, containerRecipeArn: str?}

@endgroup

@group CreateDistributionConfiguration
@endpoint PUT /CreateDistributionConfiguration
@required {name: str, distributions: [Distribution], clientToken: str}
@optional {description: str, tags: map<str,str>}
@returns(200) {requestId: str?, clientToken: str?, distributionConfigurationArn: str?}

@endgroup

@group CreateImage
@endpoint PUT /CreateImage
@required {infrastructureConfigurationArn: str, clientToken: str}
@optional {imageRecipeArn: str, containerRecipeArn: str, distributionConfigurationArn: str, imageTestsConfiguration: ImageTestsConfiguration, enhancedImageMetadataEnabled: bool, tags: map<str,str>, imageScanningConfiguration: ImageScanningConfiguration, workflows: [WorkflowConfiguration], executionRole: str}
@returns(200) {requestId: str?, clientToken: str?, imageBuildVersionArn: str?}

@endgroup

@group CreateImagePipeline
@endpoint PUT /CreateImagePipeline
@required {name: str, infrastructureConfigurationArn: str, clientToken: str}
@optional {description: str, imageRecipeArn: str, containerRecipeArn: str, distributionConfigurationArn: str, imageTestsConfiguration: ImageTestsConfiguration, enhancedImageMetadataEnabled: bool, schedule: Schedule, status: str, tags: map<str,str>, imageScanningConfiguration: ImageScanningConfiguration, workflows: [WorkflowConfiguration], executionRole: str}
@returns(200) {requestId: str?, clientToken: str?, imagePipelineArn: str?}

@endgroup

@group CreateImageRecipe
@endpoint PUT /CreateImageRecipe
@required {name: str, semanticVersion: str, components: [ComponentConfiguration], parentImage: str, clientToken: str}
@optional {description: str, blockDeviceMappings: [InstanceBlockDeviceMapping], tags: map<str,str>, workingDirectory: str, additionalInstanceConfiguration: AdditionalInstanceConfiguration}
@returns(200) {requestId: str?, clientToken: str?, imageRecipeArn: str?}

@endgroup

@group CreateInfrastructureConfiguration
@endpoint PUT /CreateInfrastructureConfiguration
@required {name: str, instanceProfileName: str, clientToken: str}
@optional {description: str, instanceTypes: [str], securityGroupIds: [str], subnetId: str, logging: Logging, keyPair: str, terminateInstanceOnFailure: bool, snsTopicArn: str, resourceTags: map<str,str>, instanceMetadataOptions: InstanceMetadataOptions, tags: map<str,str>}
@returns(200) {requestId: str?, clientToken: str?, infrastructureConfigurationArn: str?}

@endgroup

@group CreateLifecyclePolicy
@endpoint PUT /CreateLifecyclePolicy
@required {name: str, executionRole: str, resourceType: str, policyDetails: [LifecyclePolicyDetail], resourceSelection: LifecyclePolicyResourceSelection, clientToken: str}
@optional {description: str, status: str, tags: map<str,str>}
@returns(200) {clientToken: str?, lifecyclePolicyArn: str?}

@endgroup

@group CreateWorkflow
@endpoint PUT /CreateWorkflow
@required {name: str, semanticVersion: str, clientToken: str, type: str}
@optional {description: str, changeDescription: str, data: str, uri: str, kmsKeyId: str, tags: map<str,str>}
@returns(200) {clientToken: str?, workflowBuildVersionArn: str?}

@endgroup

@group DeleteComponent
@endpoint DELETE /DeleteComponent
@required {componentBuildVersionArn: str}
@returns(200) {requestId: str?, componentBuildVersionArn: str?}

@endgroup

@group DeleteContainerRecipe
@endpoint DELETE /DeleteContainerRecipe
@required {containerRecipeArn: str}
@returns(200) {requestId: str?, containerRecipeArn: str?}

@endgroup

@group DeleteDistributionConfiguration
@endpoint DELETE /DeleteDistributionConfiguration
@required {distributionConfigurationArn: str}
@returns(200) {requestId: str?, distributionConfigurationArn: str?}

@endgroup

@group DeleteImage
@endpoint DELETE /DeleteImage
@required {imageBuildVersionArn: str}
@returns(200) {requestId: str?, imageBuildVersionArn: str?}

@endgroup

@group DeleteImagePipeline
@endpoint DELETE /DeleteImagePipeline
@required {imagePipelineArn: str}
@returns(200) {requestId: str?, imagePipelineArn: str?}

@endgroup

@group DeleteImageRecipe
@endpoint DELETE /DeleteImageRecipe
@required {imageRecipeArn: str}
@returns(200) {requestId: str?, imageRecipeArn: str?}

@endgroup

@group DeleteInfrastructureConfiguration
@endpoint DELETE /DeleteInfrastructureConfiguration
@required {infrastructureConfigurationArn: str}
@returns(200) {requestId: str?, infrastructureConfigurationArn: str?}

@endgroup

@group DeleteLifecyclePolicy
@endpoint DELETE /DeleteLifecyclePolicy
@required {lifecyclePolicyArn: str}
@returns(200) {lifecyclePolicyArn: str?}

@endgroup

@group DeleteWorkflow
@endpoint DELETE /DeleteWorkflow
@required {workflowBuildVersionArn: str}
@returns(200) {workflowBuildVersionArn: str?}

@endgroup

@group GetComponent
@endpoint GET /GetComponent
@required {componentBuildVersionArn: str}
@returns(200) {requestId: str?, component: Component?{arn: str?, name: str?, version: str?, description: str?, changeDescription: str?, type: str?, platform: str?, supportedOsVersions: [str]?, state: ComponentState?{status: str?, reason: str?}, parameters: [ComponentParameterDetail]?, owner: str?, data: str?, kmsKeyId: str?, encrypted: bool?, dateCreated: str?, tags: map<str,str>?, publisher: str?, obfuscate: bool?}}

@endgroup

@group GetComponentPolicy
@endpoint GET /GetComponentPolicy
@required {componentArn: str}
@returns(200) {requestId: str?, policy: str?}

@endgroup

@group GetContainerRecipe
@endpoint GET /GetContainerRecipe
@required {containerRecipeArn: str}
@returns(200) {requestId: str?, containerRecipe: ContainerRecipe?{arn: str?, containerType: str?, name: str?, description: str?, platform: str?, owner: str?, version: str?, components: [ComponentConfiguration]?, instanceConfiguration: InstanceConfiguration?{image: str?, blockDeviceMappings: [InstanceBlockDeviceMapping]?}, dockerfileTemplateData: str?, kmsKeyId: str?, encrypted: bool?, parentImage: str?, dateCreated: str?, tags: map<str,str>?, workingDirectory: str?, targetRepository: TargetContainerRepository?{service: str, repositoryName: str}}}

@endgroup

@group GetContainerRecipePolicy
@endpoint GET /GetContainerRecipePolicy
@required {containerRecipeArn: str}
@returns(200) {requestId: str?, policy: str?}

@endgroup

@group GetDistributionConfiguration
@endpoint GET /GetDistributionConfiguration
@required {distributionConfigurationArn: str}
@returns(200) {requestId: str?, distributionConfiguration: DistributionConfiguration?{arn: str?, name: str?, description: str?, distributions: [Distribution]?, timeoutMinutes: int, dateCreated: str?, dateUpdated: str?, tags: map<str,str>?}}

@endgroup

@group GetImage
@endpoint GET /GetImage
@required {imageBuildVersionArn: str}
@returns(200) {requestId: str?, image: Image?{arn: str?, type: str?, name: str?, version: str?, platform: str?, enhancedImageMetadataEnabled: bool?, osVersion: str?, state: ImageState?{status: str?, reason: str?}, imageRecipe: ImageRecipe?{arn: str?, type: str?, name: str?, description: str?, platform: str?, owner: str?, version: str?, components: [ComponentConfiguration]?, parentImage: str?, blockDeviceMappings: [InstanceBlockDeviceMapping]?, dateCreated: str?, tags: map<str,str>?, workingDirectory: str?, additionalInstanceConfiguration: AdditionalInstanceConfiguration?{systemsManagerAgent: SystemsManagerAgent?, userDataOverride: str?}}, containerRecipe: ContainerRecipe?{arn: str?, containerType: str?, name: str?, description: str?, platform: str?, owner: str?, version: str?, components: [ComponentConfiguration]?, instanceConfiguration: InstanceConfiguration?{image: str?, blockDeviceMappings: [InstanceBlockDeviceMapping]?}, dockerfileTemplateData: str?, kmsKeyId: str?, encrypted: bool?, parentImage: str?, dateCreated: str?, tags: map<str,str>?, workingDirectory: str?, targetRepository: TargetContainerRepository?{service: str, repositoryName: str}}, sourcePipelineName: str?, sourcePipelineArn: str?, infrastructureConfiguration: InfrastructureConfiguration?{arn: str?, name: str?, description: str?, instanceTypes: [str]?, instanceProfileName: str?, securityGroupIds: [str]?, subnetId: str?, logging: Logging?{s3Logs: S3Logs?}, keyPair: str?, terminateInstanceOnFailure: bool?, snsTopicArn: str?, dateCreated: str?, dateUpdated: str?, resourceTags: map<str,str>?, instanceMetadataOptions: InstanceMetadataOptions?{httpTokens: str?, httpPutResponseHopLimit: int?}, tags: map<str,str>?}, distributionConfiguration: DistributionConfiguration?{arn: str?, name: str?, description: str?, distributions: [Distribution]?, timeoutMinutes: int, dateCreated: str?, dateUpdated: str?, tags: map<str,str>?}, imageTestsConfiguration: ImageTestsConfiguration?{imageTestsEnabled: bool?, timeoutMinutes: int?}, dateCreated: str?, outputResources: OutputResources?{amis: [Ami]?, containers: [Container]?}, tags: map<str,str>?, buildType: str?, imageSource: str?, scanState: ImageScanState?{status: str?, reason: str?}, imageScanningConfiguration: ImageScanningConfiguration?{imageScanningEnabled: bool?, ecrConfiguration: EcrConfiguration?{repositoryName: str?, containerTags: [str]?}}, deprecationTime: str(timestamp)?, lifecycleExecutionId: str?, executionRole: str?, workflows: [WorkflowConfiguration]?}}

@endgroup

@group GetImagePipeline
@endpoint GET /GetImagePipeline
@required {imagePipelineArn: str}
@returns(200) {requestId: str?, imagePipeline: ImagePipeline?{arn: str?, name: str?, description: str?, platform: str?, enhancedImageMetadataEnabled: bool?, imageRecipeArn: str?, containerRecipeArn: str?, infrastructureConfigurationArn: str?, distributionConfigurationArn: str?, imageTestsConfiguration: ImageTestsConfiguration?{imageTestsEnabled: bool?, timeoutMinutes: int?}, schedule: Schedule?{scheduleExpression: str?, timezone: str?, pipelineExecutionStartCondition: str?}, status: str?, dateCreated: str?, dateUpdated: str?, dateLastRun: str?, dateNextRun: str?, tags: map<str,str>?, imageScanningConfiguration: ImageScanningConfiguration?{imageScanningEnabled: bool?, ecrConfiguration: EcrConfiguration?{repositoryName: str?, containerTags: [str]?}}, executionRole: str?, workflows: [WorkflowConfiguration]?}}

@endgroup

@group GetImagePolicy
@endpoint GET /GetImagePolicy
@required {imageArn: str}
@returns(200) {requestId: str?, policy: str?}

@endgroup

@group GetImageRecipe
@endpoint GET /GetImageRecipe
@required {imageRecipeArn: str}
@returns(200) {requestId: str?, imageRecipe: ImageRecipe?{arn: str?, type: str?, name: str?, description: str?, platform: str?, owner: str?, version: str?, components: [ComponentConfiguration]?, parentImage: str?, blockDeviceMappings: [InstanceBlockDeviceMapping]?, dateCreated: str?, tags: map<str,str>?, workingDirectory: str?, additionalInstanceConfiguration: AdditionalInstanceConfiguration?{systemsManagerAgent: SystemsManagerAgent?{uninstallAfterBuild: bool?}, userDataOverride: str?}}}

@endgroup

@group GetImageRecipePolicy
@endpoint GET /GetImageRecipePolicy
@required {imageRecipeArn: str}
@returns(200) {requestId: str?, policy: str?}

@endgroup

@group GetInfrastructureConfiguration
@endpoint GET /GetInfrastructureConfiguration
@required {infrastructureConfigurationArn: str}
@returns(200) {requestId: str?, infrastructureConfiguration: InfrastructureConfiguration?{arn: str?, name: str?, description: str?, instanceTypes: [str]?, instanceProfileName: str?, securityGroupIds: [str]?, subnetId: str?, logging: Logging?{s3Logs: S3Logs?{s3BucketName: str?, s3KeyPrefix: str?}}, keyPair: str?, terminateInstanceOnFailure: bool?, snsTopicArn: str?, dateCreated: str?, dateUpdated: str?, resourceTags: map<str,str>?, instanceMetadataOptions: InstanceMetadataOptions?{httpTokens: str?, httpPutResponseHopLimit: int?}, tags: map<str,str>?}}

@endgroup

@group GetLifecycleExecution
@endpoint GET /GetLifecycleExecution
@required {lifecycleExecutionId: str}
@returns(200) {lifecycleExecution: LifecycleExecution?{lifecycleExecutionId: str?, lifecyclePolicyArn: str?, resourcesImpactedSummary: LifecycleExecutionResourcesImpactedSummary?{hasImpactedResources: bool?}, state: LifecycleExecutionState?{status: str?, reason: str?}, startTime: str(timestamp)?, endTime: str(timestamp)?}}

@endgroup

@group GetLifecyclePolicy
@endpoint GET /GetLifecyclePolicy
@required {lifecyclePolicyArn: str}
@returns(200) {lifecyclePolicy: LifecyclePolicy?{arn: str?, name: str?, description: str?, status: str?, executionRole: str?, resourceType: str?, policyDetails: [LifecyclePolicyDetail]?, resourceSelection: LifecyclePolicyResourceSelection?{recipes: [LifecyclePolicyResourceSelectionRecipe]?, tagMap: map<str,str>?}, dateCreated: str(timestamp)?, dateUpdated: str(timestamp)?, dateLastRun: str(timestamp)?, tags: map<str,str>?}}

@endgroup

@group GetWorkflow
@endpoint GET /GetWorkflow
@required {workflowBuildVersionArn: str}
@returns(200) {workflow: Workflow?{arn: str?, name: str?, version: str?, description: str?, changeDescription: str?, type: str?, state: WorkflowState?{status: str?, reason: str?}, owner: str?, data: str?, kmsKeyId: str?, dateCreated: str?, tags: map<str,str>?, parameters: [WorkflowParameterDetail]?}}

@endgroup

@group GetWorkflowExecution
@endpoint GET /GetWorkflowExecution
@required {workflowExecutionId: str}
@returns(200) {requestId: str?, workflowBuildVersionArn: str?, workflowExecutionId: str?, imageBuildVersionArn: str?, type: str?, status: str?, message: str?, totalStepCount: int?, totalStepsSucceeded: int?, totalStepsFailed: int?, totalStepsSkipped: int?, startTime: str?, endTime: str?, parallelGroup: str?}

@endgroup

@group GetWorkflowStepExecution
@endpoint GET /GetWorkflowStepExecution
@required {stepExecutionId: str}
@returns(200) {requestId: str?, stepExecutionId: str?, workflowBuildVersionArn: str?, workflowExecutionId: str?, imageBuildVersionArn: str?, name: str?, description: str?, action: str?, status: str?, rollbackStatus: str?, message: str?, inputs: str?, outputs: str?, startTime: str?, endTime: str?, onFailure: str?, timeoutSeconds: int?}

@endgroup

@group ImportComponent
@endpoint PUT /ImportComponent
@required {name: str, semanticVersion: str, type: str, format: str, platform: str, clientToken: str}
@optional {description: str, changeDescription: str, data: str, uri: str, kmsKeyId: str, tags: map<str,str>}
@returns(200) {requestId: str?, clientToken: str?, componentBuildVersionArn: str?}

@endgroup

@group ImportVmImage
@endpoint PUT /ImportVmImage
@required {name: str, semanticVersion: str, platform: str, vmImportTaskId: str, clientToken: str}
@optional {description: str, osVersion: str, tags: map<str,str>}
@returns(200) {requestId: str?, imageArn: str?, clientToken: str?}

@endgroup

@group ListComponentBuildVersions
@endpoint POST /ListComponentBuildVersions
@required {componentVersionArn: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {requestId: str?, componentSummaryList: [ComponentSummary]?, nextToken: str?}

@endgroup

@group ListComponents
@endpoint POST /ListComponents
@optional {owner: str, filters: [Filter], byName: bool, maxResults: int, nextToken: str}
@returns(200) {requestId: str?, componentVersionList: [ComponentVersion]?, nextToken: str?}

@endgroup

@group ListContainerRecipes
@endpoint POST /ListContainerRecipes
@optional {owner: str, filters: [Filter], maxResults: int, nextToken: str}
@returns(200) {requestId: str?, containerRecipeSummaryList: [ContainerRecipeSummary]?, nextToken: str?}

@endgroup

@group ListDistributionConfigurations
@endpoint POST /ListDistributionConfigurations
@optional {filters: [Filter], maxResults: int, nextToken: str}
@returns(200) {requestId: str?, distributionConfigurationSummaryList: [DistributionConfigurationSummary]?, nextToken: str?}

@endgroup

@group ListImageBuildVersions
@endpoint POST /ListImageBuildVersions
@required {imageVersionArn: str}
@optional {filters: [Filter], maxResults: int, nextToken: str}
@returns(200) {requestId: str?, imageSummaryList: [ImageSummary]?, nextToken: str?}

@endgroup

@group ListImagePackages
@endpoint POST /ListImagePackages
@required {imageBuildVersionArn: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {requestId: str?, imagePackageList: [ImagePackage]?, nextToken: str?}

@endgroup

@group ListImagePipelineImages
@endpoint POST /ListImagePipelineImages
@required {imagePipelineArn: str}
@optional {filters: [Filter], maxResults: int, nextToken: str}
@returns(200) {requestId: str?, imageSummaryList: [ImageSummary]?, nextToken: str?}

@endgroup

@group ListImagePipelines
@endpoint POST /ListImagePipelines
@optional {filters: [Filter], maxResults: int, nextToken: str}
@returns(200) {requestId: str?, imagePipelineList: [ImagePipeline]?, nextToken: str?}

@endgroup

@group ListImageRecipes
@endpoint POST /ListImageRecipes
@optional {owner: str, filters: [Filter], maxResults: int, nextToken: str}
@returns(200) {requestId: str?, imageRecipeSummaryList: [ImageRecipeSummary]?, nextToken: str?}

@endgroup

@group ListImageScanFindingAggregations
@endpoint POST /ListImageScanFindingAggregations
@optional {filter: Filter, nextToken: str}
@returns(200) {requestId: str?, aggregationType: str?, responses: [ImageScanFindingAggregation]?, nextToken: str?}

@endgroup

@group ListImageScanFindings
@endpoint POST /ListImageScanFindings
@optional {filters: [ImageScanFindingsFilter], maxResults: int, nextToken: str}
@returns(200) {requestId: str?, findings: [ImageScanFinding]?, nextToken: str?}

@endgroup

@group ListImages
@endpoint POST /ListImages
@optional {owner: str, filters: [Filter], byName: bool, maxResults: int, nextToken: str, includeDeprecated: bool}
@returns(200) {requestId: str?, imageVersionList: [ImageVersion]?, nextToken: str?}

@endgroup

@group ListInfrastructureConfigurations
@endpoint POST /ListInfrastructureConfigurations
@optional {filters: [Filter], maxResults: int, nextToken: str}
@returns(200) {requestId: str?, infrastructureConfigurationSummaryList: [InfrastructureConfigurationSummary]?, nextToken: str?}

@endgroup

@group ListLifecycleExecutionResources
@endpoint POST /ListLifecycleExecutionResources
@required {lifecycleExecutionId: str}
@optional {parentResourceId: str, maxResults: int, nextToken: str}
@returns(200) {lifecycleExecutionId: str?, lifecycleExecutionState: LifecycleExecutionState?{status: str?, reason: str?}, resources: [LifecycleExecutionResource]?, nextToken: str?}

@endgroup

@group ListLifecycleExecutions
@endpoint POST /ListLifecycleExecutions
@required {resourceArn: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {lifecycleExecutions: [LifecycleExecution]?, nextToken: str?}

@endgroup

@group ListLifecyclePolicies
@endpoint POST /ListLifecyclePolicies
@optional {filters: [Filter], maxResults: int, nextToken: str}
@returns(200) {lifecyclePolicySummaryList: [LifecyclePolicySummary]?, nextToken: str?}

@endgroup

@group tags
@endpoint GET /tags/{resourceArn}
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endgroup

@group ListWaitingWorkflowSteps
@endpoint POST /ListWaitingWorkflowSteps
@optional {maxResults: int, nextToken: str}
@returns(200) {steps: [WorkflowStepExecution]?, nextToken: str?}

@endgroup

@group ListWorkflowBuildVersions
@endpoint POST /ListWorkflowBuildVersions
@required {workflowVersionArn: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {workflowSummaryList: [WorkflowSummary]?, nextToken: str?}

@endgroup

@group ListWorkflowExecutions
@endpoint POST /ListWorkflowExecutions
@required {imageBuildVersionArn: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {requestId: str?, workflowExecutions: [WorkflowExecutionMetadata]?, imageBuildVersionArn: str?, message: str?, nextToken: str?}

@endgroup

@group ListWorkflowStepExecutions
@endpoint POST /ListWorkflowStepExecutions
@required {workflowExecutionId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {requestId: str?, steps: [WorkflowStepMetadata]?, workflowBuildVersionArn: str?, workflowExecutionId: str?, imageBuildVersionArn: str?, message: str?, nextToken: str?}

@endgroup

@group ListWorkflows
@endpoint POST /ListWorkflows
@optional {owner: str, filters: [Filter], byName: bool, maxResults: int, nextToken: str}
@returns(200) {workflowVersionList: [WorkflowVersion]?, nextToken: str?}

@endgroup

@group PutComponentPolicy
@endpoint PUT /PutComponentPolicy
@required {componentArn: str, policy: str}
@returns(200) {requestId: str?, componentArn: str?}

@endgroup

@group PutContainerRecipePolicy
@endpoint PUT /PutContainerRecipePolicy
@required {containerRecipeArn: str, policy: str}
@returns(200) {requestId: str?, containerRecipeArn: str?}

@endgroup

@group PutImagePolicy
@endpoint PUT /PutImagePolicy
@required {imageArn: str, policy: str}
@returns(200) {requestId: str?, imageArn: str?}

@endgroup

@group PutImageRecipePolicy
@endpoint PUT /PutImageRecipePolicy
@required {imageRecipeArn: str, policy: str}
@returns(200) {requestId: str?, imageRecipeArn: str?}

@endgroup

@group SendWorkflowStepAction
@endpoint PUT /SendWorkflowStepAction
@required {stepExecutionId: str, imageBuildVersionArn: str, action: str, clientToken: str}
@optional {reason: str}
@returns(200) {stepExecutionId: str?, imageBuildVersionArn: str?, clientToken: str?}

@endgroup

@group StartImagePipelineExecution
@endpoint PUT /StartImagePipelineExecution
@required {imagePipelineArn: str, clientToken: str}
@returns(200) {requestId: str?, clientToken: str?, imageBuildVersionArn: str?}

@endgroup

@group StartResourceStateUpdate
@endpoint PUT /StartResourceStateUpdate
@required {resourceArn: str, state: ResourceState, clientToken: str}
@optional {executionRole: str, includeResources: ResourceStateUpdateIncludeResources, exclusionRules: ResourceStateUpdateExclusionRules, updateAt: str(timestamp)}
@returns(200) {lifecycleExecutionId: str?, resourceArn: str?}

@endgroup

@group tags
@endpoint POST /tags/{resourceArn}
@required {resourceArn: str, tags: map<str,str>}

@endpoint DELETE /tags/{resourceArn}
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@group UpdateDistributionConfiguration
@endpoint PUT /UpdateDistributionConfiguration
@required {distributionConfigurationArn: str, distributions: [Distribution], clientToken: str}
@optional {description: str}
@returns(200) {requestId: str?, clientToken: str?, distributionConfigurationArn: str?}

@endgroup

@group UpdateImagePipeline
@endpoint PUT /UpdateImagePipeline
@required {imagePipelineArn: str, infrastructureConfigurationArn: str, clientToken: str}
@optional {description: str, imageRecipeArn: str, containerRecipeArn: str, distributionConfigurationArn: str, imageTestsConfiguration: ImageTestsConfiguration, enhancedImageMetadataEnabled: bool, schedule: Schedule, status: str, imageScanningConfiguration: ImageScanningConfiguration, workflows: [WorkflowConfiguration], executionRole: str}
@returns(200) {requestId: str?, clientToken: str?, imagePipelineArn: str?}

@endgroup

@group UpdateInfrastructureConfiguration
@endpoint PUT /UpdateInfrastructureConfiguration
@required {infrastructureConfigurationArn: str, instanceProfileName: str, clientToken: str}
@optional {description: str, instanceTypes: [str], securityGroupIds: [str], subnetId: str, logging: Logging, keyPair: str, terminateInstanceOnFailure: bool, snsTopicArn: str, resourceTags: map<str,str>, instanceMetadataOptions: InstanceMetadataOptions}
@returns(200) {requestId: str?, clientToken: str?, infrastructureConfigurationArn: str?}

@endgroup

@group UpdateLifecyclePolicy
@endpoint PUT /UpdateLifecyclePolicy
@required {lifecyclePolicyArn: str, executionRole: str, resourceType: str, policyDetails: [LifecyclePolicyDetail], resourceSelection: LifecyclePolicyResourceSelection, clientToken: str}
@optional {description: str, status: str}
@returns(200) {lifecyclePolicyArn: str?}

@endgroup

@end
