/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ /** *
* 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: *
** CreateEnvironmentTemplateVersion *
** CreateServiceTemplateVersion *
** CreateEnvironmentAccountConnection *
** 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: *
** CreateEnvironmentTemplate *
** CreateServiceTemplate *
** CreateEnvironment *
** CreateService *
** 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: *
** DeleteEnvironmentTemplate *
** DeleteEnvironmentTemplateVersion *
** DeleteServiceTemplate *
** DeleteServiceTemplateVersion *
** DeleteEnvironmentAccountConnection *
** 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: *
** DeleteEnvironment *
** DeleteService *
*