diff --git a/CHANGELOG.md b/CHANGELOG.md index 96fbce6687b..1a3c9df4530 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +Release v1.55.3 (2024-07-25) +=== + +### Service Client Updates +* `service/application-autoscaling`: Updates service API +* `service/application-signals`: Updates service API and documentation +* `service/bedrock-runtime`: Updates service API and documentation +* `service/codecommit`: Updates service API and documentation + * CreateRepository API now throws OperationNotAllowedException when the account has been restricted from creating a repository. +* `service/datazone`: Updates service API and documentation +* `service/ec2`: Updates service API and documentation + * EC2 Fleet now supports using custom identifiers to reference Amazon Machine Images (AMI) in launch requests that are configured to choose from a diversified list of instance types. +* `service/ecr`: Updates service API, documentation, paginators, and examples + * API and documentation updates for Amazon ECR, adding support for creating, updating, describing and deleting ECR Repository Creation Template. +* `service/eks`: Updates service API and documentation +* `service/elasticloadbalancingv2`: Updates service API, documentation, and examples +* `service/network-firewall`: Updates service API and documentation +* `service/outposts`: Updates service API and documentation +* `service/states`: Updates service API and documentation + * This release adds support to customer managed KMS key encryption in AWS Step Functions. + +### SDK Bugs +* Remove broken integration test. + * Remove integration test broken by cloudsearch service. + Release v1.55.2 (2024-07-24) === diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index 928ae6649f7..8a1927a39ca 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -3,5 +3,3 @@ ### SDK Enhancements ### SDK Bugs -* Remove broken integration test. - * Remove integration test broken by cloudsearch service. diff --git a/aws/version.go b/aws/version.go index e09a67adc2a..514bf3ade22 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.55.2" +const SDKVersion = "1.55.3" diff --git a/models/apis/application-autoscaling/2016-02-06/api-2.json b/models/apis/application-autoscaling/2016-02-06/api-2.json index d5658134a7f..169f48bad49 100644 --- a/models/apis/application-autoscaling/2016-02-06/api-2.json +++ b/models/apis/application-autoscaling/2016-02-06/api-2.json @@ -514,7 +514,9 @@ "SageMakerVariantProvisionedConcurrencyUtilization", "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage", "SageMakerInferenceComponentInvocationsPerCopy", - "WorkSpacesAverageUserSessionsCapacityUtilization" + "WorkSpacesAverageUserSessionsCapacityUtilization", + "SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution", + "SageMakerVariantConcurrentRequestsPerModelHighResolution" ] }, "MetricUnit":{"type":"string"}, diff --git a/models/apis/application-signals/2024-04-15/api-2.json b/models/apis/application-signals/2024-04-15/api-2.json index e51736bb5c1..25aed074569 100644 --- a/models/apis/application-signals/2024-04-15/api-2.json +++ b/models/apis/application-signals/2024-04-15/api-2.json @@ -2,6 +2,7 @@ "version":"2.0", "metadata":{ "apiVersion":"2024-04-15", + "auth":["aws.auth#sigv4"], "endpointPrefix":"application-signals", "protocol":"rest-json", "protocols":["rest-json"], @@ -457,7 +458,8 @@ "members":{ "Service":{"shape":"Service"}, "StartTime":{"shape":"Timestamp"}, - "EndTime":{"shape":"Timestamp"} + "EndTime":{"shape":"Timestamp"}, + "LogGroupReferences":{"shape":"LogGroupReferences"} } }, "Goal":{ @@ -739,6 +741,10 @@ "Tags":{"shape":"TagList"} } }, + "LogGroupReferences":{ + "type":"list", + "member":{"shape":"Attributes"} + }, "Metric":{ "type":"structure", "members":{ @@ -888,7 +894,8 @@ "members":{ "KeyAttributes":{"shape":"Attributes"}, "AttributeMaps":{"shape":"AttributeMaps"}, - "MetricReferences":{"shape":"MetricReferences"} + "MetricReferences":{"shape":"MetricReferences"}, + "LogGroupReferences":{"shape":"LogGroupReferences"} } }, "ServiceDependencies":{ diff --git a/models/apis/application-signals/2024-04-15/docs-2.json b/models/apis/application-signals/2024-04-15/docs-2.json index 40de546787b..28ebe0a04ec 100644 --- a/models/apis/application-signals/2024-04-15/docs-2.json +++ b/models/apis/application-signals/2024-04-15/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "

This is a Preview release of the Application Signals API Reference. Operations and parameters are subject to change before the general availability release.

Use CloudWatch Application Signals for comprehensive observability of your cloud-based applications. It enables real-time service health dashboards and helps you track long-term performance trends against your business goals. The application-centric view provides you with unified visibility across your applications, services, and dependencies, so you can proactively monitor and efficiently triage any issues that may arise, ensuring optimal customer experience.

Application Signals provides the following benefits:

", + "service": "

Use CloudWatch Application Signals for comprehensive observability of your cloud-based applications. It enables real-time service health dashboards and helps you track long-term performance trends against your business goals. The application-centric view provides you with unified visibility across your applications, services, and dependencies, so you can proactively monitor and efficiently triage any issues that may arise, ensuring optimal customer experience.

Application Signals provides the following benefits:

Application Signals works with CloudWatch RUM, CloudWatch Synthetics canaries, and Amazon Web Services Service Catalog AppRegistry, to display your client pages, Synthetics canaries, and application names within dashboards and maps.

", "operations": { "BatchGetServiceLevelObjectiveBudgetReport": "

Use this operation to retrieve one or more service level objective (SLO) budget reports.

An error budget is the amount of time in unhealthy periods that your service can accumulate during an interval before your overall SLO budget health is breached and the SLO is considered to be unmet. For example, an SLO with a threshold of 99.95% and a monthly interval translates to an error budget of 21.9 minutes of downtime in a 30-day month.

Budget reports include a health indicator, the attainment value, and remaining budget.

For more information about SLO error budgets, see SLO concepts.

", "CreateServiceLevelObjective": "

Creates a service level objective (SLO), which can help you ensure that your critical business operations are meeting customer expectations. Use SLOs to set and track specific target levels for the reliability and availability of your applications and services. SLOs use service level indicators (SLIs) to calculate whether the application is performing at the level that you want.

Create an SLO to set a target for a service or operation’s availability or latency. CloudWatch measures this target frequently you can find whether it has been breached.

When you create an SLO, you set an attainment goal for it. An attainment goal is the ratio of good periods that meet the threshold requirements to the total periods within the interval. For example, an attainment goal of 99.9% means that within your interval, you are targeting 99.9% of the periods to be in healthy state.

After you have created an SLO, you can retrieve error budget reports for it. An error budget is the number of periods or amount of time that your service can accumulate during an interval before your overall SLO budget health is breached and the SLO is considered to be unmet. for example, an SLO with a threshold that 99.95% of requests must be completed under 2000ms every month translates to an error budget of 21.9 minutes of downtime per month.

When you call this operation, Application Signals creates the AWSServiceRoleForCloudWatchApplicationSignals service-linked role, if it doesn't already exist in your account. This service- linked role has the following permissions:

You can easily set SLO targets for your applications that are discovered by Application Signals, using critical metrics such as latency and availability. You can also set SLOs against any CloudWatch metric or math expression that produces a time series.

For more information about SLOs, see Service level objectives (SLOs).

", @@ -71,6 +71,7 @@ "ListServiceDependentsInput$KeyAttributes": "

Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes.

This is a string-to-string map. It can include the following fields.

", "ListServiceLevelObjectivesInput$KeyAttributes": "

You can use this optional field to specify which services you want to retrieve SLO information for.

This is a string-to-string map. It can include the following fields.

", "ListServiceOperationsInput$KeyAttributes": "

Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes.

This is a string-to-string map. It can include the following fields.

", + "LogGroupReferences$member": null, "Service$KeyAttributes": "

This is a string-to-string map. It can include the following fields.

", "ServiceDependency$DependencyKeyAttributes": "

This is a string-to-string map. It can include the following fields.

", "ServiceDependent$DependentKeyAttributes": "

This is a string-to-string map. It can include the following fields.

", @@ -308,6 +309,13 @@ "refs": { } }, + "LogGroupReferences": { + "base": null, + "refs": { + "GetServiceOutput$LogGroupReferences": "

An array of string-to-string maps that each contain information about one log group associated with this service. Each string-to-string map includes the following fields:

", + "Service$LogGroupReferences": "

An array of string-to-string maps that each contain information about one log group associated with this service. Each string-to-string map includes the following fields:

" + } + }, "Metric": { "base": "

This structure defines the metric used for a service level indicator, including the metric name, namespace, and dimensions

", "refs": { @@ -426,7 +434,7 @@ "ResourceId": { "base": null, "refs": { - "ResourceNotFoundException$ResourceId": "

Cannot find the resource id.

" + "ResourceNotFoundException$ResourceId": "

Can't find the resource id.

" } }, "ResourceNotFoundException": { @@ -772,26 +780,26 @@ "BatchGetServiceLevelObjectiveBudgetReportInput$Timestamp": "

The date and time that you want the report to be for. It is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", "BatchGetServiceLevelObjectiveBudgetReportOutput$Timestamp": "

The date and time that the report is for. It is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

", "CalendarInterval$StartTime": "

The date and time when you want the first interval to start. Be sure to choose a time that configures the intervals the way that you want. For example, if you want weekly intervals starting on Mondays at 6 a.m., be sure to specify a start time that is a Monday at 6 a.m.

When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

As soon as one calendar interval ends, another automatically begins.

", - "GetServiceInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "GetServiceInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "GetServiceOutput$StartTime": "

The start time of the data included in the response. In a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057.

", - "GetServiceOutput$EndTime": "

The end time of the data included in the response. In a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057.

", - "ListServiceDependenciesInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceDependenciesInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceDependenciesOutput$StartTime": "

The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceDependenciesOutput$EndTime": "

The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceDependentsInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceDependentsInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceDependentsOutput$StartTime": "

The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceDependentsOutput$EndTime": "

The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceOperationsInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceOperationsInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceOperationsOutput$StartTime": "

The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServiceOperationsOutput$EndTime": "

The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServicesInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServicesInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServicesOutput$StartTime": "

The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", - "ListServicesOutput$EndTime": "

The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

", + "GetServiceInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested start time will be rounded to the nearest hour.

", + "GetServiceInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested start time will be rounded to the nearest hour.

", + "GetServiceOutput$StartTime": "

The start time of the data included in the response. In a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057.

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", + "GetServiceOutput$EndTime": "

The end time of the data included in the response. In a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057.

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", + "ListServiceDependenciesInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested start time will be rounded to the nearest hour.

", + "ListServiceDependenciesInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested end time will be rounded to the nearest hour.

", + "ListServiceDependenciesOutput$StartTime": "

The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", + "ListServiceDependenciesOutput$EndTime": "

The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", + "ListServiceDependentsInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested start time will be rounded to the nearest hour.

", + "ListServiceDependentsInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested start time will be rounded to the nearest hour.

", + "ListServiceDependentsOutput$StartTime": "

The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", + "ListServiceDependentsOutput$EndTime": "

The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", + "ListServiceOperationsInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested start time will be rounded to the nearest hour.

", + "ListServiceOperationsInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested end time will be rounded to the nearest hour.

", + "ListServiceOperationsOutput$StartTime": "

The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", + "ListServiceOperationsOutput$EndTime": "

The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", + "ListServicesInput$StartTime": "

The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested start time will be rounded to the nearest hour.

", + "ListServicesInput$EndTime": "

The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

Your requested start time will be rounded to the nearest hour.

", + "ListServicesOutput$StartTime": "

The start of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", + "ListServicesOutput$EndTime": "

The end of the time period that the returned information applies to. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057

This displays the time that Application Signals used for the request. It might not match your request exactly, because it was rounded to the nearest hour.

", "ServiceLevelObjective$CreatedTime": "

The date and time that this SLO was created. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.

", "ServiceLevelObjective$LastUpdatedTime": "

The time that this SLO was most recently updated. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.

", "ServiceLevelObjectiveSummary$CreatedTime": "

The date and time that this service level objective was created. It is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC.

" diff --git a/models/apis/bedrock-runtime/2023-09-30/api-2.json b/models/apis/bedrock-runtime/2023-09-30/api-2.json index e1ccc1db5a0..5629225035b 100644 --- a/models/apis/bedrock-runtime/2023-09-30/api-2.json +++ b/models/apis/bedrock-runtime/2023-09-30/api-2.json @@ -1,9 +1,14 @@ { "metadata": { "apiVersion": "2023-09-30", + "auth": [ + "aws.auth#sigv4" + ], "endpointPrefix": "bedrock-runtime", - "jsonVersion": "1.1", "protocol": "rest-json", + "protocols": [ + "rest-json" + ], "serviceFullName": "Amazon Bedrock Runtime", "serviceId": "Bedrock Runtime", "signatureVersion": "v4", @@ -62,6 +67,9 @@ { "shape": "InternalServerException" }, + { + "shape": "ServiceUnavailableException" + }, { "shape": "ValidationException" }, @@ -102,6 +110,9 @@ { "shape": "InternalServerException" }, + { + "shape": "ServiceUnavailableException" + }, { "shape": "ValidationException" }, @@ -142,6 +153,9 @@ { "shape": "InternalServerException" }, + { + "shape": "ServiceUnavailableException" + }, { "shape": "ValidationException" }, @@ -185,6 +199,9 @@ { "shape": "InternalServerException" }, + { + "shape": "ServiceUnavailableException" + }, { "shape": "ModelStreamErrorException" }, @@ -546,6 +563,9 @@ "modelStreamErrorException": { "shape": "ModelStreamErrorException" }, + "serviceUnavailableException": { + "shape": "ServiceUnavailableException" + }, "throttlingException": { "shape": "ThrottlingException" }, @@ -1717,6 +1737,9 @@ "modelTimeoutException": { "shape": "ModelTimeoutException" }, + "serviceUnavailableException": { + "shape": "ServiceUnavailableException" + }, "throttlingException": { "shape": "ThrottlingException" }, @@ -1739,6 +1762,19 @@ }, "type": "structure" }, + "ServiceUnavailableException": { + "error": { + "httpStatusCode": 503 + }, + "exception": true, + "fault": true, + "members": { + "message": { + "shape": "NonBlankString" + } + }, + "type": "structure" + }, "SpecificToolChoice": { "members": { "name": { diff --git a/models/apis/bedrock-runtime/2023-09-30/docs-2.json b/models/apis/bedrock-runtime/2023-09-30/docs-2.json index e4b04391bc2..902d547662e 100644 --- a/models/apis/bedrock-runtime/2023-09-30/docs-2.json +++ b/models/apis/bedrock-runtime/2023-09-30/docs-2.json @@ -3,10 +3,10 @@ "service": "

Describes the API operations for running inference using Amazon Bedrock models.

", "operations": { "ApplyGuardrail": "

The action to apply a guardrail.

", - "Converse": "

Sends messages to the specified Amazon Bedrock model. Converse provides a consistent interface that works with all models that support messages. This allows you to write code once and use it with different models. Should a model have unique inference parameters, you can also pass those unique parameters to the model.

For information about the Converse API, see Use the Converse API in the Amazon Bedrock User Guide. To use a guardrail, see Use a guardrail with the Converse API in the Amazon Bedrock User Guide. To use a tool with a model, see Tool use (Function calling) in the Amazon Bedrock User Guide

For example code, see Converse API examples in the Amazon Bedrock User Guide.

This operation requires permission for the bedrock:InvokeModel action.

", - "ConverseStream": "

Sends messages to the specified Amazon Bedrock model and returns the response in a stream. ConverseStream provides a consistent API that works with all Amazon Bedrock models that support messages. This allows you to write code once and use it with different models. Should a model have unique inference parameters, you can also pass those unique parameters to the model.

To find out if a model supports streaming, call GetFoundationModel and check the responseStreamingSupported field in the response.

For information about the Converse API, see Use the Converse API in the Amazon Bedrock User Guide. To use a guardrail, see Use a guardrail with the Converse API in the Amazon Bedrock User Guide. To use a tool with a model, see Tool use (Function calling) in the Amazon Bedrock User Guide

For example code, see Conversation streaming example in the Amazon Bedrock User Guide.

This operation requires permission for the bedrock:InvokeModelWithResponseStream action.

", + "Converse": "

Sends messages to the specified Amazon Bedrock model. Converse provides a consistent interface that works with all models that support messages. This allows you to write code once and use it with different models. If a model has unique inference parameters, you can also pass those unique parameters to the model.

Amazon Bedrock doesn't store any text, images, or documents that you provide as content. The data is only used to generate the response.

For information about the Converse API, see Use the Converse API in the Amazon Bedrock User Guide. To use a guardrail, see Use a guardrail with the Converse API in the Amazon Bedrock User Guide. To use a tool with a model, see Tool use (Function calling) in the Amazon Bedrock User Guide

For example code, see Converse API examples in the Amazon Bedrock User Guide.

This operation requires permission for the bedrock:InvokeModel action.

", + "ConverseStream": "

Sends messages to the specified Amazon Bedrock model and returns the response in a stream. ConverseStream provides a consistent API that works with all Amazon Bedrock models that support messages. This allows you to write code once and use it with different models. Should a model have unique inference parameters, you can also pass those unique parameters to the model.

To find out if a model supports streaming, call GetFoundationModel and check the responseStreamingSupported field in the response.

The CLI doesn't support streaming operations in Amazon Bedrock, including ConverseStream.

Amazon Bedrock doesn't store any text, images, or documents that you provide as content. The data is only used to generate the response.

For information about the Converse API, see Use the Converse API in the Amazon Bedrock User Guide. To use a guardrail, see Use a guardrail with the Converse API in the Amazon Bedrock User Guide. To use a tool with a model, see Tool use (Function calling) in the Amazon Bedrock User Guide

For example code, see Conversation streaming example in the Amazon Bedrock User Guide.

This operation requires permission for the bedrock:InvokeModelWithResponseStream action.

", "InvokeModel": "

Invokes the specified Amazon Bedrock model to run inference using the prompt and inference parameters provided in the request body. You use model inference to generate text, images, and embeddings.

For example code, see Invoke model code examples in the Amazon Bedrock User Guide.

This operation requires permission for the bedrock:InvokeModel action.

", - "InvokeModelWithResponseStream": "

Invoke the specified Amazon Bedrock model to run inference using the prompt and inference parameters provided in the request body. The response is returned in a stream.

To see if a model supports streaming, call GetFoundationModel and check the responseStreamingSupported field in the response.

The CLI doesn't support InvokeModelWithResponseStream.

For example code, see Invoke model with streaming code example in the Amazon Bedrock User Guide.

This operation requires permissions to perform the bedrock:InvokeModelWithResponseStream action.

" + "InvokeModelWithResponseStream": "

Invoke the specified Amazon Bedrock model to run inference using the prompt and inference parameters provided in the request body. The response is returned in a stream.

To see if a model supports streaming, call GetFoundationModel and check the responseStreamingSupported field in the response.

The CLI doesn't support streaming operations in Amazon Bedrock, including InvokeModelWithResponseStream.

For example code, see Invoke model with streaming code example in the Amazon Bedrock User Guide.

This operation requires permissions to perform the bedrock:InvokeModelWithResponseStream action.

" }, "shapes": { "AccessDeniedException": { @@ -805,6 +805,7 @@ "ModelTimeoutException$message": null, "ResourceNotFoundException$message": null, "ServiceQuotaExceededException$message": null, + "ServiceUnavailableException$message": null, "ThrottlingException$message": null, "ValidationException$message": null } @@ -849,10 +850,17 @@ } }, "ServiceQuotaExceededException": { - "base": "

The number of requests exceeds the service quota. Resubmit your request later.

", + "base": "

Your request exceeds the service quota for your account. You can view your quotas at Viewing service quotas. You can resubmit your request later.

", "refs": { } }, + "ServiceUnavailableException": { + "base": "

The service isn't currently available. Try again later.

", + "refs": { + "ConverseStreamOutput$serviceUnavailableException": "

The service isn't currently available. Try again later.

", + "ResponseStream$serviceUnavailableException": null + } + }, "SpecificToolChoice": { "base": "

The model must request a specific tool. For example, {\"tool\" : {\"name\" : \"Your tool name\"}}.

This field is only supported by Anthropic Claude 3 models.

", "refs": { @@ -907,10 +915,10 @@ } }, "ThrottlingException": { - "base": "

The number of requests exceeds the limit. Resubmit your request later.

", + "base": "

Your request was throttled because of service-wide limitations. Resubmit your request later or in a different region. You can also purchase Provisioned Throughput to increase the rate or number of tokens you can process.

", "refs": { "ConverseStreamOutput$throttlingException": "

The number of requests exceeds the limit. Resubmit your request later.

", - "ResponseStream$throttlingException": "

The number or frequency of requests exceeds the limit. Resubmit your request later.

" + "ResponseStream$throttlingException": "

Your request was throttled because of service-wide limitations. Resubmit your request later or in a different region. You can also purchase Provisioned Throughput to increase the rate or number of tokens you can process.

" } }, "TokenUsage": { diff --git a/models/apis/codecommit/2015-04-13/api-2.json b/models/apis/codecommit/2015-04-13/api-2.json index 8d74930d694..022a529a400 100644 --- a/models/apis/codecommit/2015-04-13/api-2.json +++ b/models/apis/codecommit/2015-04-13/api-2.json @@ -5,12 +5,14 @@ "endpointPrefix":"codecommit", "jsonVersion":"1.1", "protocol":"json", + "protocols":["json"], "serviceAbbreviation":"CodeCommit", "serviceFullName":"AWS CodeCommit", "serviceId":"CodeCommit", "signatureVersion":"v4", "targetPrefix":"CodeCommit_20150413", - "uid":"codecommit-2015-04-13" + "uid":"codecommit-2015-04-13", + "auth":["aws.auth#sigv4"] }, "operations":{ "AssociateApprovalRuleTemplateWithRepository":{ @@ -316,6 +318,7 @@ {"shape":"InvalidRepositoryNameException"}, {"shape":"InvalidRepositoryDescriptionException"}, {"shape":"RepositoryLimitExceededException"}, + {"shape":"OperationNotAllowedException"}, {"shape":"EncryptionIntegrityChecksFailedException"}, {"shape":"EncryptionKeyAccessDeniedException"}, {"shape":"EncryptionKeyDisabledException"}, @@ -4531,6 +4534,12 @@ "base":{"shape":"ObjectTypeEnum"} } }, + "OperationNotAllowedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "OrderEnum":{ "type":"string", "enum":[ diff --git a/models/apis/codecommit/2015-04-13/docs-2.json b/models/apis/codecommit/2015-04-13/docs-2.json index 90fa6600b68..10b9ebe528c 100644 --- a/models/apis/codecommit/2015-04-13/docs-2.json +++ b/models/apis/codecommit/2015-04-13/docs-2.json @@ -1925,9 +1925,9 @@ "KmsKeyId": { "base": null, "refs": { - "CreateRepositoryInput$kmsKeyId": "

The ID of the encryption key. You can view the ID of an encryption key in the KMS console, or use the KMS APIs to programmatically retrieve a key ID. For more information about acceptable values for kmsKeyID, see KeyId in the Decrypt API description in the Key Management Service API Reference.

If no key is specified, the default aws/codecommit Amazon Web Services managed key is used.

", + "CreateRepositoryInput$kmsKeyId": "

The ID of the encryption key. You can view the ID of an encryption key in the KMS console, or use the KMS APIs to programmatically retrieve a key ID. For more information about acceptable values for kmsKeyID, see KeyId in the Decrypt API description in the Key Management Service API Reference.

If no key is specified, the default aws/codecommit Amazon Web Services managed key is used.

", "RepositoryMetadata$kmsKeyId": "

The ID of the Key Management Service encryption key used to encrypt and decrypt the repository.

", - "UpdateRepositoryEncryptionKeyInput$kmsKeyId": "

The ID of the encryption key. You can view the ID of an encryption key in the KMS console, or use the KMS APIs to programmatically retrieve a key ID. For more information about acceptable values for keyID, see KeyId in the Decrypt API description in the Key Management Service API Reference.

", + "UpdateRepositoryEncryptionKeyInput$kmsKeyId": "

The ID of the encryption key. You can view the ID of an encryption key in the KMS console, or use the KMS APIs to programmatically retrieve a key ID. For more information about acceptable values for keyID, see KeyId in the Decrypt API description in the Key Management Service API Reference.

", "UpdateRepositoryEncryptionKeyOutput$kmsKeyId": "

The ID of the encryption key.

", "UpdateRepositoryEncryptionKeyOutput$originalKmsKeyId": "

The ID of the encryption key formerly used to encrypt and decrypt the repository.

" } @@ -2429,6 +2429,11 @@ "ConflictMetadata$objectTypes": "

Information about any object type conflicts in a merge operation.

" } }, + "OperationNotAllowedException": { + "base": "

The requested action is not allowed.

", + "refs": { + } + }, "OrderEnum": { "base": null, "refs": { diff --git a/models/apis/datazone/2018-05-10/api-2.json b/models/apis/datazone/2018-05-10/api-2.json index f1f5f74755b..51116abcf2d 100644 --- a/models/apis/datazone/2018-05-10/api-2.json +++ b/models/apis/datazone/2018-05-10/api-2.json @@ -1071,6 +1071,24 @@ {"shape":"UnauthorizedException"} ] }, + "GetEnvironmentCredentials":{ + "name":"GetEnvironmentCredentials", + "http":{ + "method":"GET", + "requestUri":"/v2/domains/{domainIdentifier}/environments/{environmentIdentifier}/credentials", + "responseCode":200 + }, + "input":{"shape":"GetEnvironmentCredentialsInput"}, + "output":{"shape":"GetEnvironmentCredentialsOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"} + ] + }, "GetEnvironmentProfile":{ "name":"GetEnvironmentProfile", "http":{ @@ -5608,6 +5626,35 @@ "userParameters":{"shape":"CustomParameterList"} } }, + "GetEnvironmentCredentialsInput":{ + "type":"structure", + "required":[ + "domainIdentifier", + "environmentIdentifier" + ], + "members":{ + "domainIdentifier":{ + "shape":"DomainId", + "location":"uri", + "locationName":"domainIdentifier" + }, + "environmentIdentifier":{ + "shape":"EnvironmentId", + "location":"uri", + "locationName":"environmentIdentifier" + } + } + }, + "GetEnvironmentCredentialsOutput":{ + "type":"structure", + "members":{ + "accessKeyId":{"shape":"String"}, + "expiration":{"shape":"SyntheticTimestamp_date_time"}, + "secretAccessKey":{"shape":"String"}, + "sessionToken":{"shape":"String"} + }, + "sensitive":true + }, "GetEnvironmentInput":{ "type":"structure", "required":[ diff --git a/models/apis/datazone/2018-05-10/docs-2.json b/models/apis/datazone/2018-05-10/docs-2.json index 68b01944d47..496f003b54d 100644 --- a/models/apis/datazone/2018-05-10/docs-2.json +++ b/models/apis/datazone/2018-05-10/docs-2.json @@ -57,6 +57,7 @@ "GetEnvironmentAction": "

Gets the specified environment action.

", "GetEnvironmentBlueprint": "

Gets an Amazon DataZone blueprint.

", "GetEnvironmentBlueprintConfiguration": "

Gets the blueprint configuration in Amazon DataZone.

", + "GetEnvironmentCredentials": "

Gets the credentials of an environment in Amazon DataZone.

", "GetEnvironmentProfile": "

Gets an evinronment profile in Amazon DataZone.

", "GetFormType": "

Gets a metadata form type in Amazon DataZone.

", "GetGlossary": "

Gets a business glossary in Amazon DataZone.

", @@ -1544,6 +1545,7 @@ "GetEnvironmentBlueprintConfigurationInput$domainIdentifier": "

The ID of the Amazon DataZone domain where this blueprint exists.

", "GetEnvironmentBlueprintConfigurationOutput$domainId": "

The ID of the Amazon DataZone domain where this blueprint exists.

", "GetEnvironmentBlueprintInput$domainIdentifier": "

The identifier of the domain in which this blueprint exists.

", + "GetEnvironmentCredentialsInput$domainIdentifier": "

The ID of the Amazon DataZone domain in which this environment and its credentials exist.

", "GetEnvironmentInput$domainIdentifier": "

The ID of the Amazon DataZone domain where the environment exists.

", "GetEnvironmentOutput$domainId": "

The ID of the Amazon DataZone domain where the environment exists.

", "GetEnvironmentProfileInput$domainIdentifier": "

The ID of the Amazon DataZone domain in which this environment profile exists.

", @@ -1852,6 +1854,7 @@ "GetDataSourceOutput$environmentId": "

The ID of the environment where this data source creates and publishes assets,

", "GetEnvironmentActionInput$environmentIdentifier": "

The environment ID of the environment action.

", "GetEnvironmentActionOutput$environmentId": "

The environment ID of the environment action.

", + "GetEnvironmentCredentialsInput$environmentIdentifier": "

The ID of the environment whose credentials this operation gets.

", "GetEnvironmentInput$identifier": "

The ID of the Amazon DataZone environment.

", "GetEnvironmentOutput$id": "

The ID of the environment.

", "GetSubscriptionTargetInput$environmentIdentifier": "

The ID of the environment associated with the subscription target.

", @@ -2316,6 +2319,16 @@ "refs": { } }, + "GetEnvironmentCredentialsInput": { + "base": null, + "refs": { + } + }, + "GetEnvironmentCredentialsOutput": { + "base": null, + "refs": { + } + }, "GetEnvironmentInput": { "base": null, "refs": { @@ -4371,6 +4384,9 @@ "GetEnvironmentActionOutput$description": "

The description of the environment action.

", "GetEnvironmentActionOutput$name": "

The name of the environment action.

", "GetEnvironmentBlueprintOutput$provider": "

The provider of this Amazon DataZone blueprint.

", + "GetEnvironmentCredentialsOutput$accessKeyId": "

The access key ID of the environment.

", + "GetEnvironmentCredentialsOutput$secretAccessKey": "

The secret access key of the environment credentials.

", + "GetEnvironmentCredentialsOutput$sessionToken": "

The session token of the environment credentials.

", "GetEnvironmentOutput$createdBy": "

The Amazon DataZone user who created the environment.

", "GetEnvironmentOutput$provider": "

The provider of this Amazon DataZone environment.

", "GetEnvironmentProfileOutput$createdBy": "

The Amazon DataZone user who created this environment profile.

", @@ -4799,6 +4815,7 @@ "GetEnvironmentBlueprintConfigurationOutput$updatedAt": "

The timestamp of when this blueprint was upated.

", "GetEnvironmentBlueprintOutput$createdAt": "

A timestamp of when this blueprint was created.

", "GetEnvironmentBlueprintOutput$updatedAt": "

The timestamp of when this blueprint was updated.

", + "GetEnvironmentCredentialsOutput$expiration": "

The expiration timestamp of the environment credentials.

", "GetEnvironmentOutput$createdAt": "

The timestamp of when the environment was created.

", "GetEnvironmentOutput$updatedAt": "

The timestamp of when this environment was updated.

", "GetEnvironmentProfileOutput$createdAt": "

The timestamp of when this environment profile was created.

", diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index 2b89c1c2fcc..3c7b64aeaab 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -39384,7 +39384,6 @@ "verified-access-trust-provider", "vpn-connection-device-type", "vpc-block-public-access-exclusion", - "vpc-encryption-control", "ipam-resource-discovery", "ipam-resource-discovery-association", "instance-connect-endpoint", diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index 14ac36f431e..dc1a538ac5b 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -11036,13 +11036,13 @@ "EnableImageRequest$ImageId": "

The ID of the AMI.

", "ExportImageRequest$ImageId": "

The ID of the image.

", "FastLaunchImageIdList$member": null, - "FleetLaunchTemplateOverrides$ImageId": "

The ID of the AMI. An AMI is required to launch an instance. This parameter is only available for fleets of type instant. For fleets of type maintain and request, you must specify the AMI ID in the launch template.

", - "FleetLaunchTemplateOverridesRequest$ImageId": "

The ID of the AMI. An AMI is required to launch an instance. This parameter is only available for fleets of type instant. For fleets of type maintain and request, you must specify the AMI ID in the launch template.

", + "FleetLaunchTemplateOverrides$ImageId": "

The ID of the AMI in the format ami-17characters00000.

Alternatively, you can specify a Systems Manager parameter, using one of the following formats. The Systems Manager parameter will resolve to an AMI ID on launch.

To reference a public parameter:

To reference a parameter stored in the same account:

To reference a parameter shared from another Amazon Web Services account:

For more information, see Use a Systems Manager parameter instead of an AMI ID in the Amazon EC2 User Guide.

This parameter is only available for fleets of type instant. For fleets of type maintain and request, you must specify the AMI ID in the launch template.

", + "FleetLaunchTemplateOverridesRequest$ImageId": "

The ID of the AMI in the format ami-17characters00000.

Alternatively, you can specify a Systems Manager parameter, using one of the following formats. The Systems Manager parameter will resolve to an AMI ID on launch.

To reference a public parameter:

To reference a parameter stored in the same account:

To reference a parameter shared from another Amazon Web Services account:

For more information, see Use a Systems Manager parameter instead of an AMI ID in the Amazon EC2 User Guide.

This parameter is only available for fleets of type instant. For fleets of type maintain and request, you must specify the AMI ID in the launch template.

", "ImageIdList$member": null, "ImageIdStringList$member": null, "ModifyImageAttributeRequest$ImageId": "

The ID of the AMI.

", "ReplaceRootVolumeTask$ImageId": "

The ID of the AMI used to create the replacement root volume.

", - "RequestLaunchTemplateData$ImageId": "

The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.

Valid formats:

Currently, EC2 Fleet and Spot Fleet do not support specifying a Systems Manager parameter. If the launch template will be used by an EC2 Fleet or Spot Fleet, you must specify the AMI ID.

For more information, see Use a Systems Manager parameter instead of an AMI ID in the Amazon EC2 User Guide.

", + "RequestLaunchTemplateData$ImageId": "

The ID of the AMI in the format ami-17characters00000.

Alternatively, you can specify a Systems Manager parameter, using one of the following formats. The Systems Manager parameter will resolve to an AMI ID on launch.

To reference a public parameter:

To reference a parameter stored in the same account:

To reference a parameter shared from another Amazon Web Services account:

For more information, see Use a Systems Manager parameter instead of an AMI ID in the Amazon EC2 User Guide.

If the launch template will be used for an EC2 Fleet or Spot Fleet, note the following:

", "RequestSpotLaunchSpecification$ImageId": "

The ID of the AMI.

", "ResetImageAttributeRequest$ImageId": "

The ID of the AMI.

", "RestoreImageFromRecycleBinRequest$ImageId": "

The ID of the AMI to restore.

", diff --git a/models/apis/ecr/2015-09-21/api-2.json b/models/apis/ecr/2015-09-21/api-2.json index 036799e6152..8d1be9de82b 100644 --- a/models/apis/ecr/2015-09-21/api-2.json +++ b/models/apis/ecr/2015-09-21/api-2.json @@ -133,6 +133,22 @@ {"shape":"KmsException"} ] }, + "CreateRepositoryCreationTemplate":{ + "name":"CreateRepositoryCreationTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRepositoryCreationTemplateRequest"}, + "output":{"shape":"CreateRepositoryCreationTemplateResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"}, + {"shape":"TemplateAlreadyExistsException"} + ] + }, "DeleteLifecyclePolicy":{ "name":"DeleteLifecyclePolicy", "http":{ @@ -195,6 +211,21 @@ {"shape":"KmsException"} ] }, + "DeleteRepositoryCreationTemplate":{ + "name":"DeleteRepositoryCreationTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRepositoryCreationTemplateRequest"}, + "output":{"shape":"DeleteRepositoryCreationTemplateResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TemplateNotFoundException"} + ] + }, "DeleteRepositoryPolicy":{ "name":"DeleteRepositoryPolicy", "http":{ @@ -301,6 +332,20 @@ {"shape":"RepositoryNotFoundException"} ] }, + "DescribeRepositoryCreationTemplates":{ + "name":"DescribeRepositoryCreationTemplates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRepositoryCreationTemplatesRequest"}, + "output":{"shape":"DescribeRepositoryCreationTemplatesResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidParameterException"} + ] + }, "GetAuthorizationToken":{ "name":"GetAuthorizationToken", "http":{ @@ -656,6 +701,21 @@ {"shape":"UnableToDecryptSecretValueException"} ] }, + "UpdateRepositoryCreationTemplate":{ + "name":"UpdateRepositoryCreationTemplate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRepositoryCreationTemplateRequest"}, + "output":{"shape":"UpdateRepositoryCreationTemplateResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TemplateNotFoundException"} + ] + }, "UploadLayerPart":{ "name":"UploadLayerPart", "http":{ @@ -879,6 +939,31 @@ "credentialArn":{"shape":"CredentialArn"} } }, + "CreateRepositoryCreationTemplateRequest":{ + "type":"structure", + "required":[ + "prefix", + "appliedFor" + ], + "members":{ + "prefix":{"shape":"Prefix"}, + "description":{"shape":"RepositoryTemplateDescription"}, + "encryptionConfiguration":{"shape":"EncryptionConfigurationForRepositoryCreationTemplate"}, + "resourceTags":{"shape":"TagList"}, + "imageTagMutability":{"shape":"ImageTagMutability"}, + "repositoryPolicy":{"shape":"RepositoryPolicyText"}, + "lifecyclePolicy":{"shape":"LifecyclePolicyTextForRepositoryCreationTemplate"}, + "appliedFor":{"shape":"RCTAppliedForList"}, + "customRoleArn":{"shape":"CustomRoleArn"} + } + }, + "CreateRepositoryCreationTemplateResponse":{ + "type":"structure", + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryCreationTemplate":{"shape":"RepositoryCreationTemplate"} + } + }, "CreateRepositoryRequest":{ "type":"structure", "required":["repositoryName"], @@ -904,6 +989,10 @@ "min":50, "pattern":"^arn:aws:secretsmanager:[a-zA-Z0-9-:]+:secret:ecr\\-pullthroughcache\\/[a-zA-Z0-9\\/_+=.@-]+$" }, + "CustomRoleArn":{ + "type":"string", + "max":2048 + }, "CvssScore":{ "type":"structure", "members":{ @@ -986,6 +1075,20 @@ "policyText":{"shape":"RegistryPolicyText"} } }, + "DeleteRepositoryCreationTemplateRequest":{ + "type":"structure", + "required":["prefix"], + "members":{ + "prefix":{"shape":"Prefix"} + } + }, + "DeleteRepositoryCreationTemplateResponse":{ + "type":"structure", + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryCreationTemplate":{"shape":"RepositoryCreationTemplate"} + } + }, "DeleteRepositoryPolicyRequest":{ "type":"structure", "required":["repositoryName"], @@ -1131,6 +1234,22 @@ "nextToken":{"shape":"NextToken"} } }, + "DescribeRepositoryCreationTemplatesRequest":{ + "type":"structure", + "members":{ + "prefixes":{"shape":"PrefixList"}, + "nextToken":{"shape":"NextToken"}, + "maxResults":{"shape":"MaxResults"} + } + }, + "DescribeRepositoryCreationTemplatesResponse":{ + "type":"structure", + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryCreationTemplates":{"shape":"RepositoryCreationTemplateList"}, + "nextToken":{"shape":"NextToken"} + } + }, "EmptyUploadException":{ "type":"structure", "members":{ @@ -1146,6 +1265,14 @@ "kmsKey":{"shape":"KmsKey"} } }, + "EncryptionConfigurationForRepositoryCreationTemplate":{ + "type":"structure", + "required":["encryptionType"], + "members":{ + "encryptionType":{"shape":"EncryptionType"}, + "kmsKey":{"shape":"KmsKeyForRepositoryCreationTemplate"} + } + }, "EncryptionType":{ "type":"string", "enum":[ @@ -1582,6 +1709,12 @@ "max":2048, "min":1 }, + "KmsKeyForRepositoryCreationTemplate":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"^$|arn:aws:kms:[a-z0-9-]+:[0-9]{12}:key\\/[a-z0-9-]+" + }, "Layer":{ "type":"structure", "members":{ @@ -1737,6 +1870,11 @@ "max":30720, "min":100 }, + "LifecyclePolicyTextForRepositoryCreationTemplate":{ + "type":"string", + "max":30720, + "min":0 + }, "LifecyclePreviewMaxResults":{ "type":"integer", "max":100, @@ -1822,6 +1960,16 @@ "min":0 }, "Platform":{"type":"string"}, + "Prefix":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$" + }, + "PrefixList":{ + "type":"list", + "member":{"shape":"Prefix"} + }, "ProxyEndpoint":{"type":"string"}, "PullThroughCacheRule":{ "type":"structure", @@ -1987,6 +2135,17 @@ "replicationConfiguration":{"shape":"ReplicationConfiguration"} } }, + "RCTAppliedFor":{ + "type":"string", + "enum":[ + "REPLICATION", + "PULL_THROUGH_CACHE" + ] + }, + "RCTAppliedForList":{ + "type":"list", + "member":{"shape":"RCTAppliedFor"} + }, "Reason":{"type":"string"}, "Recommendation":{ "type":"structure", @@ -2133,6 +2292,26 @@ }, "exception":true }, + "RepositoryCreationTemplate":{ + "type":"structure", + "members":{ + "prefix":{"shape":"Prefix"}, + "description":{"shape":"RepositoryTemplateDescription"}, + "encryptionConfiguration":{"shape":"EncryptionConfigurationForRepositoryCreationTemplate"}, + "resourceTags":{"shape":"TagList"}, + "imageTagMutability":{"shape":"ImageTagMutability"}, + "repositoryPolicy":{"shape":"RepositoryPolicyText"}, + "lifecyclePolicy":{"shape":"LifecyclePolicyTextForRepositoryCreationTemplate"}, + "appliedFor":{"shape":"RCTAppliedForList"}, + "customRoleArn":{"shape":"CustomRoleArn"}, + "createdAt":{"shape":"Date"}, + "updatedAt":{"shape":"Date"} + } + }, + "RepositoryCreationTemplateList":{ + "type":"list", + "member":{"shape":"RepositoryCreationTemplate"} + }, "RepositoryFilter":{ "type":"structure", "required":[ @@ -2228,6 +2407,10 @@ "type":"list", "member":{"shape":"RepositoryScanningConfiguration"} }, + "RepositoryTemplateDescription":{ + "type":"string", + "max":256 + }, "Resource":{ "type":"structure", "members":{ @@ -2465,6 +2648,20 @@ "key":{"shape":"TagKey"}, "value":{"shape":"TagValue"} }, + "TemplateAlreadyExistsException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, + "TemplateNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, "Title":{"type":"string"}, "TooManyTagsException":{ "type":"structure", @@ -2553,6 +2750,28 @@ "credentialArn":{"shape":"CredentialArn"} } }, + "UpdateRepositoryCreationTemplateRequest":{ + "type":"structure", + "required":["prefix"], + "members":{ + "prefix":{"shape":"Prefix"}, + "description":{"shape":"RepositoryTemplateDescription"}, + "encryptionConfiguration":{"shape":"EncryptionConfigurationForRepositoryCreationTemplate"}, + "resourceTags":{"shape":"TagList"}, + "imageTagMutability":{"shape":"ImageTagMutability"}, + "repositoryPolicy":{"shape":"RepositoryPolicyText"}, + "lifecyclePolicy":{"shape":"LifecyclePolicyTextForRepositoryCreationTemplate"}, + "appliedFor":{"shape":"RCTAppliedForList"}, + "customRoleArn":{"shape":"CustomRoleArn"} + } + }, + "UpdateRepositoryCreationTemplateResponse":{ + "type":"structure", + "members":{ + "registryId":{"shape":"RegistryId"}, + "repositoryCreationTemplate":{"shape":"RepositoryCreationTemplate"} + } + }, "UpdatedTimestamp":{"type":"timestamp"}, "UploadId":{ "type":"string", diff --git a/models/apis/ecr/2015-09-21/docs-2.json b/models/apis/ecr/2015-09-21/docs-2.json index ed097ad4e6c..1184eb21b24 100644 --- a/models/apis/ecr/2015-09-21/docs-2.json +++ b/models/apis/ecr/2015-09-21/docs-2.json @@ -9,10 +9,12 @@ "CompleteLayerUpload": "

Informs Amazon ECR that the image layer upload has completed for a specified registry, repository name, and upload ID. You can optionally provide a sha256 digest of the image layer for data validation purposes.

When an image is pushed, the CompleteLayerUpload API is called once per each new image layer to verify that the upload has completed.

This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

", "CreatePullThroughCacheRule": "

Creates a pull through cache rule. A pull through cache rule provides a way to cache images from an upstream registry source in your Amazon ECR private registry. For more information, see Using pull through cache rules in the Amazon Elastic Container Registry User Guide.

", "CreateRepository": "

Creates a repository. For more information, see Amazon ECR repositories in the Amazon Elastic Container Registry User Guide.

", + "CreateRepositoryCreationTemplate": "

Creates a repository creation template. This template is used to define the settings for repositories created by Amazon ECR on your behalf. For example, repositories created through pull through cache actions. For more information, see Private repository creation templates in the Amazon Elastic Container Registry User Guide.

", "DeleteLifecyclePolicy": "

Deletes the lifecycle policy associated with the specified repository.

", "DeletePullThroughCacheRule": "

Deletes a pull through cache rule.

", "DeleteRegistryPolicy": "

Deletes the registry permissions policy.

", "DeleteRepository": "

Deletes a repository. If the repository isn't empty, you must either delete the contents of the repository or use the force option to delete the repository and have Amazon ECR delete all of its contents on your behalf.

", + "DeleteRepositoryCreationTemplate": "

Deletes a repository creation template.

", "DeleteRepositoryPolicy": "

Deletes the repository policy associated with the specified repository.

", "DescribeImageReplicationStatus": "

Returns the replication status for a specified image.

", "DescribeImageScanFindings": "

Returns the scan findings for the specified image.

", @@ -20,6 +22,7 @@ "DescribePullThroughCacheRules": "

Returns the pull through cache rules for a registry.

", "DescribeRegistry": "

Describes the settings for a registry. The replication configuration for a repository can be created or updated with the PutReplicationConfiguration API action.

", "DescribeRepositories": "

Describes image repositories in a registry.

", + "DescribeRepositoryCreationTemplates": "

Returns details about the repository creation templates in a registry. The prefixes request parameter can be used to return the details for a specific repository creation template.

", "GetAuthorizationToken": "

Retrieves an authorization token. An authorization token represents your IAM authentication credentials and can be used to access any Amazon ECR registry that your IAM principal has access to. The authorization token is valid for 12 hours.

The authorizationToken returned is a base64 encoded string that can be decoded and used in a docker login command to authenticate to a registry. The CLI offers an get-login-password command that simplifies the login process. For more information, see Registry authentication in the Amazon Elastic Container Registry User Guide.

", "GetDownloadUrlForLayer": "

Retrieves the pre-signed Amazon S3 download URL corresponding to an image layer. You can only get URLs for image layers that are referenced in an image.

When an image is pulled, the GetDownloadUrlForLayer API is called once per image layer that is not already cached.

This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

", "GetLifecyclePolicy": "

Retrieves the lifecycle policy for the specified repository.

", @@ -36,13 +39,14 @@ "PutLifecyclePolicy": "

Creates or updates the lifecycle policy for the specified repository. For more information, see Lifecycle policy template.

", "PutRegistryPolicy": "

Creates or updates the permissions policy for your registry.

A registry policy is used to specify permissions for another Amazon Web Services account and is used when configuring cross-account replication. For more information, see Registry permissions in the Amazon Elastic Container Registry User Guide.

", "PutRegistryScanningConfiguration": "

Creates or updates the scanning configuration for your private registry.

", - "PutReplicationConfiguration": "

Creates or updates the replication configuration for a registry. The existing replication configuration for a repository can be retrieved with the DescribeRegistry API action. The first time the PutReplicationConfiguration API is called, a service-linked IAM role is created in your account for the replication process. For more information, see Using service-linked roles for Amazon ECR in the Amazon Elastic Container Registry User Guide.

When configuring cross-account replication, the destination account must grant the source account permission to replicate. This permission is controlled using a registry permissions policy. For more information, see PutRegistryPolicy.

", + "PutReplicationConfiguration": "

Creates or updates the replication configuration for a registry. The existing replication configuration for a repository can be retrieved with the DescribeRegistry API action. The first time the PutReplicationConfiguration API is called, a service-linked IAM role is created in your account for the replication process. For more information, see Using service-linked roles for Amazon ECR in the Amazon Elastic Container Registry User Guide. For more information on the custom role for replication, see Creating an IAM role for replication.

When configuring cross-account replication, the destination account must grant the source account permission to replicate. This permission is controlled using a registry permissions policy. For more information, see PutRegistryPolicy.

", "SetRepositoryPolicy": "

Applies a repository policy to the specified repository to control access permissions. For more information, see Amazon ECR Repository policies in the Amazon Elastic Container Registry User Guide.

", "StartImageScan": "

Starts an image vulnerability scan. An image scan can only be started once per 24 hours on an individual image. This limit includes if an image was scanned on initial push. For more information, see Image scanning in the Amazon Elastic Container Registry User Guide.

", "StartLifecyclePolicyPreview": "

Starts a preview of a lifecycle policy for the specified repository. This allows you to see the results before associating the lifecycle policy with the repository.

", "TagResource": "

Adds specified tags to a resource with the specified ARN. Existing tags on a resource are not changed if they are not specified in the request parameters.

", "UntagResource": "

Deletes specified tags from a resource.

", "UpdatePullThroughCacheRule": "

Updates an existing pull through cache rule.

", + "UpdateRepositoryCreationTemplate": "

Updates an existing repository creation template.

", "UploadLayerPart": "

Uploads an image layer part to Amazon ECR.

When an image is pushed, each new image layer is uploaded in parts. The maximum size of each image layer part can be 20971520 bytes (or about 20MB). The UploadLayerPart API is called once per each new image layer part.

This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

", "ValidatePullThroughCacheRule": "

Validates an existing pull through cache rule for an upstream registry that requires authentication. This will retrieve the contents of the Amazon Web Services Secrets Manager secret, verify the syntax, and then validate that authentication to the upstream registry is successful.

" }, @@ -197,6 +201,16 @@ "refs": { } }, + "CreateRepositoryCreationTemplateRequest": { + "base": null, + "refs": { + } + }, + "CreateRepositoryCreationTemplateResponse": { + "base": null, + "refs": { + } + }, "CreateRepositoryRequest": { "base": null, "refs": { @@ -228,6 +242,14 @@ "ValidatePullThroughCacheRuleResponse$credentialArn": "

The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret associated with the pull through cache rule.

" } }, + "CustomRoleArn": { + "base": null, + "refs": { + "CreateRepositoryCreationTemplateRequest$customRoleArn": "

The ARN of the role to be assumed by Amazon ECR. This role must be in the same account as the registry that you are configuring.

", + "RepositoryCreationTemplate$customRoleArn": "

The ARN of the role to be assumed by Amazon ECR.

", + "UpdateRepositoryCreationTemplateRequest$customRoleArn": "

The ARN of the role to be assumed by Amazon ECR. This role must be in the same account as the registry that you are configuring.

" + } + }, "CvssScore": { "base": "

The CVSS score for a finding.

", "refs": { @@ -266,7 +288,9 @@ "EnhancedImageScanFinding$lastObservedAt": "

The date and time that the finding was last observed.

", "EnhancedImageScanFinding$updatedAt": "

The date and time the finding was last updated at.

", "PackageVulnerabilityDetails$vendorCreatedAt": "

The date and time that this vulnerability was first added to the vendor's database.

", - "PackageVulnerabilityDetails$vendorUpdatedAt": "

The date and time the vendor last updated this vulnerability in their database.

" + "PackageVulnerabilityDetails$vendorUpdatedAt": "

The date and time the vendor last updated this vulnerability in their database.

", + "RepositoryCreationTemplate$createdAt": "

The date and time, in JavaScript date format, when the repository creation template was created.

", + "RepositoryCreationTemplate$updatedAt": "

The date and time, in JavaScript date format, when the repository creation template was last updated.

" } }, "DeleteLifecyclePolicyRequest": { @@ -299,6 +323,16 @@ "refs": { } }, + "DeleteRepositoryCreationTemplateRequest": { + "base": null, + "refs": { + } + }, + "DeleteRepositoryCreationTemplateResponse": { + "base": null, + "refs": { + } + }, "DeleteRepositoryPolicyRequest": { "base": null, "refs": { @@ -385,22 +419,41 @@ "refs": { } }, + "DescribeRepositoryCreationTemplatesRequest": { + "base": null, + "refs": { + } + }, + "DescribeRepositoryCreationTemplatesResponse": { + "base": null, + "refs": { + } + }, "EmptyUploadException": { "base": "

The specified layer upload does not contain any layer parts.

", "refs": { } }, "EncryptionConfiguration": { - "base": "

The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.

By default, when no encryption configuration is set or the AES256 encryption type is used, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts your data at rest using an AES-256 encryption algorithm. This does not require any action on your part.

For more control over the encryption of the contents of your repository, you can use server-side encryption with Key Management Service key stored in Key Management Service (KMS) to encrypt your images. For more information, see Amazon ECR encryption at rest in the Amazon Elastic Container Registry User Guide.

", + "base": "

The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.

By default, when no encryption configuration is set or the AES256 encryption type is used, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts your data at rest using an AES256 encryption algorithm. This does not require any action on your part.

For more control over the encryption of the contents of your repository, you can use server-side encryption with Key Management Service key stored in Key Management Service (KMS) to encrypt your images. For more information, see Amazon ECR encryption at rest in the Amazon Elastic Container Registry User Guide.

", "refs": { "CreateRepositoryRequest$encryptionConfiguration": "

The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.

", "Repository$encryptionConfiguration": "

The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.

" } }, + "EncryptionConfigurationForRepositoryCreationTemplate": { + "base": "

The encryption configuration to associate with the repository creation template.

", + "refs": { + "CreateRepositoryCreationTemplateRequest$encryptionConfiguration": "

The encryption configuration to use for repositories created using the template.

", + "RepositoryCreationTemplate$encryptionConfiguration": "

The encryption configuration associated with the repository creation template.

", + "UpdateRepositoryCreationTemplateRequest$encryptionConfiguration": null + } + }, "EncryptionType": { "base": null, "refs": { - "EncryptionConfiguration$encryptionType": "

The encryption type to use.

If you use the KMS encryption type, the contents of the repository will be encrypted using server-side encryption with Key Management Service key stored in KMS. When you use KMS to encrypt your data, you can either use the default Amazon Web Services managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see Protecting data using server-side encryption with an KMS key stored in Key Management Service (SSE-KMS) in the Amazon Simple Storage Service Console Developer Guide.

If you use the AES256 encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3) in the Amazon Simple Storage Service Console Developer Guide.

