openapi: 3.0.0
info:
version: 2020-07-20
x-release: v4
title: 'AWS Proton #X Amz Target=AwsProton20200720.AcceptEnvironmentAccountConnection #X Amz Target=AwsProton20200720.AcceptEnvironmentAccountConnection #X Amz Target=AwsProton20200720.CreateEnvironment API'
description: <p>This is the Proton Service API Reference. It provides descriptions, syntax and usage examples for each of the <a href="https://docs.aws.amazon.com/proton/latest/APIReference/API_Operations.html">actions</a> and <a href="https://docs.aws.amazon.com/proton/latest/APIReference/API_Types.html">data types</a> for the Proton service.</p> <p>The documentation for each action shows the Query API request parameters and the XML response.</p> <p>Alternatively, you can use the Amazon Web Services CLI to access an API. For more information, see the <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html">Amazon Web Services Command Line Interface User Guide</a>.</p> <p>The Proton service is a two-pronged automation framework. Administrators create service templates to provide standardized infrastructure and deployment tooling for serverless and container based applications. Developers, in turn, select from the available service templates to automate their application or service deployments.</p> <p>Because administrators define the infrastructure and tooling that Proton deploys and manages, they need permissions to use all of the listed API operations.</p> <p>When developers select a specific infrastructure and tooling set, Proton deploys their applications. To monitor their applications that are running on Proton, developers need permissions to the service <i>create</i>, <i>list</i>, <i>update</i> and <i>delete</i> API operations and the service instance <i>list</i> and <i>update</i> API operations.</p> <p>To learn more about Proton, see the <a href="https://docs.aws.amazon.com/proton/latest/userguide/Welcome.html">Proton User Guide</a>.</p> <p> <b>Ensuring Idempotency</b> </p> <p>When you make a mutating API request, the request typically returns a result before the asynchronous workflows of the operation are complete. Operations might also time out or encounter other server issues before they're complete, even if the request already returned a result. This might make it difficult to determine whether the request succeeded. Moreover, you might need to retry the request multiple times to ensure that the operation completes successfully. However, if the original request and the subsequent retries are successful, the operation occurs multiple times. This means that you might create more resources than you intended.</p> <p> <i>Idempotency</i> ensures that an API request action completes no more than one time. With an idempotent request, if the original request action completes successfully, any subsequent retries complete successfully without performing any further actions. However, the result might contain updated information, such as the current creation status.</p> <p>The following lists of APIs are grouped according to methods that ensure idempotency.</p> <p> <b>Idempotent create APIs with a client token</b> </p> <p>The API actions in this list support idempotency with the use of a <i>client token</i>. The corresponding Amazon Web Services CLI commands also support idempotency using a client token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request using one of these actions, specify a client token in the request. We recommend that you <i>don't</i> reuse the same client token for other API requests. If you don’t provide a client token for these APIs, a default client token is automatically provided by SDKs.</p> <p>Given a request action that has succeeded:</p> <p>If you retry the request using the same client token and the same parameters, the retry succeeds without performing any further actions other than returning the original resource detail data in the response.</p> <p>If you retry the request using the same client token, but one or more of the parameters are different, the retry throws a <code>ValidationException</code> with an <code>IdempotentParameterMismatch</code> error.</p> <p>Client tokens expire eight hours after a request is made. If you retry the request with the expired token, a new resource is created.</p> <p>If the original resource is deleted and you retry the request, a new resource is created.</p> <p>Idempotent create APIs with a client token:</p> <ul> <li> <p>CreateEnvironmentTemplateVersion</p> </li> <li> <p>CreateServiceTemplateVersion</p> </li> <li> <p>CreateEnvironmentAccountConnection</p> </li> </ul> <p> <b>Idempotent create APIs</b> </p> <p>Given a request action that has succeeded:</p> <p>If you retry the request with an API from this group, and the original resource <i>hasn't</i> been modified, the retry succeeds without performing any further actions other than returning the original resource detail data in the response.</p> <p>If the original resource has been modified, the retry throws a <code>ConflictException</code>.</p> <p>If you retry with different input parameters, the retry throws a <code>ValidationException</code> with an <code>IdempotentParameterMismatch</code> error.</p> <p>Idempotent create APIs:</p> <ul> <li> <p>CreateEnvironmentTemplate</p> </li> <li> <p>CreateServiceTemplate</p> </li> <li> <p>CreateEnvironment</p> </li> <li> <p>CreateService</p> </li> </ul> <p> <b>Idempotent delete APIs</b> </p> <p>Given a request action that has succeeded:</p> <p>When you retry the request with an API from this group and the resource was deleted, its metadata is returned in the response.</p> <p>If you retry and the resource doesn't exist, the response is empty.</p> <p>In both cases, the retry succeeds.</p> <p>Idempotent delete APIs:</p> <ul> <li> <p>DeleteEnvironmentTemplate</p> </li> <li> <p>DeleteEnvironmentTemplateVersion</p> </li> <li> <p>DeleteServiceTemplate</p> </li> <li> <p>DeleteServiceTemplateVersion</p> </li> <li> <p>DeleteEnvironmentAccountConnection</p> </li> </ul> <p> <b>Asynchronous idempotent delete APIs</b> </p> <p>Given a request action that has succeeded:</p> <p>If you retry the request with an API from this group, if the original request delete operation status is <code>DELETE_IN_PROGRESS</code>, the retry returns the resource detail data in the response without performing any further actions.</p> <p>If the original request delete operation is complete, a retry returns an empty response.</p> <p>Asynchronous idempotent delete APIs:</p> <ul> <li> <p>DeleteEnvironment</p> </li> <li> <p>DeleteService</p> </li> </ul>
x-logo:
url: https://api.apis.guru/v2/cache/logo/https_twitter.com_awscloud_profile_image.png
backgroundColor: '#FFFFFF'
termsOfService: https://aws.amazon.com/service-terms/
contact:
name: Mike Ralphson
email: mike.ralphson@gmail.com
url: https://github.com/mermade/aws2openapi
x-twitter: PermittedSoc
license:
name: Apache 2.0 License
url: http://www.apache.org/licenses/
x-providerName: amazonaws.com
x-serviceName: proton
x-aws-signingName: proton
x-origin:
- contentType: application/json
url: https://raw.githubusercontent.com/aws/aws-sdk-js/master/apis/proton-2020-07-20.normal.json
converter:
url: https://github.com/mermade/aws2openapi
version: 1.0.0
x-apisguru-driver: external
x-apiClientRegistration:
url: https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_ct
x-apisguru-categories:
- cloud
x-preferred: true
servers:
- url: http://proton.{region}.amazonaws.com
variables:
region:
description: The AWS region
enum:
- us-east-1
- us-east-2
- us-west-1
- us-west-2
- us-gov-west-1
- us-gov-east-1
- ca-central-1
- eu-north-1
- eu-west-1
- eu-west-2
- eu-west-3
- eu-central-1
- eu-south-1
- af-south-1
- ap-northeast-1
- ap-northeast-2
- ap-northeast-3
- ap-southeast-1
- ap-southeast-2
- ap-east-1
- ap-south-1
- sa-east-1
- me-south-1
default: us-east-1
description: The AWS Proton multi-region endpoint
- url: https://proton.{region}.amazonaws.com
variables:
region:
description: The AWS region
enum:
- us-east-1
- us-east-2
- us-west-1
- us-west-2
- us-gov-west-1
- us-gov-east-1
- ca-central-1
- eu-north-1
- eu-west-1
- eu-west-2
- eu-west-3
- eu-central-1
- eu-south-1
- af-south-1
- ap-northeast-1
- ap-northeast-2
- ap-northeast-3
- ap-southeast-1
- ap-southeast-2
- ap-east-1
- ap-south-1
- sa-east-1
- me-south-1
default: us-east-1
description: The AWS Proton multi-region endpoint
- url: http://proton.{region}.amazonaws.com.cn
variables:
region:
description: The AWS region
enum:
- cn-north-1
- cn-northwest-1
default: cn-north-1
description: The AWS Proton endpoint for China (Beijing) and China (Ningxia)
- url: https://proton.{region}.amazonaws.com.cn
variables:
region:
description: The AWS region
enum:
- cn-north-1
- cn-northwest-1
default: cn-north-1
description: The AWS Proton endpoint for China (Beijing) and China (Ningxia)
security:
- hmac: []
tags:
- name: '#X Amz Target=AwsProton20200720.CreateEnvironment'
paths:
/#X-Amz-Target=AwsProton20200720.CreateEnvironment:
parameters:
- $ref: '#/components/parameters/X-Amz-Content-Sha256'
- $ref: '#/components/parameters/X-Amz-Date'
- $ref: '#/components/parameters/X-Amz-Algorithm'
- $ref: '#/components/parameters/X-Amz-Credential'
- $ref: '#/components/parameters/X-Amz-Security-Token'
- $ref: '#/components/parameters/X-Amz-Signature'
- $ref: '#/components/parameters/X-Amz-SignedHeaders'
post:
operationId: CreateEnvironment
description: '<p>Deploy a new environment. An Proton environment is created from an environment template that defines infrastructure and resources that can be shared across services.</p> <p class="title"> <b>You can provision environments using the following methods:</b> </p> <ul> <li> <p>Amazon Web Services-managed provisioning: Proton makes direct calls to provision your resources.</p> </li> <li> <p>Self-managed provisioning: Proton makes pull requests on your repository to provide compiled infrastructure as code (IaC) files that your IaC engine uses to provision resources.</p> </li> </ul> <p>For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-environments.html">Environments</a> and <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-works-prov-methods.html">Provisioning methods</a> in the <i>Proton User Guide</i>.</p>'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEnvironmentOutput'
'480':
description: ServiceQuotaExceededException
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceQuotaExceededException'
'481':
description: ValidationException
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationException'
'482':
description: AccessDeniedException
content:
application/json:
schema:
$ref: '#/components/schemas/AccessDeniedException'
'483':
description: ThrottlingException
content:
application/json:
schema:
$ref: '#/components/schemas/ThrottlingException'
'484':
description: ConflictException
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictException'
'485':
description: ResourceNotFoundException
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceNotFoundException'
'486':
description: InternalServerException
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerException'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEnvironmentInput'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- AwsProton20200720.CreateEnvironment
summary: Amazon Proton Create Environment
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
tags:
- '#X Amz Target=AwsProton20200720.CreateEnvironment'
components:
schemas:
RoleArn:
type: string
pattern: ^arn:(aws|aws-cn|aws-us-gov):iam::\d{12}:role/([\w+=,.@-]{1,512}[/:])*([\w+=,.@-]{1,64})$
minLength: 1
maxLength: 2048
Environment:
type: object
required:
- arn
- createdAt
- deploymentStatus
- lastDeploymentAttemptedAt
- lastDeploymentSucceededAt
- name
- templateMajorVersion
- templateMinorVersion
- templateName
properties:
arn:
allOf:
- $ref: '#/components/schemas/EnvironmentArn'
- description: The Amazon Resource Name (ARN) of the environment.
codebuildRoleArn:
allOf:
- $ref: '#/components/schemas/RoleArn'
- description: The Amazon Resource Name (ARN) of the IAM service role that allows Proton to provision infrastructure using CodeBuild-based provisioning on your behalf.
componentRoleArn:
allOf:
- $ref: '#/components/schemas/RoleArn'
- description: <p>The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in this environment. It determines the scope of infrastructure that a component can provision.</p> <p>The environment must have a <code>componentRoleArn</code> to allow directly defined components to be associated with the environment.</p> <p>For more information about components, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-components.html">Proton components</a> in the <i>Proton User Guide</i>.</p>
createdAt:
allOf:
- $ref: '#/components/schemas/Timestamp'
- description: The time when the environment was created.
deploymentStatus:
allOf:
- $ref: '#/components/schemas/DeploymentStatus'
- description: The environment deployment status.
deploymentStatusMessage:
allOf:
- $ref: '#/components/schemas/StatusMessage'
- description: An environment deployment status message.
description:
allOf:
- $ref: '#/components/schemas/Description'
- description: The description of the environment.
environmentAccountConnectionId:
allOf:
- $ref: '#/components/schemas/EnvironmentAccountConnectionId'
- description: The ID of the environment account connection that's used to provision infrastructure resources in an environment account.
environmentAccountId:
allOf:
- $ref: '#/components/schemas/AwsAccountId'
- description: The ID of the environment account that the environment infrastructure resources are provisioned in.
lastDeploymentAttemptedAt:
allOf:
- $ref: '#/components/schemas/Timestamp'
- description: The time when a deployment of the environment was last attempted.
lastDeploymentSucceededAt:
allOf:
- $ref: '#/components/schemas/Timestamp'
- description: The time when the environment was last deployed successfully.
name:
allOf:
- $ref: '#/components/schemas/ResourceName'
- description: The name of the environment.
protonServiceRoleArn:
allOf:
- $ref: '#/components/schemas/Arn'
- description: The Amazon Resource Name (ARN) of the Proton service role that allows Proton to make calls to other services on your behalf.
provisioning:
allOf:
- $ref: '#/components/schemas/Provisioning'
- description: When included, indicates that the environment template is for customer provisioned and managed infrastructure.
provisioningRepository:
allOf:
- $ref: '#/components/schemas/RepositoryBranch'
- description: The linked repository that you use to host your rendered infrastructure templates for self-managed provisioning. A linked repository is a repository that has been registered with Proton. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/APIReference/API_CreateRepository.html">CreateRepository</a>.
spec:
allOf:
- $ref: '#/components/schemas/SpecContents'
- description: The environment spec.
templateMajorVersion:
allOf:
- $ref: '#/components/schemas/TemplateVersionPart'
- description: The major version of the environment template.
templateMinorVersion:
allOf:
- $ref: '#/components/schemas/TemplateVersionPart'
- description: The minor version of the environment template.
templateName:
allOf:
- $ref: '#/components/schemas/ResourceName'
- description: The Amazon Resource Name (ARN) of the environment template.
description: Detailed data of an Proton environment resource. An Proton environment is a set of resources shared across Proton services.
StatusMessage:
type: string
format: password
ResourceName:
type: string
pattern: ^[0-9A-Za-z]+[0-9A-Za-z_\-]*$
minLength: 1
maxLength: 100
Tag:
type: object
required:
- key
- value
properties:
key:
allOf:
- $ref: '#/components/schemas/TagKey'
- description: The key of the resource tag.
value:
allOf:
- $ref: '#/components/schemas/TagValue'
- description: The value of the resource tag.
description: A description of a resource tag.
TemplateVersionPart:
type: string
pattern: ^(0|([1-9]{1}\d*))$
minLength: 1
maxLength: 20
AccessDeniedException: {}
ThrottlingException: {}
ConflictException: {}
TagKey:
type: string
minLength: 1
maxLength: 128
Arn:
type: string
pattern: ^arn:(aws|aws-cn|aws-us-gov):[a-zA-Z0-9-]+:[a-zA-Z0-9-]*:\d{12}:([\w+=,.@-]+[/:])*[\w+=,.@-]+$
minLength: 1
maxLength: 200
Timestamp:
type: string
format: date-time
TagList:
type: array
items:
$ref: '#/components/schemas/Tag'
minItems: 0
maxItems: 50
EnvironmentArn:
type: string
RepositoryArn:
type: string
RepositoryBranch:
type: object
required:
- arn
- branch
- name
- provider
properties:
arn:
allOf:
- $ref: '#/components/schemas/RepositoryArn'
- description: The Amazon Resource Name (ARN) of the linked repository.
branch:
allOf:
- $ref: '#/components/schemas/GitBranchName'
- description: The repository branch.
name:
allOf:
- $ref: '#/components/schemas/RepositoryName'
- description: The repository name.
provider:
allOf:
- $ref: '#/components/schemas/RepositoryProvider'
- description: The repository provider.
description: Detail data for a linked repository branch.
ServiceQuotaExceededException: {}
SpecContents:
type: string
minLength: 1
maxLength: 51200
format: password
EnvironmentAccountConnectionId:
type: string
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
RepositoryBranchInput:
type: object
required:
- branch
- name
- provider
properties:
branch:
allOf:
- $ref: '#/components/schemas/GitBranchName'
- description: The repository branch.
name:
allOf:
- $ref: '#/components/schemas/RepositoryName'
- description: The repository name.
provider:
allOf:
- $ref: '#/components/schemas/RepositoryProvider'
- description: The repository provider.
description: Detail input data for a linked repository branch.
CreateEnvironmentInput:
type: object
required:
- name
- spec
- templateMajorVersion
- templateName
title: CreateEnvironmentInput
properties:
codebuildRoleArn:
allOf:
- $ref: '#/components/schemas/RoleArn'
- description: <p>The Amazon Resource Name (ARN) of the IAM service role that allows Proton to provision infrastructure using CodeBuild-based provisioning on your behalf.</p> <p>To use CodeBuild-based provisioning for the environment or for any service instance running in the environment, specify either the <code>environmentAccountConnectionId</code> or <code>codebuildRoleArn</code> parameter.</p>
componentRoleArn:
allOf:
- $ref: '#/components/schemas/RoleArn'
- description: <p>The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in this environment. It determines the scope of infrastructure that a component can provision.</p> <p>You must specify <code>componentRoleArn</code> to allow directly defined components to be associated with this environment.</p> <p>For more information about components, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-components.html">Proton components</a> in the <i>Proton User Guide</i>.</p>
description:
allOf:
- $ref: '#/components/schemas/Description'
- description: A description of the environment that's being created and deployed.
environmentAccountConnectionId:
allOf:
- $ref: '#/components/schemas/EnvironmentAccountConnectionId'
- description: <p>The ID of the environment account connection that you provide if you're provisioning your environment infrastructure resources to an environment account. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-env-account-connections.html">Environment account connections</a> in the <i>Proton User guide</i>.</p> <p>To use Amazon Web Services-managed provisioning for the environment, specify either the <code>environmentAccountConnectionId</code> or <code>protonServiceRoleArn</code> parameter and omit the <code>provisioningRepository</code> parameter.</p>
name:
allOf:
- $ref: '#/components/schemas/ResourceName'
- description: The name of the environment.
protonServiceRoleArn:
allOf:
- $ref: '#/components/schemas/Arn'
- description: <p>The Amazon Resource Name (ARN) of the Proton service role that allows Proton to make calls to other services on your behalf.</p> <p>To use Amazon Web Services-managed provisioning for the environment, specify either the <code>environmentAccountConnectionId</code> or <code>protonServiceRoleArn</code> parameter and omit the <code>provisioningRepository</code> parameter.</p>
provisioningRepository:
allOf:
- $ref: '#/components/schemas/RepositoryBranchInput'
- description: <p>The linked repository that you use to host your rendered infrastructure templates for self-managed provisioning. A linked repository is a repository that has been registered with Proton. For more information, see <a>CreateRepository</a>.</p> <p>To use self-managed provisioning for the environment, specify this parameter and omit the <code>environmentAccountConnectionId</code> and <code>protonServiceRoleArn</code> parameters.</p>
spec:
allOf:
- $ref: '#/components/schemas/SpecContents'
- description: A YAML formatted string that provides inputs as defined in the environment template bundle schema file. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-environments.html">Environments</a> in the <i>Proton User Guide</i>.
tags:
allOf:
- $ref: '#/components/schemas/TagList'
- description: <p>An optional list of metadata items that you can associate with the Proton environment. A tag is a key-value pair.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">Proton resources and tagging</a> in the <i>Proton User Guide</i>.</p>
templateMajorVersion:
allOf:
- $ref: '#/components/schemas/TemplateVersionPart'
- description: The major version of the environment template.
templateMinorVersion:
allOf:
- $ref: '#/components/schemas/TemplateVersionPart'
- description: The minor version of the environment template.
templateName:
allOf:
- $ref: '#/components/schemas/ResourceName'
- description: The name of the environment template. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-templates.html">Environment Templates</a> in the <i>Proton User Guide</i>.
InternalServerException: {}
AwsAccountId:
type: string
pattern: ^\d{12}$
RepositoryProvider:
type: string
enum:
- GITHUB
- GITHUB_ENTERPRISE
- BITBUCKET
DeploymentStatus:
type: string
enum:
- IN_PROGRESS
- FAILED
- SUCCEEDED
- DELETE_IN_PROGRESS
- DELETE_FAILED
- DELETE_COMPLETE
- CANCELLING
- CANCELLED
Description:
type: string
minLength: 0
maxLength: 500
format: password
ResourceNotFoundException: {}
RepositoryName:
type: string
pattern: '[A-Za-z0-9_.-].*/[A-Za-z0-9_.-].*'
minLength: 1
maxLength: 100
CreateEnvironmentOutput:
type: object
required:
- environment
properties:
environment:
allOf:
- $ref: '#/components/schemas/Environment'
- description: The environment detail data that's returned by Proton.
ValidationException: {}
GitBranchName:
type: string
minLength: 1
maxLength: 200
Provisioning:
type: string
enum:
- CUSTOMER_MANAGED
TagValue:
type: string
minLength: 0
maxLength: 256
parameters:
X-Amz-Signature:
name: X-Amz-Signature
in: header
schema:
type: string
required: false
X-Amz-Content-Sha256:
name: X-Amz-Content-Sha256
in: header
schema:
type: string
required: false
X-Amz-Algorithm:
name: X-Amz-Algorithm
in: header
schema:
type: string
required: false
X-Amz-Security-Token:
name: X-Amz-Security-Token
in: header
schema:
type: string
required: false
X-Amz-SignedHeaders:
name: X-Amz-SignedHeaders
in: header
schema:
type: string
required: false
X-Amz-Credential:
name: X-Amz-Credential
in: header
schema:
type: string
required: false
X-Amz-Date:
name: X-Amz-Date
in: header
schema:
type: string
required: false
securitySchemes:
hmac:
type: apiKey
name: Authorization
in: header
description: Amazon Signature authorization v4
x-amazon-apigateway-authtype: awsSigv4
externalDocs:
description: Amazon Web Services documentation
url: https://docs.aws.amazon.com/proton/
x-hasEquivalentPaths: true