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.UpdateEnvironment API' description:

This is the Proton Service API Reference. It provides descriptions, syntax and usage examples for each of the actions and data types for the Proton service.

The documentation for each action shows the Query API request parameters and the XML response.

Alternatively, you can use the Amazon Web Services CLI to access an API. For more information, see the Amazon Web Services Command Line Interface User Guide.

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.

Because administrators define the infrastructure and tooling that Proton deploys and manages, they need permissions to use all of the listed API operations.

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 create, list, update and delete API operations and the service instance list and update API operations.

To learn more about Proton, see the Proton User Guide.

Ensuring Idempotency

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.

Idempotency 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.

The following lists of APIs are grouped according to methods that ensure idempotency.

Idempotent create APIs with a client token

The API actions in this list support idempotency with the use of a client token. 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 don't 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.

Given a request action that has succeeded:

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.

If you retry the request using the same client token, but one or more of the parameters are different, the retry throws a ValidationException with an IdempotentParameterMismatch error.

Client tokens expire eight hours after a request is made. If you retry the request with the expired token, a new resource is created.

If the original resource is deleted and you retry the request, a new resource is created.

Idempotent create APIs with a client token:

Idempotent create APIs

Given a request action that has succeeded:

If you retry the request with an API from this group, and the original resource hasn't been modified, the retry succeeds without performing any further actions other than returning the original resource detail data in the response.

If the original resource has been modified, the retry throws a ConflictException.

If you retry with different input parameters, the retry throws a ValidationException with an IdempotentParameterMismatch error.

Idempotent create APIs:

Idempotent delete APIs

Given a request action that has succeeded:

When you retry the request with an API from this group and the resource was deleted, its metadata is returned in the response.

If you retry and the resource doesn't exist, the response is empty.

In both cases, the retry succeeds.

Idempotent delete APIs:

Asynchronous idempotent delete APIs

Given a request action that has succeeded:

If you retry the request with an API from this group, if the original request delete operation status is DELETE_IN_PROGRESS, the retry returns the resource detail data in the response without performing any further actions.

If the original request delete operation is complete, a retry returns an empty response.

Asynchronous idempotent delete APIs:

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.UpdateEnvironment' paths: /#X-Amz-Target=AwsProton20200720.UpdateEnvironment: 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: UpdateEnvironment description:

Update an environment.

If the environment is associated with an environment account connection, don't update or include the protonServiceRoleArn and provisioningRepository parameter to update or connect to an environment account connection.

You can only update to a new environment account connection if that connection was created in the same environment account that the current environment account connection was created in. The account connection must also be associated with the current environment.

If the environment isn't associated with an environment account connection, don't update or include the environmentAccountConnectionId parameter. You can't update or connect the environment to an environment account connection if it isn't already associated with an environment connection.

You can update either the environmentAccountConnectionId or protonServiceRoleArn parameter and value. You can’t update both.

If the environment was configured for Amazon Web Services-managed provisioning, omit the provisioningRepository parameter.

If the environment was configured for self-managed provisioning, specify the provisioningRepository parameter and omit the protonServiceRoleArn and environmentAccountConnectionId parameters.

For more information, see Environments and Provisioning methods in the Proton User Guide.

There are four modes for updating an environment. The deploymentType field defines the mode.

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the environment is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include minor or major version parameters when you use this deployment-type.

MINOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that's higher than the major version in use and a minor version.

responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/UpdateEnvironmentOutput' '480': description: ValidationException content: application/json: schema: $ref: '#/components/schemas/ValidationException' '481': description: AccessDeniedException content: application/json: schema: $ref: '#/components/schemas/AccessDeniedException' '482': description: ThrottlingException content: application/json: schema: $ref: '#/components/schemas/ThrottlingException' '483': description: ConflictException content: application/json: schema: $ref: '#/components/schemas/ConflictException' '484': description: ResourceNotFoundException content: application/json: schema: $ref: '#/components/schemas/ResourceNotFoundException' '485': description: InternalServerException content: application/json: schema: $ref: '#/components/schemas/InternalServerException' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateEnvironmentInput' parameters: - name: X-Amz-Target in: header required: true schema: type: string enum: - AwsProton20200720.UpdateEnvironment summary: Amazon Proton Update Environment x-microcks-operation: delay: 0 dispatcher: FALLBACK tags: - '#X Amz Target=AwsProton20200720.UpdateEnvironment' 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:

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.

The environment must have a componentRoleArn to allow directly defined components to be associated with the environment.

For more information about components, see Proton components in the Proton User Guide.

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 CreateRepository. 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 AccessDeniedException: {} TemplateVersionPart: type: string pattern: ^(0|([1-9]{1}\d*))$ minLength: 1 maxLength: 20 ThrottlingException: {} ConflictException: {} 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 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. 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. InternalServerException: {} DeploymentUpdateType: type: string enum: - NONE - CURRENT_VERSION - MINOR_VERSION - MAJOR_VERSION 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 UpdateEnvironmentInput: type: object required: - deploymentType - name title: UpdateEnvironmentInput properties: 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:

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.

The environment must have a componentRoleArn to allow directly defined components to be associated with the environment.

For more information about components, see Proton components in the Proton User Guide.

deploymentType: allOf: - $ref: '#/components/schemas/DeploymentUpdateType' - description:

There are four modes for updating an environment. The deploymentType field defines the mode.

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the environment is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include major or minor version parameters when you use this deployment-type.

MINOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that is higher than the major version in use and a minor version (optional).

description: allOf: - $ref: '#/components/schemas/Description' - description: A description of the environment update. environmentAccountConnectionId: allOf: - $ref: '#/components/schemas/EnvironmentAccountConnectionId' - description:

The ID of the environment account connection.

You can only update to a new environment account connection if it was created in the same environment account that the current environment account connection was created in and is associated with the current environment.

name: allOf: - $ref: '#/components/schemas/ResourceName' - description: The name of the environment to update. protonServiceRoleArn: allOf: - $ref: '#/components/schemas/Arn' - description: The Amazon Resource Name (ARN) of the Proton service role that allows Proton to make API calls to other services your behalf. provisioningRepository: allOf: - $ref: '#/components/schemas/RepositoryBranchInput' - 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 CreateRepository. spec: allOf: - $ref: '#/components/schemas/SpecContents' - description: The formatted specification that defines the update. templateMajorVersion: allOf: - $ref: '#/components/schemas/TemplateVersionPart' - description: The major version of the environment to update. templateMinorVersion: allOf: - $ref: '#/components/schemas/TemplateVersionPart' - description: The minor version of the environment to update. ValidationException: {} GitBranchName: type: string minLength: 1 maxLength: 200 Provisioning: type: string enum: - CUSTOMER_MANAGED UpdateEnvironmentOutput: type: object required: - environment properties: environment: allOf: - $ref: '#/components/schemas/Environment' - description: The environment detail data that's returned by Proton. 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