" + "EncryptionConfiguration$encryptionType": "

The encryption type to use.

If you use the KMS encryption type, the contents of the repository will be encrypted using server-side encryption with Key Management Service key stored in KMS. When you use KMS to encrypt your data, you can either use the default Amazon Web Services managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see Protecting data using server-side encryption with an KMS key stored in Key Management Service (SSE-KMS) in the Amazon Simple Storage Service Console Developer Guide.

If you use the AES256 encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES256 encryption algorithm. For more information, see Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3) in the Amazon Simple Storage Service Console Developer Guide.

", + "EncryptionConfigurationForRepositoryCreationTemplate$encryptionType": "

The encryption type to use.

If you use the KMS encryption type, the contents of the repository will be encrypted using server-side encryption with Key Management Service key stored in KMS. When you use KMS to encrypt your data, you can either use the default Amazon Web Services managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see Protecting data using server-side encryption with an KMS key stored in Key Management Service (SSE-KMS) in the Amazon Simple Storage Service Console Developer Guide.

If you use the AES256 encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES256 encryption algorithm. For more information, see Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3) in the Amazon Simple Storage Service Console Developer Guide.

" } }, "EnhancedImageScanFinding": { @@ -460,6 +513,8 @@ "ScanNotFoundException$message": null, "SecretNotFoundException$message": null, "ServerException$message": "

The error message associated with the exception.

", + "TemplateAlreadyExistsException$message": null, + "TemplateNotFoundException$message": null, "TooManyTagsException$message": null, "UnableToAccessSecretException$message": null, "UnableToDecryptSecretValueException$message": null, @@ -801,10 +856,13 @@ "ImageTagMutability": { "base": null, "refs": { + "CreateRepositoryCreationTemplateRequest$imageTagMutability": "

The tag mutability setting for the repository. If this parameter is omitted, the default setting of MUTABLE will be used which will allow image tags to be overwritten. If IMMUTABLE is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.

", "CreateRepositoryRequest$imageTagMutability": "

The tag mutability setting for the repository. If this parameter is omitted, the default setting of MUTABLE will be used which will allow image tags to be overwritten. If IMMUTABLE is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.

", "PutImageTagMutabilityRequest$imageTagMutability": "

The tag mutability setting for the repository. If MUTABLE is specified, image tags can be overwritten. If IMMUTABLE is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.

", "PutImageTagMutabilityResponse$imageTagMutability": "

The image tag mutability setting for the repository.

", - "Repository$imageTagMutability": "

The tag mutability setting for the repository.

" + "Repository$imageTagMutability": "

The tag mutability setting for the repository.

", + "RepositoryCreationTemplate$imageTagMutability": "

The tag mutability setting for the repository. If this parameter is omitted, the default setting of MUTABLE will be used which will allow image tags to be overwritten. If IMMUTABLE is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.

", + "UpdateRepositoryCreationTemplateRequest$imageTagMutability": "

Updates the tag mutability setting for the repository. If this parameter is omitted, the default setting of MUTABLE will be used which will allow image tags to be overwritten. If IMMUTABLE is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.

" } }, "ImageTagsList": { @@ -866,6 +924,12 @@ "EncryptionConfiguration$kmsKey": "

If you use the KMS encryption type, specify the KMS key to use for encryption. The alias, key ID, or full ARN of the KMS key can be specified. The key must exist in the same Region as the repository. If no key is specified, the default Amazon Web Services managed KMS key for Amazon ECR will be used.

" } }, + "KmsKeyForRepositoryCreationTemplate": { + "base": null, + "refs": { + "EncryptionConfigurationForRepositoryCreationTemplate$kmsKey": "

If you use the KMS encryption type, specify the KMS key to use for encryption. The full ARN of the KMS key must be specified. The key must exist in the same Region as the repository. If no key is specified, the default Amazon Web Services managed KMS key for Amazon ECR will be used.

" + } + }, "Layer": { "base": "

An object representing an Amazon ECR image layer.

", "refs": { @@ -1026,6 +1090,14 @@ "StartLifecyclePolicyPreviewResponse$lifecyclePolicyText": "

The JSON repository policy text.

" } }, + "LifecyclePolicyTextForRepositoryCreationTemplate": { + "base": null, + "refs": { + "CreateRepositoryCreationTemplateRequest$lifecyclePolicy": "

The lifecycle policy to use for repositories created using the template.

", + "RepositoryCreationTemplate$lifecyclePolicy": "

The lifecycle policy to use for repositories created using the template.

", + "UpdateRepositoryCreationTemplateRequest$lifecyclePolicy": "

Updates the lifecycle policy associated with the specified repository creation template.

" + } + }, "LifecyclePreviewMaxResults": { "base": null, "refs": { @@ -1070,6 +1142,7 @@ "DescribeImagesRequest$maxResults": "

The maximum number of repository results returned by DescribeImages in paginated output. When this parameter is used, DescribeImages only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeImages request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then DescribeImages returns up to 100 results and a nextToken value, if applicable. This option cannot be used when you specify images with imageIds.

", "DescribePullThroughCacheRulesRequest$maxResults": "

The maximum number of pull through cache rules returned by DescribePullThroughCacheRulesRequest in paginated output. When this parameter is used, DescribePullThroughCacheRulesRequest only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribePullThroughCacheRulesRequest request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then DescribePullThroughCacheRulesRequest returns up to 100 results and a nextToken value, if applicable.

", "DescribeRepositoriesRequest$maxResults": "

The maximum number of repository results returned by DescribeRepositories in paginated output. When this parameter is used, DescribeRepositories only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeRepositories request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then DescribeRepositories returns up to 100 results and a nextToken value, if applicable. This option cannot be used when you specify repositories with repositoryNames.

", + "DescribeRepositoryCreationTemplatesRequest$maxResults": "

The maximum number of repository results returned by DescribeRepositoryCreationTemplatesRequest in paginated output. When this parameter is used, DescribeRepositoryCreationTemplatesRequest only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeRepositoryCreationTemplatesRequest request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then DescribeRepositoryCreationTemplatesRequest returns up to 100 results and a nextToken value, if applicable.

", "ListImagesRequest$maxResults": "

The maximum number of image results returned by ListImages in paginated output. When this parameter is used, ListImages only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListImages request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then ListImages returns up to 100 results and a nextToken value, if applicable.

" } }, @@ -1107,6 +1180,8 @@ "DescribePullThroughCacheRulesResponse$nextToken": "

The nextToken value to include in a future DescribePullThroughCacheRulesRequest request. When the results of a DescribePullThroughCacheRulesRequest request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeRepositoriesRequest$nextToken": "

The nextToken value returned from a previous paginated DescribeRepositories request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This option cannot be used when you specify repositories with repositoryNames.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "DescribeRepositoriesResponse$nextToken": "

The nextToken value to include in a future DescribeRepositories request. When the results of a DescribeRepositories request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", + "DescribeRepositoryCreationTemplatesRequest$nextToken": "

The nextToken value returned from a previous paginated DescribeRepositoryCreationTemplates request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", + "DescribeRepositoryCreationTemplatesResponse$nextToken": "

The nextToken value to include in a future DescribeRepositoryCreationTemplates request. When the results of a DescribeRepositoryCreationTemplates request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "GetLifecyclePolicyPreviewRequest$nextToken": "

The nextToken value returned from a previous paginated
 GetLifecyclePolicyPreviewRequest request where maxResults was used and the
 results exceeded the value of that parameter. Pagination continues from the end of the
 previous results that returned the nextToken value. This value is
 null when there are no more results to return. This option cannot be used when you specify images with imageIds.

", "GetLifecyclePolicyPreviewResponse$nextToken": "

The nextToken value to include in a future GetLifecyclePolicyPreview request. When the results of a GetLifecyclePolicyPreview request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

", "ListImagesRequest$nextToken": "

The nextToken value returned from a previous paginated ListImages request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", @@ -1147,6 +1222,22 @@ "AwsEcrContainerImageDetails$platform": "

The platform of the Amazon ECR container image.

" } }, + "Prefix": { + "base": null, + "refs": { + "CreateRepositoryCreationTemplateRequest$prefix": "

The repository namespace prefix to associate with the template. All repositories created using this namespace prefix will have the settings defined in this template applied. For example, a prefix of prod would apply to all repositories beginning with prod/. Similarly, a prefix of prod/team would apply to all repositories beginning with prod/team/.

To apply a template to all repositories in your registry that don't have an associated creation template, you can use ROOT as the prefix.

There is always an assumed / applied to the end of the prefix. If you specify ecr-public as the prefix, Amazon ECR treats that as ecr-public/. When using a pull through cache rule, the repository prefix you specify during rule creation is what you should specify as your repository creation template prefix as well.

", + "DeleteRepositoryCreationTemplateRequest$prefix": "

The repository namespace prefix associated with the repository creation template.

", + "PrefixList$member": null, + "RepositoryCreationTemplate$prefix": "

The repository namespace prefix associated with the repository creation template.

", + "UpdateRepositoryCreationTemplateRequest$prefix": "

The repository namespace prefix that matches an existing repository creation template in the registry. All repositories created using this namespace prefix will have the settings defined in this template applied. For example, a prefix of prod would apply to all repositories beginning with prod/. This includes a repository named prod/team1 as well as a repository named prod/repository1.

To apply a template to all repositories in your registry that don't have an associated creation template, you can use ROOT as the prefix.

" + } + }, + "PrefixList": { + "base": null, + "refs": { + "DescribeRepositoryCreationTemplatesRequest$prefixes": "

The repository namespace prefixes associated with the repository creation templates to describe. If this value is not specified, all repository creation templates are returned.

" + } + }, "ProxyEndpoint": { "base": null, "refs": { @@ -1273,6 +1364,20 @@ "refs": { } }, + "RCTAppliedFor": { + "base": null, + "refs": { + "RCTAppliedForList$member": null + } + }, + "RCTAppliedForList": { + "base": null, + "refs": { + "CreateRepositoryCreationTemplateRequest$appliedFor": "

A list of enumerable strings representing the Amazon ECR repository creation scenarios that this template will apply towards. The two supported scenarios are PULL_THROUGH_CACHE and REPLICATION

", + "RepositoryCreationTemplate$appliedFor": "

A list of enumerable Strings representing the repository creation scenarios that this template will apply towards. The two supported scenarios are PULL_THROUGH_CACHE and REPLICATION

", + "UpdateRepositoryCreationTemplateRequest$appliedFor": "

Updates the list of enumerable strings representing the Amazon ECR repository creation scenarios that this template will apply towards. The two supported scenarios are PULL_THROUGH_CACHE and REPLICATION

" + } + }, "Reason": { "base": null, "refs": { @@ -1326,12 +1431,14 @@ "CompleteLayerUploadResponse$registryId": "

The registry ID associated with the request.

", "CreatePullThroughCacheRuleRequest$registryId": "

The Amazon Web Services account ID associated with the registry to create the pull through cache rule for. If you do not specify a registry, the default registry is assumed.

", "CreatePullThroughCacheRuleResponse$registryId": "

The registry ID associated with the request.

", + "CreateRepositoryCreationTemplateResponse$registryId": "

The registry ID associated with the request.

", "CreateRepositoryRequest$registryId": "

The Amazon Web Services account ID associated with the registry to create the repository. If you do not specify a registry, the default registry is assumed.

", "DeleteLifecyclePolicyRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", "DeleteLifecyclePolicyResponse$registryId": "

The registry ID associated with the request.

", "DeletePullThroughCacheRuleRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the pull through cache rule. If you do not specify a registry, the default registry is assumed.

", "DeletePullThroughCacheRuleResponse$registryId": "

The registry ID associated with the request.

", "DeleteRegistryPolicyResponse$registryId": "

The registry ID associated with the request.

", + "DeleteRepositoryCreationTemplateResponse$registryId": "

The registry ID associated with the request.

", "DeleteRepositoryPolicyRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repository policy to delete. If you do not specify a registry, the default registry is assumed.

", "DeleteRepositoryPolicyResponse$registryId": "

The registry ID associated with the request.

", "DeleteRepositoryRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repository to delete. If you do not specify a registry, the default registry is assumed.

", @@ -1340,8 +1447,9 @@ "DescribeImageScanFindingsResponse$registryId": "

The registry ID associated with the request.

", "DescribeImagesRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repository in which to describe images. If you do not specify a registry, the default registry is assumed.

", "DescribePullThroughCacheRulesRequest$registryId": "

The Amazon Web Services account ID associated with the registry to return the pull through cache rules for. If you do not specify a registry, the default registry is assumed.

", - "DescribeRegistryResponse$registryId": "

The ID of the registry.

", + "DescribeRegistryResponse$registryId": "

The registry ID associated with the request.

", "DescribeRepositoriesRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repositories to be described. If you do not specify a registry, the default registry is assumed.

", + "DescribeRepositoryCreationTemplatesResponse$registryId": "

The registry ID associated with the request.

", "EnhancedImageScanFinding$awsAccountId": "

The Amazon Web Services account ID associated with the image.

", "GetAuthorizationTokenRegistryIdList$member": null, "GetDownloadUrlForLayerRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the image layer to download. If you do not specify a registry, the default registry is assumed.

", @@ -1349,8 +1457,8 @@ "GetLifecyclePolicyPreviewResponse$registryId": "

The registry ID associated with the request.

", "GetLifecyclePolicyRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", "GetLifecyclePolicyResponse$registryId": "

The registry ID associated with the request.

", - "GetRegistryPolicyResponse$registryId": "

The ID of the registry.

", - "GetRegistryScanningConfigurationResponse$registryId": "

The ID of the registry.

", + "GetRegistryPolicyResponse$registryId": "

The registry ID associated with the request.

", + "GetRegistryScanningConfigurationResponse$registryId": "

The registry ID associated with the request.

", "GetRepositoryPolicyRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", "GetRepositoryPolicyResponse$registryId": "

The registry ID associated with the request.

", "Image$registryId": "

The Amazon Web Services account ID associated with the registry containing the image.

", @@ -1367,7 +1475,7 @@ "PutImageTagMutabilityResponse$registryId": "

The registry ID associated with the request.

", "PutLifecyclePolicyRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repository. If you do
 not specify a registry, the default registry is assumed.

", "PutLifecyclePolicyResponse$registryId": "

The registry ID associated with the request.

", - "PutRegistryPolicyResponse$registryId": "

The registry ID.

", + "PutRegistryPolicyResponse$registryId": "

The registry ID associated with the request.

", "ReplicationDestination$registryId": "

The Amazon Web Services account ID of the Amazon ECR private registry to replicate to. When configuring cross-Region replication within your own registry, specify your own account ID.

", "Repository$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repository.

", "SetRepositoryPolicyRequest$registryId": "

The Amazon Web Services account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.

", @@ -1378,6 +1486,7 @@ "StartLifecyclePolicyPreviewResponse$registryId": "

The registry ID associated with the request.

", "UpdatePullThroughCacheRuleRequest$registryId": "

The Amazon Web Services account ID associated with the registry associated with the pull through cache rule. If you do not specify a registry, the default registry is assumed.

", "UpdatePullThroughCacheRuleResponse$registryId": "

The registry ID associated with the request.

", + "UpdateRepositoryCreationTemplateResponse$registryId": "

The registry ID associated with the request.

", "UploadLayerPartRequest$registryId": "

The Amazon Web Services account ID associated with the registry to which you are uploading layer parts. If you do not specify a registry, the default registry is assumed.

", "UploadLayerPartResponse$registryId": "

The registry ID associated with the request.

", "ValidatePullThroughCacheRuleRequest$registryId": "

The registry ID associated with the pull through cache rule. If you do not specify a registry, the default registry is assumed.

", @@ -1499,6 +1608,21 @@ "refs": { } }, + "RepositoryCreationTemplate": { + "base": "

The details of the repository creation template associated with the request.

", + "refs": { + "CreateRepositoryCreationTemplateResponse$repositoryCreationTemplate": "

The details of the repository creation template associated with the request.

", + "DeleteRepositoryCreationTemplateResponse$repositoryCreationTemplate": "

The details of the repository creation template that was deleted.

", + "RepositoryCreationTemplateList$member": null, + "UpdateRepositoryCreationTemplateResponse$repositoryCreationTemplate": "

The details of the repository creation template associated with the request.

" + } + }, + "RepositoryCreationTemplateList": { + "base": null, + "refs": { + "DescribeRepositoryCreationTemplatesResponse$repositoryCreationTemplates": "

The details of the repository creation templates.

" + } + }, "RepositoryFilter": { "base": "

The filter settings used with image replication. Specifying a repository filter to a replication rule provides a method for controlling which repositories in a private registry are replicated. If no filters are added, the contents of all repositories are replicated.

", "refs": { @@ -1607,10 +1731,13 @@ "RepositoryPolicyText": { "base": null, "refs": { + "CreateRepositoryCreationTemplateRequest$repositoryPolicy": "

The repository policy to apply to repositories created using the template. A repository policy is a permissions policy associated with a repository to control access permissions.

", "DeleteRepositoryPolicyResponse$policyText": "

The JSON repository policy that was deleted from the repository.

", "GetRepositoryPolicyResponse$policyText": "

The JSON repository policy text associated with the repository.

", + "RepositoryCreationTemplate$repositoryPolicy": "

he repository policy to apply to repositories created using the template. A repository policy is a permissions policy associated with a repository to control access permissions.

", "SetRepositoryPolicyRequest$policyText": "

The JSON repository policy text to apply to the repository. For more information, see Amazon ECR repository policies in the Amazon Elastic Container Registry User Guide.

", - "SetRepositoryPolicyResponse$policyText": "

The JSON repository policy text applied to the repository.

" + "SetRepositoryPolicyResponse$policyText": "

The JSON repository policy text applied to the repository.

", + "UpdateRepositoryCreationTemplateRequest$repositoryPolicy": "

Updates the repository policy created using the template. A repository policy is a permissions policy associated with a repository to control access permissions.

" } }, "RepositoryScanningConfiguration": { @@ -1637,6 +1764,14 @@ "BatchGetRepositoryScanningConfigurationResponse$scanningConfigurations": "

The scanning configuration for the requested repositories.

" } }, + "RepositoryTemplateDescription": { + "base": null, + "refs": { + "CreateRepositoryCreationTemplateRequest$description": "

A description for the repository creation template.

", + "RepositoryCreationTemplate$description": "

The description associated with the repository creation template.

", + "UpdateRepositoryCreationTemplateRequest$description": "

A description for the repository creation template.

" + } + }, "Resource": { "base": "

Details about the resource involved in a finding.

", "refs": { @@ -1865,9 +2000,12 @@ "TagList": { "base": null, "refs": { + "CreateRepositoryCreationTemplateRequest$resourceTags": "

The metadata to apply to the repository to help you categorize and organize. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

", "CreateRepositoryRequest$tags": "

The metadata that you apply to the repository to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

", "ListTagsForResourceResponse$tags": "

The tags for the resource.

", - "TagResourceRequest$tags": "

The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

" + "RepositoryCreationTemplate$resourceTags": "

The metadata to apply to the repository to help you categorize and organize. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

", + "TagResourceRequest$tags": "

The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

", + "UpdateRepositoryCreationTemplateRequest$resourceTags": "

The metadata to apply to the repository to help you categorize and organize. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

" } }, "TagResourceRequest": { @@ -1901,6 +2039,16 @@ "Resource$tags": "

The tags attached to the resource.

" } }, + "TemplateAlreadyExistsException": { + "base": "

The repository creation template already exists. Specify a unique prefix and try again.

", + "refs": { + } + }, + "TemplateNotFoundException": { + "base": "

The specified repository creation template can't be found. Verify the registry ID and prefix and try again.

", + "refs": { + } + }, "Title": { "base": null, "refs": { @@ -1969,6 +2117,16 @@ "refs": { } }, + "UpdateRepositoryCreationTemplateRequest": { + "base": null, + "refs": { + } + }, + "UpdateRepositoryCreationTemplateResponse": { + "base": null, + "refs": { + } + }, "UpdatedTimestamp": { "base": null, "refs": { @@ -2013,7 +2171,7 @@ "Url": { "base": null, "refs": { - "CreatePullThroughCacheRuleRequest$upstreamRegistryUrl": "

The registry URL of the upstream public registry to use as the source for the pull through cache rule. The following is the syntax to use for each supported upstream registry.

", + "CreatePullThroughCacheRuleRequest$upstreamRegistryUrl": "

The registry URL of the upstream public registry to use as the source for the pull through cache rule. The following is the syntax to use for each supported upstream registry.

", "CreatePullThroughCacheRuleResponse$upstreamRegistryUrl": "

The upstream registry URL associated with the pull through cache rule.

", "DeletePullThroughCacheRuleResponse$upstreamRegistryUrl": "

The upstream registry URL associated with the pull through cache rule.

", "GetDownloadUrlForLayerResponse$downloadUrl": "

The pre-signed Amazon S3 download URL for the requested layer.

