@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Proton
@version 2020-07-20
@auth AWS SigV4
@endpoints 87
@hint download_for_search
@toc root(87)

@endpoint POST /
@required {id: str}
@returns(200) {environmentAccountConnection: EnvironmentAccountConnection{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, environmentAccountId: str, environmentName: str, id: str, lastModifiedAt: str(timestamp), managementAccountId: str, requestedAt: str(timestamp), roleArn: str, status: str}}

@endpoint POST /
@required {componentName: str}
@returns(200) {component: Component{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentName: str, lastAttemptedDeploymentId: str?, lastClientRequestToken: str?, lastDeploymentAttemptedAt: str(timestamp)?, lastDeploymentSucceededAt: str(timestamp)?, lastModifiedAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, serviceInstanceName: str?, serviceName: str?, serviceSpec: str?}}

@endpoint POST /
@required {environmentName: str}
@returns(200) {environment: Environment{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentAccountConnectionId: str?, environmentAccountId: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, protonServiceRoleArn: str?, provisioning: str?, provisioningRepository: RepositoryBranch?{arn: str, branch: str, name: str, provider: str}, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {serviceInstanceName: str, serviceName: str}
@returns(200) {serviceInstance: ServiceInstance{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, environmentName: str, lastAttemptedDeploymentId: str?, lastClientRequestToken: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, serviceName: str, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {serviceName: str}
@returns(200) {pipeline: ServicePipeline{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {manifest: str, name: str, templateFile: str}
@optional {clientToken: str, description: str, environmentName: str, serviceInstanceName: str, serviceName: str, serviceSpec: str, tags: [Tag]}
@returns(200) {component: Component{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentName: str, lastAttemptedDeploymentId: str?, lastClientRequestToken: str?, lastDeploymentAttemptedAt: str(timestamp)?, lastDeploymentSucceededAt: str(timestamp)?, lastModifiedAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, serviceInstanceName: str?, serviceName: str?, serviceSpec: str?}}

@endpoint POST /
@required {name: str, spec: str, templateMajorVersion: str, templateName: str}
@optional {codebuildRoleArn: str, componentRoleArn: str, description: str, environmentAccountConnectionId: str, protonServiceRoleArn: str, provisioningRepository: RepositoryBranchInput, tags: [Tag], templateMinorVersion: str}
@returns(200) {environment: Environment{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentAccountConnectionId: str?, environmentAccountId: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, protonServiceRoleArn: str?, provisioning: str?, provisioningRepository: RepositoryBranch?{arn: str, branch: str, name: str, provider: str}, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {environmentName: str, managementAccountId: str}
@optional {clientToken: str, codebuildRoleArn: str, componentRoleArn: str, roleArn: str, tags: [Tag]}
@returns(200) {environmentAccountConnection: EnvironmentAccountConnection{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, environmentAccountId: str, environmentName: str, id: str, lastModifiedAt: str(timestamp), managementAccountId: str, requestedAt: str(timestamp), roleArn: str, status: str}}

@endpoint POST /
@required {name: str}
@optional {description: str, displayName: str, encryptionKey: str, provisioning: str, tags: [Tag]}
@returns(200) {environmentTemplate: EnvironmentTemplate{arn: str, createdAt: str(timestamp), description: str?, displayName: str?, encryptionKey: str?, lastModifiedAt: str(timestamp), name: str, provisioning: str?, recommendedVersion: str?}}

@endpoint POST /
@required {source: TemplateVersionSourceInput, templateName: str}
@optional {clientToken: str, description: str, majorVersion: str, tags: [Tag]}
@returns(200) {environmentTemplateVersion: EnvironmentTemplateVersion{arn: str, createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), majorVersion: str, minorVersion: str, recommendedMinorVersion: str?, schema: str?, status: str, statusMessage: str?, templateName: str}}

@endpoint POST /
@required {connectionArn: str, name: str, provider: str}
@optional {encryptionKey: str, tags: [Tag]}
@returns(200) {repository: Repository{arn: str, connectionArn: str, encryptionKey: str?, name: str, provider: str}}

@endpoint POST /
@required {name: str, spec: str, templateMajorVersion: str, templateName: str}
@optional {branchName: str, description: str, repositoryConnectionArn: str, repositoryId: str, tags: [Tag], templateMinorVersion: str}
@returns(200) {service: Service{arn: str, branchName: str?, createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), name: str, pipeline: ServicePipeline?{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, repositoryConnectionArn: str?, repositoryId: str?, spec: str, status: str, statusMessage: str?, templateName: str}}

@endpoint POST /
@required {name: str, serviceName: str, spec: str}
@optional {clientToken: str, tags: [Tag], templateMajorVersion: str, templateMinorVersion: str}
@returns(200) {serviceInstance: ServiceInstance{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, environmentName: str, lastAttemptedDeploymentId: str?, lastClientRequestToken: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, serviceName: str, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {branch: str, filePath: str, repositoryName: str, repositoryProvider: str, serviceName: str}
@returns(200) {serviceSyncConfig: ServiceSyncConfig?{branch: str, filePath: str, repositoryName: str, repositoryProvider: str, serviceName: str}}

@endpoint POST /
@required {name: str}
@optional {description: str, displayName: str, encryptionKey: str, pipelineProvisioning: str, tags: [Tag]}
@returns(200) {serviceTemplate: ServiceTemplate{arn: str, createdAt: str(timestamp), description: str?, displayName: str?, encryptionKey: str?, lastModifiedAt: str(timestamp), name: str, pipelineProvisioning: str?, recommendedVersion: str?}}

@endpoint POST /
@required {compatibleEnvironmentTemplates: [CompatibleEnvironmentTemplateInput], source: TemplateVersionSourceInput, templateName: str}
@optional {clientToken: str, description: str, majorVersion: str, supportedComponentSources: [str], tags: [Tag]}
@returns(200) {serviceTemplateVersion: ServiceTemplateVersion{arn: str, compatibleEnvironmentTemplates: [CompatibleEnvironmentTemplate], createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), majorVersion: str, minorVersion: str, recommendedMinorVersion: str?, schema: str?, status: str, statusMessage: str?, supportedComponentSources: [str]?, templateName: str}}

@endpoint POST /
@required {branch: str, repositoryName: str, repositoryProvider: str, templateName: str, templateType: str}
@optional {subdirectory: str}
@returns(200) {templateSyncConfig: TemplateSyncConfig?{branch: str, repositoryName: str, repositoryProvider: str, subdirectory: str?, templateName: str, templateType: str}}

@endpoint POST /
@required {name: str}
@returns(200) {component: Component?{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentName: str, lastAttemptedDeploymentId: str?, lastClientRequestToken: str?, lastDeploymentAttemptedAt: str(timestamp)?, lastDeploymentSucceededAt: str(timestamp)?, lastModifiedAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, serviceInstanceName: str?, serviceName: str?, serviceSpec: str?}}

@endpoint POST /
@required {id: str}
@returns(200) {deployment: Deployment?{arn: str, completedAt: str(timestamp)?, componentName: str?, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, environmentName: str, id: str, initialState: DeploymentState?{component: ComponentState?{serviceInstanceName: str?, serviceName: str?, serviceSpec: str?, templateFile: str?}, environment: EnvironmentState?{spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, serviceInstance: ServiceInstanceState?{lastSuccessfulComponentDeploymentIds: [str]?, lastSuccessfulEnvironmentDeploymentId: str?, lastSuccessfulServicePipelineDeploymentId: str?, spec: str, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, servicePipeline: ServicePipelineState?{spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}, lastAttemptedDeploymentId: str?, lastModifiedAt: str(timestamp), lastSucceededDeploymentId: str?, serviceInstanceName: str?, serviceName: str?, targetArn: str, targetResourceCreatedAt: str(timestamp), targetResourceType: str, targetState: DeploymentState?{component: ComponentState?{serviceInstanceName: str?, serviceName: str?, serviceSpec: str?, templateFile: str?}, environment: EnvironmentState?{spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, serviceInstance: ServiceInstanceState?{lastSuccessfulComponentDeploymentIds: [str]?, lastSuccessfulEnvironmentDeploymentId: str?, lastSuccessfulServicePipelineDeploymentId: str?, spec: str, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, servicePipeline: ServicePipelineState?{spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}}}

@endpoint POST /
@required {name: str}
@returns(200) {environment: Environment?{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentAccountConnectionId: str?, environmentAccountId: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, protonServiceRoleArn: str?, provisioning: str?, provisioningRepository: RepositoryBranch?{arn: str, branch: str, name: str, provider: str}, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {id: str}
@returns(200) {environmentAccountConnection: EnvironmentAccountConnection?{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, environmentAccountId: str, environmentName: str, id: str, lastModifiedAt: str(timestamp), managementAccountId: str, requestedAt: str(timestamp), roleArn: str, status: str}}

@endpoint POST /
@required {name: str}
@returns(200) {environmentTemplate: EnvironmentTemplate?{arn: str, createdAt: str(timestamp), description: str?, displayName: str?, encryptionKey: str?, lastModifiedAt: str(timestamp), name: str, provisioning: str?, recommendedVersion: str?}}

@endpoint POST /
@required {majorVersion: str, minorVersion: str, templateName: str}
@returns(200) {environmentTemplateVersion: EnvironmentTemplateVersion?{arn: str, createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), majorVersion: str, minorVersion: str, recommendedMinorVersion: str?, schema: str?, status: str, statusMessage: str?, templateName: str}}

@endpoint POST /
@required {name: str, provider: str}
@returns(200) {repository: Repository?{arn: str, connectionArn: str, encryptionKey: str?, name: str, provider: str}}

@endpoint POST /
@required {name: str}
@returns(200) {service: Service?{arn: str, branchName: str?, createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), name: str, pipeline: ServicePipeline?{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, repositoryConnectionArn: str?, repositoryId: str?, spec: str, status: str, statusMessage: str?, templateName: str}}

@endpoint POST /
@required {serviceName: str}
@returns(200) {serviceSyncConfig: ServiceSyncConfig?{branch: str, filePath: str, repositoryName: str, repositoryProvider: str, serviceName: str}}

@endpoint POST /
@required {name: str}
@returns(200) {serviceTemplate: ServiceTemplate?{arn: str, createdAt: str(timestamp), description: str?, displayName: str?, encryptionKey: str?, lastModifiedAt: str(timestamp), name: str, pipelineProvisioning: str?, recommendedVersion: str?}}

@endpoint POST /
@required {majorVersion: str, minorVersion: str, templateName: str}
@returns(200) {serviceTemplateVersion: ServiceTemplateVersion?{arn: str, compatibleEnvironmentTemplates: [CompatibleEnvironmentTemplate], createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), majorVersion: str, minorVersion: str, recommendedMinorVersion: str?, schema: str?, status: str, statusMessage: str?, supportedComponentSources: [str]?, templateName: str}}

@endpoint POST /
@required {templateName: str, templateType: str}
@returns(200) {templateSyncConfig: TemplateSyncConfig?{branch: str, repositoryName: str, repositoryProvider: str, subdirectory: str?, templateName: str, templateType: str}}

@endpoint POST /
@returns(200) {accountSettings: AccountSettings?{pipelineCodebuildRoleArn: str?, pipelineProvisioningRepository: RepositoryBranch?{arn: str, branch: str, name: str, provider: str}, pipelineServiceRoleArn: str?}}

@endpoint POST /
@required {name: str}
@returns(200) {component: Component?{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentName: str, lastAttemptedDeploymentId: str?, lastClientRequestToken: str?, lastDeploymentAttemptedAt: str(timestamp)?, lastDeploymentSucceededAt: str(timestamp)?, lastModifiedAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, serviceInstanceName: str?, serviceName: str?, serviceSpec: str?}}

@endpoint POST /
@required {id: str}
@optional {componentName: str, environmentName: str, serviceInstanceName: str, serviceName: str}
@returns(200) {deployment: Deployment?{arn: str, completedAt: str(timestamp)?, componentName: str?, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, environmentName: str, id: str, initialState: DeploymentState?{component: ComponentState?{serviceInstanceName: str?, serviceName: str?, serviceSpec: str?, templateFile: str?}, environment: EnvironmentState?{spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, serviceInstance: ServiceInstanceState?{lastSuccessfulComponentDeploymentIds: [str]?, lastSuccessfulEnvironmentDeploymentId: str?, lastSuccessfulServicePipelineDeploymentId: str?, spec: str, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, servicePipeline: ServicePipelineState?{spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}, lastAttemptedDeploymentId: str?, lastModifiedAt: str(timestamp), lastSucceededDeploymentId: str?, serviceInstanceName: str?, serviceName: str?, targetArn: str, targetResourceCreatedAt: str(timestamp), targetResourceType: str, targetState: DeploymentState?{component: ComponentState?{serviceInstanceName: str?, serviceName: str?, serviceSpec: str?, templateFile: str?}, environment: EnvironmentState?{spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, serviceInstance: ServiceInstanceState?{lastSuccessfulComponentDeploymentIds: [str]?, lastSuccessfulEnvironmentDeploymentId: str?, lastSuccessfulServicePipelineDeploymentId: str?, spec: str, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, servicePipeline: ServicePipelineState?{spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}}}

@endpoint POST /
@required {name: str}
@returns(200) {environment: Environment{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentAccountConnectionId: str?, environmentAccountId: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, protonServiceRoleArn: str?, provisioning: str?, provisioningRepository: RepositoryBranch?{arn: str, branch: str, name: str, provider: str}, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {id: str}
@returns(200) {environmentAccountConnection: EnvironmentAccountConnection{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, environmentAccountId: str, environmentName: str, id: str, lastModifiedAt: str(timestamp), managementAccountId: str, requestedAt: str(timestamp), roleArn: str, status: str}}

@endpoint POST /
@required {name: str}
@returns(200) {environmentTemplate: EnvironmentTemplate{arn: str, createdAt: str(timestamp), description: str?, displayName: str?, encryptionKey: str?, lastModifiedAt: str(timestamp), name: str, provisioning: str?, recommendedVersion: str?}}

@endpoint POST /
@required {majorVersion: str, minorVersion: str, templateName: str}
@returns(200) {environmentTemplateVersion: EnvironmentTemplateVersion{arn: str, createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), majorVersion: str, minorVersion: str, recommendedMinorVersion: str?, schema: str?, status: str, statusMessage: str?, templateName: str}}

@endpoint POST /
@required {name: str, provider: str}
@returns(200) {repository: Repository{arn: str, connectionArn: str, encryptionKey: str?, name: str, provider: str}}

@endpoint POST /
@required {branch: str, repositoryName: str, repositoryProvider: str, syncType: str}
@returns(200) {latestSync: RepositorySyncAttempt?{events: [RepositorySyncEvent], startedAt: str(timestamp), status: str}}

@endpoint POST /
@returns(200) {counts: CountsSummary{components: ResourceCountsSummary?{behindMajor: int?, behindMinor: int?, failed: int?, total: int, upToDate: int?}, environmentTemplates: ResourceCountsSummary?{behindMajor: int?, behindMinor: int?, failed: int?, total: int, upToDate: int?}, environments: ResourceCountsSummary?{behindMajor: int?, behindMinor: int?, failed: int?, total: int, upToDate: int?}, pipelines: ResourceCountsSummary?{behindMajor: int?, behindMinor: int?, failed: int?, total: int, upToDate: int?}, serviceInstances: ResourceCountsSummary?{behindMajor: int?, behindMinor: int?, failed: int?, total: int, upToDate: int?}, serviceTemplates: ResourceCountsSummary?{behindMajor: int?, behindMinor: int?, failed: int?, total: int, upToDate: int?}, services: ResourceCountsSummary?{behindMajor: int?, behindMinor: int?, failed: int?, total: int, upToDate: int?}}}

@endpoint POST /
@required {name: str}
@returns(200) {service: Service?{arn: str, branchName: str?, createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), name: str, pipeline: ServicePipeline?{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, repositoryConnectionArn: str?, repositoryId: str?, spec: str, status: str, statusMessage: str?, templateName: str}}

@endpoint POST /
@required {name: str, serviceName: str}
@returns(200) {serviceInstance: ServiceInstance{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, environmentName: str, lastAttemptedDeploymentId: str?, lastClientRequestToken: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, serviceName: str, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {serviceInstanceName: str, serviceName: str}
@returns(200) {desiredState: Revision?{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}, latestSuccessfulSync: ResourceSyncAttempt?{events: [ResourceSyncEvent], initialRevision: Revision{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}, startedAt: str(timestamp), status: str, target: str, targetRevision: Revision{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}}, latestSync: ResourceSyncAttempt?{events: [ResourceSyncEvent], initialRevision: Revision{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}, startedAt: str(timestamp), status: str, target: str, targetRevision: Revision{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}}}

@endpoint POST /
@required {serviceName: str}
@optional {serviceInstanceName: str}
@returns(200) {serviceSyncBlockerSummary: ServiceSyncBlockerSummary?{latestBlockers: [SyncBlocker]?, serviceInstanceName: str?, serviceName: str}}

@endpoint POST /
@required {serviceName: str}
@returns(200) {serviceSyncConfig: ServiceSyncConfig?{branch: str, filePath: str, repositoryName: str, repositoryProvider: str, serviceName: str}}

@endpoint POST /
@required {name: str}
@returns(200) {serviceTemplate: ServiceTemplate{arn: str, createdAt: str(timestamp), description: str?, displayName: str?, encryptionKey: str?, lastModifiedAt: str(timestamp), name: str, pipelineProvisioning: str?, recommendedVersion: str?}}

@endpoint POST /
@required {majorVersion: str, minorVersion: str, templateName: str}
@returns(200) {serviceTemplateVersion: ServiceTemplateVersion{arn: str, compatibleEnvironmentTemplates: [CompatibleEnvironmentTemplate], createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), majorVersion: str, minorVersion: str, recommendedMinorVersion: str?, schema: str?, status: str, statusMessage: str?, supportedComponentSources: [str]?, templateName: str}}

@endpoint POST /
@required {templateName: str, templateType: str}
@returns(200) {templateSyncConfig: TemplateSyncConfig?{branch: str, repositoryName: str, repositoryProvider: str, subdirectory: str?, templateName: str, templateType: str}}

@endpoint POST /
@required {templateName: str, templateType: str, templateVersion: str}
@returns(200) {desiredState: Revision?{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}, latestSuccessfulSync: ResourceSyncAttempt?{events: [ResourceSyncEvent], initialRevision: Revision{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}, startedAt: str(timestamp), status: str, target: str, targetRevision: Revision{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}}, latestSync: ResourceSyncAttempt?{events: [ResourceSyncEvent], initialRevision: Revision{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}, startedAt: str(timestamp), status: str, target: str, targetRevision: Revision{branch: str, directory: str, repositoryName: str, repositoryProvider: str, sha: str}}}

@endpoint POST /
@required {componentName: str}
@optional {deploymentId: str, nextToken: str}
@returns(200) {nextToken: str?, outputs: [Output]}

@endpoint POST /
@required {componentName: str}
@optional {nextToken: str}
@returns(200) {nextToken: str?, provisionedResources: [ProvisionedResource]}

@endpoint POST /
@optional {environmentName: str, maxResults: int, nextToken: str, serviceInstanceName: str, serviceName: str}
@returns(200) {components: [ComponentSummary], nextToken: str?}

@endpoint POST /
@optional {componentName: str, environmentName: str, maxResults: int, nextToken: str, serviceInstanceName: str, serviceName: str}
@returns(200) {deployments: [DeploymentSummary], nextToken: str?}

@endpoint POST /
@required {requestedBy: str}
@optional {environmentName: str, maxResults: int, nextToken: str, statuses: [str]}
@returns(200) {environmentAccountConnections: [EnvironmentAccountConnectionSummary], nextToken: str?}

@endpoint POST /
@required {environmentName: str}
@optional {deploymentId: str, nextToken: str}
@returns(200) {nextToken: str?, outputs: [Output]}

@endpoint POST /
@required {environmentName: str}
@optional {nextToken: str}
@returns(200) {nextToken: str?, provisionedResources: [ProvisionedResource]}

@endpoint POST /
@required {templateName: str}
@optional {majorVersion: str, maxResults: int, nextToken: str}
@returns(200) {nextToken: str?, templateVersions: [EnvironmentTemplateVersionSummary]}

@endpoint POST /
@optional {maxResults: int, nextToken: str}
@returns(200) {nextToken: str?, templates: [EnvironmentTemplateSummary]}

@endpoint POST /
@optional {environmentTemplates: [EnvironmentTemplateFilter], maxResults: int, nextToken: str}
@returns(200) {environments: [EnvironmentSummary], nextToken: str?}

@endpoint POST /
@optional {maxResults: int, nextToken: str}
@returns(200) {nextToken: str?, repositories: [RepositorySummary]}

@endpoint POST /
@required {repositoryName: str, repositoryProvider: str, syncType: str}
@optional {nextToken: str}
@returns(200) {nextToken: str?, syncDefinitions: [RepositorySyncDefinition]}

@endpoint POST /
@required {serviceInstanceName: str, serviceName: str}
@optional {deploymentId: str, nextToken: str}
@returns(200) {nextToken: str?, outputs: [Output]}

@endpoint POST /
@required {serviceInstanceName: str, serviceName: str}
@optional {nextToken: str}
@returns(200) {nextToken: str?, provisionedResources: [ProvisionedResource]}

@endpoint POST /
@optional {filters: [ListServiceInstancesFilter], maxResults: int, nextToken: str, serviceName: str, sortBy: str, sortOrder: str}
@returns(200) {nextToken: str?, serviceInstances: [ServiceInstanceSummary]}

@endpoint POST /
@required {serviceName: str}
@optional {deploymentId: str, nextToken: str}
@returns(200) {nextToken: str?, outputs: [Output]}

@endpoint POST /
@required {serviceName: str}
@optional {nextToken: str}
@returns(200) {nextToken: str?, provisionedResources: [ProvisionedResource]}

@endpoint POST /
@required {templateName: str}
@optional {majorVersion: str, maxResults: int, nextToken: str}
@returns(200) {nextToken: str?, templateVersions: [ServiceTemplateVersionSummary]}

@endpoint POST /
@optional {maxResults: int, nextToken: str}
@returns(200) {nextToken: str?, templates: [ServiceTemplateSummary]}

@endpoint POST /
@optional {maxResults: int, nextToken: str}
@returns(200) {nextToken: str?, services: [ServiceSummary]}

@endpoint POST /
@required {resourceArn: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {nextToken: str?, tags: [Tag]}

@endpoint POST /
@required {resourceArn: str}
@optional {deploymentId: str, outputs: [Output], status: str, statusMessage: str}

@endpoint POST /
@required {id: str}
@returns(200) {environmentAccountConnection: EnvironmentAccountConnection{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, environmentAccountId: str, environmentName: str, id: str, lastModifiedAt: str(timestamp), managementAccountId: str, requestedAt: str(timestamp), roleArn: str, status: str}}

@endpoint POST /
@required {resourceArn: str, tags: [Tag]}

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

@endpoint POST /
@optional {deletePipelineProvisioningRepository: bool, pipelineCodebuildRoleArn: str, pipelineProvisioningRepository: RepositoryBranchInput, pipelineServiceRoleArn: str}
@returns(200) {accountSettings: AccountSettings{pipelineCodebuildRoleArn: str?, pipelineProvisioningRepository: RepositoryBranch?{arn: str, branch: str, name: str, provider: str}, pipelineServiceRoleArn: str?}}

@endpoint POST /
@required {deploymentType: str, name: str}
@optional {clientToken: str, description: str, serviceInstanceName: str, serviceName: str, serviceSpec: str, templateFile: str}
@returns(200) {component: Component{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentName: str, lastAttemptedDeploymentId: str?, lastClientRequestToken: str?, lastDeploymentAttemptedAt: str(timestamp)?, lastDeploymentSucceededAt: str(timestamp)?, lastModifiedAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, serviceInstanceName: str?, serviceName: str?, serviceSpec: str?}}

@endpoint POST /
@required {deploymentType: str, name: str}
@optional {codebuildRoleArn: str, componentRoleArn: str, description: str, environmentAccountConnectionId: str, protonServiceRoleArn: str, provisioningRepository: RepositoryBranchInput, spec: str, templateMajorVersion: str, templateMinorVersion: str}
@returns(200) {environment: Environment{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, description: str?, environmentAccountConnectionId: str?, environmentAccountId: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, protonServiceRoleArn: str?, provisioning: str?, provisioningRepository: RepositoryBranch?{arn: str, branch: str, name: str, provider: str}, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {id: str}
@optional {codebuildRoleArn: str, componentRoleArn: str, roleArn: str}
@returns(200) {environmentAccountConnection: EnvironmentAccountConnection{arn: str, codebuildRoleArn: str?, componentRoleArn: str?, environmentAccountId: str, environmentName: str, id: str, lastModifiedAt: str(timestamp), managementAccountId: str, requestedAt: str(timestamp), roleArn: str, status: str}}

@endpoint POST /
@required {name: str}
@optional {description: str, displayName: str}
@returns(200) {environmentTemplate: EnvironmentTemplate{arn: str, createdAt: str(timestamp), description: str?, displayName: str?, encryptionKey: str?, lastModifiedAt: str(timestamp), name: str, provisioning: str?, recommendedVersion: str?}}

@endpoint POST /
@required {majorVersion: str, minorVersion: str, templateName: str}
@optional {description: str, status: str}
@returns(200) {environmentTemplateVersion: EnvironmentTemplateVersion{arn: str, createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), majorVersion: str, minorVersion: str, recommendedMinorVersion: str?, schema: str?, status: str, statusMessage: str?, templateName: str}}

@endpoint POST /
@required {name: str}
@optional {description: str, spec: str}
@returns(200) {service: Service{arn: str, branchName: str?, createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), name: str, pipeline: ServicePipeline?{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}, repositoryConnectionArn: str?, repositoryId: str?, spec: str, status: str, statusMessage: str?, templateName: str}}

@endpoint POST /
@required {deploymentType: str, name: str, serviceName: str}
@optional {clientToken: str, spec: str, templateMajorVersion: str, templateMinorVersion: str}
@returns(200) {serviceInstance: ServiceInstance{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, environmentName: str, lastAttemptedDeploymentId: str?, lastClientRequestToken: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, name: str, serviceName: str, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {deploymentType: str, serviceName: str, spec: str}
@optional {templateMajorVersion: str, templateMinorVersion: str}
@returns(200) {pipeline: ServicePipeline{arn: str, createdAt: str(timestamp), deploymentStatus: str, deploymentStatusMessage: str?, lastAttemptedDeploymentId: str?, lastDeploymentAttemptedAt: str(timestamp), lastDeploymentSucceededAt: str(timestamp), lastSucceededDeploymentId: str?, spec: str?, templateMajorVersion: str, templateMinorVersion: str, templateName: str}}

@endpoint POST /
@required {id: str, resolvedReason: str}
@returns(200) {serviceInstanceName: str?, serviceName: str, serviceSyncBlocker: SyncBlocker{contexts: [SyncBlockerContext]?, createdAt: str(timestamp), createdReason: str, id: str, resolvedAt: str(timestamp)?, resolvedReason: str?, status: str, type: str}}

@endpoint POST /
@required {branch: str, filePath: str, repositoryName: str, repositoryProvider: str, serviceName: str}
@returns(200) {serviceSyncConfig: ServiceSyncConfig?{branch: str, filePath: str, repositoryName: str, repositoryProvider: str, serviceName: str}}

@endpoint POST /
@required {name: str}
@optional {description: str, displayName: str}
@returns(200) {serviceTemplate: ServiceTemplate{arn: str, createdAt: str(timestamp), description: str?, displayName: str?, encryptionKey: str?, lastModifiedAt: str(timestamp), name: str, pipelineProvisioning: str?, recommendedVersion: str?}}

@endpoint POST /
@required {majorVersion: str, minorVersion: str, templateName: str}
@optional {compatibleEnvironmentTemplates: [CompatibleEnvironmentTemplateInput], description: str, status: str, supportedComponentSources: [str]}
@returns(200) {serviceTemplateVersion: ServiceTemplateVersion{arn: str, compatibleEnvironmentTemplates: [CompatibleEnvironmentTemplate], createdAt: str(timestamp), description: str?, lastModifiedAt: str(timestamp), majorVersion: str, minorVersion: str, recommendedMinorVersion: str?, schema: str?, status: str, statusMessage: str?, supportedComponentSources: [str]?, templateName: str}}

@endpoint POST /
@required {branch: str, repositoryName: str, repositoryProvider: str, templateName: str, templateType: str}
@optional {subdirectory: str}
@returns(200) {templateSyncConfig: TemplateSyncConfig?{branch: str, repositoryName: str, repositoryProvider: str, subdirectory: str?, templateName: str, templateType: str}}

@end