", diff --git a/models/apis/ecr/2015-09-21/examples-1.json b/models/apis/ecr/2015-09-21/examples-1.json index fa1a309ac6f..67b40f08c4a 100644 --- a/models/apis/ecr/2015-09-21/examples-1.json +++ b/models/apis/ecr/2015-09-21/examples-1.json @@ -87,6 +87,64 @@ "title": "To create a new repository" } ], + "CreateRepositoryCreationTemplate": [ + { + "input": { + "appliedFor": [ + "REPLICATION", + "PULL_THROUGH_CACHE" + ], + "description": "Repos for testing images", + "encryptionConfiguration": { + "encryptionType": "AES256" + }, + "imageTagMutability": "MUTABLE", + "lifecyclePolicy": "{\r\n \"rules\": [\r\n {\r\n \"rulePriority\": 1,\r\n \"description\": \"Expire images older than 14 days\",\r\n \"selection\": {\r\n \"tagStatus\": \"untagged\",\r\n \"countType\": \"sinceImagePushed\",\r\n \"countUnit\": \"days\",\r\n \"countNumber\": 14\r\n },\r\n \"action\": {\r\n \"type\": \"expire\"\r\n }\r\n }\r\n ]\r\n}", + "prefix": "eng/test", + "repositoryPolicy": "{\r\n \"Version\": \"2012-10-17\",\r\n \"Statement\": [\r\n {\r\n \"Sid\": \"LambdaECRPullPolicy\",\r\n \"Effect\": \"Allow\",\r\n \"Principal\": {\r\n \"Service\": \"lambda.amazonaws.com\"\r\n },\r\n \"Action\": \"ecr:BatchGetImage\"\r\n }\r\n ]\r\n}", + "resourceTags": [ + { + "Key": "environment", + "Value": "test" + } + ] + }, + "output": { + "registryId": "012345678901", + "repositoryCreationTemplate": { + "appliedFor": [ + "REPLICATION", + "PULL_THROUGH_CACHE" + ], + "createdAt": "2023-12-16T17:29:02-07:00", + "description": "Repos for testing images", + "encryptionConfiguration": { + "encryptionType": "AES256" + }, + "imageTagMutability": "MUTABLE", + "lifecyclePolicy": "{\r\n \"rules\": [\r\n {\r\n \"rulePriority\": 1,\r\n \"description\": \"Expire images older than 14 days\",\r\n \"selection\": {\r\n \"tagStatus\": \"untagged\",\r\n \"countType\": \"sinceImagePushed\",\r\n \"countUnit\": \"days\",\r\n \"countNumber\": 14\r\n },\r\n \"action\": {\r\n \"type\": \"expire\"\r\n }\r\n }\r\n ]\r\n}", + "prefix": "eng/test", + "repositoryPolicy": "{\n \"Version\" : \"2012-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"LambdaECRPullPolicy\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"Service\" : \"lambda.amazonaws.com\"\n },\n \"Action\" : \"ecr:BatchGetImage\"\n } ]\n}", + "resourceTags": [ + { + "Key": "environment", + "Value": "test" + } + ], + "updatedAt": "2023-12-16T17:29:02-07:00" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates a repository creation template.", + "id": "create-a-new-repository-creation-template-1713296923053", + "title": "Create a new repository creation template" + } + ], "DeleteRepository": [ { "input": { @@ -110,6 +168,34 @@ "title": "To force delete a repository" } ], + "DeleteRepositoryCreationTemplate": [ + { + "input": { + "prefix": "eng" + }, + "output": { + "registryId": "012345678901", + "repositoryCreationTemplate": { + "createdAt": "2023-12-03T16:27:57.933000-08:00", + "encryptionConfiguration": { + "encryptionType": "AES256" + }, + "imageTagMutability": "MUTABLE", + "prefix": "eng", + "updatedAt": "2023-12-03T16:27:57.933000-08:00" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes a repository creation template.", + "id": "delete-a-repository-creation-template-1713298142230", + "title": "Delete a repository creation template" + } + ], "DeleteRepositoryPolicy": [ { "input": { @@ -154,6 +240,57 @@ "title": "To describe all repositories in the current account" } ], + "DescribeRepositoryCreationTemplates": [ + { + "input": { + "maxResults": 123, + "nextToken": "", + "prefixes": [ + "eng" + ] + }, + "output": { + "nextToken": "", + "registryId": "012345678901", + "repositoryCreationTemplates": [ + { + "appliedFor": [ + "PULL_THROUGH_CACHE", + "REPLICATION" + ], + "createdAt": "2023-12-16T17:29:02-07:00", + "encryptionConfiguration": { + "encryptionType": "AES256" + }, + "imageTagMutability": "MUTABLE", + "prefix": "eng/test", + "updatedAt": "2023-12-16T19:55:02-07:00" + }, + { + "appliedFor": [ + "REPLICATION" + ], + "createdAt": "2023-12-14T17:29:02-07:00", + "encryptionConfiguration": { + "encryptionType": "AES256" + }, + "imageTagMutability": "IMMUTABLE", + "prefix": "eng/replication-test", + "updatedAt": "2023-12-14T19:55:02-07:00" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the contents of a repository creation template.", + "id": "describe-a-repository-creation-template-1713298784302", + "title": "Describe a repository creation template" + } + ], "GetAuthorizationToken": [ { "input": { @@ -210,6 +347,55 @@ "id": "listimages-example-1470868161594", "title": "To list all images in a repository" } + ], + "UpdateRepositoryCreationTemplate": [ + { + "input": { + "appliedFor": [ + "REPLICATION" + ], + "prefix": "eng/test", + "resourceTags": [ + { + "Key": "environment", + "Value": "test" + } + ] + }, + "output": { + "registryId": "012345678901", + "repositoryCreationTemplate": { + "appliedFor": [ + "REPLICATION" + ], + "createdAt": "2023-12-16T17:29:02-07:00", + "description": "Repos for testing images", + "encryptionConfiguration": { + "encryptionType": "AES256" + }, + "imageTagMutability": "MUTABLE", + "lifecyclePolicy": "{\r\n \"rules\": [\r\n {\r\n \"rulePriority\": 1,\r\n \"description\": \"Expire images older than 14 days\",\r\n \"selection\": {\r\n \"tagStatus\": \"untagged\",\r\n \"countType\": \"sinceImagePushed\",\r\n \"countUnit\": \"days\",\r\n \"countNumber\": 14\r\n },\r\n \"action\": {\r\n \"type\": \"expire\"\r\n }\r\n }\r\n ]\r\n}", + "prefix": "eng/test", + "repositoryPolicy": "{\n \"Version\" : \"2012-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"LambdaECRPullPolicy\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"Service\" : \"lambda.amazonaws.com\"\n },\n \"Action\" : \"ecr:BatchGetImage\"\n } ]\n}", + "resourceTags": [ + { + "Key": "environment", + "Value": "test" + } + ], + "updatedAt": "2023-12-16T19:55:02-07:00" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example updates a repository creation template.", + "id": "update-a-repository-creation-template-1713299261276", + "title": "Update a repository creation template" + } ] } } diff --git a/models/apis/ecr/2015-09-21/paginators-1.json b/models/apis/ecr/2015-09-21/paginators-1.json index e382b79e440..ff500182c51 100644 --- a/models/apis/ecr/2015-09-21/paginators-1.json +++ b/models/apis/ecr/2015-09-21/paginators-1.json @@ -34,6 +34,15 @@ "output_token": "nextToken", "result_key": "repositories" }, + "DescribeRepositoryCreationTemplates": { + "input_token": "nextToken", + "limit_key": "maxResults", + "non_aggregate_keys": [ + "registryId" + ], + "output_token": "nextToken", + "result_key": "repositoryCreationTemplates" + }, "GetLifecyclePolicyPreview": { "input_token": "nextToken", "limit_key": "maxResults", diff --git a/models/apis/eks/2017-11-01/api-2.json b/models/apis/eks/2017-11-01/api-2.json index bc9658f02a8..84800e598eb 100644 --- a/models/apis/eks/2017-11-01/api-2.json +++ b/models/apis/eks/2017-11-01/api-2.json @@ -1294,7 +1294,8 @@ "id":{"shape":"String"}, "health":{"shape":"ClusterHealth"}, "outpostConfig":{"shape":"OutpostConfigResponse"}, - "accessConfig":{"shape":"AccessConfigResponse"} + "accessConfig":{"shape":"AccessConfigResponse"}, + "upgradePolicy":{"shape":"UpgradePolicyResponse"} } }, "ClusterHealth":{ @@ -1504,7 +1505,8 @@ "encryptionConfig":{"shape":"EncryptionConfigList"}, "outpostConfig":{"shape":"OutpostConfigRequest"}, "accessConfig":{"shape":"CreateAccessConfigRequest"}, - "bootstrapSelfManagedAddons":{"shape":"BoxedBoolean"} + "bootstrapSelfManagedAddons":{"shape":"BoxedBoolean"}, + "upgradePolicy":{"shape":"UpgradePolicyRequest"} } }, "CreateClusterResponse":{ @@ -3383,6 +3385,13 @@ "type":"list", "member":{"shape":"String"} }, + "SupportType":{ + "type":"string", + "enum":[ + "STANDARD", + "EXTENDED" + ] + }, "TagKey":{ "type":"string", "max":128, @@ -3574,7 +3583,8 @@ "shape":"String", "idempotencyToken":true }, - "accessConfig":{"shape":"UpdateAccessConfigRequest"} + "accessConfig":{"shape":"UpdateAccessConfigRequest"}, + "upgradePolicy":{"shape":"UpgradePolicyRequest"} } }, "UpdateClusterConfigResponse":{ @@ -3743,7 +3753,8 @@ "SecurityGroups", "Subnets", "AuthenticationMode", - "PodIdentityAssociations" + "PodIdentityAssociations", + "UpgradePolicy" ] }, "UpdateParams":{ @@ -3808,9 +3819,22 @@ "AssociateEncryptionConfig", "AddonUpdate", "VpcConfigUpdate", - "AccessConfigUpdate" + "AccessConfigUpdate", + "UpgradePolicyUpdate" ] }, + "UpgradePolicyRequest":{ + "type":"structure", + "members":{ + "supportType":{"shape":"SupportType"} + } + }, + "UpgradePolicyResponse":{ + "type":"structure", + "members":{ + "supportType":{"shape":"SupportType"} + } + }, "VpcConfigRequest":{ "type":"structure", "members":{ diff --git a/models/apis/eks/2017-11-01/docs-2.json b/models/apis/eks/2017-11-01/docs-2.json index 1225df5d2c3..38478096872 100644 --- a/models/apis/eks/2017-11-01/docs-2.json +++ b/models/apis/eks/2017-11-01/docs-2.json @@ -1863,6 +1863,13 @@ "VpcConfigResponse$publicAccessCidrs": "

The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint.

" } }, + "SupportType": { + "base": null, + "refs": { + "UpgradePolicyRequest$supportType": "

If the cluster is set to EXTENDED, it will enter extended support at the end of standard support. If the cluster is set to STANDARD, it will be automatically upgraded at the end of standard support.

Learn more about EKS Extended Support in the EKS User Guide.

", + "UpgradePolicyResponse$supportType": "

If the cluster is set to EXTENDED, it will enter extended support at the end of standard support. If the cluster is set to STANDARD, it will be automatically upgraded at the end of standard support.

Learn more about EKS Extended Support in the EKS User Guide.

" + } + }, "TagKey": { "base": "

One part of a key-value pair that make up a tag. A key is a general label that acts like a category for more specific tag values.

", "refs": { @@ -2113,6 +2120,19 @@ "Update$type": "

The type of the update.

" } }, + "UpgradePolicyRequest": { + "base": "

The support policy to use for the cluster. Extended support allows you to remain on specific Kubernetes versions for longer. Clusters in extended support have higher costs. The default value is EXTENDED. Use STANDARD to disable extended support.

Learn more about EKS Extended Support in the EKS User Guide.

", + "refs": { + "CreateClusterRequest$upgradePolicy": "

New clusters, by default, have extended support enabled. You can disable extended support when creating a cluster by setting this value to STANDARD.

", + "UpdateClusterConfigRequest$upgradePolicy": "

You can enable or disable extended support for clusters currently on standard support. You cannot disable extended support once it starts. You must enable extended support before your cluster exits standard support.

" + } + }, + "UpgradePolicyResponse": { + "base": "

This value indicates if extended support is enabled or disabled for the cluster.

Learn more about EKS Extended Support in the EKS User Guide.

", + "refs": { + "Cluster$upgradePolicy": "

This value indicates if extended support is enabled or disabled for the cluster.

Learn more about EKS Extended Support in the EKS User Guide.

" + } + }, "VpcConfigRequest": { "base": "

An object representing the VPC configuration to use for an Amazon EKS cluster.

", "refs": { diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json index 0a8390ec3bf..ddfac122a21 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json @@ -10,7 +10,8 @@ "serviceId":"Elastic Load Balancing v2", "signatureVersion":"v4", "uid":"elasticloadbalancingv2-2015-12-01", - "xmlNamespace":"http://elasticloadbalancing.amazonaws.com/doc/2015-12-01/" + "xmlNamespace":"http://elasticloadbalancing.amazonaws.com/doc/2015-12-01/", + "auth":["aws.auth#sigv4"] }, "operations":{ "AddListenerCertificates":{ @@ -246,6 +247,23 @@ {"shape":"OperationNotPermittedException"} ] }, + "DeleteSharedTrustStoreAssociation":{ + "name":"DeleteSharedTrustStoreAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSharedTrustStoreAssociationInput"}, + "output":{ + "shape":"DeleteSharedTrustStoreAssociationOutput", + "resultWrapper":"DeleteSharedTrustStoreAssociationResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"}, + {"shape":"DeleteAssociationSameAccountException"}, + {"shape":"TrustStoreAssociationNotFoundException"} + ] + }, "DeleteTargetGroup":{ "name":"DeleteTargetGroup", "http":{ @@ -512,6 +530,21 @@ {"shape":"TrustStoreNotFoundException"} ] }, + "GetResourcePolicy":{ + "name":"GetResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourcePolicyInput"}, + "output":{ + "shape":"GetResourcePolicyOutput", + "resultWrapper":"GetResourcePolicyResult" + }, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, "GetTrustStoreCaCertificatesBundle":{ "name":"GetTrustStoreCaCertificatesBundle", "http":{ @@ -1220,6 +1253,17 @@ }, "DNSName":{"type":"string"}, "Default":{"type":"boolean"}, + "DeleteAssociationSameAccountException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DeleteAssociationSameAccount", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "DeleteListenerInput":{ "type":"structure", "required":["ListenerArn"], @@ -1256,6 +1300,22 @@ "members":{ } }, + "DeleteSharedTrustStoreAssociationInput":{ + "type":"structure", + "required":[ + "TrustStoreArn", + "ResourceArn" + ], + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "ResourceArn":{"shape":"ResourceArn"} + } + }, + "DeleteSharedTrustStoreAssociationOutput":{ + "type":"structure", + "members":{ + } + }, "DeleteTargetGroupInput":{ "type":"structure", "required":["TargetGroupArn"], @@ -1624,6 +1684,19 @@ "TargetGroupStickinessConfig":{"shape":"TargetGroupStickinessConfig"} } }, + "GetResourcePolicyInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{"shape":"ResourceArn"} + } + }, + "GetResourcePolicyOutput":{ + "type":"structure", + "members":{ + "Policy":{"shape":"Policy"} + } + }, "GetTrustStoreCaCertificatesBundleInput":{ "type":"structure", "required":["TrustStoreArn"], @@ -2110,7 +2183,8 @@ "members":{ "Mode":{"shape":"Mode"}, "TrustStoreArn":{"shape":"TrustStoreArn"}, - "IgnoreClientCertificateExpiry":{"shape":"IgnoreClientCertificateExpiry"} + "IgnoreClientCertificateExpiry":{"shape":"IgnoreClientCertificateExpiry"}, + "TrustStoreAssociationStatus":{"shape":"TrustStoreAssociationStatusEnum"} } }, "Name":{"type":"string"}, @@ -2144,6 +2218,10 @@ "Values":{"shape":"ListOfString"} } }, + "Policy":{ + "type":"string", + "min":1 + }, "Port":{ "type":"integer", "max":65535, @@ -2310,6 +2388,17 @@ }, "exception":true }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"ResourceNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "RevocationContent":{ "type":"structure", "members":{ @@ -2934,7 +3023,25 @@ "ResourceArn":{"shape":"TrustStoreAssociationResourceArn"} } }, + "TrustStoreAssociationNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"AssociationNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "TrustStoreAssociationResourceArn":{"type":"string"}, + "TrustStoreAssociationStatusEnum":{ + "type":"string", + "enum":[ + "active", + "removed" + ] + }, "TrustStoreAssociations":{ "type":"list", "member":{"shape":"TrustStoreAssociation"} diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json index fbeaf822772..55bcedcb365 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json @@ -13,6 +13,7 @@ "DeleteListener": "

Deletes the specified listener.

Alternatively, your listener is deleted when you delete the load balancer to which it is attached.

", "DeleteLoadBalancer": "

Deletes the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. Deleting a load balancer also deletes its listeners.

You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds.

Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them.

", "DeleteRule": "

Deletes the specified rule.

You can't delete the default rule.

", + "DeleteSharedTrustStoreAssociation": "

Deletes a shared trust store association.

", "DeleteTargetGroup": "

Deletes the specified target group.

You can delete a target group if it is not referenced by any actions. Deleting a target group also deletes any associated health checks. Deleting a target group does not affect its registered targets. For example, any EC2 instances continue to run until you stop or terminate them.

", "DeleteTrustStore": "

Deletes a trust store.

", "DeregisterTargets": "

Deregisters the specified targets from the specified target group. After the targets are deregistered, they no longer receive traffic from the load balancer.

The load balancer stops sending requests to targets that are deregistering, but uses connection draining to ensure that in-flight traffic completes on the existing connections. This deregistration delay is configured by default but can be updated for each target group.

For more information, see the following:

Note: If the specified target does not exist, the action returns successfully.

", @@ -28,8 +29,9 @@ "DescribeTargetGroups": "

Describes the specified target groups or all of your target groups. By default, all target groups are described. Alternatively, you can specify one of the following to filter the results: the ARN of the load balancer, the names of one or more target groups, or the ARNs of one or more target groups.

", "DescribeTargetHealth": "

Describes the health of the specified targets or all of your targets.

", "DescribeTrustStoreAssociations": "

Describes all resources associated with the specified trust store.

", - "DescribeTrustStoreRevocations": "

Describes the revocation files in use by the specified trust store arn, or revocation ID.

", - "DescribeTrustStores": "

Describes all trust stores for a given account by trust store arn’s or name.

", + "DescribeTrustStoreRevocations": "

Describes the revocation files in use by the specified trust store or revocation files.

", + "DescribeTrustStores": "

Describes all trust stores for the specified account.

", + "GetResourcePolicy": "

Retrieves the resource policy for a specified resource.

", "GetTrustStoreCaCertificatesBundle": "

Retrieves the ca certificate bundle.

This action returns a pre-signed S3 URI which is active for ten minutes.

", "GetTrustStoreRevocationContent": "

Retrieves the specified revocation file.

This action returns a pre-signed S3 URI which is active for ten minutes.

", "ModifyListener": "

Replaces the specified properties of the specified listener. Any properties that you do not specify remain unchanged.

Changing the protocol from HTTPS to HTTP, or from TLS to TCP, removes the security policy and default certificate properties. If you change the protocol from HTTP to HTTPS, or from TCP to TLS, you must add the security policy and default certificate properties.

To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire list. For example, to add an action, specify a list with the current actions plus the new action.

", @@ -37,7 +39,7 @@ "ModifyRule": "

Replaces the specified properties of the specified rule. Any properties that you do not specify are unchanged.

To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire list. For example, to add an action, specify a list with the current actions plus the new action.

", "ModifyTargetGroup": "

Modifies the health checks used when evaluating the health state of the targets in the specified target group.

", "ModifyTargetGroupAttributes": "

Modifies the specified attributes of the specified target group.

", - "ModifyTrustStore": "

Update the ca certificate bundle for a given trust store.

", + "ModifyTrustStore": "

Update the ca certificate bundle for the specified trust store.

", "RegisterTargets": "

Registers the specified targets with the specified target group.

If the target is an EC2 instance, it must be in the running state when you register it.

By default, the load balancer routes requests to registered targets using the protocol and port for the target group. Alternatively, you can override the port for a target when you register it. You can register each EC2 instance or IP address with the same target group multiple times using different ports.

With a Network Load Balancer, you cannot register instances by instance ID if they have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these types by IP address.

", "RemoveListenerCertificates": "

Removes the specified certificate from the certificate list for the specified HTTPS or TLS listener.

", "RemoveTags": "

Removes the specified tags from the specified Elastic Load Balancing resources. You can remove the tags for one or more Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, or rules.

", @@ -469,6 +471,11 @@ "Certificate$IsDefault": "

Indicates whether the certificate is the default certificate. Do not set this value when specifying a certificate as an input. This value is not included in the output when describing a listener, but is included when describing listener certificates.

" } }, + "DeleteAssociationSameAccountException": { + "base": "

The specified association cannot be within the same account.

", + "refs": { + } + }, "DeleteListenerInput": { "base": null, "refs": { @@ -499,6 +506,16 @@ "refs": { } }, + "DeleteSharedTrustStoreAssociationInput": { + "base": null, + "refs": { + } + }, + "DeleteSharedTrustStoreAssociationOutput": { + "base": null, + "refs": { + } + }, "DeleteTargetGroupInput": { "base": null, "refs": { @@ -761,6 +778,16 @@ "Action$ForwardConfig": "

Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when Type is forward. If you specify both ForwardConfig and TargetGroupArn, you can specify only one target group using ForwardConfig and it must be the same target group specified in TargetGroupArn.

" } }, + "GetResourcePolicyInput": { + "base": null, + "refs": { + } + }, + "GetResourcePolicyOutput": { + "base": null, + "refs": { + } + }, "GetTrustStoreCaCertificatesBundleInput": { "base": null, "refs": { @@ -935,7 +962,7 @@ "refs": { "CreateLoadBalancerInput$IpAddressType": "

Note: Internal load balancers must use the ipv4 IP address type.

[Application Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses), dualstack (for IPv4 and IPv6 addresses), and dualstack-without-public-ipv4 (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).

[Network Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). You can’t specify dualstack for a load balancer with a UDP or TCP_UDP listener.

[Gateway Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses).

", "LoadBalancer$IpAddressType": "

[Application Load Balancers] The type of IP addresses used for public or private connections by the subnets attached to your load balancer. The possible values are ipv4 (for only IPv4 addresses), dualstack (for IPv4 and IPv6 addresses), and dualstack-without-public-ipv4 (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).

[Network Load Balancers and Gateway Load Balancers] The type of IP addresses used for public or private connections by the subnets attached to your load balancer. The possible values are ipv4 (for only IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses).

", - "SetIpAddressTypeInput$IpAddressType": "

Note: Internal load balancers must use the ipv4 IP address type.

[Application Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses), dualstack (for IPv4 and IPv6 addresses), and dualstack-without-public-ipv4 (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).

[Network Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). You can’t specify dualstack for a load balancer with a UDP or TCP_UDP listener.

[Gateway Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses).

", + "SetIpAddressTypeInput$IpAddressType": "

Note: Internal load balancers must use the ipv4 IP address type.

[Application Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses), dualstack (for IPv4 and IPv6 addresses), and dualstack-without-public-ipv4 (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).

Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors.

[Network Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). You can’t specify dualstack for a load balancer with a UDP or TCP_UDP listener.

[Gateway Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses).

", "SetIpAddressTypeOutput$IpAddressType": "

The IP address type.

", "SetSubnetsInput$IpAddressType": "

[Application Load Balancers] The IP address type. The possible values are ipv4 (for only IPv4 addresses), dualstack (for IPv4 and IPv6 addresses), and dualstack-without-public-ipv4 (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).

[Network Load Balancers] The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). You can’t specify dualstack for a load balancer with a UDP or TCP_UDP listener.

[Gateway Load Balancers] The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses).

", "SetSubnetsOutput$IpAddressType": "

[Application Load Balancers] The IP address type.

[Network Load Balancers] The IP address type.

[Gateway Load Balancers] The IP address type.

" @@ -962,7 +989,7 @@ "ListOfDescribeTargetHealthIncludeOptions": { "base": null, "refs": { - "DescribeTargetHealthInput$Include": "

Used to inclue anomaly detection information.

" + "DescribeTargetHealthInput$Include": "

Used to include anomaly detection information.

" } }, "ListOfString": { @@ -1322,6 +1349,12 @@ "RuleCondition$PathPatternConfig": "

Information for a path pattern condition. Specify only when Field is path-pattern.

" } }, + "Policy": { + "base": null, + "refs": { + "GetResourcePolicyOutput$Policy": "

The content of the resource policy.

" + } + }, "Port": { "base": null, "refs": { @@ -1468,6 +1501,8 @@ "ResourceArn": { "base": null, "refs": { + "DeleteSharedTrustStoreAssociationInput$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "GetResourcePolicyInput$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

", "ResourceArns$member": null, "TagDescription$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

" } @@ -1485,6 +1520,11 @@ "refs": { } }, + "ResourceNotFoundException": { + "base": "

The specified resource does not exist.

", + "refs": { + } + }, "RevocationContent": { "base": "

Information about a revocation file.

", "refs": { @@ -2095,6 +2135,7 @@ "base": null, "refs": { "AddTrustStoreRevocationsInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "DeleteSharedTrustStoreAssociationInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", "DeleteTrustStoreInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", "DescribeTrustStoreAssociationsInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", "DescribeTrustStoreRevocation$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", @@ -2121,12 +2162,23 @@ "TrustStoreAssociations$member": null } }, + "TrustStoreAssociationNotFoundException": { + "base": "

The specified association does not exist.

", + "refs": { + } + }, "TrustStoreAssociationResourceArn": { "base": null, "refs": { "TrustStoreAssociation$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

" } }, + "TrustStoreAssociationStatusEnum": { + "base": null, + "refs": { + "MutualAuthenticationAttributes$TrustStoreAssociationStatus": "

Indicates a shared trust stores association status.

" + } + }, "TrustStoreAssociations": { "base": null, "refs": { diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/examples-1.json b/models/apis/elasticloadbalancingv2/2015-12-01/examples-1.json index 508b0991ca2..0d0eaaf462d 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/examples-1.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/examples-1.json @@ -363,6 +363,23 @@ "title": "To delete a rule" } ], + "DeleteSharedTrustStoreAssociation": [ + { + "input": { + "ResourceArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-load-balancer/80233fa81d678c2c", + "TrustStoreArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:truststore/my-trust-store/73e2d6bc24d8a063" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the association between the specified trust store and the specified load balancer.", + "id": "delete-a-shared-trust-store-association-1721684063527", + "title": "Delete a shared trust store association" + } + ], "DeleteTargetGroup": [ { "input": { @@ -859,6 +876,22 @@ "title": "To describe the health of a target" } ], + "GetResourcePolicy": [ + { + "input": { + "ResourceArn": "arn:aws:elasticloadbalancing:us-east-1:123456789012:truststore/my-trust-store/73e2d6bc24d8a067" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example retrieves the resource policy for the specified trust store.", + "id": "retrieve-a-resource-policy-1721684356628", + "title": "Retrieve a resource policy" + } + ], "ModifyListener": [ { "input": { diff --git a/models/apis/network-firewall/2020-11-12/api-2.json b/models/apis/network-firewall/2020-11-12/api-2.json index 5f61b3c4f57..40fcbf2c7bd 100644 --- a/models/apis/network-firewall/2020-11-12/api-2.json +++ b/models/apis/network-firewall/2020-11-12/api-2.json @@ -5,13 +5,15 @@ "endpointPrefix":"network-firewall", "jsonVersion":"1.0", "protocol":"json", + "protocols":["json"], "serviceAbbreviation":"Network Firewall", "serviceFullName":"AWS Network Firewall", "serviceId":"Network Firewall", "signatureVersion":"v4", "signingName":"network-firewall", "targetPrefix":"NetworkFirewall_20201112", - "uid":"network-firewall-2020-11-12" + "uid":"network-firewall-2020-11-12", + "auth":["aws.auth#sigv4"] }, "operations":{ "AssociateFirewallPolicy":{ @@ -1510,7 +1512,8 @@ "type":"string", "enum":[ "ALERT", - "FLOW" + "FLOW", + "TLS" ] }, "LoggingConfiguration":{ diff --git a/models/apis/network-firewall/2020-11-12/docs-2.json b/models/apis/network-firewall/2020-11-12/docs-2.json index 7d325639a9b..7e3a2c9f64a 100644 --- a/models/apis/network-firewall/2020-11-12/docs-2.json +++ b/models/apis/network-firewall/2020-11-12/docs-2.json @@ -7,7 +7,7 @@ "CreateFirewall": "

Creates an Network Firewall Firewall and accompanying FirewallStatus for a VPC.

The firewall defines the configuration settings for an Network Firewall firewall. The settings that you can define at creation include the firewall policy, the subnets in your VPC to use for the firewall endpoints, and any tags that are attached to the firewall Amazon Web Services resource.

After you create a firewall, you can provide additional settings, like the logging configuration.

To update the settings for a firewall, you use the operations that apply to the settings themselves, for example UpdateLoggingConfiguration, AssociateSubnets, and UpdateFirewallDeleteProtection.

To manage a firewall's tags, use the standard Amazon Web Services resource tagging operations, ListTagsForResource, TagResource, and UntagResource.

To retrieve information about firewalls, use ListFirewalls and DescribeFirewall.

", "CreateFirewallPolicy": "

Creates the firewall policy for the firewall according to the specifications.

An Network Firewall firewall policy defines the behavior of a firewall, in a collection of stateless and stateful rule groups and other settings. You can use one firewall policy for multiple firewalls.

", "CreateRuleGroup": "

Creates the specified stateless or stateful rule group, which includes the rules for network traffic inspection, a capacity setting, and tags.

You provide your rule group specification in your request using either RuleGroup or Rules.

", - "CreateTLSInspectionConfiguration": "

Creates an Network Firewall TLS inspection configuration. A TLS inspection configuration contains Certificate Manager certificate associations between and the scope configurations that Network Firewall uses to decrypt and re-encrypt traffic traveling through your firewall.

After you create a TLS inspection configuration, you can associate it with a new firewall policy.

To update the settings for a TLS inspection configuration, use UpdateTLSInspectionConfiguration.

To manage a TLS inspection configuration's tags, use the standard Amazon Web Services resource tagging operations, ListTagsForResource, TagResource, and UntagResource.

To retrieve information about TLS inspection configurations, use ListTLSInspectionConfigurations and DescribeTLSInspectionConfiguration.

For more information about TLS inspection configurations, see Inspecting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

", + "CreateTLSInspectionConfiguration": "

Creates an Network Firewall TLS inspection configuration. Network Firewall uses TLS inspection configurations to decrypt your firewall's inbound and outbound SSL/TLS traffic. After decryption, Network Firewall inspects the traffic according to your firewall policy's stateful rules, and then re-encrypts it before sending it to its destination. You can enable inspection of your firewall's inbound traffic, outbound traffic, or both. To use TLS inspection with your firewall, you must first import or provision certificates using ACM, create a TLS inspection configuration, add that configuration to a new firewall policy, and then associate that policy with your firewall.

To update the settings for a TLS inspection configuration, use UpdateTLSInspectionConfiguration.

To manage a TLS inspection configuration's tags, use the standard Amazon Web Services resource tagging operations, ListTagsForResource, TagResource, and UntagResource.

To retrieve information about TLS inspection configurations, use ListTLSInspectionConfigurations and DescribeTLSInspectionConfiguration.

For more information about TLS inspection configurations, see Inspecting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

", "DeleteFirewall": "

Deletes the specified Firewall and its FirewallStatus. This operation requires the firewall's DeleteProtection flag to be FALSE. You can't revert this operation.

You can check whether a firewall is in use by reviewing the route tables for the Availability Zones where you have firewall subnet mappings. Retrieve the subnet mappings by calling DescribeFirewall. You define and update the route tables through Amazon VPC. As needed, update the route tables for the zones to remove the firewall endpoints. When the route tables no longer use the firewall endpoints, you can remove the firewall safely.

To delete a firewall, remove the delete protection if you need to using UpdateFirewallDeleteProtection, then delete the firewall by calling DeleteFirewall.

", "DeleteFirewallPolicy": "

Deletes the specified FirewallPolicy.

", "DeleteResourcePolicy": "

Deletes a resource policy that you created in a PutResourcePolicy request.

", @@ -746,7 +746,7 @@ } }, "LogDestinationConfig": { - "base": "

Defines where Network Firewall sends logs for the firewall for one log type. This is used in LoggingConfiguration. You can send each type of log to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose delivery stream.

Network Firewall generates logs for stateful rule groups. You can save alert and flow log types. The stateful rules engine records flow logs for all network traffic that it receives. It records alert logs for traffic that matches stateful rules that have the rule action set to DROP or ALERT.

", + "base": "

Defines where Network Firewall sends logs for the firewall for one log type. This is used in LoggingConfiguration. You can send each type of log to an Amazon S3 bucket, a CloudWatch log group, or a Firehose delivery stream.

Network Firewall generates logs for stateful rule groups. You can save alert, flow, and TLS log types.

", "refs": { "LogDestinationConfigs$member": null } @@ -760,7 +760,7 @@ "LogDestinationMap": { "base": null, "refs": { - "LogDestinationConfig$LogDestination": "

The named location for the logs, provided in a key:value mapping that is specific to the chosen destination type.

" + "LogDestinationConfig$LogDestination": "

The named location for the logs, provided in a key:value mapping that is specific to the chosen destination type.

" } }, "LogDestinationPermissionException": { @@ -771,13 +771,13 @@ "LogDestinationType": { "base": null, "refs": { - "LogDestinationConfig$LogDestinationType": "

The type of storage destination to send these logs to. You can send logs to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose delivery stream.

" + "LogDestinationConfig$LogDestinationType": "

The type of storage destination to send these logs to. You can send logs to an Amazon S3 bucket, a CloudWatch log group, or a Firehose delivery stream.

" } }, "LogType": { "base": null, "refs": { - "LogDestinationConfig$LogType": "

The type of log to send. Alert logs report traffic that matches a StatefulRule with an action setting that sends an alert log message. Flow logs are standard network traffic flow logs.

" + "LogDestinationConfig$LogType": "

The type of log to record. You can record the following types of logs from your Network Firewall stateful engine.

" } }, "LoggingConfiguration": { @@ -1290,7 +1290,7 @@ "StatefulAction": { "base": null, "refs": { - "StatefulRule$Action": "

Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow.

The actions for a stateful rule are defined as follows:

" + "StatefulRule$Action": "

Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow.

The actions for a stateful rule are defined as follows:

" } }, "StatefulActions": { diff --git a/models/apis/outposts/2019-12-03/api-2.json b/models/apis/outposts/2019-12-03/api-2.json index 64512ca5c5b..da5817beab4 100644 --- a/models/apis/outposts/2019-12-03/api-2.json +++ b/models/apis/outposts/2019-12-03/api-2.json @@ -5,12 +5,14 @@ "endpointPrefix":"outposts", "jsonVersion":"1.1", "protocol":"rest-json", + "protocols":["rest-json"], "serviceAbbreviation":"Outposts", "serviceFullName":"AWS Outposts", "serviceId":"Outposts", "signatureVersion":"v4", "signingName":"outposts", - "uid":"outposts-2019-12-03" + "uid":"outposts-2019-12-03", + "auth":["aws.auth#sigv4"] }, "operations":{ "CancelCapacityTask":{ @@ -1229,7 +1231,8 @@ "InstanceTypeItem":{ "type":"structure", "members":{ - "InstanceType":{"shape":"InstanceType"} + "InstanceType":{"shape":"InstanceType"}, + "VCPUs":{"shape":"VCPUCount"} } }, "InstanceTypeListDefinition":{ @@ -2209,6 +2212,10 @@ "UPLINK_100G" ] }, + "VCPUCount":{ + "type":"integer", + "box":true + }, "ValidationException":{ "type":"structure", "members":{ diff --git a/models/apis/outposts/2019-12-03/docs-2.json b/models/apis/outposts/2019-12-03/docs-2.json index dfd3792ba84..fe2e6b5ff21 100644 --- a/models/apis/outposts/2019-12-03/docs-2.json +++ b/models/apis/outposts/2019-12-03/docs-2.json @@ -1369,6 +1369,12 @@ "UpdateSiteRackPhysicalPropertiesInput$UplinkGbps": "

The uplink speed the rack should support for the connection to the Region.

" } }, + "VCPUCount": { + "base": null, + "refs": { + "InstanceTypeItem$VCPUs": "

The number of default VCPUs in an instance type.

" + } + }, "ValidationException": { "base": "

A parameter is not valid.

", "refs": { diff --git a/models/apis/states/2016-11-23/api-2.json b/models/apis/states/2016-11-23/api-2.json index 95e8a621820..f96536dda92 100644 --- a/models/apis/states/2016-11-23/api-2.json +++ b/models/apis/states/2016-11-23/api-2.json @@ -25,8 +25,12 @@ "output":{"shape":"CreateActivityOutput"}, "errors":[ {"shape":"ActivityLimitExceeded"}, + {"shape":"ActivityAlreadyExists"}, {"shape":"InvalidName"}, - {"shape":"TooManyTags"} + {"shape":"TooManyTags"}, + {"shape":"InvalidEncryptionConfiguration"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsThrottlingException"} ], "idempotent":true }, @@ -50,7 +54,10 @@ {"shape":"StateMachineTypeNotSupported"}, {"shape":"TooManyTags"}, {"shape":"ValidationException"}, - {"shape":"ConflictException"} + {"shape":"ConflictException"}, + {"shape":"InvalidEncryptionConfiguration"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsThrottlingException"} ], "idempotent":true }, @@ -149,7 +156,10 @@ "output":{"shape":"DescribeExecutionOutput"}, "errors":[ {"shape":"ExecutionDoesNotExist"}, - {"shape":"InvalidArn"} + {"shape":"InvalidArn"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ] }, "DescribeMapRun":{ @@ -175,7 +185,10 @@ "output":{"shape":"DescribeStateMachineOutput"}, "errors":[ {"shape":"InvalidArn"}, - {"shape":"StateMachineDoesNotExist"} + {"shape":"StateMachineDoesNotExist"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ] }, "DescribeStateMachineAlias":{ @@ -202,7 +215,10 @@ "output":{"shape":"DescribeStateMachineForExecutionOutput"}, "errors":[ {"shape":"ExecutionDoesNotExist"}, - {"shape":"InvalidArn"} + {"shape":"InvalidArn"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ] }, "GetActivityTask":{ @@ -216,7 +232,10 @@ "errors":[ {"shape":"ActivityDoesNotExist"}, {"shape":"ActivityWorkerLimitExceeded"}, - {"shape":"InvalidArn"} + {"shape":"InvalidArn"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ] }, "GetExecutionHistory":{ @@ -230,7 +249,10 @@ "errors":[ {"shape":"ExecutionDoesNotExist"}, {"shape":"InvalidArn"}, - {"shape":"InvalidToken"} + {"shape":"InvalidToken"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ] }, "ListActivities":{ @@ -377,7 +399,10 @@ "errors":[ {"shape":"TaskDoesNotExist"}, {"shape":"InvalidToken"}, - {"shape":"TaskTimedOut"} + {"shape":"TaskTimedOut"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ] }, "SendTaskHeartbeat":{ @@ -406,7 +431,10 @@ {"shape":"TaskDoesNotExist"}, {"shape":"InvalidOutput"}, {"shape":"InvalidToken"}, - {"shape":"TaskTimedOut"} + {"shape":"TaskTimedOut"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ] }, "StartExecution":{ @@ -425,7 +453,10 @@ {"shape":"InvalidName"}, {"shape":"StateMachineDoesNotExist"}, {"shape":"StateMachineDeleting"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ], "idempotent":true }, @@ -443,7 +474,10 @@ {"shape":"InvalidName"}, {"shape":"StateMachineDoesNotExist"}, {"shape":"StateMachineDeleting"}, - {"shape":"StateMachineTypeNotSupported"} + {"shape":"StateMachineTypeNotSupported"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ], "endpoint":{"hostPrefix":"sync-"} }, @@ -458,7 +492,10 @@ "errors":[ {"shape":"ExecutionDoesNotExist"}, {"shape":"InvalidArn"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsInvalidStateException"}, + {"shape":"KmsThrottlingException"} ] }, "TagResource":{ @@ -536,7 +573,10 @@ {"shape":"StateMachineDoesNotExist"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"ConflictException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"InvalidEncryptionConfiguration"}, + {"shape":"KmsAccessDeniedException"}, + {"shape":"KmsThrottlingException"} ], "idempotent":true }, @@ -570,6 +610,13 @@ } }, "shapes":{ + "ActivityAlreadyExists":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "ActivityDoesNotExist":{ "type":"structure", "members":{ @@ -726,7 +773,8 @@ "required":["name"], "members":{ "name":{"shape":"Name"}, - "tags":{"shape":"TagList"} + "tags":{"shape":"TagList"}, + "encryptionConfiguration":{"shape":"EncryptionConfiguration"} } }, "CreateActivityOutput":{ @@ -779,7 +827,8 @@ "tags":{"shape":"TagList"}, "tracingConfiguration":{"shape":"TracingConfiguration"}, "publish":{"shape":"Publish"}, - "versionDescription":{"shape":"VersionDescription"} + "versionDescription":{"shape":"VersionDescription"}, + "encryptionConfiguration":{"shape":"EncryptionConfiguration"} } }, "CreateStateMachineOutput":{ @@ -865,14 +914,16 @@ "members":{ "activityArn":{"shape":"Arn"}, "name":{"shape":"Name"}, - "creationDate":{"shape":"Timestamp"} + "creationDate":{"shape":"Timestamp"}, + "encryptionConfiguration":{"shape":"EncryptionConfiguration"} } }, "DescribeExecutionInput":{ "type":"structure", "required":["executionArn"], "members":{ - "executionArn":{"shape":"Arn"} + "executionArn":{"shape":"Arn"}, + "includedData":{"shape":"IncludedData"} } }, "DescribeExecutionOutput":{ @@ -963,7 +1014,8 @@ "type":"structure", "required":["executionArn"], "members":{ - "executionArn":{"shape":"Arn"} + "executionArn":{"shape":"Arn"}, + "includedData":{"shape":"IncludedData"} } }, "DescribeStateMachineForExecutionOutput":{ @@ -985,14 +1037,16 @@ "tracingConfiguration":{"shape":"TracingConfiguration"}, "mapRunArn":{"shape":"LongArn"}, "label":{"shape":"MapRunLabel"}, - "revisionId":{"shape":"RevisionId"} + "revisionId":{"shape":"RevisionId"}, + "encryptionConfiguration":{"shape":"EncryptionConfiguration"} } }, "DescribeStateMachineInput":{ "type":"structure", "required":["stateMachineArn"], "members":{ - "stateMachineArn":{"shape":"Arn"} + "stateMachineArn":{"shape":"Arn"}, + "includedData":{"shape":"IncludedData"} } }, "DescribeStateMachineOutput":{ @@ -1017,10 +1071,30 @@ "tracingConfiguration":{"shape":"TracingConfiguration"}, "label":{"shape":"MapRunLabel"}, "revisionId":{"shape":"RevisionId"}, - "description":{"shape":"VersionDescription"} + "description":{"shape":"VersionDescription"}, + "encryptionConfiguration":{"shape":"EncryptionConfiguration"} } }, "Enabled":{"type":"boolean"}, + "EncryptionConfiguration":{ + "type":"structure", + "required":["type"], + "members":{ + "kmsKeyId":{"shape":"KmsKeyId"}, + "kmsDataKeyReusePeriodSeconds":{ + "shape":"KmsDataKeyReusePeriodSeconds", + "box":true + }, + "type":{"shape":"EncryptionType"} + } + }, + "EncryptionType":{ + "type":"string", + "enum":[ + "AWS_OWNED_KEY", + "CUSTOMER_MANAGED_KMS_KEY" + ] + }, "ErrorMessage":{"type":"string"}, "EventId":{"type":"long"}, "ExecutionAbortedEventDetails":{ @@ -1330,6 +1404,13 @@ "type":"boolean", "box":true }, + "IncludedData":{ + "type":"string", + "enum":[ + "ALL_DATA", + "METADATA_ONLY" + ] + }, "InspectionData":{ "type":"structure", "members":{ @@ -1386,6 +1467,13 @@ }, "exception":true }, + "InvalidEncryptionConfiguration":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "InvalidExecutionInput":{ "type":"structure", "members":{ @@ -1428,6 +1516,49 @@ }, "exception":true }, + "KmsAccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "KmsDataKeyReusePeriodSeconds":{ + "type":"integer", + "box":true, + "max":900, + "min":60 + }, + "KmsInvalidStateException":{ + "type":"structure", + "members":{ + "kmsKeyState":{"shape":"KmsKeyState"}, + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "KmsKeyId":{ + "type":"string", + "max":2048, + "min":1 + }, + "KmsKeyState":{ + "type":"string", + "enum":[ + "DISABLED", + "PENDING_DELETION", + "PENDING_IMPORT", + "UNAVAILABLE", + "CREATING" + ] + }, + "KmsThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "LambdaFunctionFailedEventDetails":{ "type":"structure", "members":{ @@ -1937,7 +2068,8 @@ "stateMachineArn":{"shape":"Arn"}, "name":{"shape":"Name"}, "input":{"shape":"SensitiveData"}, - "traceHeader":{"shape":"TraceHeader"} + "traceHeader":{"shape":"TraceHeader"}, + "includedData":{"shape":"IncludedData"} } }, "StartSyncExecutionOutput":{ @@ -2286,7 +2418,7 @@ }, "TaskToken":{ "type":"string", - "max":1024, + "max":2048, "min":1 }, "TestExecutionStatus":{ @@ -2429,7 +2561,8 @@ "loggingConfiguration":{"shape":"LoggingConfiguration"}, "tracingConfiguration":{"shape":"TracingConfiguration"}, "publish":{"shape":"Publish"}, - "versionDescription":{"shape":"VersionDescription"} + "versionDescription":{"shape":"VersionDescription"}, + "encryptionConfiguration":{"shape":"EncryptionConfiguration"} } }, "UpdateStateMachineOutput":{ diff --git a/models/apis/states/2016-11-23/docs-2.json b/models/apis/states/2016-11-23/docs-2.json index 9c4a495f719..05123f8d11f 100644 --- a/models/apis/states/2016-11-23/docs-2.json +++ b/models/apis/states/2016-11-23/docs-2.json @@ -1,9 +1,9 @@ { "version": "2.0", - "service": "Step Functions

Step Functions is a service that lets you coordinate the components of distributed applications and microservices using visual workflows.

You can use Step Functions to build applications from individual components, each of which performs a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a console that helps visualize the components of your application as a series of steps. Step Functions automatically triggers and tracks each step, and retries steps when there are errors, so your application executes predictably and in the right order every time. Step Functions logs the state of each step, so you can quickly diagnose and debug any issues.

Step Functions manages operations and underlying infrastructure to ensure your application is available at any scale. You can run tasks on Amazon Web Services, your own servers, or any system that has access to Amazon Web Services. You can access and use Step Functions using the console, the Amazon Web Services SDKs, or an HTTP API. For more information about Step Functions, see the Step Functions Developer Guide .

If you use the Step Functions API actions using Amazon Web Services SDK integrations, make sure the API actions are in camel case and parameter names are in Pascal case. For example, you could use Step Functions API action startSyncExecution and specify its parameter as StateMachineArn.

", + "service": "Step Functions

Step Functions coordinates the components of distributed applications and microservices using visual workflows.

You can use Step Functions to build applications from individual components, each of which performs a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a console that helps visualize the components of your application as a series of steps. Step Functions automatically triggers and tracks each step, and retries steps when there are errors, so your application executes predictably and in the right order every time. Step Functions logs the state of each step, so you can quickly diagnose and debug any issues.

Step Functions manages operations and underlying infrastructure to ensure your application is available at any scale. You can run tasks on Amazon Web Services, your own servers, or any system that has access to Amazon Web Services. You can access and use Step Functions using the console, the Amazon Web Services SDKs, or an HTTP API. For more information about Step Functions, see the Step Functions Developer Guide .

If you use the Step Functions API actions using Amazon Web Services SDK integrations, make sure the API actions are in camel case and parameter names are in Pascal case. For example, you could use Step Functions API action startSyncExecution and specify its parameter as StateMachineArn.

", "operations": { "CreateActivity": "

Creates an activity. An activity is a task that you write in any programming language and host on any machine that has access to Step Functions. Activities must poll Step Functions using the GetActivityTask API action and respond using SendTask* API actions. This function lets Step Functions know the existence of your activity and returns an identifier for use in a state machine and when polling from the activity.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

CreateActivity is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. CreateActivity's idempotency check is based on the activity name. If a following request has different tags values, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

", - "CreateStateMachine": "

Creates a state machine. A state machine consists of a collection of states that can do work (Task states), determine to which states to transition next (Choice states), stop an execution with an error (Fail states), and so on. State machines are specified using a JSON-based, structured language. For more information, see Amazon States Language in the Step Functions User Guide.

If you set the publish parameter of this API action to true, it publishes version 1 as the first revision of the state machine.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

CreateStateMachine is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. CreateStateMachine's idempotency check is based on the state machine name, definition, type, LoggingConfiguration, and TracingConfiguration. The check is also based on the publish and versionDescription parameters. If a following request has a different roleArn or tags, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, roleArn and tags will not be updated, even if they are different.

", + "CreateStateMachine": "

Creates a state machine. A state machine consists of a collection of states that can do work (Task states), determine to which states to transition next (Choice states), stop an execution with an error (Fail states), and so on. State machines are specified using a JSON-based, structured language. For more information, see Amazon States Language in the Step Functions User Guide.

If you set the publish parameter of this API action to true, it publishes version 1 as the first revision of the state machine.

For additional control over security, you can encrypt your data using a customer-managed key for Step Functions state machines. You can configure a symmetric KMS key and data key reuse period when creating or updating a State Machine. The execution history and state machine definition will be encrypted with the key applied to the State Machine.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

CreateStateMachine is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. CreateStateMachine's idempotency check is based on the state machine name, definition, type, LoggingConfiguration, TracingConfiguration, and EncryptionConfiguration The check is also based on the publish and versionDescription parameters. If a following request has a different roleArn or tags, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, roleArn and tags will not be updated, even if they are different.

", "CreateStateMachineAlias": "

Creates an alias for a state machine that points to one or two versions of the same state machine. You can set your application to call StartExecution with an alias and update the version the alias uses without changing the client's code.

You can also map an alias to split StartExecution requests between two versions of a state machine. To do this, add a second RoutingConfig object in the routingConfiguration parameter. You must also specify the percentage of execution run requests each version should receive in both RoutingConfig objects. Step Functions randomly chooses which version runs a given execution based on the percentage you specify.

To create an alias that points to a single version, specify a single RoutingConfig object with a weight set to 100.

You can create up to 100 aliases for each state machine. You must delete unused aliases using the DeleteStateMachineAlias API action.

CreateStateMachineAlias is an idempotent API. Step Functions bases the idempotency check on the stateMachineArn, description, name, and routingConfiguration parameters. Requests that contain the same values for these parameters return a successful idempotent response without creating a duplicate resource.

Related operations:

", "DeleteActivity": "

Deletes an activity.

", "DeleteStateMachine": "

Deletes a state machine. This is an asynchronous operation. It sets the state machine's status to DELETING and begins the deletion process. A state machine is deleted only when all its executions are completed. On the next state transition, the state machine's executions are terminated.

A qualified state machine ARN can either refer to a Distributed Map state defined within a state machine, a version ARN, or an alias ARN.

The following are some examples of qualified and unqualified state machine ARNs:

This API action also deletes all versions and aliases associated with a state machine.

For EXPRESS state machines, the deletion happens eventually (usually in less than a minute). Running executions may emit logs after DeleteStateMachine API is called.

", @@ -26,21 +26,26 @@ "ListTagsForResource": "

List tags for a given resource.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

", "PublishStateMachineVersion": "

Creates a version from the current revision of a state machine. Use versions to create immutable snapshots of your state machine. You can start executions from versions either directly or with an alias. To create an alias, use CreateStateMachineAlias.

You can publish up to 1000 versions for each state machine. You must manually delete unused versions using the DeleteStateMachineVersion API action.

PublishStateMachineVersion is an idempotent API. It doesn't create a duplicate state machine version if it already exists for the current revision. Step Functions bases PublishStateMachineVersion's idempotency check on the stateMachineArn, name, and revisionId parameters. Requests with the same parameters return a successful idempotent response. If you don't specify a revisionId, Step Functions checks for a previously published version of the state machine's current revision.

Related operations:

", "RedriveExecution": "

Restarts unsuccessful executions of Standard workflows that didn't complete successfully in the last 14 days. These include failed, aborted, or timed out executions. When you redrive an execution, it continues the failed execution from the unsuccessful step and uses the same input. Step Functions preserves the results and execution history of the successful steps, and doesn't rerun these steps when you redrive an execution. Redriven executions use the same state machine definition and execution ARN as the original execution attempt.

For workflows that include an Inline Map or Parallel state, RedriveExecution API action reschedules and redrives only the iterations and branches that failed or aborted.

To redrive a workflow that includes a Distributed Map state whose Map Run failed, you must redrive the parent workflow. The parent workflow redrives all the unsuccessful states, including a failed Map Run. If a Map Run was not started in the original execution attempt, the redriven parent workflow starts the Map Run.

This API action is not supported by EXPRESS state machines.

However, you can restart the unsuccessful executions of Express child workflows in a Distributed Map by redriving its Map Run. When you redrive a Map Run, the Express child workflows are rerun using the StartExecution API action. For more information, see Redriving Map Runs.

You can redrive executions if your original execution meets the following conditions:

", - "SendTaskFailure": "

Used by activity workers, Task states using the callback pattern, and optionally Task states using the job run pattern to report that the task identified by the taskToken failed.

", + "SendTaskFailure": "

Used by activity workers, Task states using the callback pattern, and optionally Task states using the job run pattern to report that the task identified by the taskToken failed.

For an execution with encryption enabled, Step Functions will encrypt the error and cause fields using the KMS key for the execution role.

A caller can mark a task as fail without using any KMS permissions in the execution role if the caller provides a null value for both error and cause fields because no data needs to be encrypted.

", "SendTaskHeartbeat": "

Used by activity workers and Task states using the callback pattern, and optionally Task states using the job run pattern to report to Step Functions that the task represented by the specified taskToken is still making progress. This action resets the Heartbeat clock. The Heartbeat threshold is specified in the state machine's Amazon States Language definition (HeartbeatSeconds). This action does not in itself create an event in the execution history. However, if the task times out, the execution history contains an ActivityTimedOut entry for activities, or a TaskTimedOut entry for tasks using the job run or callback pattern.

The Timeout of a task, defined in the state machine's Amazon States Language definition, is its maximum allowed duration, regardless of the number of SendTaskHeartbeat requests received. Use HeartbeatSeconds to configure the timeout interval for heartbeats.

", "SendTaskSuccess": "

Used by activity workers, Task states using the callback pattern, and optionally Task states using the job run pattern to report that the task identified by the taskToken completed successfully.

", "StartExecution": "

Starts a state machine execution.

A qualified state machine ARN can either refer to a Distributed Map state defined within a state machine, a version ARN, or an alias ARN.

The following are some examples of qualified and unqualified state machine ARNs:

If you start an execution with an unqualified state machine ARN, Step Functions uses the latest revision of the state machine for the execution.

To start executions of a state machine version, call StartExecution and provide the version ARN or the ARN of an alias that points to the version.

StartExecution is idempotent for STANDARD workflows. For a STANDARD workflow, if you call StartExecution with the same name and input as a running execution, the call succeeds and return the same response as the original request. If the execution is closed or if the input is different, it returns a 400 ExecutionAlreadyExists error. You can reuse names after 90 days.

StartExecution isn't idempotent for EXPRESS workflows.

", "StartSyncExecution": "

Starts a Synchronous Express state machine execution. StartSyncExecution is not available for STANDARD workflows.

StartSyncExecution will return a 200 OK response, even if your execution fails, because the status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your execution from running, such as permissions errors, limit errors, or issues with your state machine code and configuration.

This API action isn't logged in CloudTrail.

", - "StopExecution": "

Stops an execution.

This API action is not supported by EXPRESS state machines.

", + "StopExecution": "

Stops an execution.

This API action is not supported by EXPRESS state machines.

For an execution with encryption enabled, Step Functions will encrypt the error and cause fields using the KMS key for the execution role.

A caller can stop an execution without using any KMS permissions in the execution role if the caller provides a null value for both error and cause fields because no data needs to be encrypted.

", "TagResource": "

Add a tag to a Step Functions resource.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

", "TestState": "

Accepts the definition of a single state and executes it. You can test a state without creating a state machine or updating an existing state machine. Using this API, you can test the following:

You can call this API on only one state at a time. The states that you can test include the following:

The TestState API assumes an IAM role which must contain the required IAM permissions for the resources your state is accessing. For information about the permissions a state might need, see IAM permissions to test a state.

The TestState API can run for up to five minutes. If the execution of a state exceeds this duration, it fails with the States.Timeout error.

TestState doesn't support Activity tasks, .sync or .waitForTaskToken service integration patterns, Parallel, or Map states.

", "UntagResource": "

Remove a tag from a Step Functions resource

", "UpdateMapRun": "

Updates an in-progress Map Run's configuration to include changes to the settings that control maximum concurrency and Map Run failure.

", - "UpdateStateMachine": "

Updates an existing state machine by modifying its definition, roleArn, or loggingConfiguration. Running executions will continue to use the previous definition and roleArn. You must include at least one of definition or roleArn or you will receive a MissingRequiredParameter error.

A qualified state machine ARN refers to a Distributed Map state defined within a state machine. For example, the qualified state machine ARN arn:partition:states:region:account-id:stateMachine:stateMachineName/mapStateLabel refers to a Distributed Map state with a label mapStateLabel in the state machine named stateMachineName.

A qualified state machine ARN can either refer to a Distributed Map state defined within a state machine, a version ARN, or an alias ARN.

The following are some examples of qualified and unqualified state machine ARNs:

After you update your state machine, you can set the publish parameter to true in the same action to publish a new version. This way, you can opt-in to strict versioning of your state machine.

Step Functions assigns monotonically increasing integers for state machine versions, starting at version number 1.

All StartExecution calls within a few seconds use the updated definition and roleArn. Executions started immediately after you call UpdateStateMachine may use the previous state machine definition and roleArn.

", + "UpdateStateMachine": "

Updates an existing state machine by modifying its definition, roleArn, loggingConfiguration, or EncryptionConfiguration. Running executions will continue to use the previous definition and roleArn. You must include at least one of definition or roleArn or you will receive a MissingRequiredParameter error.

A qualified state machine ARN refers to a Distributed Map state defined within a state machine. For example, the qualified state machine ARN arn:partition:states:region:account-id:stateMachine:stateMachineName/mapStateLabel refers to a Distributed Map state with a label mapStateLabel in the state machine named stateMachineName.

A qualified state machine ARN can either refer to a Distributed Map state defined within a state machine, a version ARN, or an alias ARN.

The following are some examples of qualified and unqualified state machine ARNs:

After you update your state machine, you can set the publish parameter to true in the same action to publish a new version. This way, you can opt-in to strict versioning of your state machine.

Step Functions assigns monotonically increasing integers for state machine versions, starting at version number 1.

All StartExecution calls within a few seconds use the updated definition and roleArn. Executions started immediately after you call UpdateStateMachine may use the previous state machine definition and roleArn.

", "UpdateStateMachineAlias": "

Updates the configuration of an existing state machine alias by modifying its description or routingConfiguration.

You must specify at least one of the description or routingConfiguration parameters to update a state machine alias.

UpdateStateMachineAlias is an idempotent API. Step Functions bases the idempotency check on the stateMachineAliasArn, description, and routingConfiguration parameters. Requests with the same parameters return an idempotent response.

This operation is eventually consistent. All StartExecution requests made within a few seconds use the latest alias configuration. Executions started immediately after calling UpdateStateMachineAlias may use the previous routing configuration.

Related operations:

", "ValidateStateMachineDefinition": "

Validates the syntax of a state machine definition.

You can validate that a state machine definition is correct without creating a state machine resource. Step Functions will implicitly perform the same syntax check when you invoke CreateStateMachine and UpdateStateMachine. State machine definitions are specified using a JSON-based, structured language. For more information on Amazon States Language see Amazon States Language (ASL).

Suggested uses for ValidateStateMachineDefinition:

Errors found in the state machine definition will be returned in the response as a list of diagnostic elements, rather than raise an exception.

" }, "shapes": { + "ActivityAlreadyExists": { + "base": "

Activity already exists. EncryptionConfiguration may not be updated.

", + "refs": { + } + }, "ActivityDoesNotExist": { "base": "

The specified activity does not exist.

", "refs": { @@ -272,7 +277,7 @@ "refs": { "CreateStateMachineInput$definition": "

The Amazon States Language definition of the state machine. See Amazon States Language.

", "DescribeStateMachineForExecutionOutput$definition": "

The Amazon States Language definition of the state machine. See Amazon States Language.

", - "DescribeStateMachineOutput$definition": "

The Amazon States Language definition of the state machine. See Amazon States Language.

", + "DescribeStateMachineOutput$definition": "

The Amazon States Language definition of the state machine. See Amazon States Language.

If called with includedData = METADATA_ONLY, the returned definition will be {}.

", "TestStateInput$definition": "

The Amazon States Language (ASL) definition of the state.

", "UpdateStateMachineInput$definition": "

The Amazon States Language definition of the state machine. See Amazon States Language.

", "ValidateStateMachineDefinitionInput$definition": "

The Amazon States Language definition of the state machine. For more information, see Amazon States Language (ASL).

" @@ -384,9 +389,27 @@ "TracingConfiguration$enabled": "

When set to true, X-Ray tracing is enabled.

" } }, + "EncryptionConfiguration": { + "base": "

Settings to configure server-side encryption.

For additional control over security, you can encrypt your data using a customer-managed key for Step Functions state machines and activities. You can configure a symmetric KMS key and data key reuse period when creating or updating a State Machine, and when creating an Activity. The execution history and state machine definition will be encrypted with the key applied to the State Machine. Activity inputs will be encrypted with the key applied to the Activity.

Step Functions automatically enables encryption at rest using Amazon Web Services owned keys at no charge. However, KMS charges apply when using a customer managed key. For more information about pricing, see Key Management Service pricing.

For more information on KMS, see What is Key Management Service?

", + "refs": { + "CreateActivityInput$encryptionConfiguration": "

Settings to configure server-side encryption.

", + "CreateStateMachineInput$encryptionConfiguration": "

Settings to configure server-side encryption.

", + "DescribeActivityOutput$encryptionConfiguration": "

Settings for configured server-side encryption.

", + "DescribeStateMachineForExecutionOutput$encryptionConfiguration": "

Settings to configure server-side encryption.

", + "DescribeStateMachineOutput$encryptionConfiguration": "

Settings to configure server-side encryption.

", + "UpdateStateMachineInput$encryptionConfiguration": "

Settings to configure server-side encryption.

" + } + }, + "EncryptionType": { + "base": null, + "refs": { + "EncryptionConfiguration$type": "

Encryption type

" + } + }, "ErrorMessage": { "base": null, "refs": { + "ActivityAlreadyExists$message": null, "ActivityDoesNotExist$message": null, "ActivityLimitExceeded$message": null, "ActivityWorkerLimitExceeded$message": null, @@ -397,12 +420,16 @@ "ExecutionNotRedrivable$message": null, "InvalidArn$message": null, "InvalidDefinition$message": null, + "InvalidEncryptionConfiguration$message": null, "InvalidExecutionInput$message": null, "InvalidLoggingConfiguration$message": null, "InvalidName$message": null, "InvalidOutput$message": null, "InvalidToken$message": null, "InvalidTracingConfiguration$message": null, + "KmsAccessDeniedException$message": null, + "KmsInvalidStateException$message": null, + "KmsThrottlingException$message": null, "MissingRequiredParameter$message": null, "ResourceNotFound$message": null, "ServiceQuotaExceededException$message": null, @@ -622,6 +649,15 @@ "GetExecutionHistoryInput$includeExecutionData": "

You can select whether execution data (input or output of a history event) is returned. The default is true.

" } }, + "IncludedData": { + "base": null, + "refs": { + "DescribeExecutionInput$includedData": "

If your state machine definition is encrypted with a KMS key, callers must have kms:Decrypt permission to decrypt the definition. Alternatively, you can call DescribeStateMachine API with includedData = METADATA_ONLY to get a successful response without the encrypted definition.

", + "DescribeStateMachineForExecutionInput$includedData": "

If your state machine definition is encrypted with a KMS key, callers must have kms:Decrypt permission to decrypt the definition. Alternatively, you can call the API with includedData = METADATA_ONLY to get a successful response without the encrypted definition.

", + "DescribeStateMachineInput$includedData": "

If your state machine definition is encrypted with a KMS key, callers must have kms:Decrypt permission to decrypt the definition. Alternatively, you can call the API with includedData = METADATA_ONLY to get a successful response without the encrypted definition.

When calling a labelled ARN for an encrypted state machine, the includedData = METADATA_ONLY parameter will not apply because Step Functions needs to decrypt the entire state machine definition to get the Distributed Map state’s definition. In this case, the API caller needs to have kms:Decrypt permission.

", + "StartSyncExecutionInput$includedData": "

If your state machine definition is encrypted with a KMS key, callers must have kms:Decrypt permission to decrypt the definition. Alternatively, you can call the API with includedData = METADATA_ONLY to get a successful response without the encrypted definition.

" + } + }, "InspectionData": { "base": "

Contains additional details about the state's execution, including its input and output data processing flow, and HTTP request and response information.

", "refs": { @@ -656,13 +692,18 @@ "refs": { } }, + "InvalidEncryptionConfiguration": { + "base": "

Received when encryptionConfiguration is specified but various conditions exist which make the configuration invalid. For example, if type is set to CUSTOMER_MANAGED_KMS_KEY, but kmsKeyId is null, or kmsDataKeyReusePeriodSeconds is not between 60 and 900, or the KMS key is not symmetric or inactive.

", + "refs": { + } + }, "InvalidExecutionInput": { "base": "

The provided JSON input data is not valid.

", "refs": { } }, "InvalidLoggingConfiguration": { - "base": "

", + "base": "

Configuration is not valid.

", "refs": { } }, @@ -686,6 +727,39 @@ "refs": { } }, + "KmsAccessDeniedException": { + "base": "

Either your KMS key policy or API caller does not have the required permissions.

", + "refs": { + } + }, + "KmsDataKeyReusePeriodSeconds": { + "base": null, + "refs": { + "EncryptionConfiguration$kmsDataKeyReusePeriodSeconds": "

Maximum duration that Step Functions will reuse data keys. When the period expires, Step Functions will call GenerateDataKey. Only applies to customer managed keys.

" + } + }, + "KmsInvalidStateException": { + "base": "

The KMS key is not in valid state, for example: Disabled or Deleted.

", + "refs": { + } + }, + "KmsKeyId": { + "base": null, + "refs": { + "EncryptionConfiguration$kmsKeyId": "

An alias, alias ARN, key ID, or key ARN of a symmetric encryption KMS key to encrypt data. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.

" + } + }, + "KmsKeyState": { + "base": null, + "refs": { + "KmsInvalidStateException$kmsKeyState": "

Current status of the KMS; key. For example: DISABLED, PENDING_DELETION, PENDING_IMPORT, UNAVAILABLE, CREATING.

" + } + }, + "KmsThrottlingException": { + "base": "

Received when KMS returns ThrottlingException for a KMS call that Step Functions makes on behalf of the caller.

", + "refs": { + } + }, "LambdaFunctionFailedEventDetails": { "base": "

Contains details about a Lambda function that failed during an execution.

", "refs": { @@ -1295,7 +1369,7 @@ } }, "StateMachineTypeNotSupported": { - "base": "

", + "base": "

State machine type is not supported.

", "refs": { } }, diff --git a/service/applicationautoscaling/api.go b/service/applicationautoscaling/api.go index 8067729abba..8baa0b5ac70 100644 --- a/service/applicationautoscaling/api.go +++ b/service/applicationautoscaling/api.go @@ -7804,6 +7804,12 @@ const ( // MetricTypeWorkSpacesAverageUserSessionsCapacityUtilization is a MetricType enum value MetricTypeWorkSpacesAverageUserSessionsCapacityUtilization = "WorkSpacesAverageUserSessionsCapacityUtilization" + + // MetricTypeSageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution is a MetricType enum value + MetricTypeSageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution = "SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution" + + // MetricTypeSageMakerVariantConcurrentRequestsPerModelHighResolution is a MetricType enum value + MetricTypeSageMakerVariantConcurrentRequestsPerModelHighResolution = "SageMakerVariantConcurrentRequestsPerModelHighResolution" ) // MetricType_Values returns all elements of the MetricType enum @@ -7834,6 +7840,8 @@ func MetricType_Values() []string { MetricTypeElastiCacheDatabaseCapacityUsageCountedForEvictPercentage, MetricTypeSageMakerInferenceComponentInvocationsPerCopy, MetricTypeWorkSpacesAverageUserSessionsCapacityUtilization, + MetricTypeSageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution, + MetricTypeSageMakerVariantConcurrentRequestsPerModelHighResolution, } } diff --git a/service/applicationsignals/api.go b/service/applicationsignals/api.go index d4af84426b4..d140673636f 100644 --- a/service/applicationsignals/api.go +++ b/service/applicationsignals/api.go @@ -2311,6 +2311,8 @@ type GetServiceInput struct { // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested start time will be rounded to the nearest hour. + // // EndTime is a required field EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` @@ -2340,6 +2342,8 @@ type GetServiceInput struct { // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested start time will be rounded to the nearest hour. + // // StartTime is a required field StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` } @@ -2492,9 +2496,24 @@ type GetServiceOutput struct { // The end time of the data included in the response. In a raw HTTP Query API, // it is formatted as be epoch time in seconds. For example: 1698778057. // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // EndTime is a required field EndTime *time.Time `type:"timestamp" required:"true"` + // An array of string-to-string maps that each contain information about one + // log group associated with this service. Each string-to-string map includes + // the following fields: + // + // * "Type": "AWS::Resource" + // + // * "ResourceType": "AWS::Logs::LogGroup" + // + // * "Identifier": "name-of-log-group" + LogGroupReferences []map[string]*string `type:"list"` + // A structure containing information about the service. // // Service is a required field @@ -2503,6 +2522,10 @@ type GetServiceOutput struct { // The start time of the data included in the response. In a raw HTTP Query // API, it is formatted as be epoch time in seconds. For example: 1698778057. // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // StartTime is a required field StartTime *time.Time `type:"timestamp" required:"true"` } @@ -2531,6 +2554,12 @@ func (s *GetServiceOutput) SetEndTime(v time.Time) *GetServiceOutput { return s } +// SetLogGroupReferences sets the LogGroupReferences field's value. +func (s *GetServiceOutput) SetLogGroupReferences(v []map[string]*string) *GetServiceOutput { + s.LogGroupReferences = v + return s +} + // SetService sets the Service field's value. func (s *GetServiceOutput) SetService(v *Service) *GetServiceOutput { s.Service = v @@ -2691,6 +2720,8 @@ type ListServiceDependenciesInput struct { // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested end time will be rounded to the nearest hour. + // // EndTime is a required field EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` @@ -2728,6 +2759,8 @@ type ListServiceDependenciesInput struct { // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested start time will be rounded to the nearest hour. + // // StartTime is a required field StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` } @@ -2812,6 +2845,10 @@ type ListServiceDependenciesOutput struct { // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. // For example: 1698778057 // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // EndTime is a required field EndTime *time.Time `type:"timestamp" required:"true"` @@ -2829,6 +2866,10 @@ type ListServiceDependenciesOutput struct { // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. // For example: 1698778057 // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // StartTime is a required field StartTime *time.Time `type:"timestamp" required:"true"` } @@ -2882,6 +2923,8 @@ type ListServiceDependentsInput struct { // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested start time will be rounded to the nearest hour. + // // EndTime is a required field EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` @@ -2919,6 +2962,8 @@ type ListServiceDependentsInput struct { // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested start time will be rounded to the nearest hour. + // // StartTime is a required field StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` } @@ -3003,6 +3048,10 @@ type ListServiceDependentsOutput struct { // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. // For example: 1698778057 // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // EndTime is a required field EndTime *time.Time `type:"timestamp" required:"true"` @@ -3020,6 +3069,10 @@ type ListServiceDependentsOutput struct { // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. // For example: 1698778057 // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // StartTime is a required field StartTime *time.Time `type:"timestamp" required:"true"` } @@ -3211,6 +3264,8 @@ type ListServiceOperationsInput struct { // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested end time will be rounded to the nearest hour. + // // EndTime is a required field EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` @@ -3248,6 +3303,8 @@ type ListServiceOperationsInput struct { // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested start time will be rounded to the nearest hour. + // // StartTime is a required field StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` } @@ -3332,6 +3389,10 @@ type ListServiceOperationsOutput struct { // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. // For example: 1698778057 // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // EndTime is a required field EndTime *time.Time `type:"timestamp" required:"true"` @@ -3349,6 +3410,10 @@ type ListServiceOperationsOutput struct { // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. // For example: 1698778057 // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // StartTime is a required field StartTime *time.Time `type:"timestamp" required:"true"` } @@ -3402,6 +3467,8 @@ type ListServicesInput struct { // raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested start time will be rounded to the nearest hour. + // // EndTime is a required field EndTime *time.Time `location:"querystring" locationName:"EndTime" type:"timestamp" required:"true"` @@ -3417,6 +3484,8 @@ type ListServicesInput struct { // a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: // 1698778057 // + // Your requested start time will be rounded to the nearest hour. + // // StartTime is a required field StartTime *time.Time `location:"querystring" locationName:"StartTime" type:"timestamp" required:"true"` } @@ -3489,6 +3558,10 @@ type ListServicesOutput struct { // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. // For example: 1698778057 // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // EndTime is a required field EndTime *time.Time `type:"timestamp" required:"true"` @@ -3505,6 +3578,10 @@ type ListServicesOutput struct { // used in a raw HTTP Query API, it is formatted as be epoch time in seconds. // For example: 1698778057 // + // This displays the time that Application Signals used for the request. It + // might not match your request exactly, because it was rounded to the nearest + // hour. + // // StartTime is a required field StartTime *time.Time `type:"timestamp" required:"true"` } @@ -4079,7 +4156,7 @@ type ResourceNotFoundException struct { Message_ *string `locationName:"Message" type:"string"` - // Cannot find the resource id. + // Can't find the resource id. // // ResourceId is a required field ResourceId *string `type:"string" required:"true"` @@ -4286,6 +4363,17 @@ type Service struct { // KeyAttributes is a required field KeyAttributes map[string]*string `min:"1" type:"map" required:"true"` + // An array of string-to-string maps that each contain information about one + // log group associated with this service. Each string-to-string map includes + // the following fields: + // + // * "Type": "AWS::Resource" + // + // * "ResourceType": "AWS::Logs::LogGroup" + // + // * "Identifier": "name-of-log-group" + LogGroupReferences []map[string]*string `type:"list"` + // An array of structures that each contain information about one metric associated // with this service. // @@ -4323,6 +4411,12 @@ func (s *Service) SetKeyAttributes(v map[string]*string) *Service { return s } +// SetLogGroupReferences sets the LogGroupReferences field's value. +func (s *Service) SetLogGroupReferences(v []map[string]*string) *Service { + s.LogGroupReferences = v + return s +} + // SetMetricReferences sets the MetricReferences field's value. func (s *Service) SetMetricReferences(v []*MetricReference) *Service { s.MetricReferences = v diff --git a/service/applicationsignals/doc.go b/service/applicationsignals/doc.go index 8758c447693..d039a0b43ac 100644 --- a/service/applicationsignals/doc.go +++ b/service/applicationsignals/doc.go @@ -3,9 +3,6 @@ // Package applicationsignals provides the client and types for making API // requests to Amazon CloudWatch Application Signals. // -// This is a Preview release of the Application Signals API Reference. Operations -// and parameters are subject to change before the general availability release. -// // Use CloudWatch Application Signals for comprehensive observability of your // cloud-based applications. It enables real-time service health dashboards // and helps you track long-term performance trends against your business goals. @@ -26,6 +23,10 @@ // discovers, that gives you a visual representation of your applications, // dependencies, and their connectivity. // +// Application Signals works with CloudWatch RUM, CloudWatch Synthetics canaries, +// and Amazon Web Services Service Catalog AppRegistry, to display your client +// pages, Synthetics canaries, and application names within dashboards and maps. +// // See https://docs.aws.amazon.com/goto/WebAPI/application-signals-2024-04-15 for more information on this service. // // See applicationsignals package documentation for more information. diff --git a/service/bedrockruntime/api.go b/service/bedrockruntime/api.go index c408d4567eb..5aa76467e15 100644 --- a/service/bedrockruntime/api.go +++ b/service/bedrockruntime/api.go @@ -83,7 +83,10 @@ func (c *BedrockRuntime) ApplyGuardrailRequest(input *ApplyGuardrailInput) (req // again. // // - ThrottlingException -// The number of requests exceeds the limit. Resubmit your request later. +// Your request was throttled because of service-wide limitations. Resubmit +// your request later or in a different region. You can also purchase Provisioned +// Throughput (https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) +// to increase the rate or number of tokens you can process. // // - InternalServerException // An internal server error occurred. Retry your request. @@ -92,7 +95,9 @@ func (c *BedrockRuntime) ApplyGuardrailRequest(input *ApplyGuardrailInput) (req // Input validation failed. Check your request parameters and retry the request. // // - ServiceQuotaExceededException -// The number of requests exceeds the service quota. Resubmit your request later. +// Your request exceeds the service quota for your account. You can view your +// quotas at Viewing service quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/gs-request-quota.html). +// You can resubmit your request later. // // See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-runtime-2023-09-30/ApplyGuardrail func (c *BedrockRuntime) ApplyGuardrail(input *ApplyGuardrailInput) (*ApplyGuardrailOutput, error) { @@ -161,10 +166,13 @@ func (c *BedrockRuntime) ConverseRequest(input *ConverseInput) (req *request.Req // // Sends messages to the specified Amazon Bedrock model. Converse provides a // consistent interface that works with all models that support messages. This -// allows you to write code once and use it with different models. Should a -// model have unique inference parameters, you can also pass those unique parameters +// allows you to write code once and use it with different models. If a model +// has unique inference parameters, you can also pass those unique parameters // to the model. // +// Amazon Bedrock doesn't store any text, images, or documents that you provide +// as content. The data is only used to generate the response. +// // For information about the Converse API, see Use the Converse API in the Amazon // Bedrock User Guide. To use a guardrail, see Use a guardrail with the Converse // API in the Amazon Bedrock User Guide. To use a tool with a model, see Tool @@ -191,7 +199,10 @@ func (c *BedrockRuntime) ConverseRequest(input *ConverseInput) (req *request.Req // again. // // - ThrottlingException -// The number of requests exceeds the limit. Resubmit your request later. +// Your request was throttled because of service-wide limitations. Resubmit +// your request later or in a different region. You can also purchase Provisioned +// Throughput (https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) +// to increase the rate or number of tokens you can process. // // - ModelTimeoutException // The request took too long to process. Processing time exceeded the model @@ -200,6 +211,9 @@ func (c *BedrockRuntime) ConverseRequest(input *ConverseInput) (req *request.Req // - InternalServerException // An internal server error occurred. Retry your request. // +// - ServiceUnavailableException +// The service isn't currently available. Try again later. +// // - ValidationException // Input validation failed. Check your request parameters and retry the request. // @@ -291,6 +305,12 @@ func (c *BedrockRuntime) ConverseStreamRequest(input *ConverseStreamInput) (req // To find out if a model supports streaming, call GetFoundationModel (https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetFoundationModel.html) // and check the responseStreamingSupported field in the response. // +// The CLI doesn't support streaming operations in Amazon Bedrock, including +// ConverseStream. +// +// Amazon Bedrock doesn't store any text, images, or documents that you provide +// as content. The data is only used to generate the response. +// // For information about the Converse API, see Use the Converse API in the Amazon // Bedrock User Guide. To use a guardrail, see Use a guardrail with the Converse // API in the Amazon Bedrock User Guide. To use a tool with a model, see Tool @@ -319,7 +339,10 @@ func (c *BedrockRuntime) ConverseStreamRequest(input *ConverseStreamInput) (req // again. // // - ThrottlingException -// The number of requests exceeds the limit. Resubmit your request later. +// Your request was throttled because of service-wide limitations. Resubmit +// your request later or in a different region. You can also purchase Provisioned +// Throughput (https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) +// to increase the rate or number of tokens you can process. // // - ModelTimeoutException // The request took too long to process. Processing time exceeded the model @@ -328,6 +351,9 @@ func (c *BedrockRuntime) ConverseStreamRequest(input *ConverseStreamInput) (req // - InternalServerException // An internal server error occurred. Retry your request. // +// - ServiceUnavailableException +// The service isn't currently available. Try again later. +// // - ValidationException // Input validation failed. Check your request parameters and retry the request. // @@ -581,7 +607,10 @@ func (c *BedrockRuntime) InvokeModelRequest(input *InvokeModelInput) (req *reque // again. // // - ThrottlingException -// The number of requests exceeds the limit. Resubmit your request later. +// Your request was throttled because of service-wide limitations. Resubmit +// your request later or in a different region. You can also purchase Provisioned +// Throughput (https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) +// to increase the rate or number of tokens you can process. // // - ModelTimeoutException // The request took too long to process. Processing time exceeded the model @@ -590,6 +619,9 @@ func (c *BedrockRuntime) InvokeModelRequest(input *InvokeModelInput) (req *reque // - InternalServerException // An internal server error occurred. Retry your request. // +// - ServiceUnavailableException +// The service isn't currently available. Try again later. +// // - ValidationException // Input validation failed. Check your request parameters and retry the request. // @@ -597,7 +629,9 @@ func (c *BedrockRuntime) InvokeModelRequest(input *InvokeModelInput) (req *reque // The model specified in the request is not ready to serve inference requests. // // - ServiceQuotaExceededException -// The number of requests exceeds the service quota. Resubmit your request later. +// Your request exceeds the service quota for your account. You can view your +// quotas at Viewing service quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/gs-request-quota.html). +// You can resubmit your request later. // // - ModelErrorException // The request failed due to an error while processing the model. @@ -682,7 +716,8 @@ func (c *BedrockRuntime) InvokeModelWithResponseStreamRequest(input *InvokeModel // To see if a model supports streaming, call GetFoundationModel (https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetFoundationModel.html) // and check the responseStreamingSupported field in the response. // -// The CLI doesn't support InvokeModelWithResponseStream. +// The CLI doesn't support streaming operations in Amazon Bedrock, including +// InvokeModelWithResponseStream. // // For example code, see Invoke model with streaming code example in the Amazon // Bedrock User Guide. @@ -707,7 +742,10 @@ func (c *BedrockRuntime) InvokeModelWithResponseStreamRequest(input *InvokeModel // again. // // - ThrottlingException -// The number of requests exceeds the limit. Resubmit your request later. +// Your request was throttled because of service-wide limitations. Resubmit +// your request later or in a different region. You can also purchase Provisioned +// Throughput (https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) +// to increase the rate or number of tokens you can process. // // - ModelTimeoutException // The request took too long to process. Processing time exceeded the model @@ -716,6 +754,9 @@ func (c *BedrockRuntime) InvokeModelWithResponseStreamRequest(input *InvokeModel // - InternalServerException // An internal server error occurred. Retry your request. // +// - ServiceUnavailableException +// The service isn't currently available. Try again later. +// // - ModelStreamErrorException // An error occurred while streaming the response. Retry your request. // @@ -726,7 +767,9 @@ func (c *BedrockRuntime) InvokeModelWithResponseStreamRequest(input *InvokeModel // The model specified in the request is not ready to serve inference requests. // // - ServiceQuotaExceededException -// The number of requests exceeds the service quota. Resubmit your request later. +// Your request exceeds the service quota for your account. You can view your +// quotas at Viewing service quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/gs-request-quota.html). +// You can resubmit your request later. // // - ModelErrorException // The request failed due to an error while processing the model. @@ -2356,6 +2399,8 @@ func (u unmarshalerForConverseStreamOutput_Event) UnmarshalerForEventName(eventT return newErrorInternalServerException(u.metadata).(eventstreamapi.Unmarshaler), nil case "modelStreamErrorException": return newErrorModelStreamErrorException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "serviceUnavailableException": + return newErrorServiceUnavailableException(u.metadata).(eventstreamapi.Unmarshaler), nil case "throttlingException": return newErrorThrottlingException(u.metadata).(eventstreamapi.Unmarshaler), nil case "validationException": @@ -5276,6 +5321,8 @@ func (u unmarshalerForResponseStreamEvent) UnmarshalerForEventName(eventType str return newErrorModelStreamErrorException(u.metadata).(eventstreamapi.Unmarshaler), nil case "modelTimeoutException": return newErrorModelTimeoutException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "serviceUnavailableException": + return newErrorServiceUnavailableException(u.metadata).(eventstreamapi.Unmarshaler), nil case "throttlingException": return newErrorThrottlingException(u.metadata).(eventstreamapi.Unmarshaler), nil case "validationException": @@ -5314,7 +5361,9 @@ func (e *ResponseStreamUnknownEvent) UnmarshalEvent( return nil } -// The number of requests exceeds the service quota. Resubmit your request later. +// Your request exceeds the service quota for your account. You can view your +// quotas at Viewing service quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/gs-request-quota.html). +// You can resubmit your request later. type ServiceQuotaExceededException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -5378,6 +5427,102 @@ func (s *ServiceQuotaExceededException) RequestID() string { return s.RespMetadata.RequestID } +// The service isn't currently available. Try again later. +type ServiceUnavailableException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceUnavailableException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceUnavailableException) GoString() string { + return s.String() +} + +// The ServiceUnavailableException is and event in the ConverseStreamOutput_ group of events. +func (s *ServiceUnavailableException) eventConverseStreamOutput_() {} + +// The ServiceUnavailableException is and event in the ResponseStream group of events. +func (s *ServiceUnavailableException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the ServiceUnavailableException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *ServiceUnavailableException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *ServiceUnavailableException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error { + return &ServiceUnavailableException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceUnavailableException) Code() string { + return "ServiceUnavailableException" +} + +// Message returns the exception's message. +func (s *ServiceUnavailableException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceUnavailableException) OrigErr() error { + return nil +} + +func (s *ServiceUnavailableException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceUnavailableException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceUnavailableException) RequestID() string { + return s.RespMetadata.RequestID +} + // The model must request a specific tool. For example, {"tool" : {"name" : // "Your tool name"}}. // @@ -5495,7 +5640,10 @@ func (s *SystemContentBlock) SetText(v string) *SystemContentBlock { return s } -// The number of requests exceeds the limit. Resubmit your request later. +// Your request was throttled because of service-wide limitations. Resubmit +// your request later or in a different region. You can also purchase Provisioned +// Throughput (https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) +// to increase the rate or number of tokens you can process. type ThrottlingException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` diff --git a/service/bedrockruntime/errors.go b/service/bedrockruntime/errors.go index b78384445bb..cecb3e5de06 100644 --- a/service/bedrockruntime/errors.go +++ b/service/bedrockruntime/errors.go @@ -55,13 +55,24 @@ const ( // ErrCodeServiceQuotaExceededException for service response error code // "ServiceQuotaExceededException". // - // The number of requests exceeds the service quota. Resubmit your request later. + // Your request exceeds the service quota for your account. You can view your + // quotas at Viewing service quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/gs-request-quota.html). + // You can resubmit your request later. ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + // ErrCodeServiceUnavailableException for service response error code + // "ServiceUnavailableException". + // + // The service isn't currently available. Try again later. + ErrCodeServiceUnavailableException = "ServiceUnavailableException" + // ErrCodeThrottlingException for service response error code // "ThrottlingException". // - // The number of requests exceeds the limit. Resubmit your request later. + // Your request was throttled because of service-wide limitations. Resubmit + // your request later or in a different region. You can also purchase Provisioned + // Throughput (https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) + // to increase the rate or number of tokens you can process. ErrCodeThrottlingException = "ThrottlingException" // ErrCodeValidationException for service response error code @@ -80,6 +91,7 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "ModelTimeoutException": newErrorModelTimeoutException, "ResourceNotFoundException": newErrorResourceNotFoundException, "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ServiceUnavailableException": newErrorServiceUnavailableException, "ThrottlingException": newErrorThrottlingException, "ValidationException": newErrorValidationException, } diff --git a/service/bedrockruntime/eventstream_test.go b/service/bedrockruntime/eventstream_test.go index b00292c9afb..eb5ad916ea5 100644 --- a/service/bedrockruntime/eventstream_test.go +++ b/service/bedrockruntime/eventstream_test.go @@ -2041,6 +2041,7 @@ func TestConverseStream_ReadException(t *testing.T) { var _ awserr.Error = (*InternalServerException)(nil) var _ awserr.Error = (*ModelStreamErrorException)(nil) +var _ awserr.Error = (*ServiceUnavailableException)(nil) var _ awserr.Error = (*ThrottlingException)(nil) var _ awserr.Error = (*ValidationException)(nil) @@ -2341,6 +2342,7 @@ func TestInvokeModelWithResponseStream_ReadException(t *testing.T) { var _ awserr.Error = (*InternalServerException)(nil) var _ awserr.Error = (*ModelStreamErrorException)(nil) var _ awserr.Error = (*ModelTimeoutException)(nil) +var _ awserr.Error = (*ServiceUnavailableException)(nil) var _ awserr.Error = (*ThrottlingException)(nil) var _ awserr.Error = (*ValidationException)(nil) diff --git a/service/codecommit/api.go b/service/codecommit/api.go index 0fe4ba9adc2..07c3e8cfb51 100644 --- a/service/codecommit/api.go +++ b/service/codecommit/api.go @@ -1591,6 +1591,9 @@ func (c *CodeCommit) CreateRepositoryRequest(input *CreateRepositoryInput) (req // - RepositoryLimitExceededException // A repository resource limit was exceeded. // +// - OperationNotAllowedException +// The requested action is not allowed. +// // - EncryptionIntegrityChecksFailedException // An encryption integrity check failed. // @@ -16210,7 +16213,7 @@ type CreateRepositoryInput struct { // The ID of the encryption key. You can view the ID of an encryption key in // the KMS console, or use the KMS APIs to programmatically retrieve a key ID. - // For more information about acceptable values for kmsKeyID, see KeyId (https://docs.aws.amazon.com/APIReference/API_Decrypt.html#KMS-Decrypt-request-KeyId) + // For more information about acceptable values for kmsKeyID, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-KeyId) // in the Decrypt API description in the Key Management Service API Reference. // // If no key is specified, the default aws/codecommit Amazon Web Services managed @@ -29546,6 +29549,70 @@ func (s *ObjectTypes) SetSource(v string) *ObjectTypes { return s } +// The requested action is not allowed. +type OperationNotAllowedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OperationNotAllowedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OperationNotAllowedException) GoString() string { + return s.String() +} + +func newErrorOperationNotAllowedException(v protocol.ResponseMetadata) error { + return &OperationNotAllowedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *OperationNotAllowedException) Code() string { + return "OperationNotAllowedException" +} + +// Message returns the exception's message. +func (s *OperationNotAllowedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *OperationNotAllowedException) OrigErr() error { + return nil +} + +func (s *OperationNotAllowedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *OperationNotAllowedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *OperationNotAllowedException) RequestID() string { + return s.RespMetadata.RequestID +} + // Returns information about the template that created the approval rule for // a pull request. type OriginApprovalRuleTemplate struct { @@ -36606,7 +36673,7 @@ type UpdateRepositoryEncryptionKeyInput struct { // The ID of the encryption key. You can view the ID of an encryption key in // the KMS console, or use the KMS APIs to programmatically retrieve a key ID. - // For more information about acceptable values for keyID, see KeyId (https://docs.aws.amazon.com/APIReference/API_Decrypt.html#KMS-Decrypt-request-KeyId) + // For more information about acceptable values for keyID, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-KeyId) // in the Decrypt API description in the Key Management Service API Reference. // // KmsKeyId is a required field diff --git a/service/codecommit/errors.go b/service/codecommit/errors.go index b3b8dade8ac..96f5e2b55e6 100644 --- a/service/codecommit/errors.go +++ b/service/codecommit/errors.go @@ -966,6 +966,12 @@ const ( // of approval rules associated with it. ErrCodeNumberOfRulesExceededException = "NumberOfRulesExceededException" + // ErrCodeOperationNotAllowedException for service response error code + // "OperationNotAllowedException". + // + // The requested action is not allowed. + ErrCodeOperationNotAllowedException = "OperationNotAllowedException" + // ErrCodeOverrideAlreadySetException for service response error code // "OverrideAlreadySetException". // @@ -1435,6 +1441,7 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "NoChangeException": newErrorNoChangeException, "NumberOfRuleTemplatesExceededException": newErrorNumberOfRuleTemplatesExceededException, "NumberOfRulesExceededException": newErrorNumberOfRulesExceededException, + "OperationNotAllowedException": newErrorOperationNotAllowedException, "OverrideAlreadySetException": newErrorOverrideAlreadySetException, "OverrideStatusRequiredException": newErrorOverrideStatusRequiredException, "ParentCommitDoesNotExistException": newErrorParentCommitDoesNotExistException, diff --git a/service/datazone/api.go b/service/datazone/api.go index ac7a59e9a20..25aa7b4c2e7 100644 --- a/service/datazone/api.go +++ b/service/datazone/api.go @@ -5409,6 +5409,101 @@ func (c *DataZone) GetEnvironmentBlueprintConfigurationWithContext(ctx aws.Conte return out, req.Send() } +const opGetEnvironmentCredentials = "GetEnvironmentCredentials" + +// GetEnvironmentCredentialsRequest generates a "aws/request.Request" representing the +// client's request for the GetEnvironmentCredentials operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetEnvironmentCredentials for more information on using the GetEnvironmentCredentials +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetEnvironmentCredentialsRequest method. +// req, resp := client.GetEnvironmentCredentialsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironmentCredentials +func (c *DataZone) GetEnvironmentCredentialsRequest(input *GetEnvironmentCredentialsInput) (req *request.Request, output *GetEnvironmentCredentialsOutput) { + op := &request.Operation{ + Name: opGetEnvironmentCredentials, + HTTPMethod: "GET", + HTTPPath: "/v2/domains/{domainIdentifier}/environments/{environmentIdentifier}/credentials", + } + + if input == nil { + input = &GetEnvironmentCredentialsInput{} + } + + output = &GetEnvironmentCredentialsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetEnvironmentCredentials API operation for Amazon DataZone. +// +// Gets the credentials of an environment in Amazon DataZone. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DataZone's +// API operation GetEnvironmentCredentials for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// The request has failed because of an unknown error, exception or failure. +// +// - ResourceNotFoundException +// The specified resource cannot be found. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by the Amazon Web Services +// service. +// +// - UnauthorizedException +// You do not have permission to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironmentCredentials +func (c *DataZone) GetEnvironmentCredentials(input *GetEnvironmentCredentialsInput) (*GetEnvironmentCredentialsOutput, error) { + req, out := c.GetEnvironmentCredentialsRequest(input) + return out, req.Send() +} + +// GetEnvironmentCredentialsWithContext is the same as GetEnvironmentCredentials with the addition of +// the ability to pass a context and additional request options. +// +// See GetEnvironmentCredentials for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *DataZone) GetEnvironmentCredentialsWithContext(ctx aws.Context, input *GetEnvironmentCredentialsInput, opts ...request.Option) (*GetEnvironmentCredentialsOutput, error) { + req, out := c.GetEnvironmentCredentialsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetEnvironmentProfile = "GetEnvironmentProfile" // GetEnvironmentProfileRequest generates a "aws/request.Request" representing the @@ -27683,6 +27778,131 @@ func (s *GetEnvironmentBlueprintOutput) SetUserParameters(v []*CustomParameter) return s } +type GetEnvironmentCredentialsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the Amazon DataZone domain in which this environment and its credentials + // exist. + // + // DomainIdentifier is a required field + DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"` + + // The ID of the environment whose credentials this operation gets. + // + // EnvironmentIdentifier is a required field + EnvironmentIdentifier *string `location:"uri" locationName:"environmentIdentifier" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnvironmentCredentialsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnvironmentCredentialsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetEnvironmentCredentialsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetEnvironmentCredentialsInput"} + if s.DomainIdentifier == nil { + invalidParams.Add(request.NewErrParamRequired("DomainIdentifier")) + } + if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1)) + } + if s.EnvironmentIdentifier == nil { + invalidParams.Add(request.NewErrParamRequired("EnvironmentIdentifier")) + } + if s.EnvironmentIdentifier != nil && len(*s.EnvironmentIdentifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EnvironmentIdentifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainIdentifier sets the DomainIdentifier field's value. +func (s *GetEnvironmentCredentialsInput) SetDomainIdentifier(v string) *GetEnvironmentCredentialsInput { + s.DomainIdentifier = &v + return s +} + +// SetEnvironmentIdentifier sets the EnvironmentIdentifier field's value. +func (s *GetEnvironmentCredentialsInput) SetEnvironmentIdentifier(v string) *GetEnvironmentCredentialsInput { + s.EnvironmentIdentifier = &v + return s +} + +type GetEnvironmentCredentialsOutput struct { + _ struct{} `type:"structure" sensitive:"true"` + + // The access key ID of the environment. + AccessKeyId *string `locationName:"accessKeyId" type:"string"` + + // The expiration timestamp of the environment credentials. + Expiration *time.Time `locationName:"expiration" type:"timestamp" timestampFormat:"iso8601"` + + // The secret access key of the environment credentials. + SecretAccessKey *string `locationName:"secretAccessKey" type:"string"` + + // The session token of the environment credentials. + SessionToken *string `locationName:"sessionToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnvironmentCredentialsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnvironmentCredentialsOutput) GoString() string { + return s.String() +} + +// SetAccessKeyId sets the AccessKeyId field's value. +func (s *GetEnvironmentCredentialsOutput) SetAccessKeyId(v string) *GetEnvironmentCredentialsOutput { + s.AccessKeyId = &v + return s +} + +// SetExpiration sets the Expiration field's value. +func (s *GetEnvironmentCredentialsOutput) SetExpiration(v time.Time) *GetEnvironmentCredentialsOutput { + s.Expiration = &v + return s +} + +// SetSecretAccessKey sets the SecretAccessKey field's value. +func (s *GetEnvironmentCredentialsOutput) SetSecretAccessKey(v string) *GetEnvironmentCredentialsOutput { + s.SecretAccessKey = &v + return s +} + +// SetSessionToken sets the SessionToken field's value. +func (s *GetEnvironmentCredentialsOutput) SetSessionToken(v string) *GetEnvironmentCredentialsOutput { + s.SessionToken = &v + return s +} + type GetEnvironmentInput struct { _ struct{} `type:"structure" nopayload:"true"` diff --git a/service/datazone/datazoneiface/interface.go b/service/datazone/datazoneiface/interface.go index 92d67fea1ba..5ac48acf3cb 100644 --- a/service/datazone/datazoneiface/interface.go +++ b/service/datazone/datazoneiface/interface.go @@ -280,6 +280,10 @@ type DataZoneAPI interface { GetEnvironmentBlueprintConfigurationWithContext(aws.Context, *datazone.GetEnvironmentBlueprintConfigurationInput, ...request.Option) (*datazone.GetEnvironmentBlueprintConfigurationOutput, error) GetEnvironmentBlueprintConfigurationRequest(*datazone.GetEnvironmentBlueprintConfigurationInput) (*request.Request, *datazone.GetEnvironmentBlueprintConfigurationOutput) + GetEnvironmentCredentials(*datazone.GetEnvironmentCredentialsInput) (*datazone.GetEnvironmentCredentialsOutput, error) + GetEnvironmentCredentialsWithContext(aws.Context, *datazone.GetEnvironmentCredentialsInput, ...request.Option) (*datazone.GetEnvironmentCredentialsOutput, error) + GetEnvironmentCredentialsRequest(*datazone.GetEnvironmentCredentialsInput) (*request.Request, *datazone.GetEnvironmentCredentialsOutput) + GetEnvironmentProfile(*datazone.GetEnvironmentProfileInput) (*datazone.GetEnvironmentProfileOutput, error) GetEnvironmentProfileWithContext(aws.Context, *datazone.GetEnvironmentProfileInput, ...request.Option) (*datazone.GetEnvironmentProfileOutput, error) GetEnvironmentProfileRequest(*datazone.GetEnvironmentProfileInput) (*request.Request, *datazone.GetEnvironmentProfileOutput) diff --git a/service/ec2/api.go b/service/ec2/api.go index 02e0ebd835e..38db957a3c1 100644 --- a/service/ec2/api.go +++ b/service/ec2/api.go @@ -124700,9 +124700,38 @@ type FleetLaunchTemplateOverrides struct { // The Availability Zone in which to launch the instances. AvailabilityZone *string `locationName:"availabilityZone" type:"string"` - // The ID of the AMI. An AMI is required to launch an instance. This parameter - // is only available for fleets of type instant. For fleets of type maintain - // and request, you must specify the AMI ID in the launch template. + // The ID of the AMI in the format ami-17characters00000. + // + // Alternatively, you can specify a Systems Manager parameter, using one of + // the following formats. The Systems Manager parameter will resolve to an AMI + // ID on launch. + // + // To reference a public parameter: + // + // * resolve:ssm:public-parameter + // + // To reference a parameter stored in the same account: + // + // * resolve:ssm:parameter-name + // + // * resolve:ssm:parameter-name:version-number + // + // * resolve:ssm:parameter-name:label + // + // To reference a parameter shared from another Amazon Web Services account: + // + // * resolve:ssm:parameter-ARN + // + // * resolve:ssm:parameter-ARN:version-number + // + // * resolve:ssm:parameter-ARN:label + // + // For more information, see Use a Systems Manager parameter instead of an AMI + // ID (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id) + // in the Amazon EC2 User Guide. + // + // This parameter is only available for fleets of type instant. For fleets of + // type maintain and request, you must specify the AMI ID in the launch template. ImageId *string `locationName:"imageId" type:"string"` // The attributes for the instance types. When you specify instance attributes, @@ -124845,9 +124874,38 @@ type FleetLaunchTemplateOverridesRequest struct { // The Availability Zone in which to launch the instances. AvailabilityZone *string `type:"string"` - // The ID of the AMI. An AMI is required to launch an instance. This parameter - // is only available for fleets of type instant. For fleets of type maintain - // and request, you must specify the AMI ID in the launch template. + // The ID of the AMI in the format ami-17characters00000. + // + // Alternatively, you can specify a Systems Manager parameter, using one of + // the following formats. The Systems Manager parameter will resolve to an AMI + // ID on launch. + // + // To reference a public parameter: + // + // * resolve:ssm:public-parameter + // + // To reference a parameter stored in the same account: + // + // * resolve:ssm:parameter-name + // + // * resolve:ssm:parameter-name:version-number + // + // * resolve:ssm:parameter-name:label + // + // To reference a parameter shared from another Amazon Web Services account: + // + // * resolve:ssm:parameter-ARN + // + // * resolve:ssm:parameter-ARN:version-number + // + // * resolve:ssm:parameter-ARN:label + // + // For more information, see Use a Systems Manager parameter instead of an AMI + // ID (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id) + // in the Amazon EC2 User Guide. + // + // This parameter is only available for fleets of type instant. For fleets of + // type maintain and request, you must specify the AMI ID in the launch template. ImageId *string `type:"string"` // The attributes for the instance types. When you specify instance attributes, @@ -168935,12 +168993,17 @@ type RequestLaunchTemplateData struct { // The name or Amazon Resource Name (ARN) of an IAM instance profile. IamInstanceProfile *LaunchTemplateIamInstanceProfileSpecificationRequest `type:"structure"` - // The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, - // which will resolve to an AMI ID on launch. + // The ID of the AMI in the format ami-17characters00000. + // + // Alternatively, you can specify a Systems Manager parameter, using one of + // the following formats. The Systems Manager parameter will resolve to an AMI + // ID on launch. // - // Valid formats: + // To reference a public parameter: // - // * ami-17characters00000 + // * resolve:ssm:public-parameter + // + // To reference a parameter stored in the same account: // // * resolve:ssm:parameter-name // @@ -168948,15 +169011,26 @@ type RequestLaunchTemplateData struct { // // * resolve:ssm:parameter-name:label // - // * resolve:ssm:public-parameter + // To reference a parameter shared from another Amazon Web Services account: // - // Currently, EC2 Fleet and Spot Fleet do not support specifying a Systems Manager - // parameter. If the launch template will be used by an EC2 Fleet or Spot Fleet, - // you must specify the AMI ID. + // * resolve:ssm:parameter-ARN + // + // * resolve:ssm:parameter-ARN:version-number + // + // * resolve:ssm:parameter-ARN:label // // For more information, see Use a Systems Manager parameter instead of an AMI // ID (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id) // in the Amazon EC2 User Guide. + // + // If the launch template will be used for an EC2 Fleet or Spot Fleet, note + // the following: + // + // * Only EC2 Fleets of type instant support specifying a Systems Manager + // parameter. + // + // * For EC2 Fleets of type maintain or request, or for Spot Fleets, you + // must specify the AMI ID. ImageId *string `type:"string"` // Indicates whether an instance stops or terminates when you initiate shutdown @@ -201114,9 +201188,6 @@ const ( // ResourceTypeVpcBlockPublicAccessExclusion is a ResourceType enum value ResourceTypeVpcBlockPublicAccessExclusion = "vpc-block-public-access-exclusion" - // ResourceTypeVpcEncryptionControl is a ResourceType enum value - ResourceTypeVpcEncryptionControl = "vpc-encryption-control" - // ResourceTypeIpamResourceDiscovery is a ResourceType enum value ResourceTypeIpamResourceDiscovery = "ipam-resource-discovery" @@ -201216,7 +201287,6 @@ func ResourceType_Values() []string { ResourceTypeVerifiedAccessTrustProvider, ResourceTypeVpnConnectionDeviceType, ResourceTypeVpcBlockPublicAccessExclusion, - ResourceTypeVpcEncryptionControl, ResourceTypeIpamResourceDiscovery, ResourceTypeIpamResourceDiscoveryAssociation, ResourceTypeInstanceConnectEndpoint, diff --git a/service/ecr/api.go b/service/ecr/api.go index 7eac525518c..5d89b40a301 100644 --- a/service/ecr/api.go +++ b/service/ecr/api.go @@ -727,6 +727,105 @@ func (c *ECR) CreateRepositoryWithContext(ctx aws.Context, input *CreateReposito return out, req.Send() } +const opCreateRepositoryCreationTemplate = "CreateRepositoryCreationTemplate" + +// CreateRepositoryCreationTemplateRequest generates a "aws/request.Request" representing the +// client's request for the CreateRepositoryCreationTemplate operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateRepositoryCreationTemplate for more information on using the CreateRepositoryCreationTemplate +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateRepositoryCreationTemplateRequest method. +// req, resp := client.CreateRepositoryCreationTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreateRepositoryCreationTemplate +func (c *ECR) CreateRepositoryCreationTemplateRequest(input *CreateRepositoryCreationTemplateInput) (req *request.Request, output *CreateRepositoryCreationTemplateOutput) { + op := &request.Operation{ + Name: opCreateRepositoryCreationTemplate, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateRepositoryCreationTemplateInput{} + } + + output = &CreateRepositoryCreationTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateRepositoryCreationTemplate API operation for Amazon EC2 Container Registry. +// +// Creates a repository creation template. This template is used to define the +// settings for repositories created by Amazon ECR on your behalf. For example, +// repositories created through pull through cache actions. For more information, +// see Private repository creation templates (https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-creation-templates.html) +// in the Amazon Elastic Container Registry User Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon EC2 Container Registry's +// API operation CreateRepositoryCreationTemplate for usage and error information. +// +// Returned Error Types: +// +// - ServerException +// These errors are usually caused by a server-side issue. +// +// - ValidationException +// There was an exception validating this request. +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// - LimitExceededException +// The operation did not succeed because it would have exceeded a service limit +// for your account. For more information, see Amazon ECR service quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html) +// in the Amazon Elastic Container Registry User Guide. +// +// - TemplateAlreadyExistsException +// The repository creation template already exists. Specify a unique prefix +// and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreateRepositoryCreationTemplate +func (c *ECR) CreateRepositoryCreationTemplate(input *CreateRepositoryCreationTemplateInput) (*CreateRepositoryCreationTemplateOutput, error) { + req, out := c.CreateRepositoryCreationTemplateRequest(input) + return out, req.Send() +} + +// CreateRepositoryCreationTemplateWithContext is the same as CreateRepositoryCreationTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See CreateRepositoryCreationTemplate for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ECR) CreateRepositoryCreationTemplateWithContext(ctx aws.Context, input *CreateRepositoryCreationTemplateInput, opts ...request.Option) (*CreateRepositoryCreationTemplateOutput, error) { + req, out := c.CreateRepositoryCreationTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteLifecyclePolicy = "DeleteLifecyclePolicy" // DeleteLifecyclePolicyRequest generates a "aws/request.Request" representing the @@ -1095,6 +1194,96 @@ func (c *ECR) DeleteRepositoryWithContext(ctx aws.Context, input *DeleteReposito return out, req.Send() } +const opDeleteRepositoryCreationTemplate = "DeleteRepositoryCreationTemplate" + +// DeleteRepositoryCreationTemplateRequest generates a "aws/request.Request" representing the +// client's request for the DeleteRepositoryCreationTemplate operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteRepositoryCreationTemplate for more information on using the DeleteRepositoryCreationTemplate +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteRepositoryCreationTemplateRequest method. +// req, resp := client.DeleteRepositoryCreationTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepositoryCreationTemplate +func (c *ECR) DeleteRepositoryCreationTemplateRequest(input *DeleteRepositoryCreationTemplateInput) (req *request.Request, output *DeleteRepositoryCreationTemplateOutput) { + op := &request.Operation{ + Name: opDeleteRepositoryCreationTemplate, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteRepositoryCreationTemplateInput{} + } + + output = &DeleteRepositoryCreationTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteRepositoryCreationTemplate API operation for Amazon EC2 Container Registry. +// +// Deletes a repository creation template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon EC2 Container Registry's +// API operation DeleteRepositoryCreationTemplate for usage and error information. +// +// Returned Error Types: +// +// - ServerException +// These errors are usually caused by a server-side issue. +// +// - ValidationException +// There was an exception validating this request. +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// - TemplateNotFoundException +// The specified repository creation template can't be found. Verify the registry +// ID and prefix and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepositoryCreationTemplate +func (c *ECR) DeleteRepositoryCreationTemplate(input *DeleteRepositoryCreationTemplateInput) (*DeleteRepositoryCreationTemplateOutput, error) { + req, out := c.DeleteRepositoryCreationTemplateRequest(input) + return out, req.Send() +} + +// DeleteRepositoryCreationTemplateWithContext is the same as DeleteRepositoryCreationTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteRepositoryCreationTemplate for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ECR) DeleteRepositoryCreationTemplateWithContext(ctx aws.Context, input *DeleteRepositoryCreationTemplateInput, opts ...request.Option) (*DeleteRepositoryCreationTemplateOutput, error) { + req, out := c.DeleteRepositoryCreationTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteRepositoryPolicy = "DeleteRepositoryPolicy" // DeleteRepositoryPolicyRequest generates a "aws/request.Request" representing the @@ -1964,6 +2153,151 @@ func (c *ECR) DescribeRepositoriesPagesWithContext(ctx aws.Context, input *Descr return p.Err() } +const opDescribeRepositoryCreationTemplates = "DescribeRepositoryCreationTemplates" + +// DescribeRepositoryCreationTemplatesRequest generates a "aws/request.Request" representing the +// client's request for the DescribeRepositoryCreationTemplates operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeRepositoryCreationTemplates for more information on using the DescribeRepositoryCreationTemplates +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeRepositoryCreationTemplatesRequest method. +// req, resp := client.DescribeRepositoryCreationTemplatesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRepositoryCreationTemplates +func (c *ECR) DescribeRepositoryCreationTemplatesRequest(input *DescribeRepositoryCreationTemplatesInput) (req *request.Request, output *DescribeRepositoryCreationTemplatesOutput) { + op := &request.Operation{ + Name: opDescribeRepositoryCreationTemplates, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeRepositoryCreationTemplatesInput{} + } + + output = &DescribeRepositoryCreationTemplatesOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeRepositoryCreationTemplates API operation for Amazon EC2 Container Registry. +// +// Returns details about the repository creation templates in a registry. The +// prefixes request parameter can be used to return the details for a specific +// repository creation template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon EC2 Container Registry's +// API operation DescribeRepositoryCreationTemplates for usage and error information. +// +// Returned Error Types: +// +// - ServerException +// These errors are usually caused by a server-side issue. +// +// - ValidationException +// There was an exception validating this request. +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRepositoryCreationTemplates +func (c *ECR) DescribeRepositoryCreationTemplates(input *DescribeRepositoryCreationTemplatesInput) (*DescribeRepositoryCreationTemplatesOutput, error) { + req, out := c.DescribeRepositoryCreationTemplatesRequest(input) + return out, req.Send() +} + +// DescribeRepositoryCreationTemplatesWithContext is the same as DescribeRepositoryCreationTemplates with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeRepositoryCreationTemplates for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ECR) DescribeRepositoryCreationTemplatesWithContext(ctx aws.Context, input *DescribeRepositoryCreationTemplatesInput, opts ...request.Option) (*DescribeRepositoryCreationTemplatesOutput, error) { + req, out := c.DescribeRepositoryCreationTemplatesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// DescribeRepositoryCreationTemplatesPages iterates over the pages of a DescribeRepositoryCreationTemplates operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeRepositoryCreationTemplates method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a DescribeRepositoryCreationTemplates operation. +// pageNum := 0 +// err := client.DescribeRepositoryCreationTemplatesPages(params, +// func(page *ecr.DescribeRepositoryCreationTemplatesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ECR) DescribeRepositoryCreationTemplatesPages(input *DescribeRepositoryCreationTemplatesInput, fn func(*DescribeRepositoryCreationTemplatesOutput, bool) bool) error { + return c.DescribeRepositoryCreationTemplatesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeRepositoryCreationTemplatesPagesWithContext same as DescribeRepositoryCreationTemplatesPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ECR) DescribeRepositoryCreationTemplatesPagesWithContext(ctx aws.Context, input *DescribeRepositoryCreationTemplatesInput, fn func(*DescribeRepositoryCreationTemplatesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeRepositoryCreationTemplatesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeRepositoryCreationTemplatesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeRepositoryCreationTemplatesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opGetAuthorizationToken = "GetAuthorizationToken" // GetAuthorizationTokenRequest generates a "aws/request.Request" representing the @@ -3631,7 +3965,9 @@ func (c *ECR) PutReplicationConfigurationRequest(input *PutReplicationConfigurat // a service-linked IAM role is created in your account for the replication // process. For more information, see Using service-linked roles for Amazon // ECR (https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html) -// in the Amazon Elastic Container Registry User Guide. +// in the Amazon Elastic Container Registry User Guide. For more information +// on the custom role for replication, see Creating an IAM role for replication +// (https://docs.aws.amazon.com/AmazonECR/latest/userguide/replication-creation-templates.html#roles-creatingrole-user-console). // // When configuring cross-account replication, the destination account must // grant the source account permission to replicate. This permission is controlled @@ -4267,31 +4603,121 @@ func (c *ECR) UpdatePullThroughCacheRuleWithContext(ctx aws.Context, input *Upda return out, req.Send() } -const opUploadLayerPart = "UploadLayerPart" +const opUpdateRepositoryCreationTemplate = "UpdateRepositoryCreationTemplate" -// UploadLayerPartRequest generates a "aws/request.Request" representing the -// client's request for the UploadLayerPart operation. The "output" return +// UpdateRepositoryCreationTemplateRequest generates a "aws/request.Request" representing the +// client's request for the UpdateRepositoryCreationTemplate operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See UploadLayerPart for more information on using the UploadLayerPart +// See UpdateRepositoryCreationTemplate for more information on using the UpdateRepositoryCreationTemplate // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the UploadLayerPartRequest method. -// req, resp := client.UploadLayerPartRequest(params) +// // Example sending a request using the UpdateRepositoryCreationTemplateRequest method. +// req, resp := client.UpdateRepositoryCreationTemplateRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UploadLayerPart +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UpdateRepositoryCreationTemplate +func (c *ECR) UpdateRepositoryCreationTemplateRequest(input *UpdateRepositoryCreationTemplateInput) (req *request.Request, output *UpdateRepositoryCreationTemplateOutput) { + op := &request.Operation{ + Name: opUpdateRepositoryCreationTemplate, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateRepositoryCreationTemplateInput{} + } + + output = &UpdateRepositoryCreationTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateRepositoryCreationTemplate API operation for Amazon EC2 Container Registry. +// +// Updates an existing repository creation template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon EC2 Container Registry's +// API operation UpdateRepositoryCreationTemplate for usage and error information. +// +// Returned Error Types: +// +// - ServerException +// These errors are usually caused by a server-side issue. +// +// - ValidationException +// There was an exception validating this request. +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// - TemplateNotFoundException +// The specified repository creation template can't be found. Verify the registry +// ID and prefix and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UpdateRepositoryCreationTemplate +func (c *ECR) UpdateRepositoryCreationTemplate(input *UpdateRepositoryCreationTemplateInput) (*UpdateRepositoryCreationTemplateOutput, error) { + req, out := c.UpdateRepositoryCreationTemplateRequest(input) + return out, req.Send() +} + +// UpdateRepositoryCreationTemplateWithContext is the same as UpdateRepositoryCreationTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateRepositoryCreationTemplate for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ECR) UpdateRepositoryCreationTemplateWithContext(ctx aws.Context, input *UpdateRepositoryCreationTemplateInput, opts ...request.Option) (*UpdateRepositoryCreationTemplateOutput, error) { + req, out := c.UpdateRepositoryCreationTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUploadLayerPart = "UploadLayerPart" + +// UploadLayerPartRequest generates a "aws/request.Request" representing the +// client's request for the UploadLayerPart operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UploadLayerPart for more information on using the UploadLayerPart +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UploadLayerPartRequest method. +// req, resp := client.UploadLayerPartRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UploadLayerPart func (c *ECR) UploadLayerPartRequest(input *UploadLayerPartInput) (req *request.Request, output *UploadLayerPartOutput) { op := &request.Operation{ Name: opUploadLayerPart, @@ -5330,8 +5756,6 @@ type CreatePullThroughCacheRuleInput struct { // // * Microsoft Azure Container Registry (azure-container-registry) - .azurecr.io // - // * GitLab Container Registry (gitlab-container-registry) - registry.gitlab.com - // // UpstreamRegistryUrl is a required field UpstreamRegistryUrl *string `locationName:"upstreamRegistryUrl" type:"string" required:"true"` } @@ -5485,6 +5909,211 @@ func (s *CreatePullThroughCacheRuleOutput) SetUpstreamRegistryUrl(v string) *Cre return s } +type CreateRepositoryCreationTemplateInput struct { + _ struct{} `type:"structure"` + + // A list of enumerable strings representing the Amazon ECR repository creation + // scenarios that this template will apply towards. The two supported scenarios + // are PULL_THROUGH_CACHE and REPLICATION + // + // AppliedFor is a required field + AppliedFor []*string `locationName:"appliedFor" type:"list" required:"true" enum:"RCTAppliedFor"` + + // The ARN of the role to be assumed by Amazon ECR. This role must be in the + // same account as the registry that you are configuring. + CustomRoleArn *string `locationName:"customRoleArn" type:"string"` + + // A description for the repository creation template. + Description *string `locationName:"description" type:"string"` + + // The encryption configuration to use for repositories created using the template. + EncryptionConfiguration *EncryptionConfigurationForRepositoryCreationTemplate `locationName:"encryptionConfiguration" type:"structure"` + + // The tag mutability setting for the repository. If this parameter is omitted, + // the default setting of MUTABLE will be used which will allow image tags to + // be overwritten. If IMMUTABLE is specified, all image tags within the repository + // will be immutable which will prevent them from being overwritten. + ImageTagMutability *string `locationName:"imageTagMutability" type:"string" enum:"ImageTagMutability"` + + // The lifecycle policy to use for repositories created using the template. + LifecyclePolicy *string `locationName:"lifecyclePolicy" type:"string"` + + // The repository namespace prefix to associate with the template. All repositories + // created using this namespace prefix will have the settings defined in this + // template applied. For example, a prefix of prod would apply to all repositories + // beginning with prod/. Similarly, a prefix of prod/team would apply to all + // repositories beginning with prod/team/. + // + // To apply a template to all repositories in your registry that don't have + // an associated creation template, you can use ROOT as the prefix. + // + // There is always an assumed / applied to the end of the prefix. If you specify + // ecr-public as the prefix, Amazon ECR treats that as ecr-public/. When using + // a pull through cache rule, the repository prefix you specify during rule + // creation is what you should specify as your repository creation template + // prefix as well. + // + // Prefix is a required field + Prefix *string `locationName:"prefix" min:"1" type:"string" required:"true"` + + // The repository policy to apply to repositories created using the template. + // A repository policy is a permissions policy associated with a repository + // to control access permissions. + RepositoryPolicy *string `locationName:"repositoryPolicy" type:"string"` + + // The metadata to apply to the repository to help you categorize and organize. + // Each tag consists of a key and an optional value, both of which you define. + // Tag keys can have a maximum character length of 128 characters, and tag values + // can have a maximum length of 256 characters. + ResourceTags []*Tag `locationName:"resourceTags" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateRepositoryCreationTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateRepositoryCreationTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateRepositoryCreationTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateRepositoryCreationTemplateInput"} + if s.AppliedFor == nil { + invalidParams.Add(request.NewErrParamRequired("AppliedFor")) + } + if s.Prefix == nil { + invalidParams.Add(request.NewErrParamRequired("Prefix")) + } + if s.Prefix != nil && len(*s.Prefix) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Prefix", 1)) + } + if s.EncryptionConfiguration != nil { + if err := s.EncryptionConfiguration.Validate(); err != nil { + invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.ResourceTags != nil { + for i, v := range s.ResourceTags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceTags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAppliedFor sets the AppliedFor field's value. +func (s *CreateRepositoryCreationTemplateInput) SetAppliedFor(v []*string) *CreateRepositoryCreationTemplateInput { + s.AppliedFor = v + return s +} + +// SetCustomRoleArn sets the CustomRoleArn field's value. +func (s *CreateRepositoryCreationTemplateInput) SetCustomRoleArn(v string) *CreateRepositoryCreationTemplateInput { + s.CustomRoleArn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateRepositoryCreationTemplateInput) SetDescription(v string) *CreateRepositoryCreationTemplateInput { + s.Description = &v + return s +} + +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *CreateRepositoryCreationTemplateInput) SetEncryptionConfiguration(v *EncryptionConfigurationForRepositoryCreationTemplate) *CreateRepositoryCreationTemplateInput { + s.EncryptionConfiguration = v + return s +} + +// SetImageTagMutability sets the ImageTagMutability field's value. +func (s *CreateRepositoryCreationTemplateInput) SetImageTagMutability(v string) *CreateRepositoryCreationTemplateInput { + s.ImageTagMutability = &v + return s +} + +// SetLifecyclePolicy sets the LifecyclePolicy field's value. +func (s *CreateRepositoryCreationTemplateInput) SetLifecyclePolicy(v string) *CreateRepositoryCreationTemplateInput { + s.LifecyclePolicy = &v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *CreateRepositoryCreationTemplateInput) SetPrefix(v string) *CreateRepositoryCreationTemplateInput { + s.Prefix = &v + return s +} + +// SetRepositoryPolicy sets the RepositoryPolicy field's value. +func (s *CreateRepositoryCreationTemplateInput) SetRepositoryPolicy(v string) *CreateRepositoryCreationTemplateInput { + s.RepositoryPolicy = &v + return s +} + +// SetResourceTags sets the ResourceTags field's value. +func (s *CreateRepositoryCreationTemplateInput) SetResourceTags(v []*Tag) *CreateRepositoryCreationTemplateInput { + s.ResourceTags = v + return s +} + +type CreateRepositoryCreationTemplateOutput struct { + _ struct{} `type:"structure"` + + // The registry ID associated with the request. + RegistryId *string `locationName:"registryId" type:"string"` + + // The details of the repository creation template associated with the request. + RepositoryCreationTemplate *RepositoryCreationTemplate `locationName:"repositoryCreationTemplate" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateRepositoryCreationTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateRepositoryCreationTemplateOutput) GoString() string { + return s.String() +} + +// SetRegistryId sets the RegistryId field's value. +func (s *CreateRepositoryCreationTemplateOutput) SetRegistryId(v string) *CreateRepositoryCreationTemplateOutput { + s.RegistryId = &v + return s +} + +// SetRepositoryCreationTemplate sets the RepositoryCreationTemplate field's value. +func (s *CreateRepositoryCreationTemplateOutput) SetRepositoryCreationTemplate(v *RepositoryCreationTemplate) *CreateRepositoryCreationTemplateOutput { + s.RepositoryCreationTemplate = v + return s +} + type CreateRepositoryInput struct { _ struct{} `type:"structure"` @@ -6112,9 +6741,98 @@ func (s *DeleteRegistryPolicyOutput) SetPolicyText(v string) *DeleteRegistryPoli return s } -// SetRegistryId sets the RegistryId field's value. -func (s *DeleteRegistryPolicyOutput) SetRegistryId(v string) *DeleteRegistryPolicyOutput { - s.RegistryId = &v +// SetRegistryId sets the RegistryId field's value. +func (s *DeleteRegistryPolicyOutput) SetRegistryId(v string) *DeleteRegistryPolicyOutput { + s.RegistryId = &v + return s +} + +type DeleteRepositoryCreationTemplateInput struct { + _ struct{} `type:"structure"` + + // The repository namespace prefix associated with the repository creation template. + // + // Prefix is a required field + Prefix *string `locationName:"prefix" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRepositoryCreationTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRepositoryCreationTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRepositoryCreationTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteRepositoryCreationTemplateInput"} + if s.Prefix == nil { + invalidParams.Add(request.NewErrParamRequired("Prefix")) + } + if s.Prefix != nil && len(*s.Prefix) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Prefix", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPrefix sets the Prefix field's value. +func (s *DeleteRepositoryCreationTemplateInput) SetPrefix(v string) *DeleteRepositoryCreationTemplateInput { + s.Prefix = &v + return s +} + +type DeleteRepositoryCreationTemplateOutput struct { + _ struct{} `type:"structure"` + + // The registry ID associated with the request. + RegistryId *string `locationName:"registryId" type:"string"` + + // The details of the repository creation template that was deleted. + RepositoryCreationTemplate *RepositoryCreationTemplate `locationName:"repositoryCreationTemplate" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRepositoryCreationTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRepositoryCreationTemplateOutput) GoString() string { + return s.String() +} + +// SetRegistryId sets the RegistryId field's value. +func (s *DeleteRepositoryCreationTemplateOutput) SetRegistryId(v string) *DeleteRepositoryCreationTemplateOutput { + s.RegistryId = &v + return s +} + +// SetRepositoryCreationTemplate sets the RepositoryCreationTemplate field's value. +func (s *DeleteRepositoryCreationTemplateOutput) SetRepositoryCreationTemplate(v *RepositoryCreationTemplate) *DeleteRepositoryCreationTemplateOutput { + s.RepositoryCreationTemplate = v return s } @@ -7002,7 +7720,7 @@ func (s DescribeRegistryInput) GoString() string { type DescribeRegistryOutput struct { _ struct{} `type:"structure"` - // The ID of the registry. + // The registry ID associated with the request. RegistryId *string `locationName:"registryId" type:"string"` // The replication configuration for the registry. @@ -7174,6 +7892,136 @@ func (s *DescribeRepositoriesOutput) SetRepositories(v []*Repository) *DescribeR return s } +type DescribeRepositoryCreationTemplatesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of repository results returned by DescribeRepositoryCreationTemplatesRequest + // in paginated output. When this parameter is used, DescribeRepositoryCreationTemplatesRequest + // only returns maxResults results in a single page along with a nextToken response + // element. The remaining results of the initial request can be seen by sending + // another DescribeRepositoryCreationTemplatesRequest request with the returned + // nextToken value. This value can be between 1 and 1000. If this parameter + // is not used, then DescribeRepositoryCreationTemplatesRequest returns up to + // 100 results and a nextToken value, if applicable. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // The nextToken value returned from a previous paginated DescribeRepositoryCreationTemplates + // request where maxResults was used and the results exceeded the value of that + // parameter. Pagination continues from the end of the previous results that + // returned the nextToken value. This value is null when there are no more results + // to return. + // + // This token should be treated as an opaque identifier that is only used to + // retrieve the next items in a list and not for other programmatic purposes. + NextToken *string `locationName:"nextToken" type:"string"` + + // The repository namespace prefixes associated with the repository creation + // templates to describe. If this value is not specified, all repository creation + // templates are returned. + Prefixes []*string `locationName:"prefixes" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeRepositoryCreationTemplatesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeRepositoryCreationTemplatesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeRepositoryCreationTemplatesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeRepositoryCreationTemplatesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeRepositoryCreationTemplatesInput) SetMaxResults(v int64) *DescribeRepositoryCreationTemplatesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeRepositoryCreationTemplatesInput) SetNextToken(v string) *DescribeRepositoryCreationTemplatesInput { + s.NextToken = &v + return s +} + +// SetPrefixes sets the Prefixes field's value. +func (s *DescribeRepositoryCreationTemplatesInput) SetPrefixes(v []*string) *DescribeRepositoryCreationTemplatesInput { + s.Prefixes = v + return s +} + +type DescribeRepositoryCreationTemplatesOutput struct { + _ struct{} `type:"structure"` + + // The nextToken value to include in a future DescribeRepositoryCreationTemplates + // request. When the results of a DescribeRepositoryCreationTemplates request + // exceed maxResults, this value can be used to retrieve the next page of results. + // This value is null when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // The registry ID associated with the request. + RegistryId *string `locationName:"registryId" type:"string"` + + // The details of the repository creation templates. + RepositoryCreationTemplates []*RepositoryCreationTemplate `locationName:"repositoryCreationTemplates" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeRepositoryCreationTemplatesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeRepositoryCreationTemplatesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeRepositoryCreationTemplatesOutput) SetNextToken(v string) *DescribeRepositoryCreationTemplatesOutput { + s.NextToken = &v + return s +} + +// SetRegistryId sets the RegistryId field's value. +func (s *DescribeRepositoryCreationTemplatesOutput) SetRegistryId(v string) *DescribeRepositoryCreationTemplatesOutput { + s.RegistryId = &v + return s +} + +// SetRepositoryCreationTemplates sets the RepositoryCreationTemplates field's value. +func (s *DescribeRepositoryCreationTemplatesOutput) SetRepositoryCreationTemplates(v []*RepositoryCreationTemplate) *DescribeRepositoryCreationTemplatesOutput { + s.RepositoryCreationTemplates = v + return s +} + // The specified layer upload does not contain any layer parts. type EmptyUploadException struct { _ struct{} `type:"structure"` @@ -7244,7 +8092,7 @@ func (s *EmptyUploadException) RequestID() string { // // By default, when no encryption configuration is set or the AES256 encryption // type is used, Amazon ECR uses server-side encryption with Amazon S3-managed -// encryption keys which encrypts your data at rest using an AES-256 encryption +// encryption keys which encrypts your data at rest using an AES256 encryption // algorithm. This does not require any action on your part. // // For more control over the encryption of the contents of your repository, @@ -7268,7 +8116,7 @@ type EncryptionConfiguration struct { // // If you use the AES256 encryption type, Amazon ECR uses server-side encryption // with Amazon S3-managed encryption keys which encrypts the images in the repository - // using an AES-256 encryption algorithm. For more information, see Protecting + // using an AES256 encryption algorithm. For more information, see Protecting // data using server-side encryption with Amazon S3-managed encryption keys // (SSE-S3) (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) // in the Amazon Simple Storage Service Console Developer Guide. @@ -7329,6 +8177,81 @@ func (s *EncryptionConfiguration) SetKmsKey(v string) *EncryptionConfiguration { return s } +// The encryption configuration to associate with the repository creation template. +type EncryptionConfigurationForRepositoryCreationTemplate struct { + _ struct{} `type:"structure"` + + // The encryption type to use. + // + // If you use the KMS encryption type, the contents of the repository will be + // encrypted using server-side encryption with Key Management Service key stored + // in KMS. When you use KMS to encrypt your data, you can either use the default + // Amazon Web Services managed KMS key for Amazon ECR, or specify your own KMS + // key, which you already created. For more information, see Protecting data + // using server-side encryption with an KMS key stored in Key Management Service + // (SSE-KMS) (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) + // in the Amazon Simple Storage Service Console Developer Guide. + // + // If you use the AES256 encryption type, Amazon ECR uses server-side encryption + // with Amazon S3-managed encryption keys which encrypts the images in the repository + // using an AES256 encryption algorithm. For more information, see Protecting + // data using server-side encryption with Amazon S3-managed encryption keys + // (SSE-S3) (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) + // in the Amazon Simple Storage Service Console Developer Guide. + // + // EncryptionType is a required field + EncryptionType *string `locationName:"encryptionType" type:"string" required:"true" enum:"EncryptionType"` + + // If you use the KMS encryption type, specify the KMS key to use for encryption. + // The full ARN of the KMS key must be specified. The key must exist in the + // same Region as the repository. If no key is specified, the default Amazon + // Web Services managed KMS key for Amazon ECR will be used. + KmsKey *string `locationName:"kmsKey" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EncryptionConfigurationForRepositoryCreationTemplate) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EncryptionConfigurationForRepositoryCreationTemplate) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EncryptionConfigurationForRepositoryCreationTemplate) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EncryptionConfigurationForRepositoryCreationTemplate"} + if s.EncryptionType == nil { + invalidParams.Add(request.NewErrParamRequired("EncryptionType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEncryptionType sets the EncryptionType field's value. +func (s *EncryptionConfigurationForRepositoryCreationTemplate) SetEncryptionType(v string) *EncryptionConfigurationForRepositoryCreationTemplate { + s.EncryptionType = &v + return s +} + +// SetKmsKey sets the KmsKey field's value. +func (s *EncryptionConfigurationForRepositoryCreationTemplate) SetKmsKey(v string) *EncryptionConfigurationForRepositoryCreationTemplate { + s.KmsKey = &v + return s +} + // The details of an enhanced image scan. This is returned when enhanced scanning // is enabled for your private registry. type EnhancedImageScanFinding struct { @@ -8041,7 +8964,7 @@ type GetRegistryPolicyOutput struct { // The JSON text of the permissions policy for a registry. PolicyText *string `locationName:"policyText" type:"string"` - // The ID of the registry. + // The registry ID associated with the request. RegistryId *string `locationName:"registryId" type:"string"` } @@ -8100,7 +9023,7 @@ func (s GetRegistryScanningConfigurationInput) GoString() string { type GetRegistryScanningConfigurationOutput struct { _ struct{} `type:"structure"` - // The ID of the registry. + // The registry ID associated with the request. RegistryId *string `locationName:"registryId" type:"string"` // The scanning configuration for the registry. @@ -11550,7 +12473,7 @@ type PutRegistryPolicyOutput struct { // The JSON policy text for your registry. PolicyText *string `locationName:"policyText" type:"string"` - // The registry ID. + // The registry ID associated with the request. RegistryId *string `locationName:"registryId" type:"string"` } @@ -12433,31 +13356,165 @@ func (s *RepositoryAlreadyExistsException) Code() string { return "RepositoryAlreadyExistsException" } -// Message returns the exception's message. -func (s *RepositoryAlreadyExistsException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" +// Message returns the exception's message. +func (s *RepositoryAlreadyExistsException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *RepositoryAlreadyExistsException) OrigErr() error { + return nil +} + +func (s *RepositoryAlreadyExistsException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *RepositoryAlreadyExistsException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *RepositoryAlreadyExistsException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The details of the repository creation template associated with the request. +type RepositoryCreationTemplate struct { + _ struct{} `type:"structure"` + + // A list of enumerable Strings representing the repository creation scenarios + // that this template will apply towards. The two supported scenarios are PULL_THROUGH_CACHE + // and REPLICATION + AppliedFor []*string `locationName:"appliedFor" type:"list" enum:"RCTAppliedFor"` + + // The date and time, in JavaScript date format, when the repository creation + // template was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The ARN of the role to be assumed by Amazon ECR. + CustomRoleArn *string `locationName:"customRoleArn" type:"string"` + + // The description associated with the repository creation template. + Description *string `locationName:"description" type:"string"` + + // The encryption configuration associated with the repository creation template. + EncryptionConfiguration *EncryptionConfigurationForRepositoryCreationTemplate `locationName:"encryptionConfiguration" type:"structure"` + + // The tag mutability setting for the repository. If this parameter is omitted, + // the default setting of MUTABLE will be used which will allow image tags to + // be overwritten. If IMMUTABLE is specified, all image tags within the repository + // will be immutable which will prevent them from being overwritten. + ImageTagMutability *string `locationName:"imageTagMutability" type:"string" enum:"ImageTagMutability"` + + // The lifecycle policy to use for repositories created using the template. + LifecyclePolicy *string `locationName:"lifecyclePolicy" type:"string"` + + // The repository namespace prefix associated with the repository creation template. + Prefix *string `locationName:"prefix" min:"1" type:"string"` + + // he repository policy to apply to repositories created using the template. + // A repository policy is a permissions policy associated with a repository + // to control access permissions. + RepositoryPolicy *string `locationName:"repositoryPolicy" type:"string"` + + // The metadata to apply to the repository to help you categorize and organize. + // Each tag consists of a key and an optional value, both of which you define. + // Tag keys can have a maximum character length of 128 characters, and tag values + // can have a maximum length of 256 characters. + ResourceTags []*Tag `locationName:"resourceTags" type:"list"` + + // The date and time, in JavaScript date format, when the repository creation + // template was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RepositoryCreationTemplate) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RepositoryCreationTemplate) GoString() string { + return s.String() +} + +// SetAppliedFor sets the AppliedFor field's value. +func (s *RepositoryCreationTemplate) SetAppliedFor(v []*string) *RepositoryCreationTemplate { + s.AppliedFor = v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *RepositoryCreationTemplate) SetCreatedAt(v time.Time) *RepositoryCreationTemplate { + s.CreatedAt = &v + return s +} + +// SetCustomRoleArn sets the CustomRoleArn field's value. +func (s *RepositoryCreationTemplate) SetCustomRoleArn(v string) *RepositoryCreationTemplate { + s.CustomRoleArn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *RepositoryCreationTemplate) SetDescription(v string) *RepositoryCreationTemplate { + s.Description = &v + return s +} + +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *RepositoryCreationTemplate) SetEncryptionConfiguration(v *EncryptionConfigurationForRepositoryCreationTemplate) *RepositoryCreationTemplate { + s.EncryptionConfiguration = v + return s +} + +// SetImageTagMutability sets the ImageTagMutability field's value. +func (s *RepositoryCreationTemplate) SetImageTagMutability(v string) *RepositoryCreationTemplate { + s.ImageTagMutability = &v + return s +} + +// SetLifecyclePolicy sets the LifecyclePolicy field's value. +func (s *RepositoryCreationTemplate) SetLifecyclePolicy(v string) *RepositoryCreationTemplate { + s.LifecyclePolicy = &v + return s } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *RepositoryAlreadyExistsException) OrigErr() error { - return nil +// SetPrefix sets the Prefix field's value. +func (s *RepositoryCreationTemplate) SetPrefix(v string) *RepositoryCreationTemplate { + s.Prefix = &v + return s } -func (s *RepositoryAlreadyExistsException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +// SetRepositoryPolicy sets the RepositoryPolicy field's value. +func (s *RepositoryCreationTemplate) SetRepositoryPolicy(v string) *RepositoryCreationTemplate { + s.RepositoryPolicy = &v + return s } -// Status code returns the HTTP status code for the request's response error. -func (s *RepositoryAlreadyExistsException) StatusCode() int { - return s.RespMetadata.StatusCode +// SetResourceTags sets the ResourceTags field's value. +func (s *RepositoryCreationTemplate) SetResourceTags(v []*Tag) *RepositoryCreationTemplate { + s.ResourceTags = v + return s } -// RequestID returns the service's response RequestID for request. -func (s *RepositoryAlreadyExistsException) RequestID() string { - return s.RespMetadata.RequestID +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *RepositoryCreationTemplate) SetUpdatedAt(v time.Time) *RepositoryCreationTemplate { + s.UpdatedAt = &v + return s } // The filter settings used with image replication. Specifying a repository @@ -13796,6 +14853,136 @@ func (s TagResourceOutput) GoString() string { return s.String() } +// The repository creation template already exists. Specify a unique prefix +// and try again. +type TemplateAlreadyExistsException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TemplateAlreadyExistsException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TemplateAlreadyExistsException) GoString() string { + return s.String() +} + +func newErrorTemplateAlreadyExistsException(v protocol.ResponseMetadata) error { + return &TemplateAlreadyExistsException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *TemplateAlreadyExistsException) Code() string { + return "TemplateAlreadyExistsException" +} + +// Message returns the exception's message. +func (s *TemplateAlreadyExistsException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *TemplateAlreadyExistsException) OrigErr() error { + return nil +} + +func (s *TemplateAlreadyExistsException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *TemplateAlreadyExistsException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *TemplateAlreadyExistsException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The specified repository creation template can't be found. Verify the registry +// ID and prefix and try again. +type TemplateNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TemplateNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TemplateNotFoundException) GoString() string { + return s.String() +} + +func newErrorTemplateNotFoundException(v protocol.ResponseMetadata) error { + return &TemplateNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *TemplateNotFoundException) Code() string { + return "TemplateNotFoundException" +} + +// Message returns the exception's message. +func (s *TemplateNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *TemplateNotFoundException) OrigErr() error { + return nil +} + +func (s *TemplateNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *TemplateNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *TemplateNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + // The list of tags on the repository is over the limit. The maximum number // of tags that can be applied to a repository is 50. type TooManyTagsException struct { @@ -14471,6 +15658,200 @@ func (s *UpdatePullThroughCacheRuleOutput) SetUpdatedAt(v time.Time) *UpdatePull return s } +type UpdateRepositoryCreationTemplateInput struct { + _ struct{} `type:"structure"` + + // Updates the list of enumerable strings representing the Amazon ECR repository + // creation scenarios that this template will apply towards. The two supported + // scenarios are PULL_THROUGH_CACHE and REPLICATION + AppliedFor []*string `locationName:"appliedFor" type:"list" enum:"RCTAppliedFor"` + + // The ARN of the role to be assumed by Amazon ECR. This role must be in the + // same account as the registry that you are configuring. + CustomRoleArn *string `locationName:"customRoleArn" type:"string"` + + // A description for the repository creation template. + Description *string `locationName:"description" type:"string"` + + // The encryption configuration to associate with the repository creation template. + EncryptionConfiguration *EncryptionConfigurationForRepositoryCreationTemplate `locationName:"encryptionConfiguration" type:"structure"` + + // Updates the tag mutability setting for the repository. If this parameter + // is omitted, the default setting of MUTABLE will be used which will allow + // image tags to be overwritten. If IMMUTABLE is specified, all image tags within + // the repository will be immutable which will prevent them from being overwritten. + ImageTagMutability *string `locationName:"imageTagMutability" type:"string" enum:"ImageTagMutability"` + + // Updates the lifecycle policy associated with the specified repository creation + // template. + LifecyclePolicy *string `locationName:"lifecyclePolicy" type:"string"` + + // The repository namespace prefix that matches an existing repository creation + // template in the registry. All repositories created using this namespace prefix + // will have the settings defined in this template applied. For example, a prefix + // of prod would apply to all repositories beginning with prod/. This includes + // a repository named prod/team1 as well as a repository named prod/repository1. + // + // To apply a template to all repositories in your registry that don't have + // an associated creation template, you can use ROOT as the prefix. + // + // Prefix is a required field + Prefix *string `locationName:"prefix" min:"1" type:"string" required:"true"` + + // Updates the repository policy created using the template. A repository policy + // is a permissions policy associated with a repository to control access permissions. + RepositoryPolicy *string `locationName:"repositoryPolicy" type:"string"` + + // The metadata to apply to the repository to help you categorize and organize. + // Each tag consists of a key and an optional value, both of which you define. + // Tag keys can have a maximum character length of 128 characters, and tag values + // can have a maximum length of 256 characters. + ResourceTags []*Tag `locationName:"resourceTags" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRepositoryCreationTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRepositoryCreationTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRepositoryCreationTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateRepositoryCreationTemplateInput"} + if s.Prefix == nil { + invalidParams.Add(request.NewErrParamRequired("Prefix")) + } + if s.Prefix != nil && len(*s.Prefix) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Prefix", 1)) + } + if s.EncryptionConfiguration != nil { + if err := s.EncryptionConfiguration.Validate(); err != nil { + invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.ResourceTags != nil { + for i, v := range s.ResourceTags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceTags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAppliedFor sets the AppliedFor field's value. +func (s *UpdateRepositoryCreationTemplateInput) SetAppliedFor(v []*string) *UpdateRepositoryCreationTemplateInput { + s.AppliedFor = v + return s +} + +// SetCustomRoleArn sets the CustomRoleArn field's value. +func (s *UpdateRepositoryCreationTemplateInput) SetCustomRoleArn(v string) *UpdateRepositoryCreationTemplateInput { + s.CustomRoleArn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateRepositoryCreationTemplateInput) SetDescription(v string) *UpdateRepositoryCreationTemplateInput { + s.Description = &v + return s +} + +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *UpdateRepositoryCreationTemplateInput) SetEncryptionConfiguration(v *EncryptionConfigurationForRepositoryCreationTemplate) *UpdateRepositoryCreationTemplateInput { + s.EncryptionConfiguration = v + return s +} + +// SetImageTagMutability sets the ImageTagMutability field's value. +func (s *UpdateRepositoryCreationTemplateInput) SetImageTagMutability(v string) *UpdateRepositoryCreationTemplateInput { + s.ImageTagMutability = &v + return s +} + +// SetLifecyclePolicy sets the LifecyclePolicy field's value. +func (s *UpdateRepositoryCreationTemplateInput) SetLifecyclePolicy(v string) *UpdateRepositoryCreationTemplateInput { + s.LifecyclePolicy = &v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *UpdateRepositoryCreationTemplateInput) SetPrefix(v string) *UpdateRepositoryCreationTemplateInput { + s.Prefix = &v + return s +} + +// SetRepositoryPolicy sets the RepositoryPolicy field's value. +func (s *UpdateRepositoryCreationTemplateInput) SetRepositoryPolicy(v string) *UpdateRepositoryCreationTemplateInput { + s.RepositoryPolicy = &v + return s +} + +// SetResourceTags sets the ResourceTags field's value. +func (s *UpdateRepositoryCreationTemplateInput) SetResourceTags(v []*Tag) *UpdateRepositoryCreationTemplateInput { + s.ResourceTags = v + return s +} + +type UpdateRepositoryCreationTemplateOutput struct { + _ struct{} `type:"structure"` + + // The registry ID associated with the request. + RegistryId *string `locationName:"registryId" type:"string"` + + // The details of the repository creation template associated with the request. + RepositoryCreationTemplate *RepositoryCreationTemplate `locationName:"repositoryCreationTemplate" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRepositoryCreationTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRepositoryCreationTemplateOutput) GoString() string { + return s.String() +} + +// SetRegistryId sets the RegistryId field's value. +func (s *UpdateRepositoryCreationTemplateOutput) SetRegistryId(v string) *UpdateRepositoryCreationTemplateOutput { + s.RegistryId = &v + return s +} + +// SetRepositoryCreationTemplate sets the RepositoryCreationTemplate field's value. +func (s *UpdateRepositoryCreationTemplateOutput) SetRepositoryCreationTemplate(v *RepositoryCreationTemplate) *UpdateRepositoryCreationTemplateOutput { + s.RepositoryCreationTemplate = v + return s +} + type UploadLayerPartInput struct { _ struct{} `type:"structure"` @@ -15195,6 +16576,22 @@ func LifecyclePolicyPreviewStatus_Values() []string { } } +const ( + // RCTAppliedForReplication is a RCTAppliedFor enum value + RCTAppliedForReplication = "REPLICATION" + + // RCTAppliedForPullThroughCache is a RCTAppliedFor enum value + RCTAppliedForPullThroughCache = "PULL_THROUGH_CACHE" +) + +// RCTAppliedFor_Values returns all elements of the RCTAppliedFor enum +func RCTAppliedFor_Values() []string { + return []string{ + RCTAppliedForReplication, + RCTAppliedForPullThroughCache, + } +} + const ( // ReplicationStatusInProgress is a ReplicationStatus enum value ReplicationStatusInProgress = "IN_PROGRESS" diff --git a/service/ecr/ecriface/interface.go b/service/ecr/ecriface/interface.go index cba70e77b10..cc89e94762c 100644 --- a/service/ecr/ecriface/interface.go +++ b/service/ecr/ecriface/interface.go @@ -88,6 +88,10 @@ type ECRAPI interface { CreateRepositoryWithContext(aws.Context, *ecr.CreateRepositoryInput, ...request.Option) (*ecr.CreateRepositoryOutput, error) CreateRepositoryRequest(*ecr.CreateRepositoryInput) (*request.Request, *ecr.CreateRepositoryOutput) + CreateRepositoryCreationTemplate(*ecr.CreateRepositoryCreationTemplateInput) (*ecr.CreateRepositoryCreationTemplateOutput, error) + CreateRepositoryCreationTemplateWithContext(aws.Context, *ecr.CreateRepositoryCreationTemplateInput, ...request.Option) (*ecr.CreateRepositoryCreationTemplateOutput, error) + CreateRepositoryCreationTemplateRequest(*ecr.CreateRepositoryCreationTemplateInput) (*request.Request, *ecr.CreateRepositoryCreationTemplateOutput) + DeleteLifecyclePolicy(*ecr.DeleteLifecyclePolicyInput) (*ecr.DeleteLifecyclePolicyOutput, error) DeleteLifecyclePolicyWithContext(aws.Context, *ecr.DeleteLifecyclePolicyInput, ...request.Option) (*ecr.DeleteLifecyclePolicyOutput, error) DeleteLifecyclePolicyRequest(*ecr.DeleteLifecyclePolicyInput) (*request.Request, *ecr.DeleteLifecyclePolicyOutput) @@ -104,6 +108,10 @@ type ECRAPI interface { DeleteRepositoryWithContext(aws.Context, *ecr.DeleteRepositoryInput, ...request.Option) (*ecr.DeleteRepositoryOutput, error) DeleteRepositoryRequest(*ecr.DeleteRepositoryInput) (*request.Request, *ecr.DeleteRepositoryOutput) + DeleteRepositoryCreationTemplate(*ecr.DeleteRepositoryCreationTemplateInput) (*ecr.DeleteRepositoryCreationTemplateOutput, error) + DeleteRepositoryCreationTemplateWithContext(aws.Context, *ecr.DeleteRepositoryCreationTemplateInput, ...request.Option) (*ecr.DeleteRepositoryCreationTemplateOutput, error) + DeleteRepositoryCreationTemplateRequest(*ecr.DeleteRepositoryCreationTemplateInput) (*request.Request, *ecr.DeleteRepositoryCreationTemplateOutput) + DeleteRepositoryPolicy(*ecr.DeleteRepositoryPolicyInput) (*ecr.DeleteRepositoryPolicyOutput, error) DeleteRepositoryPolicyWithContext(aws.Context, *ecr.DeleteRepositoryPolicyInput, ...request.Option) (*ecr.DeleteRepositoryPolicyOutput, error) DeleteRepositoryPolicyRequest(*ecr.DeleteRepositoryPolicyInput) (*request.Request, *ecr.DeleteRepositoryPolicyOutput) @@ -144,6 +152,13 @@ type ECRAPI interface { DescribeRepositoriesPages(*ecr.DescribeRepositoriesInput, func(*ecr.DescribeRepositoriesOutput, bool) bool) error DescribeRepositoriesPagesWithContext(aws.Context, *ecr.DescribeRepositoriesInput, func(*ecr.DescribeRepositoriesOutput, bool) bool, ...request.Option) error + DescribeRepositoryCreationTemplates(*ecr.DescribeRepositoryCreationTemplatesInput) (*ecr.DescribeRepositoryCreationTemplatesOutput, error) + DescribeRepositoryCreationTemplatesWithContext(aws.Context, *ecr.DescribeRepositoryCreationTemplatesInput, ...request.Option) (*ecr.DescribeRepositoryCreationTemplatesOutput, error) + DescribeRepositoryCreationTemplatesRequest(*ecr.DescribeRepositoryCreationTemplatesInput) (*request.Request, *ecr.DescribeRepositoryCreationTemplatesOutput) + + DescribeRepositoryCreationTemplatesPages(*ecr.DescribeRepositoryCreationTemplatesInput, func(*ecr.DescribeRepositoryCreationTemplatesOutput, bool) bool) error + DescribeRepositoryCreationTemplatesPagesWithContext(aws.Context, *ecr.DescribeRepositoryCreationTemplatesInput, func(*ecr.DescribeRepositoryCreationTemplatesOutput, bool) bool, ...request.Option) error + GetAuthorizationToken(*ecr.GetAuthorizationTokenInput) (*ecr.GetAuthorizationTokenOutput, error) GetAuthorizationTokenWithContext(aws.Context, *ecr.GetAuthorizationTokenInput, ...request.Option) (*ecr.GetAuthorizationTokenOutput, error) GetAuthorizationTokenRequest(*ecr.GetAuthorizationTokenInput) (*request.Request, *ecr.GetAuthorizationTokenOutput) @@ -242,6 +257,10 @@ type ECRAPI interface { UpdatePullThroughCacheRuleWithContext(aws.Context, *ecr.UpdatePullThroughCacheRuleInput, ...request.Option) (*ecr.UpdatePullThroughCacheRuleOutput, error) UpdatePullThroughCacheRuleRequest(*ecr.UpdatePullThroughCacheRuleInput) (*request.Request, *ecr.UpdatePullThroughCacheRuleOutput) + UpdateRepositoryCreationTemplate(*ecr.UpdateRepositoryCreationTemplateInput) (*ecr.UpdateRepositoryCreationTemplateOutput, error) + UpdateRepositoryCreationTemplateWithContext(aws.Context, *ecr.UpdateRepositoryCreationTemplateInput, ...request.Option) (*ecr.UpdateRepositoryCreationTemplateOutput, error) + UpdateRepositoryCreationTemplateRequest(*ecr.UpdateRepositoryCreationTemplateInput) (*request.Request, *ecr.UpdateRepositoryCreationTemplateOutput) + UploadLayerPart(*ecr.UploadLayerPartInput) (*ecr.UploadLayerPartOutput, error) UploadLayerPartWithContext(aws.Context, *ecr.UploadLayerPartInput, ...request.Option) (*ecr.UploadLayerPartOutput, error) UploadLayerPartRequest(*ecr.UploadLayerPartInput) (*request.Request, *ecr.UploadLayerPartOutput) diff --git a/service/ecr/errors.go b/service/ecr/errors.go index 4e2bed930fb..ae0e20fd6f4 100644 --- a/service/ecr/errors.go +++ b/service/ecr/errors.go @@ -202,6 +202,20 @@ const ( // These errors are usually caused by a server-side issue. ErrCodeServerException = "ServerException" + // ErrCodeTemplateAlreadyExistsException for service response error code + // "TemplateAlreadyExistsException". + // + // The repository creation template already exists. Specify a unique prefix + // and try again. + ErrCodeTemplateAlreadyExistsException = "TemplateAlreadyExistsException" + + // ErrCodeTemplateNotFoundException for service response error code + // "TemplateNotFoundException". + // + // The specified repository creation template can't be found. Verify the registry + // ID and prefix and try again. + ErrCodeTemplateNotFoundException = "TemplateNotFoundException" + // ErrCodeTooManyTagsException for service response error code // "TooManyTagsException". // @@ -294,6 +308,8 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "ScanNotFoundException": newErrorScanNotFoundException, "SecretNotFoundException": newErrorSecretNotFoundException, "ServerException": newErrorServerException, + "TemplateAlreadyExistsException": newErrorTemplateAlreadyExistsException, + "TemplateNotFoundException": newErrorTemplateNotFoundException, "TooManyTagsException": newErrorTooManyTagsException, "UnableToAccessSecretException": newErrorUnableToAccessSecretException, "UnableToDecryptSecretValueException": newErrorUnableToDecryptSecretValueException, diff --git a/service/ecr/examples_test.go b/service/ecr/examples_test.go index 1cd58013ab7..d37c28e28f8 100644 --- a/service/ecr/examples_test.go +++ b/service/ecr/examples_test.go @@ -146,6 +146,59 @@ func ExampleECR_CreateRepository_shared00() { fmt.Println(result) } +// Create a new repository creation template +// This example creates a repository creation template. +func ExampleECR_CreateRepositoryCreationTemplate_shared00() { + svc := ecr.New(session.New()) + input := &ecr.CreateRepositoryCreationTemplateInput{ + AppliedFor: []*string{ + aws.String("REPLICATION"), + aws.String("PULL_THROUGH_CACHE"), + }, + Description: aws.String("Repos for testing images"), + EncryptionConfiguration: &ecr.EncryptionConfigurationForRepositoryCreationTemplate{ + EncryptionType: aws.String("AES256"), + }, + ImageTagMutability: aws.String("MUTABLE"), + LifecyclePolicy: aws.String("{\r\n \"rules\": [\r\n {\r\n \"rulePriority\": 1,\r\n \"description\": \"Expire images older than 14 days\",\r\n \"selection\": {\r\n \"tagStatus\": \"untagged\",\r\n \"countType\": \"sinceImagePushed\",\r\n \"countUnit\": \"days\",\r\n \"countNumber\": 14\r\n },\r\n \"action\": {\r\n \"type\": \"expire\"\r\n }\r\n }\r\n ]\r\n}"), + Prefix: aws.String("eng/test"), + RepositoryPolicy: aws.String("{\r\n \"Version\": \"2012-10-17\",\r\n \"Statement\": [\r\n {\r\n \"Sid\": \"LambdaECRPullPolicy\",\r\n \"Effect\": \"Allow\",\r\n \"Principal\": {\r\n \"Service\": \"lambda.amazonaws.com\"\r\n },\r\n \"Action\": \"ecr:BatchGetImage\"\r\n }\r\n ]\r\n}"), + ResourceTags: []*ecr.Tag{ + { + Key: aws.String("environment"), + Value: aws.String("test"), + }, + }, + } + + result, err := svc.CreateRepositoryCreationTemplate(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case ecr.ErrCodeServerException: + fmt.Println(ecr.ErrCodeServerException, aerr.Error()) + case ecr.ErrCodeValidationException: + fmt.Println(ecr.ErrCodeValidationException, aerr.Error()) + case ecr.ErrCodeInvalidParameterException: + fmt.Println(ecr.ErrCodeInvalidParameterException, aerr.Error()) + case ecr.ErrCodeLimitExceededException: + fmt.Println(ecr.ErrCodeLimitExceededException, aerr.Error()) + case ecr.ErrCodeTemplateAlreadyExistsException: + fmt.Println(ecr.ErrCodeTemplateAlreadyExistsException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To force delete a repository // This example force deletes a repository named ubuntu in the default registry for // an account. The force parameter is required if the repository contains images. @@ -184,6 +237,40 @@ func ExampleECR_DeleteRepository_shared00() { fmt.Println(result) } +// Delete a repository creation template +// This example deletes a repository creation template. +func ExampleECR_DeleteRepositoryCreationTemplate_shared00() { + svc := ecr.New(session.New()) + input := &ecr.DeleteRepositoryCreationTemplateInput{ + Prefix: aws.String("eng"), + } + + result, err := svc.DeleteRepositoryCreationTemplate(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case ecr.ErrCodeServerException: + fmt.Println(ecr.ErrCodeServerException, aerr.Error()) + case ecr.ErrCodeValidationException: + fmt.Println(ecr.ErrCodeValidationException, aerr.Error()) + case ecr.ErrCodeInvalidParameterException: + fmt.Println(ecr.ErrCodeInvalidParameterException, aerr.Error()) + case ecr.ErrCodeTemplateNotFoundException: + fmt.Println(ecr.ErrCodeTemplateNotFoundException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To delete the policy associated with a repository // This example deletes the policy associated with the repository named ubuntu in the // current account. @@ -250,6 +337,42 @@ func ExampleECR_DescribeRepositories_shared00() { fmt.Println(result) } +// Describe a repository creation template +// This example describes the contents of a repository creation template. +func ExampleECR_DescribeRepositoryCreationTemplates_shared00() { + svc := ecr.New(session.New()) + input := &ecr.DescribeRepositoryCreationTemplatesInput{ + MaxResults: aws.Int64(123), + NextToken: aws.String(""), + Prefixes: []*string{ + aws.String("eng"), + }, + } + + result, err := svc.DescribeRepositoryCreationTemplates(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case ecr.ErrCodeServerException: + fmt.Println(ecr.ErrCodeServerException, aerr.Error()) + case ecr.ErrCodeValidationException: + fmt.Println(ecr.ErrCodeValidationException, aerr.Error()) + case ecr.ErrCodeInvalidParameterException: + fmt.Println(ecr.ErrCodeInvalidParameterException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To obtain an authorization token // This example gets an authorization token for your default registry. func ExampleECR_GetAuthorizationToken_shared00() { @@ -344,3 +467,46 @@ func ExampleECR_ListImages_shared00() { fmt.Println(result) } + +// Update a repository creation template +// This example updates a repository creation template. +func ExampleECR_UpdateRepositoryCreationTemplate_shared00() { + svc := ecr.New(session.New()) + input := &ecr.UpdateRepositoryCreationTemplateInput{ + AppliedFor: []*string{ + aws.String("REPLICATION"), + }, + Prefix: aws.String("eng/test"), + ResourceTags: []*ecr.Tag{ + { + Key: aws.String("environment"), + Value: aws.String("test"), + }, + }, + } + + result, err := svc.UpdateRepositoryCreationTemplate(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case ecr.ErrCodeServerException: + fmt.Println(ecr.ErrCodeServerException, aerr.Error()) + case ecr.ErrCodeValidationException: + fmt.Println(ecr.ErrCodeValidationException, aerr.Error()) + case ecr.ErrCodeInvalidParameterException: + fmt.Println(ecr.ErrCodeInvalidParameterException, aerr.Error()) + case ecr.ErrCodeTemplateNotFoundException: + fmt.Println(ecr.ErrCodeTemplateNotFoundException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} diff --git a/service/eks/api.go b/service/eks/api.go index 6adcdad7aba..bf303c0badd 100644 --- a/service/eks/api.go +++ b/service/eks/api.go @@ -8007,6 +8007,11 @@ type Cluster struct { // any other cluster or Amazon Web Services resources. Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // This value indicates if extended support is enabled or disabled for the cluster. + // + // Learn more about EKS Extended Support in the EKS User Guide. (https://docs.aws.amazon.com/eks/latest/userguide/extended-support-control.html) + UpgradePolicy *UpgradePolicyResponse `locationName:"upgradePolicy" type:"structure"` + // The Kubernetes server version for the cluster. Version *string `locationName:"version" type:"string"` } @@ -8149,6 +8154,12 @@ func (s *Cluster) SetTags(v map[string]*string) *Cluster { return s } +// SetUpgradePolicy sets the UpgradePolicy field's value. +func (s *Cluster) SetUpgradePolicy(v *UpgradePolicyResponse) *Cluster { + s.UpgradePolicy = v + return s +} + // SetVersion sets the Version field's value. func (s *Cluster) SetVersion(v string) *Cluster { s.Version = &v @@ -9019,6 +9030,10 @@ type CreateClusterInput struct { // any other cluster or Amazon Web Services resources. Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // New clusters, by default, have extended support enabled. You can disable + // extended support when creating a cluster by setting this value to STANDARD. + UpgradePolicy *UpgradePolicyRequest `locationName:"upgradePolicy" type:"structure"` + // The desired Kubernetes version for your cluster. If you don't specify a value // here, the default version available in Amazon EKS is used. // @@ -9140,6 +9155,12 @@ func (s *CreateClusterInput) SetTags(v map[string]*string) *CreateClusterInput { return s } +// SetUpgradePolicy sets the UpgradePolicy field's value. +func (s *CreateClusterInput) SetUpgradePolicy(v *UpgradePolicyRequest) *CreateClusterInput { + s.UpgradePolicy = v + return s +} + // SetVersion sets the Version field's value. func (s *CreateClusterInput) SetVersion(v string) *CreateClusterInput { s.Version = &v @@ -18329,6 +18350,11 @@ type UpdateClusterConfigInput struct { // An object representing the VPC configuration to use for an Amazon EKS cluster. ResourcesVpcConfig *VpcConfigRequest `locationName:"resourcesVpcConfig" type:"structure"` + + // You can enable or disable extended support for clusters currently on standard + // support. You cannot disable extended support once it starts. You must enable + // extended support before your cluster exits standard support. + UpgradePolicy *UpgradePolicyRequest `locationName:"upgradePolicy" type:"structure"` } // String returns the string representation. @@ -18395,6 +18421,12 @@ func (s *UpdateClusterConfigInput) SetResourcesVpcConfig(v *VpcConfigRequest) *U return s } +// SetUpgradePolicy sets the UpgradePolicy field's value. +func (s *UpdateClusterConfigInput) SetUpgradePolicy(v *UpgradePolicyRequest) *UpdateClusterConfigInput { + s.UpgradePolicy = v + return s +} + type UpdateClusterConfigOutput struct { _ struct{} `type:"structure"` @@ -19233,6 +19265,85 @@ func (s *UpdateTaintsPayload) SetRemoveTaints(v []*Taint) *UpdateTaintsPayload { return s } +// The support policy to use for the cluster. Extended support allows you to +// remain on specific Kubernetes versions for longer. Clusters in extended support +// have higher costs. The default value is EXTENDED. Use STANDARD to disable +// extended support. +// +// Learn more about EKS Extended Support in the EKS User Guide. (https://docs.aws.amazon.com/eks/latest/userguide/extended-support-control.html) +type UpgradePolicyRequest struct { + _ struct{} `type:"structure"` + + // If the cluster is set to EXTENDED, it will enter extended support at the + // end of standard support. If the cluster is set to STANDARD, it will be automatically + // upgraded at the end of standard support. + // + // Learn more about EKS Extended Support in the EKS User Guide. (https://docs.aws.amazon.com/eks/latest/userguide/extended-support-control.html) + SupportType *string `locationName:"supportType" type:"string" enum:"SupportType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpgradePolicyRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpgradePolicyRequest) GoString() string { + return s.String() +} + +// SetSupportType sets the SupportType field's value. +func (s *UpgradePolicyRequest) SetSupportType(v string) *UpgradePolicyRequest { + s.SupportType = &v + return s +} + +// This value indicates if extended support is enabled or disabled for the cluster. +// +// Learn more about EKS Extended Support in the EKS User Guide. (https://docs.aws.amazon.com/eks/latest/userguide/extended-support-control.html) +type UpgradePolicyResponse struct { + _ struct{} `type:"structure"` + + // If the cluster is set to EXTENDED, it will enter extended support at the + // end of standard support. If the cluster is set to STANDARD, it will be automatically + // upgraded at the end of standard support. + // + // Learn more about EKS Extended Support in the EKS User Guide. (https://docs.aws.amazon.com/eks/latest/userguide/extended-support-control.html) + SupportType *string `locationName:"supportType" type:"string" enum:"SupportType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpgradePolicyResponse) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpgradePolicyResponse) GoString() string { + return s.String() +} + +// SetSupportType sets the SupportType field's value. +func (s *UpgradePolicyResponse) SetSupportType(v string) *UpgradePolicyResponse { + s.SupportType = &v + return s +} + // An object representing the VPC configuration to use for an Amazon EKS cluster. type VpcConfigRequest struct { _ struct{} `type:"structure"` @@ -20284,6 +20395,22 @@ func ResolveConflicts_Values() []string { } } +const ( + // SupportTypeStandard is a SupportType enum value + SupportTypeStandard = "STANDARD" + + // SupportTypeExtended is a SupportType enum value + SupportTypeExtended = "EXTENDED" +) + +// SupportType_Values returns all elements of the SupportType enum +func SupportType_Values() []string { + return []string{ + SupportTypeStandard, + SupportTypeExtended, + } +} + const ( // TaintEffectNoSchedule is a TaintEffect enum value TaintEffectNoSchedule = "NO_SCHEDULE" @@ -20388,6 +20515,9 @@ const ( // UpdateParamTypePodIdentityAssociations is a UpdateParamType enum value UpdateParamTypePodIdentityAssociations = "PodIdentityAssociations" + + // UpdateParamTypeUpgradePolicy is a UpdateParamType enum value + UpdateParamTypeUpgradePolicy = "UpgradePolicy" ) // UpdateParamType_Values returns all elements of the UpdateParamType enum @@ -20421,6 +20551,7 @@ func UpdateParamType_Values() []string { UpdateParamTypeSubnets, UpdateParamTypeAuthenticationMode, UpdateParamTypePodIdentityAssociations, + UpdateParamTypeUpgradePolicy, } } @@ -20478,6 +20609,9 @@ const ( // UpdateTypeAccessConfigUpdate is a UpdateType enum value UpdateTypeAccessConfigUpdate = "AccessConfigUpdate" + + // UpdateTypeUpgradePolicyUpdate is a UpdateType enum value + UpdateTypeUpgradePolicyUpdate = "UpgradePolicyUpdate" ) // UpdateType_Values returns all elements of the UpdateType enum @@ -20493,5 +20627,6 @@ func UpdateType_Values() []string { UpdateTypeAddonUpdate, UpdateTypeVpcConfigUpdate, UpdateTypeAccessConfigUpdate, + UpdateTypeUpgradePolicyUpdate, } } diff --git a/service/elbv2/api.go b/service/elbv2/api.go index a1ff3f2d708..b773205c5c3 100644 --- a/service/elbv2/api.go +++ b/service/elbv2/api.go @@ -1173,6 +1173,92 @@ func (c *ELBV2) DeleteRuleWithContext(ctx aws.Context, input *DeleteRuleInput, o return out, req.Send() } +const opDeleteSharedTrustStoreAssociation = "DeleteSharedTrustStoreAssociation" + +// DeleteSharedTrustStoreAssociationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteSharedTrustStoreAssociation operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteSharedTrustStoreAssociation for more information on using the DeleteSharedTrustStoreAssociation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteSharedTrustStoreAssociationRequest method. +// req, resp := client.DeleteSharedTrustStoreAssociationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteSharedTrustStoreAssociation +func (c *ELBV2) DeleteSharedTrustStoreAssociationRequest(input *DeleteSharedTrustStoreAssociationInput) (req *request.Request, output *DeleteSharedTrustStoreAssociationOutput) { + op := &request.Operation{ + Name: opDeleteSharedTrustStoreAssociation, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteSharedTrustStoreAssociationInput{} + } + + output = &DeleteSharedTrustStoreAssociationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteSharedTrustStoreAssociation API operation for Elastic Load Balancing. +// +// Deletes a shared trust store association. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation DeleteSharedTrustStoreAssociation for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. +// +// - ErrCodeDeleteAssociationSameAccountException "DeleteAssociationSameAccount" +// The specified association cannot be within the same account. +// +// - ErrCodeTrustStoreAssociationNotFoundException "AssociationNotFound" +// The specified association does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteSharedTrustStoreAssociation +func (c *ELBV2) DeleteSharedTrustStoreAssociation(input *DeleteSharedTrustStoreAssociationInput) (*DeleteSharedTrustStoreAssociationOutput, error) { + req, out := c.DeleteSharedTrustStoreAssociationRequest(input) + return out, req.Send() +} + +// DeleteSharedTrustStoreAssociationWithContext is the same as DeleteSharedTrustStoreAssociation with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteSharedTrustStoreAssociation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) DeleteSharedTrustStoreAssociationWithContext(ctx aws.Context, input *DeleteSharedTrustStoreAssociationInput, opts ...request.Option) (*DeleteSharedTrustStoreAssociationOutput, error) { + req, out := c.DeleteSharedTrustStoreAssociationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteTargetGroup = "DeleteTargetGroup" // DeleteTargetGroupRequest generates a "aws/request.Request" representing the @@ -2745,8 +2831,8 @@ func (c *ELBV2) DescribeTrustStoreRevocationsRequest(input *DescribeTrustStoreRe // DescribeTrustStoreRevocations API operation for Elastic Load Balancing. // -// Describes the revocation files in use by the specified trust store arn, or -// revocation ID. +// Describes the revocation files in use by the specified trust store or revocation +// files. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2885,8 +2971,7 @@ func (c *ELBV2) DescribeTrustStoresRequest(input *DescribeTrustStoresInput) (req // DescribeTrustStores API operation for Elastic Load Balancing. // -// Describes all trust stores for a given account by trust store arn’s or -// name. +// Describes all trust stores for the specified account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2972,6 +3057,84 @@ func (c *ELBV2) DescribeTrustStoresPagesWithContext(ctx aws.Context, input *Desc return p.Err() } +const opGetResourcePolicy = "GetResourcePolicy" + +// GetResourcePolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetResourcePolicy operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetResourcePolicy for more information on using the GetResourcePolicy +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetResourcePolicyRequest method. +// req, resp := client.GetResourcePolicyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/GetResourcePolicy +func (c *ELBV2) GetResourcePolicyRequest(input *GetResourcePolicyInput) (req *request.Request, output *GetResourcePolicyOutput) { + op := &request.Operation{ + Name: opGetResourcePolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetResourcePolicyInput{} + } + + output = &GetResourcePolicyOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetResourcePolicy API operation for Elastic Load Balancing. +// +// Retrieves the resource policy for a specified resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation GetResourcePolicy for usage and error information. +// +// Returned Error Codes: +// - ErrCodeResourceNotFoundException "ResourceNotFound" +// The specified resource does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/GetResourcePolicy +func (c *ELBV2) GetResourcePolicy(input *GetResourcePolicyInput) (*GetResourcePolicyOutput, error) { + req, out := c.GetResourcePolicyRequest(input) + return out, req.Send() +} + +// GetResourcePolicyWithContext is the same as GetResourcePolicy with the addition of +// the ability to pass a context and additional request options. +// +// See GetResourcePolicy for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) GetResourcePolicyWithContext(ctx aws.Context, input *GetResourcePolicyInput, opts ...request.Option) (*GetResourcePolicyOutput, error) { + req, out := c.GetResourcePolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetTrustStoreCaCertificatesBundle = "GetTrustStoreCaCertificatesBundle" // GetTrustStoreCaCertificatesBundleRequest generates a "aws/request.Request" representing the @@ -3694,7 +3857,7 @@ func (c *ELBV2) ModifyTrustStoreRequest(input *ModifyTrustStoreInput) (req *requ // ModifyTrustStore API operation for Elastic Load Balancing. // -// Update the ca certificate bundle for a given trust store. +// Update the ca certificate bundle for the specified trust store. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -6653,6 +6816,88 @@ func (s DeleteRuleOutput) GoString() string { return s.String() } +type DeleteSharedTrustStoreAssociationInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceArn is a required field + ResourceArn *string `type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the trust store. + // + // TrustStoreArn is a required field + TrustStoreArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSharedTrustStoreAssociationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSharedTrustStoreAssociationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSharedTrustStoreAssociationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteSharedTrustStoreAssociationInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *DeleteSharedTrustStoreAssociationInput) SetResourceArn(v string) *DeleteSharedTrustStoreAssociationInput { + s.ResourceArn = &v + return s +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *DeleteSharedTrustStoreAssociationInput) SetTrustStoreArn(v string) *DeleteSharedTrustStoreAssociationInput { + s.TrustStoreArn = &v + return s +} + +type DeleteSharedTrustStoreAssociationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSharedTrustStoreAssociationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSharedTrustStoreAssociationOutput) GoString() string { + return s.String() +} + type DeleteTargetGroupInput struct { _ struct{} `type:"structure"` @@ -7897,7 +8142,7 @@ func (s *DescribeTargetGroupsOutput) SetTargetGroups(v []*TargetGroup) *Describe type DescribeTargetHealthInput struct { _ struct{} `type:"structure"` - // Used to inclue anomaly detection information. + // Used to include anomaly detection information. Include []*string `type:"list" enum:"DescribeTargetHealthInputIncludeEnum"` // The Amazon Resource Name (ARN) of the target group. @@ -8508,6 +8753,83 @@ func (s *ForwardActionConfig) SetTargetGroups(v []*TargetGroupTuple) *ForwardAct return s } +type GetResourcePolicyInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceArn is a required field + ResourceArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourcePolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourcePolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetResourcePolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetResourcePolicyInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *GetResourcePolicyInput) SetResourceArn(v string) *GetResourcePolicyInput { + s.ResourceArn = &v + return s +} + +type GetResourcePolicyOutput struct { + _ struct{} `type:"structure"` + + // The content of the resource policy. + Policy *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourcePolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourcePolicyOutput) GoString() string { + return s.String() +} + +// SetPolicy sets the Policy field's value. +func (s *GetResourcePolicyOutput) SetPolicy(v string) *GetResourcePolicyOutput { + s.Policy = &v + return s +} + type GetTrustStoreCaCertificatesBundleInput struct { _ struct{} `type:"structure"` @@ -10271,6 +10593,9 @@ type MutualAuthenticationAttributes struct { // The Amazon Resource Name (ARN) of the trust store. TrustStoreArn *string `type:"string"` + + // Indicates a shared trust stores association status. + TrustStoreAssociationStatus *string `type:"string" enum:"TrustStoreAssociationStatusEnum"` } // String returns the string representation. @@ -10309,6 +10634,12 @@ func (s *MutualAuthenticationAttributes) SetTrustStoreArn(v string) *MutualAuthe return s } +// SetTrustStoreAssociationStatus sets the TrustStoreAssociationStatus field's value. +func (s *MutualAuthenticationAttributes) SetTrustStoreAssociationStatus(v string) *MutualAuthenticationAttributes { + s.TrustStoreAssociationStatus = &v + return s +} + // Information about a path pattern condition. type PathPatternConditionConfig struct { _ struct{} `type:"structure"` @@ -11239,6 +11570,11 @@ type SetIpAddressTypeInput struct { // and dualstack-without-public-ipv4 (for IPv6 only public addresses, with private // IPv4 and IPv6 addresses). // + // Note: Application Load Balancer authentication only supports IPv4 addresses + // when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. + // Without a public IPv4 address the load balancer cannot complete the authentication + // process, resulting in HTTP 500 errors. + // // [Network Load Balancers] The IP address type. The possible values are ipv4 // (for only IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses). You // can’t specify dualstack for a load balancer with a UDP or TCP_UDP listener. @@ -13252,6 +13588,22 @@ func TargetTypeEnum_Values() []string { } } +const ( + // TrustStoreAssociationStatusEnumActive is a TrustStoreAssociationStatusEnum enum value + TrustStoreAssociationStatusEnumActive = "active" + + // TrustStoreAssociationStatusEnumRemoved is a TrustStoreAssociationStatusEnum enum value + TrustStoreAssociationStatusEnumRemoved = "removed" +) + +// TrustStoreAssociationStatusEnum_Values returns all elements of the TrustStoreAssociationStatusEnum enum +func TrustStoreAssociationStatusEnum_Values() []string { + return []string{ + TrustStoreAssociationStatusEnumActive, + TrustStoreAssociationStatusEnumRemoved, + } +} + const ( // TrustStoreStatusActive is a TrustStoreStatus enum value TrustStoreStatusActive = "ACTIVE" diff --git a/service/elbv2/elbv2iface/interface.go b/service/elbv2/elbv2iface/interface.go index 90aefdc62b8..9555aa1e74b 100644 --- a/service/elbv2/elbv2iface/interface.go +++ b/service/elbv2/elbv2iface/interface.go @@ -104,6 +104,10 @@ type ELBV2API interface { DeleteRuleWithContext(aws.Context, *elbv2.DeleteRuleInput, ...request.Option) (*elbv2.DeleteRuleOutput, error) DeleteRuleRequest(*elbv2.DeleteRuleInput) (*request.Request, *elbv2.DeleteRuleOutput) + DeleteSharedTrustStoreAssociation(*elbv2.DeleteSharedTrustStoreAssociationInput) (*elbv2.DeleteSharedTrustStoreAssociationOutput, error) + DeleteSharedTrustStoreAssociationWithContext(aws.Context, *elbv2.DeleteSharedTrustStoreAssociationInput, ...request.Option) (*elbv2.DeleteSharedTrustStoreAssociationOutput, error) + DeleteSharedTrustStoreAssociationRequest(*elbv2.DeleteSharedTrustStoreAssociationInput) (*request.Request, *elbv2.DeleteSharedTrustStoreAssociationOutput) + DeleteTargetGroup(*elbv2.DeleteTargetGroupInput) (*elbv2.DeleteTargetGroupOutput, error) DeleteTargetGroupWithContext(aws.Context, *elbv2.DeleteTargetGroupInput, ...request.Option) (*elbv2.DeleteTargetGroupOutput, error) DeleteTargetGroupRequest(*elbv2.DeleteTargetGroupInput) (*request.Request, *elbv2.DeleteTargetGroupOutput) @@ -190,6 +194,10 @@ type ELBV2API interface { DescribeTrustStoresPages(*elbv2.DescribeTrustStoresInput, func(*elbv2.DescribeTrustStoresOutput, bool) bool) error DescribeTrustStoresPagesWithContext(aws.Context, *elbv2.DescribeTrustStoresInput, func(*elbv2.DescribeTrustStoresOutput, bool) bool, ...request.Option) error + GetResourcePolicy(*elbv2.GetResourcePolicyInput) (*elbv2.GetResourcePolicyOutput, error) + GetResourcePolicyWithContext(aws.Context, *elbv2.GetResourcePolicyInput, ...request.Option) (*elbv2.GetResourcePolicyOutput, error) + GetResourcePolicyRequest(*elbv2.GetResourcePolicyInput) (*request.Request, *elbv2.GetResourcePolicyOutput) + GetTrustStoreCaCertificatesBundle(*elbv2.GetTrustStoreCaCertificatesBundleInput) (*elbv2.GetTrustStoreCaCertificatesBundleOutput, error) GetTrustStoreCaCertificatesBundleWithContext(aws.Context, *elbv2.GetTrustStoreCaCertificatesBundleInput, ...request.Option) (*elbv2.GetTrustStoreCaCertificatesBundleOutput, error) GetTrustStoreCaCertificatesBundleRequest(*elbv2.GetTrustStoreCaCertificatesBundleInput) (*request.Request, *elbv2.GetTrustStoreCaCertificatesBundleOutput) diff --git a/service/elbv2/errors.go b/service/elbv2/errors.go index 2b8ccd93ed5..a26c4350263 100644 --- a/service/elbv2/errors.go +++ b/service/elbv2/errors.go @@ -34,6 +34,12 @@ const ( // The specified certificate does not exist. ErrCodeCertificateNotFoundException = "CertificateNotFound" + // ErrCodeDeleteAssociationSameAccountException for service response error code + // "DeleteAssociationSameAccount". + // + // The specified association cannot be within the same account. + ErrCodeDeleteAssociationSameAccountException = "DeleteAssociationSameAccount" + // ErrCodeDuplicateListenerException for service response error code // "DuplicateListener". // @@ -156,6 +162,12 @@ const ( // A specified resource is in use. ErrCodeResourceInUseException = "ResourceInUse" + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFound". + // + // The specified resource does not exist. + ErrCodeResourceNotFoundException = "ResourceNotFound" + // ErrCodeRevocationContentNotFoundException for service response error code // "RevocationContentNotFound". // @@ -276,6 +288,12 @@ const ( // load balancer, it is counted as only one use. ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException = "TooManyUniqueTargetGroupsPerLoadBalancer" + // ErrCodeTrustStoreAssociationNotFoundException for service response error code + // "AssociationNotFound". + // + // The specified association does not exist. + ErrCodeTrustStoreAssociationNotFoundException = "AssociationNotFound" + // ErrCodeTrustStoreInUseException for service response error code // "TrustStoreInUse". // diff --git a/service/elbv2/examples_test.go b/service/elbv2/examples_test.go index 65de2e06b2c..20ce035a7ea 100644 --- a/service/elbv2/examples_test.go +++ b/service/elbv2/examples_test.go @@ -554,6 +554,40 @@ func ExampleELBV2_DeleteRule_shared00() { fmt.Println(result) } +// Delete a shared trust store association +// This example deletes the association between the specified trust store and the specified +// load balancer. +func ExampleELBV2_DeleteSharedTrustStoreAssociation_shared00() { + svc := elbv2.New(session.New()) + input := &elbv2.DeleteSharedTrustStoreAssociationInput{ + ResourceArn: aws.String("arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-load-balancer/80233fa81d678c2c"), + TrustStoreArn: aws.String("arn:aws:elasticloadbalancing:us-east-1:123456789012:truststore/my-trust-store/73e2d6bc24d8a063"), + } + + result, err := svc.DeleteSharedTrustStoreAssociation(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case elbv2.ErrCodeTrustStoreNotFoundException: + fmt.Println(elbv2.ErrCodeTrustStoreNotFoundException, aerr.Error()) + case elbv2.ErrCodeDeleteAssociationSameAccountException: + fmt.Println(elbv2.ErrCodeDeleteAssociationSameAccountException, aerr.Error()) + case elbv2.ErrCodeTrustStoreAssociationNotFoundException: + fmt.Println(elbv2.ErrCodeTrustStoreAssociationNotFoundException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To delete a target group // This example deletes the specified target group. func ExampleELBV2_DeleteTargetGroup_shared00() { @@ -943,6 +977,34 @@ func ExampleELBV2_DescribeTargetHealth_shared01() { fmt.Println(result) } +// Retrieve a resource policy +// This example retrieves the resource policy for the specified trust store. +func ExampleELBV2_GetResourcePolicy_shared00() { + svc := elbv2.New(session.New()) + input := &elbv2.GetResourcePolicyInput{ + ResourceArn: aws.String("arn:aws:elasticloadbalancing:us-east-1:123456789012:truststore/my-trust-store/73e2d6bc24d8a067"), + } + + result, err := svc.GetResourcePolicy(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case elbv2.ErrCodeResourceNotFoundException: + fmt.Println(elbv2.ErrCodeResourceNotFoundException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To change the default action for a listener // This example changes the default action for the specified listener. func ExampleELBV2_ModifyListener_shared00() { diff --git a/service/networkfirewall/api.go b/service/networkfirewall/api.go index d63df002a63..47e9a9a6063 100644 --- a/service/networkfirewall/api.go +++ b/service/networkfirewall/api.go @@ -612,13 +612,15 @@ func (c *NetworkFirewall) CreateTLSInspectionConfigurationRequest(input *CreateT // CreateTLSInspectionConfiguration API operation for AWS Network Firewall. // -// Creates an Network Firewall TLS inspection configuration. A TLS inspection -// configuration contains Certificate Manager certificate associations between -// and the scope configurations that Network Firewall uses to decrypt and re-encrypt -// traffic traveling through your firewall. -// -// After you create a TLS inspection configuration, you can associate it with -// a new firewall policy. +// Creates an Network Firewall TLS inspection configuration. Network Firewall +// uses TLS inspection configurations to decrypt your firewall's inbound and +// outbound SSL/TLS traffic. After decryption, Network Firewall inspects the +// traffic according to your firewall policy's stateful rules, and then re-encrypts +// it before sending it to its destination. You can enable inspection of your +// firewall's inbound traffic, outbound traffic, or both. To use TLS inspection +// with your firewall, you must first import or provision certificates using +// ACM, create a TLS inspection configuration, add that configuration to a new +// firewall policy, and then associate that policy with your firewall. // // To update the settings for a TLS inspection configuration, use UpdateTLSInspectionConfiguration. // @@ -9639,13 +9641,10 @@ func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput // Defines where Network Firewall sends logs for the firewall for one log type. // This is used in LoggingConfiguration. You can send each type of log to an -// Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose delivery -// stream. +// Amazon S3 bucket, a CloudWatch log group, or a Firehose delivery stream. // -// Network Firewall generates logs for stateful rule groups. You can save alert -// and flow log types. The stateful rules engine records flow logs for all network -// traffic that it receives. It records alert logs for traffic that matches -// stateful rules that have the rule action set to DROP or ALERT. +// Network Firewall generates logs for stateful rule groups. You can save alert, +// flow, and TLS log types. type LogDestinationConfig struct { _ struct{} `type:"structure"` @@ -9662,24 +9661,35 @@ type LogDestinationConfig struct { // with key logGroup. The following example specifies a log group named alert-log-group: // "LogDestination": { "logGroup": "alert-log-group" } // - // * For a Kinesis Data Firehose delivery stream, provide the name of the - // delivery stream, with key deliveryStream. The following example specifies - // a delivery stream named alert-delivery-stream: "LogDestination": { "deliveryStream": - // "alert-delivery-stream" } + // * For a Firehose delivery stream, provide the name of the delivery stream, + // with key deliveryStream. The following example specifies a delivery stream + // named alert-delivery-stream: "LogDestination": { "deliveryStream": "alert-delivery-stream" + // } // // LogDestination is a required field LogDestination map[string]*string `type:"map" required:"true"` // The type of storage destination to send these logs to. You can send logs - // to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose - // delivery stream. + // to an Amazon S3 bucket, a CloudWatch log group, or a Firehose delivery stream. // // LogDestinationType is a required field LogDestinationType *string `min:"2" type:"string" required:"true" enum:"LogDestinationType"` - // The type of log to send. Alert logs report traffic that matches a StatefulRule - // with an action setting that sends an alert log message. Flow logs are standard - // network traffic flow logs. + // The type of log to record. You can record the following types of logs from + // your Network Firewall stateful engine. + // + // * ALERT - Logs for traffic that matches your stateful rules and that have + // an action that sends an alert. A stateful rule sends alerts for the rule + // actions DROP, ALERT, and REJECT. For more information, see StatefulRule. + // + // * FLOW - Standard network traffic flow logs. The stateful rules engine + // records flow logs for all network traffic that it receives. Each flow + // log record captures the network flow for a specific standard stateless + // rule group. + // + // * TLS - Logs for events that are related to TLS inspection. For more information, + // see Inspecting SSL/TLS traffic with TLS inspection configurations (https://docs.aws.amazon.com/network-firewall/latest/developerguide/tls-inspection-configurations.html) + // in the Network Firewall Developer Guide. // // LogType is a required field LogType *string `type:"string" required:"true" enum:"LogType"` @@ -11805,6 +11815,12 @@ type StatefulRule struct { // action, verify in the logs that the rule is filtering as you want, then // change the action to DROP. // + // * REJECT - Drops traffic that matches the conditions of the stateful rule, + // and sends a TCP reset packet back to sender of the packet. A TCP reset + // packet is a packet with no payload and an RST bit contained in the TCP + // header flags. REJECT is available only for TCP traffic. This option doesn't + // support FTP or IMAP protocols. + // // Action is a required field Action *string `type:"string" required:"true" enum:"StatefulAction"` @@ -15004,6 +15020,9 @@ const ( // LogTypeFlow is a LogType enum value LogTypeFlow = "FLOW" + + // LogTypeTls is a LogType enum value + LogTypeTls = "TLS" ) // LogType_Values returns all elements of the LogType enum @@ -15011,6 +15030,7 @@ func LogType_Values() []string { return []string{ LogTypeAlert, LogTypeFlow, + LogTypeTls, } } diff --git a/service/outposts/api.go b/service/outposts/api.go index 067ddce5430..f79373c18a9 100644 --- a/service/outposts/api.go +++ b/service/outposts/api.go @@ -5888,6 +5888,9 @@ type InstanceTypeItem struct { // The instance type. InstanceType *string `type:"string"` + + // The number of default VCPUs in an instance type. + VCPUs *int64 `type:"integer"` } // String returns the string representation. @@ -5914,6 +5917,12 @@ func (s *InstanceTypeItem) SetInstanceType(v string) *InstanceTypeItem { return s } +// SetVCPUs sets the VCPUs field's value. +func (s *InstanceTypeItem) SetVCPUs(v int64) *InstanceTypeItem { + s.VCPUs = &v + return s +} + // An internal error has occurred. type InternalServerException struct { _ struct{} `type:"structure"` diff --git a/service/sfn/api.go b/service/sfn/api.go index 673a046bb90..b29415bde14 100644 --- a/service/sfn/api.go +++ b/service/sfn/api.go @@ -86,6 +86,9 @@ func (c *SFN) CreateActivityRequest(input *CreateActivityInput) (req *request.Re // The maximum number of activities has been reached. Existing activities must // be deleted before a new activity can be created. // +// - ActivityAlreadyExists +// Activity already exists. EncryptionConfiguration may not be updated. +// // - InvalidName // The provided name is not valid. // @@ -94,6 +97,19 @@ func (c *SFN) CreateActivityRequest(input *CreateActivityInput) (req *request.Re // Topic (https://docs.aws.amazon.com/step-functions/latest/dg/limits.html) // in the Step Functions Developer Guide. // +// - InvalidEncryptionConfiguration +// Received when encryptionConfiguration is specified but various conditions +// exist which make the configuration invalid. For example, if type is set to +// CUSTOMER_MANAGED_KMS_KEY, but kmsKeyId is null, or kmsDataKeyReusePeriodSeconds +// is not between 60 and 900, or the KMS key is not symmetric or inactive. +// +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/CreateActivity func (c *SFN) CreateActivity(input *CreateActivityInput) (*CreateActivityOutput, error) { req, out := c.CreateActivityRequest(input) @@ -169,17 +185,23 @@ func (c *SFN) CreateStateMachineRequest(input *CreateStateMachineInput) (req *re // If you set the publish parameter of this API action to true, it publishes // version 1 as the first revision of the state machine. // +// For additional control over security, you can encrypt your data using a customer-managed +// key for Step Functions state machines. You can configure a symmetric KMS +// key and data key reuse period when creating or updating a State Machine. +// The execution history and state machine definition will be encrypted with +// the key applied to the State Machine. +// // This operation is eventually consistent. The results are best effort and // may not reflect very recent updates and changes. // // CreateStateMachine is an idempotent API. Subsequent requests won’t create // a duplicate resource if it was already created. CreateStateMachine's idempotency // check is based on the state machine name, definition, type, LoggingConfiguration, -// and TracingConfiguration. The check is also based on the publish and versionDescription -// parameters. If a following request has a different roleArn or tags, Step -// Functions will ignore these differences and treat it as an idempotent request -// of the previous. In this case, roleArn and tags will not be updated, even -// if they are different. +// TracingConfiguration, and EncryptionConfiguration The check is also based +// on the publish and versionDescription parameters. If a following request +// has a different roleArn or tags, Step Functions will ignore these differences +// and treat it as an idempotent request of the previous. In this case, roleArn +// and tags will not be updated, even if they are different. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -200,6 +222,7 @@ func (c *SFN) CreateStateMachineRequest(input *CreateStateMachineInput) (req *re // The provided name is not valid. // // - InvalidLoggingConfiguration +// Configuration is not valid. // // - InvalidTracingConfiguration // Your tracingConfiguration key does not match, or enabled has not been set @@ -217,6 +240,7 @@ func (c *SFN) CreateStateMachineRequest(input *CreateStateMachineInput) (req *re // must be deleted before a new state machine can be created. // // - StateMachineTypeNotSupported +// State machine type is not supported. // // - TooManyTags // You've exceeded the number of tags allowed for a resource. See the Limits @@ -234,6 +258,19 @@ func (c *SFN) CreateStateMachineRequest(input *CreateStateMachineInput) (req *re // // HTTP Status Code: 409 // +// - InvalidEncryptionConfiguration +// Received when encryptionConfiguration is specified but various conditions +// exist which make the configuration invalid. For example, if type is set to +// CUSTOMER_MANAGED_KMS_KEY, but kmsKeyId is null, or kmsDataKeyReusePeriodSeconds +// is not between 60 and 900, or the KMS key is not symmetric or inactive. +// +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/CreateStateMachine func (c *SFN) CreateStateMachine(input *CreateStateMachineInput) (*CreateStateMachineOutput, error) { req, out := c.CreateStateMachineRequest(input) @@ -954,6 +991,16 @@ func (c *SFN) DescribeExecutionRequest(input *DescribeExecutionInput) (req *requ // - InvalidArn // The provided Amazon Resource Name (ARN) is not valid. // +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeExecution func (c *SFN) DescribeExecution(input *DescribeExecutionInput) (*DescribeExecutionOutput, error) { req, out := c.DescribeExecutionRequest(input) @@ -1150,6 +1197,16 @@ func (c *SFN) DescribeStateMachineRequest(input *DescribeStateMachineInput) (req // - StateMachineDoesNotExist // The specified state machine does not exist. // +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeStateMachine func (c *SFN) DescribeStateMachine(input *DescribeStateMachineInput) (*DescribeStateMachineOutput, error) { req, out := c.DescribeStateMachineRequest(input) @@ -1336,6 +1393,16 @@ func (c *SFN) DescribeStateMachineForExecutionRequest(input *DescribeStateMachin // - InvalidArn // The provided Amazon Resource Name (ARN) is not valid. // +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeStateMachineForExecution func (c *SFN) DescribeStateMachineForExecution(input *DescribeStateMachineForExecutionInput) (*DescribeStateMachineForExecutionOutput, error) { req, out := c.DescribeStateMachineForExecutionRequest(input) @@ -1437,6 +1504,16 @@ func (c *SFN) GetActivityTaskRequest(input *GetActivityTaskInput) (req *request. // - InvalidArn // The provided Amazon Resource Name (ARN) is not valid. // +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/GetActivityTask func (c *SFN) GetActivityTask(input *GetActivityTaskInput) (*GetActivityTaskOutput, error) { req, out := c.GetActivityTaskRequest(input) @@ -1538,6 +1615,16 @@ func (c *SFN) GetExecutionHistoryRequest(input *GetExecutionHistoryInput) (req * // - InvalidToken // The provided token is not valid. // +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/GetExecutionHistory func (c *SFN) GetExecutionHistory(input *GetExecutionHistoryInput) (*GetExecutionHistoryOutput, error) { req, out := c.GetExecutionHistoryRequest(input) @@ -1846,6 +1933,7 @@ func (c *SFN) ListExecutionsRequest(input *ListExecutionsInput) (req *request.Re // The specified state machine does not exist. // // - StateMachineTypeNotSupported +// State machine type is not supported. // // - ValidationException // The input does not satisfy the constraints specified by an Amazon Web Services @@ -2820,6 +2908,13 @@ func (c *SFN) SendTaskFailureRequest(input *SendTaskFailureInput) (req *request. // pattern, and optionally Task states using the job run (https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-sync) // pattern to report that the task identified by the taskToken failed. // +// For an execution with encryption enabled, Step Functions will encrypt the +// error and cause fields using the KMS key for the execution role. +// +// A caller can mark a task as fail without using any KMS permissions in the +// execution role if the caller provides a null value for both error and cause +// fields because no data needs to be encrypted. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -2839,6 +2934,16 @@ func (c *SFN) SendTaskFailureRequest(input *SendTaskFailureInput) (req *request. // The task token has either expired or the task associated with the token has // already been closed. // +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/SendTaskFailure func (c *SFN) SendTaskFailure(input *SendTaskFailureInput) (*SendTaskFailureOutput, error) { req, out := c.SendTaskFailureRequest(input) @@ -3033,6 +3138,16 @@ func (c *SFN) SendTaskSuccessRequest(input *SendTaskSuccessInput) (req *request. // The task token has either expired or the task associated with the token has // already been closed. // +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/SendTaskSuccess func (c *SFN) SendTaskSuccess(input *SendTaskSuccessInput) (*SendTaskSuccessOutput, error) { req, out := c.SendTaskSuccessRequest(input) @@ -3173,6 +3288,16 @@ func (c *SFN) StartExecutionRequest(input *StartExecutionInput) (req *request.Re // The input does not satisfy the constraints specified by an Amazon Web Services // service. // +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StartExecution func (c *SFN) StartExecution(input *StartExecutionInput) (*StartExecutionOutput, error) { req, out := c.StartExecutionRequest(input) @@ -3276,6 +3401,17 @@ func (c *SFN) StartSyncExecutionRequest(input *StartSyncExecutionInput) (req *re // The specified state machine is being deleted. // // - StateMachineTypeNotSupported +// State machine type is not supported. +// +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. // // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StartSyncExecution func (c *SFN) StartSyncExecution(input *StartSyncExecutionInput) (*StartSyncExecutionOutput, error) { @@ -3346,6 +3482,13 @@ func (c *SFN) StopExecutionRequest(input *StopExecutionInput) (req *request.Requ // // This API action is not supported by EXPRESS state machines. // +// For an execution with encryption enabled, Step Functions will encrypt the +// error and cause fields using the KMS key for the execution role. +// +// A caller can stop an execution without using any KMS permissions in the execution +// role if the caller provides a null value for both error and cause fields +// because no data needs to be encrypted. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -3365,6 +3508,16 @@ func (c *SFN) StopExecutionRequest(input *StopExecutionInput) (req *request.Requ // The input does not satisfy the constraints specified by an Amazon Web Services // service. // +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsInvalidStateException +// The KMS key is not in valid state, for example: Disabled or Deleted. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StopExecution func (c *SFN) StopExecution(input *StopExecutionInput) (*StopExecutionOutput, error) { req, out := c.StopExecutionRequest(input) @@ -3828,8 +3981,8 @@ func (c *SFN) UpdateStateMachineRequest(input *UpdateStateMachineInput) (req *re // UpdateStateMachine API operation for AWS Step Functions. // -// Updates an existing state machine by modifying its definition, roleArn, or -// loggingConfiguration. Running executions will continue to use the previous +// Updates an existing state machine by modifying its definition, roleArn, loggingConfiguration, +// or EncryptionConfiguration. Running executions will continue to use the previous // definition and roleArn. You must include at least one of definition or roleArn // or you will receive a MissingRequiredParameter error. // @@ -3886,6 +4039,7 @@ func (c *SFN) UpdateStateMachineRequest(input *UpdateStateMachineInput) (req *re // The provided Amazon States Language definition is not valid. // // - InvalidLoggingConfiguration +// Configuration is not valid. // // - InvalidTracingConfiguration // Your tracingConfiguration key does not match, or enabled has not been set @@ -3917,6 +4071,19 @@ func (c *SFN) UpdateStateMachineRequest(input *UpdateStateMachineInput) (req *re // The input does not satisfy the constraints specified by an Amazon Web Services // service. // +// - InvalidEncryptionConfiguration +// Received when encryptionConfiguration is specified but various conditions +// exist which make the configuration invalid. For example, if type is set to +// CUSTOMER_MANAGED_KMS_KEY, but kmsKeyId is null, or kmsDataKeyReusePeriodSeconds +// is not between 60 and 900, or the KMS key is not symmetric or inactive. +// +// - KmsAccessDeniedException +// Either your KMS key policy or API caller does not have the required permissions. +// +// - KmsThrottlingException +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/UpdateStateMachine func (c *SFN) UpdateStateMachine(input *UpdateStateMachineInput) (*UpdateStateMachineOutput, error) { req, out := c.UpdateStateMachineRequest(input) @@ -4156,6 +4323,70 @@ func (c *SFN) ValidateStateMachineDefinitionWithContext(ctx aws.Context, input * return out, req.Send() } +// Activity already exists. EncryptionConfiguration may not be updated. +type ActivityAlreadyExists struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ActivityAlreadyExists) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ActivityAlreadyExists) GoString() string { + return s.String() +} + +func newErrorActivityAlreadyExists(v protocol.ResponseMetadata) error { + return &ActivityAlreadyExists{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ActivityAlreadyExists) Code() string { + return "ActivityAlreadyExists" +} + +// Message returns the exception's message. +func (s *ActivityAlreadyExists) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ActivityAlreadyExists) OrigErr() error { + return nil +} + +func (s *ActivityAlreadyExists) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ActivityAlreadyExists) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ActivityAlreadyExists) RequestID() string { + return s.RespMetadata.RequestID +} + // The specified activity does not exist. type ActivityDoesNotExist struct { _ struct{} `type:"structure"` @@ -4914,6 +5145,9 @@ func (s *ConflictException) RequestID() string { type CreateActivityInput struct { _ struct{} `type:"structure"` + // Settings to configure server-side encryption. + EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"` + // The name of the activity to create. This name must be unique for your Amazon // Web Services account and region for 90 days. For more information, see Limits // Related to State Machine Executions (https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions) @@ -4976,6 +5210,11 @@ func (s *CreateActivityInput) Validate() error { if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } + if s.EncryptionConfiguration != nil { + if err := s.EncryptionConfiguration.Validate(); err != nil { + invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams)) + } + } if s.Tags != nil { for i, v := range s.Tags { if v == nil { @@ -4993,6 +5232,12 @@ func (s *CreateActivityInput) Validate() error { return nil } +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *CreateActivityInput) SetEncryptionConfiguration(v *EncryptionConfiguration) *CreateActivityInput { + s.EncryptionConfiguration = v + return s +} + // SetName sets the Name field's value. func (s *CreateActivityInput) SetName(v string) *CreateActivityInput { s.Name = &v @@ -5203,6 +5448,9 @@ type CreateStateMachineInput struct { // Definition is a required field Definition *string `locationName:"definition" min:"1" type:"string" required:"true" sensitive:"true"` + // Settings to configure server-side encryption. + EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"` + // Defines what execution history events are logged and where they are logged. // // By default, the level is set to OFF. For more information see Log Levels @@ -5307,6 +5555,11 @@ func (s *CreateStateMachineInput) Validate() error { if s.RoleArn != nil && len(*s.RoleArn) < 1 { invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) } + if s.EncryptionConfiguration != nil { + if err := s.EncryptionConfiguration.Validate(); err != nil { + invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams)) + } + } if s.LoggingConfiguration != nil { if err := s.LoggingConfiguration.Validate(); err != nil { invalidParams.AddNested("LoggingConfiguration", err.(request.ErrInvalidParams)) @@ -5335,6 +5588,12 @@ func (s *CreateStateMachineInput) SetDefinition(v string) *CreateStateMachineInp return s } +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *CreateStateMachineInput) SetEncryptionConfiguration(v *EncryptionConfiguration) *CreateStateMachineInput { + s.EncryptionConfiguration = v + return s +} + // SetLoggingConfiguration sets the LoggingConfiguration field's value. func (s *CreateStateMachineInput) SetLoggingConfiguration(v *LoggingConfiguration) *CreateStateMachineInput { s.LoggingConfiguration = v @@ -5784,6 +6043,9 @@ type DescribeActivityOutput struct { // CreationDate is a required field CreationDate *time.Time `locationName:"creationDate" type:"timestamp" required:"true"` + // Settings for configured server-side encryption. + EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"` + // The name of the activity. // // A name must not contain: @@ -5835,6 +6097,12 @@ func (s *DescribeActivityOutput) SetCreationDate(v time.Time) *DescribeActivityO return s } +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *DescribeActivityOutput) SetEncryptionConfiguration(v *EncryptionConfiguration) *DescribeActivityOutput { + s.EncryptionConfiguration = v + return s +} + // SetName sets the Name field's value. func (s *DescribeActivityOutput) SetName(v string) *DescribeActivityOutput { s.Name = &v @@ -5848,6 +6116,12 @@ type DescribeExecutionInput struct { // // ExecutionArn is a required field ExecutionArn *string `locationName:"executionArn" min:"1" type:"string" required:"true"` + + // If your state machine definition is encrypted with a KMS key, callers must + // have kms:Decrypt permission to decrypt the definition. Alternatively, you + // can call DescribeStateMachine API with includedData = METADATA_ONLY to get + // a successful response without the encrypted definition. + IncludedData *string `locationName:"includedData" type:"string" enum:"IncludedData"` } // String returns the string representation. @@ -5890,6 +6164,12 @@ func (s *DescribeExecutionInput) SetExecutionArn(v string) *DescribeExecutionInp return s } +// SetIncludedData sets the IncludedData field's value. +func (s *DescribeExecutionInput) SetIncludedData(v string) *DescribeExecutionInput { + s.IncludedData = &v + return s +} + type DescribeExecutionOutput struct { _ struct{} `type:"structure"` @@ -6532,6 +6812,12 @@ type DescribeStateMachineForExecutionInput struct { // // ExecutionArn is a required field ExecutionArn *string `locationName:"executionArn" min:"1" type:"string" required:"true"` + + // If your state machine definition is encrypted with a KMS key, callers must + // have kms:Decrypt permission to decrypt the definition. Alternatively, you + // can call the API with includedData = METADATA_ONLY to get a successful response + // without the encrypted definition. + IncludedData *string `locationName:"includedData" type:"string" enum:"IncludedData"` } // String returns the string representation. @@ -6574,6 +6860,12 @@ func (s *DescribeStateMachineForExecutionInput) SetExecutionArn(v string) *Descr return s } +// SetIncludedData sets the IncludedData field's value. +func (s *DescribeStateMachineForExecutionInput) SetIncludedData(v string) *DescribeStateMachineForExecutionInput { + s.IncludedData = &v + return s +} + type DescribeStateMachineForExecutionOutput struct { _ struct{} `type:"structure"` @@ -6587,6 +6879,9 @@ type DescribeStateMachineForExecutionOutput struct { // Definition is a required field Definition *string `locationName:"definition" min:"1" type:"string" required:"true" sensitive:"true"` + // Settings to configure server-side encryption. + EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"` + // A user-defined or an auto-generated string that identifies a Map state. This // field is returned only if the executionArn is a child workflow execution // that was started by a Distributed Map state. @@ -6658,6 +6953,12 @@ func (s *DescribeStateMachineForExecutionOutput) SetDefinition(v string) *Descri return s } +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *DescribeStateMachineForExecutionOutput) SetEncryptionConfiguration(v *EncryptionConfiguration) *DescribeStateMachineForExecutionOutput { + s.EncryptionConfiguration = v + return s +} + // SetLabel sets the Label field's value. func (s *DescribeStateMachineForExecutionOutput) SetLabel(v string) *DescribeStateMachineForExecutionOutput { s.Label = &v @@ -6715,6 +7016,17 @@ func (s *DescribeStateMachineForExecutionOutput) SetUpdateDate(v time.Time) *Des type DescribeStateMachineInput struct { _ struct{} `type:"structure"` + // If your state machine definition is encrypted with a KMS key, callers must + // have kms:Decrypt permission to decrypt the definition. Alternatively, you + // can call the API with includedData = METADATA_ONLY to get a successful response + // without the encrypted definition. + // + // When calling a labelled ARN for an encrypted state machine, the includedData + // = METADATA_ONLY parameter will not apply because Step Functions needs to + // decrypt the entire state machine definition to get the Distributed Map state’s + // definition. In this case, the API caller needs to have kms:Decrypt permission. + IncludedData *string `locationName:"includedData" type:"string" enum:"IncludedData"` + // The Amazon Resource Name (ARN) of the state machine for which you want the // information. // @@ -6760,6 +7072,12 @@ func (s *DescribeStateMachineInput) Validate() error { return nil } +// SetIncludedData sets the IncludedData field's value. +func (s *DescribeStateMachineInput) SetIncludedData(v string) *DescribeStateMachineInput { + s.IncludedData = &v + return s +} + // SetStateMachineArn sets the StateMachineArn field's value. func (s *DescribeStateMachineInput) SetStateMachineArn(v string) *DescribeStateMachineInput { s.StateMachineArn = &v @@ -6779,6 +7097,9 @@ type DescribeStateMachineOutput struct { // The Amazon States Language definition of the state machine. See Amazon States // Language (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html). // + // If called with includedData = METADATA_ONLY, the returned definition will + // be {}. + // // Definition is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by DescribeStateMachineOutput's // String and GoString methods. @@ -6793,6 +7114,9 @@ type DescribeStateMachineOutput struct { // String and GoString methods. Description *string `locationName:"description" type:"string" sensitive:"true"` + // Settings to configure server-side encryption. + EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"` + // A user-defined or an auto-generated string that identifies a Map state. This // parameter is present only if the stateMachineArn specified in input is a // qualified state machine ARN. @@ -6892,6 +7216,12 @@ func (s *DescribeStateMachineOutput) SetDescription(v string) *DescribeStateMach return s } +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *DescribeStateMachineOutput) SetEncryptionConfiguration(v *EncryptionConfiguration) *DescribeStateMachineOutput { + s.EncryptionConfiguration = v + return s +} + // SetLabel sets the Label field's value. func (s *DescribeStateMachineOutput) SetLabel(v string) *DescribeStateMachineOutput { s.Label = &v @@ -6946,6 +7276,95 @@ func (s *DescribeStateMachineOutput) SetType(v string) *DescribeStateMachineOutp return s } +// Settings to configure server-side encryption. +// +// For additional control over security, you can encrypt your data using a customer-managed +// key for Step Functions state machines and activities. You can configure a +// symmetric KMS key and data key reuse period when creating or updating a State +// Machine, and when creating an Activity. The execution history and state machine +// definition will be encrypted with the key applied to the State Machine. Activity +// inputs will be encrypted with the key applied to the Activity. +// +// Step Functions automatically enables encryption at rest using Amazon Web +// Services owned keys at no charge. However, KMS charges apply when using a +// customer managed key. For more information about pricing, see Key Management +// Service pricing (https://aws.amazon.com/kms/pricing/). +// +// For more information on KMS, see What is Key Management Service? (https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) +type EncryptionConfiguration struct { + _ struct{} `type:"structure"` + + // Maximum duration that Step Functions will reuse data keys. When the period + // expires, Step Functions will call GenerateDataKey. Only applies to customer + // managed keys. + KmsDataKeyReusePeriodSeconds *int64 `locationName:"kmsDataKeyReusePeriodSeconds" min:"60" type:"integer"` + + // An alias, alias ARN, key ID, or key ARN of a symmetric encryption KMS key + // to encrypt data. To specify a KMS key in a different Amazon Web Services + // account, you must use the key ARN or alias ARN. + KmsKeyId *string `locationName:"kmsKeyId" min:"1" type:"string"` + + // Encryption type + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"EncryptionType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EncryptionConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EncryptionConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EncryptionConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EncryptionConfiguration"} + if s.KmsDataKeyReusePeriodSeconds != nil && *s.KmsDataKeyReusePeriodSeconds < 60 { + invalidParams.Add(request.NewErrParamMinValue("KmsDataKeyReusePeriodSeconds", 60)) + } + if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KmsKeyId", 1)) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKmsDataKeyReusePeriodSeconds sets the KmsDataKeyReusePeriodSeconds field's value. +func (s *EncryptionConfiguration) SetKmsDataKeyReusePeriodSeconds(v int64) *EncryptionConfiguration { + s.KmsDataKeyReusePeriodSeconds = &v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *EncryptionConfiguration) SetKmsKeyId(v string) *EncryptionConfiguration { + s.KmsKeyId = &v + return s +} + +// SetType sets the Type field's value. +func (s *EncryptionConfiguration) SetType(v string) *EncryptionConfiguration { + s.Type = &v + return s +} + // Contains details about an abort of an execution. type ExecutionAbortedEventDetails struct { _ struct{} `type:"structure"` @@ -8758,6 +9177,73 @@ func (s *InvalidDefinition) RequestID() string { return s.RespMetadata.RequestID } +// Received when encryptionConfiguration is specified but various conditions +// exist which make the configuration invalid. For example, if type is set to +// CUSTOMER_MANAGED_KMS_KEY, but kmsKeyId is null, or kmsDataKeyReusePeriodSeconds +// is not between 60 and 900, or the KMS key is not symmetric or inactive. +type InvalidEncryptionConfiguration struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidEncryptionConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidEncryptionConfiguration) GoString() string { + return s.String() +} + +func newErrorInvalidEncryptionConfiguration(v protocol.ResponseMetadata) error { + return &InvalidEncryptionConfiguration{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InvalidEncryptionConfiguration) Code() string { + return "InvalidEncryptionConfiguration" +} + +// Message returns the exception's message. +func (s *InvalidEncryptionConfiguration) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InvalidEncryptionConfiguration) OrigErr() error { + return nil +} + +func (s *InvalidEncryptionConfiguration) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InvalidEncryptionConfiguration) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InvalidEncryptionConfiguration) RequestID() string { + return s.RespMetadata.RequestID +} + // The provided JSON input data is not valid. type InvalidExecutionInput struct { _ struct{} `type:"structure"` @@ -8822,6 +9308,7 @@ func (s *InvalidExecutionInput) RequestID() string { return s.RespMetadata.RequestID } +// Configuration is not valid. type InvalidLoggingConfiguration struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -9142,6 +9629,203 @@ func (s *InvalidTracingConfiguration) RequestID() string { return s.RespMetadata.RequestID } +// Either your KMS key policy or API caller does not have the required permissions. +type KmsAccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s KmsAccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s KmsAccessDeniedException) GoString() string { + return s.String() +} + +func newErrorKmsAccessDeniedException(v protocol.ResponseMetadata) error { + return &KmsAccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *KmsAccessDeniedException) Code() string { + return "KmsAccessDeniedException" +} + +// Message returns the exception's message. +func (s *KmsAccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *KmsAccessDeniedException) OrigErr() error { + return nil +} + +func (s *KmsAccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *KmsAccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *KmsAccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The KMS key is not in valid state, for example: Disabled or Deleted. +type KmsInvalidStateException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Current status of the KMS; key. For example: DISABLED, PENDING_DELETION, + // PENDING_IMPORT, UNAVAILABLE, CREATING. + KmsKeyState *string `locationName:"kmsKeyState" type:"string" enum:"KmsKeyState"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s KmsInvalidStateException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s KmsInvalidStateException) GoString() string { + return s.String() +} + +func newErrorKmsInvalidStateException(v protocol.ResponseMetadata) error { + return &KmsInvalidStateException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *KmsInvalidStateException) Code() string { + return "KmsInvalidStateException" +} + +// Message returns the exception's message. +func (s *KmsInvalidStateException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *KmsInvalidStateException) OrigErr() error { + return nil +} + +func (s *KmsInvalidStateException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *KmsInvalidStateException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *KmsInvalidStateException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Received when KMS returns ThrottlingException for a KMS call that Step Functions +// makes on behalf of the caller. +type KmsThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s KmsThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s KmsThrottlingException) GoString() string { + return s.String() +} + +func newErrorKmsThrottlingException(v protocol.ResponseMetadata) error { + return &KmsThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *KmsThrottlingException) Code() string { + return "KmsThrottlingException" +} + +// Message returns the exception's message. +func (s *KmsThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *KmsThrottlingException) OrigErr() error { + return nil +} + +func (s *KmsThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *KmsThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *KmsThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + // Contains details about a Lambda function that failed during an execution. type LambdaFunctionFailedEventDetails struct { _ struct{} `type:"structure"` @@ -11933,6 +12617,12 @@ func (s *StartExecutionOutput) SetStartDate(v time.Time) *StartExecutionOutput { type StartSyncExecutionInput struct { _ struct{} `type:"structure"` + // If your state machine definition is encrypted with a KMS key, callers must + // have kms:Decrypt permission to decrypt the definition. Alternatively, you + // can call the API with includedData = METADATA_ONLY to get a successful response + // without the encrypted definition. + IncludedData *string `locationName:"includedData" type:"string" enum:"IncludedData"` + // The string that contains the JSON input data for the execution, for example: // // "input": "{\"first_name\" : \"test\"}" @@ -11998,6 +12688,12 @@ func (s *StartSyncExecutionInput) Validate() error { return nil } +// SetIncludedData sets the IncludedData field's value. +func (s *StartSyncExecutionInput) SetIncludedData(v string) *StartSyncExecutionInput { + s.IncludedData = &v + return s +} + // SetInput sets the Input field's value. func (s *StartSyncExecutionInput) SetInput(v string) *StartSyncExecutionInput { s.Input = &v @@ -12714,6 +13410,7 @@ func (s *StateMachineListItem) SetType(v string) *StateMachineListItem { return s } +// State machine type is not supported. type StateMachineTypeNotSupported struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -14463,6 +15160,9 @@ type UpdateStateMachineInput struct { // String and GoString methods. Definition *string `locationName:"definition" min:"1" type:"string" sensitive:"true"` + // Settings to configure server-side encryption. + EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"` + // Use the LoggingConfiguration data type to set CloudWatch Logs options. LoggingConfiguration *LoggingConfiguration `locationName:"loggingConfiguration" type:"structure"` @@ -14526,6 +15226,11 @@ func (s *UpdateStateMachineInput) Validate() error { if s.StateMachineArn != nil && len(*s.StateMachineArn) < 1 { invalidParams.Add(request.NewErrParamMinLen("StateMachineArn", 1)) } + if s.EncryptionConfiguration != nil { + if err := s.EncryptionConfiguration.Validate(); err != nil { + invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams)) + } + } if s.LoggingConfiguration != nil { if err := s.LoggingConfiguration.Validate(); err != nil { invalidParams.AddNested("LoggingConfiguration", err.(request.ErrInvalidParams)) @@ -14544,6 +15249,12 @@ func (s *UpdateStateMachineInput) SetDefinition(v string) *UpdateStateMachineInp return s } +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *UpdateStateMachineInput) SetEncryptionConfiguration(v *EncryptionConfiguration) *UpdateStateMachineInput { + s.EncryptionConfiguration = v + return s +} + // SetLoggingConfiguration sets the LoggingConfiguration field's value. func (s *UpdateStateMachineInput) SetLoggingConfiguration(v *LoggingConfiguration) *UpdateStateMachineInput { s.LoggingConfiguration = v @@ -14883,6 +15594,22 @@ func (s *ValidationException) RequestID() string { return s.RespMetadata.RequestID } +const ( + // EncryptionTypeAwsOwnedKey is a EncryptionType enum value + EncryptionTypeAwsOwnedKey = "AWS_OWNED_KEY" + + // EncryptionTypeCustomerManagedKmsKey is a EncryptionType enum value + EncryptionTypeCustomerManagedKmsKey = "CUSTOMER_MANAGED_KMS_KEY" +) + +// EncryptionType_Values returns all elements of the EncryptionType enum +func EncryptionType_Values() []string { + return []string{ + EncryptionTypeAwsOwnedKey, + EncryptionTypeCustomerManagedKmsKey, + } +} + const ( // ExecutionRedriveFilterRedriven is a ExecutionRedriveFilter enum value ExecutionRedriveFilterRedriven = "REDRIVEN" @@ -15203,6 +15930,22 @@ func HistoryEventType_Values() []string { } } +const ( + // IncludedDataAllData is a IncludedData enum value + IncludedDataAllData = "ALL_DATA" + + // IncludedDataMetadataOnly is a IncludedData enum value + IncludedDataMetadataOnly = "METADATA_ONLY" +) + +// IncludedData_Values returns all elements of the IncludedData enum +func IncludedData_Values() []string { + return []string{ + IncludedDataAllData, + IncludedDataMetadataOnly, + } +} + const ( // InspectionLevelInfo is a InspectionLevel enum value InspectionLevelInfo = "INFO" @@ -15223,6 +15966,34 @@ func InspectionLevel_Values() []string { } } +const ( + // KmsKeyStateDisabled is a KmsKeyState enum value + KmsKeyStateDisabled = "DISABLED" + + // KmsKeyStatePendingDeletion is a KmsKeyState enum value + KmsKeyStatePendingDeletion = "PENDING_DELETION" + + // KmsKeyStatePendingImport is a KmsKeyState enum value + KmsKeyStatePendingImport = "PENDING_IMPORT" + + // KmsKeyStateUnavailable is a KmsKeyState enum value + KmsKeyStateUnavailable = "UNAVAILABLE" + + // KmsKeyStateCreating is a KmsKeyState enum value + KmsKeyStateCreating = "CREATING" +) + +// KmsKeyState_Values returns all elements of the KmsKeyState enum +func KmsKeyState_Values() []string { + return []string{ + KmsKeyStateDisabled, + KmsKeyStatePendingDeletion, + KmsKeyStatePendingImport, + KmsKeyStateUnavailable, + KmsKeyStateCreating, + } +} + const ( // LogLevelAll is a LogLevel enum value LogLevelAll = "ALL" diff --git a/service/sfn/doc.go b/service/sfn/doc.go index 846e4f55e95..e2576e305ba 100644 --- a/service/sfn/doc.go +++ b/service/sfn/doc.go @@ -3,8 +3,8 @@ // Package sfn provides the client and types for making API // requests to AWS Step Functions. // -// Step Functions is a service that lets you coordinate the components of distributed -// applications and microservices using visual workflows. +// Step Functions coordinates the components of distributed applications and +// microservices using visual workflows. // // You can use Step Functions to build applications from individual components, // each of which performs a discrete function, or task, allowing you to scale diff --git a/service/sfn/errors.go b/service/sfn/errors.go index bbe49f34b7f..608b46be105 100644 --- a/service/sfn/errors.go +++ b/service/sfn/errors.go @@ -8,6 +8,12 @@ import ( const ( + // ErrCodeActivityAlreadyExists for service response error code + // "ActivityAlreadyExists". + // + // Activity already exists. EncryptionConfiguration may not be updated. + ErrCodeActivityAlreadyExists = "ActivityAlreadyExists" + // ErrCodeActivityDoesNotExist for service response error code // "ActivityDoesNotExist". // @@ -78,6 +84,15 @@ const ( // The provided Amazon States Language definition is not valid. ErrCodeInvalidDefinition = "InvalidDefinition" + // ErrCodeInvalidEncryptionConfiguration for service response error code + // "InvalidEncryptionConfiguration". + // + // Received when encryptionConfiguration is specified but various conditions + // exist which make the configuration invalid. For example, if type is set to + // CUSTOMER_MANAGED_KMS_KEY, but kmsKeyId is null, or kmsDataKeyReusePeriodSeconds + // is not between 60 and 900, or the KMS key is not symmetric or inactive. + ErrCodeInvalidEncryptionConfiguration = "InvalidEncryptionConfiguration" + // ErrCodeInvalidExecutionInput for service response error code // "InvalidExecutionInput". // @@ -86,6 +101,8 @@ const ( // ErrCodeInvalidLoggingConfiguration for service response error code // "InvalidLoggingConfiguration". + // + // Configuration is not valid. ErrCodeInvalidLoggingConfiguration = "InvalidLoggingConfiguration" // ErrCodeInvalidName for service response error code @@ -113,6 +130,25 @@ const ( // to true or false. ErrCodeInvalidTracingConfiguration = "InvalidTracingConfiguration" + // ErrCodeKmsAccessDeniedException for service response error code + // "KmsAccessDeniedException". + // + // Either your KMS key policy or API caller does not have the required permissions. + ErrCodeKmsAccessDeniedException = "KmsAccessDeniedException" + + // ErrCodeKmsInvalidStateException for service response error code + // "KmsInvalidStateException". + // + // The KMS key is not in valid state, for example: Disabled or Deleted. + ErrCodeKmsInvalidStateException = "KmsInvalidStateException" + + // ErrCodeKmsThrottlingException for service response error code + // "KmsThrottlingException". + // + // Received when KMS returns ThrottlingException for a KMS call that Step Functions + // makes on behalf of the caller. + ErrCodeKmsThrottlingException = "KmsThrottlingException" + // ErrCodeMissingRequiredParameter for service response error code // "MissingRequiredParameter". // @@ -162,6 +198,8 @@ const ( // ErrCodeStateMachineTypeNotSupported for service response error code // "StateMachineTypeNotSupported". + // + // State machine type is not supported. ErrCodeStateMachineTypeNotSupported = "StateMachineTypeNotSupported" // ErrCodeTaskDoesNotExist for service response error code @@ -194,32 +232,37 @@ const ( ) var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ - "ActivityDoesNotExist": newErrorActivityDoesNotExist, - "ActivityLimitExceeded": newErrorActivityLimitExceeded, - "ActivityWorkerLimitExceeded": newErrorActivityWorkerLimitExceeded, - "ConflictException": newErrorConflictException, - "ExecutionAlreadyExists": newErrorExecutionAlreadyExists, - "ExecutionDoesNotExist": newErrorExecutionDoesNotExist, - "ExecutionLimitExceeded": newErrorExecutionLimitExceeded, - "ExecutionNotRedrivable": newErrorExecutionNotRedrivable, - "InvalidArn": newErrorInvalidArn, - "InvalidDefinition": newErrorInvalidDefinition, - "InvalidExecutionInput": newErrorInvalidExecutionInput, - "InvalidLoggingConfiguration": newErrorInvalidLoggingConfiguration, - "InvalidName": newErrorInvalidName, - "InvalidOutput": newErrorInvalidOutput, - "InvalidToken": newErrorInvalidToken, - "InvalidTracingConfiguration": newErrorInvalidTracingConfiguration, - "MissingRequiredParameter": newErrorMissingRequiredParameter, - "ResourceNotFound": newErrorResourceNotFound, - "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, - "StateMachineAlreadyExists": newErrorStateMachineAlreadyExists, - "StateMachineDeleting": newErrorStateMachineDeleting, - "StateMachineDoesNotExist": newErrorStateMachineDoesNotExist, - "StateMachineLimitExceeded": newErrorStateMachineLimitExceeded, - "StateMachineTypeNotSupported": newErrorStateMachineTypeNotSupported, - "TaskDoesNotExist": newErrorTaskDoesNotExist, - "TaskTimedOut": newErrorTaskTimedOut, - "TooManyTags": newErrorTooManyTags, - "ValidationException": newErrorValidationException, + "ActivityAlreadyExists": newErrorActivityAlreadyExists, + "ActivityDoesNotExist": newErrorActivityDoesNotExist, + "ActivityLimitExceeded": newErrorActivityLimitExceeded, + "ActivityWorkerLimitExceeded": newErrorActivityWorkerLimitExceeded, + "ConflictException": newErrorConflictException, + "ExecutionAlreadyExists": newErrorExecutionAlreadyExists, + "ExecutionDoesNotExist": newErrorExecutionDoesNotExist, + "ExecutionLimitExceeded": newErrorExecutionLimitExceeded, + "ExecutionNotRedrivable": newErrorExecutionNotRedrivable, + "InvalidArn": newErrorInvalidArn, + "InvalidDefinition": newErrorInvalidDefinition, + "InvalidEncryptionConfiguration": newErrorInvalidEncryptionConfiguration, + "InvalidExecutionInput": newErrorInvalidExecutionInput, + "InvalidLoggingConfiguration": newErrorInvalidLoggingConfiguration, + "InvalidName": newErrorInvalidName, + "InvalidOutput": newErrorInvalidOutput, + "InvalidToken": newErrorInvalidToken, + "InvalidTracingConfiguration": newErrorInvalidTracingConfiguration, + "KmsAccessDeniedException": newErrorKmsAccessDeniedException, + "KmsInvalidStateException": newErrorKmsInvalidStateException, + "KmsThrottlingException": newErrorKmsThrottlingException, + "MissingRequiredParameter": newErrorMissingRequiredParameter, + "ResourceNotFound": newErrorResourceNotFound, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "StateMachineAlreadyExists": newErrorStateMachineAlreadyExists, + "StateMachineDeleting": newErrorStateMachineDeleting, + "StateMachineDoesNotExist": newErrorStateMachineDoesNotExist, + "StateMachineLimitExceeded": newErrorStateMachineLimitExceeded, + "StateMachineTypeNotSupported": newErrorStateMachineTypeNotSupported, + "TaskDoesNotExist": newErrorTaskDoesNotExist, + "TaskTimedOut": newErrorTaskTimedOut, + "TooManyTags": newErrorTooManyTags, + "ValidationException": newErrorValidationException, }