From b262be368d97ae444fba0c272f6562f89db9a588 Mon Sep 17 00:00:00 2001 From: awssdkgo Date: Fri, 2 Oct 2020 18:16:42 +0000 Subject: [PATCH] Release v1.35.2 (2020-10-02) === ### Service Client Updates * `service/batch`: Updates service API, documentation, and examples * Support tagging for Batch resources (compute environment, job queue, job definition and job) and tag based access control on Batch APIs * `service/elasticloadbalancingv2`: Updates service API and documentation * `service/personalize-events`: Updates service API and documentation * `service/rds`: Updates service API and documentation * Adds the NCHAR Character Set ID parameter to the CreateDbInstance API for RDS Oracle. * `service/s3`: Updates service API and documentation * Amazon S3 Object Ownership is a new S3 feature that enables bucket owners to automatically assume ownership of objects that are uploaded to their buckets by other AWS Accounts. * `service/servicediscovery`: Updates service API and documentation --- CHANGELOG.md | 14 + aws/endpoints/defaults.go | 2 + aws/version.go | 2 +- models/apis/batch/2016-08-10/api-2.json | 147 ++- models/apis/batch/2016-08-10/docs-2.json | 93 +- models/apis/batch/2016-08-10/examples-1.json | 98 ++ .../2015-12-01/api-2.json | 18 +- .../2015-12-01/docs-2.json | 11 +- .../personalize-events/2018-03-22/api-2.json | 103 ++ .../personalize-events/2018-03-22/docs-2.json | 71 +- models/apis/rds/2014-10-31/api-2.json | 3 + models/apis/rds/2014-10-31/docs-2.json | 5 +- models/apis/s3/2006-03-01/api-2.json | 124 +++ models/apis/s3/2006-03-01/docs-2.json | 169 ++-- .../servicediscovery/2017-03-14/api-2.json | 1 + .../servicediscovery/2017-03-14/docs-2.json | 5 +- models/endpoints/endpoints.json | 2 + service/batch/api.go | 677 +++++++++++++- service/batch/batchiface/interface.go | 12 + service/batch/examples_test.go | 144 +++ service/elbv2/api.go | 91 +- service/elbv2/examples_test.go | 8 + service/personalizeevents/api.go | 503 +++++++++- service/personalizeevents/errors.go | 9 +- .../personalizeeventsiface/interface.go | 8 + service/rds/api.go | 32 +- service/s3/api.go | 883 ++++++++++++++++-- service/s3/errors.go | 2 +- service/s3/s3iface/interface.go | 12 + service/s3/s3manager/upload_input.go | 22 +- service/servicediscovery/api.go | 36 +- 31 files changed, 3109 insertions(+), 198 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ade74a9687a..1b848292e04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +Release v1.35.2 (2020-10-02) +=== + +### Service Client Updates +* `service/batch`: Updates service API, documentation, and examples + * Support tagging for Batch resources (compute environment, job queue, job definition and job) and tag based access control on Batch APIs +* `service/elasticloadbalancingv2`: Updates service API and documentation +* `service/personalize-events`: Updates service API and documentation +* `service/rds`: Updates service API and documentation + * Adds the NCHAR Character Set ID parameter to the CreateDbInstance API for RDS Oracle. +* `service/s3`: Updates service API and documentation + * Amazon S3 Object Ownership is a new S3 feature that enables bucket owners to automatically assume ownership of objects that are uploaded to their buckets by other AWS Accounts. +* `service/servicediscovery`: Updates service API and documentation + Release v1.35.1 (2020-10-01) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 956a737393d..8a2c56945f6 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -4041,6 +4041,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -5556,6 +5557,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, diff --git a/aws/version.go b/aws/version.go index 38ba66aa8d3..868d36f1e01 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.35.1" +const SDKVersion = "1.35.2" diff --git a/models/apis/batch/2016-08-10/api-2.json b/models/apis/batch/2016-08-10/api-2.json index 85fcde8a77c..863ff3a8597 100644 --- a/models/apis/batch/2016-08-10/api-2.json +++ b/models/apis/batch/2016-08-10/api-2.json @@ -155,6 +155,19 @@ {"shape":"ServerException"} ] }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/v1/tags/{resourceArn}" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ClientException"}, + {"shape":"ServerException"} + ] + }, "RegisterJobDefinition":{ "name":"RegisterJobDefinition", "http":{ @@ -181,6 +194,19 @@ {"shape":"ServerException"} ] }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/v1/tags/{resourceArn}" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ClientException"}, + {"shape":"ServerException"} + ] + }, "TerminateJob":{ "name":"TerminateJob", "http":{ @@ -194,6 +220,19 @@ {"shape":"ServerException"} ] }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/v1/tags/{resourceArn}" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ClientException"}, + {"shape":"ServerException"} + ] + }, "UpdateComputeEnvironment":{ "name":"UpdateComputeEnvironment", "http":{ @@ -355,6 +394,7 @@ "computeEnvironmentName":{"shape":"String"}, "computeEnvironmentArn":{"shape":"String"}, "ecsClusterArn":{"shape":"String"}, + "tags":{"shape":"TagrisTagsMap"}, "type":{"shape":"CEType"}, "state":{"shape":"CEState"}, "status":{"shape":"CEStatus"}, @@ -501,7 +541,8 @@ "type":{"shape":"CEType"}, "state":{"shape":"CEState"}, "computeResources":{"shape":"ComputeResource"}, - "serviceRole":{"shape":"String"} + "serviceRole":{"shape":"String"}, + "tags":{"shape":"TagrisTagsMap"} } }, "CreateComputeEnvironmentResponse":{ @@ -522,7 +563,8 @@ "jobQueueName":{"shape":"String"}, "state":{"shape":"JQState"}, "priority":{"shape":"Integer"}, - "computeEnvironmentOrder":{"shape":"ComputeEnvironmentOrders"} + "computeEnvironmentOrder":{"shape":"ComputeEnvironmentOrders"}, + "tags":{"shape":"TagrisTagsMap"} } }, "CreateJobQueueResponse":{ @@ -704,7 +746,8 @@ "retryStrategy":{"shape":"RetryStrategy"}, "containerProperties":{"shape":"ContainerProperties"}, "timeout":{"shape":"JobTimeout"}, - "nodeProperties":{"shape":"NodeProperties"} + "nodeProperties":{"shape":"NodeProperties"}, + "tags":{"shape":"TagrisTagsMap"} } }, "JobDefinitionList":{ @@ -740,6 +783,7 @@ "jobDefinition" ], "members":{ + "jobArn":{"shape":"String"}, "jobName":{"shape":"String"}, "jobId":{"shape":"String"}, "jobQueue":{"shape":"String"}, @@ -757,7 +801,8 @@ "nodeDetails":{"shape":"NodeDetails"}, "nodeProperties":{"shape":"NodeProperties"}, "arrayProperties":{"shape":"ArrayPropertiesDetail"}, - "timeout":{"shape":"JobTimeout"} + "timeout":{"shape":"JobTimeout"}, + "tags":{"shape":"TagrisTagsMap"} } }, "JobDetailList":{ @@ -780,7 +825,8 @@ "status":{"shape":"JQStatus"}, "statusReason":{"shape":"String"}, "priority":{"shape":"Integer"}, - "computeEnvironmentOrder":{"shape":"ComputeEnvironmentOrders"} + "computeEnvironmentOrder":{"shape":"ComputeEnvironmentOrders"}, + "tags":{"shape":"TagrisTagsMap"} } }, "JobQueueDetailList":{ @@ -806,6 +852,7 @@ "jobName" ], "members":{ + "jobArn":{"shape":"String"}, "jobId":{"shape":"String"}, "jobName":{"shape":"String"}, "createdAt":{"shape":"Long"}, @@ -873,6 +920,23 @@ "nextToken":{"shape":"String"} } }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagrisTagsMap"} + } + }, "LogConfiguration":{ "type":"structure", "required":["logDriver"], @@ -1001,7 +1065,8 @@ "containerProperties":{"shape":"ContainerProperties"}, "nodeProperties":{"shape":"NodeProperties"}, "retryStrategy":{"shape":"RetryStrategy"}, - "timeout":{"shape":"JobTimeout"} + "timeout":{"shape":"JobTimeout"}, + "tags":{"shape":"TagrisTagsMap"} } }, "RegisterJobDefinitionResponse":{ @@ -1088,7 +1153,8 @@ "containerOverrides":{"shape":"ContainerOverrides"}, "nodeOverrides":{"shape":"NodeOverrides"}, "retryStrategy":{"shape":"RetryStrategy"}, - "timeout":{"shape":"JobTimeout"} + "timeout":{"shape":"JobTimeout"}, + "tags":{"shape":"TagrisTagsMap"} } }, "SubmitJobResponse":{ @@ -1098,10 +1164,53 @@ "jobId" ], "members":{ + "jobArn":{"shape":"String"}, "jobName":{"shape":"String"}, "jobId":{"shape":"String"} } }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeysList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagrisTagsMap"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256 + }, + "TagrisTagsMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":1 + }, "TagsMap":{ "type":"map", "key":{"shape":"String"}, @@ -1156,6 +1265,30 @@ "type":"list", "member":{"shape":"Ulimit"} }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeysList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateComputeEnvironmentRequest":{ "type":"structure", "required":["computeEnvironment"], diff --git a/models/apis/batch/2016-08-10/docs-2.json b/models/apis/batch/2016-08-10/docs-2.json index d0684025f41..ce595db62e1 100644 --- a/models/apis/batch/2016-08-10/docs-2.json +++ b/models/apis/batch/2016-08-10/docs-2.json @@ -13,9 +13,12 @@ "DescribeJobQueues": "

Describes one or more of your job queues.

", "DescribeJobs": "

Describes a list of AWS Batch jobs.

", "ListJobs": "

Returns a list of AWS Batch jobs.

You must specify only one of the following:

You can filter the results by job status with the jobStatus parameter. If you do not specify a status, only RUNNING jobs are returned.

", + "ListTagsForResource": "

List the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

", "RegisterJobDefinition": "

Registers an AWS Batch job definition.

", "SubmitJob": "

Submits an AWS Batch job from a job definition. Parameters specified during SubmitJob override parameters defined in the job definition.

", + "TagResource": "

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

", "TerminateJob": "

Terminates a job in a job queue. Jobs that are in the STARTING or RUNNING state are terminated, which causes them to transition to FAILED. Jobs that have not progressed to the STARTING state are cancelled.

", + "UntagResource": "

Deletes specified tags from an AWS Batch resource.

", "UpdateComputeEnvironment": "

Updates an AWS Batch compute environment.

", "UpdateJobQueue": "

Updates a job queue.

" }, @@ -75,7 +78,7 @@ "ContainerDetail$privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user).

", "ContainerProperties$readonlyRootFilesystem": "

When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run.

", "ContainerProperties$privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

", - "LinuxParameters$initProcessEnabled": "

Run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

", + "LinuxParameters$initProcessEnabled": "

If true, run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

", "MountPoint$readOnly": "

If this value is true, the container has read-only access to the volume; otherwise, the container can write to the volume. The default value is false.

", "NodeDetails$isMainNode": "

Specifies whether the current node is the main node for a multi-node parallel job.

", "NodePropertiesSummary$isMainNode": "

Specifies whether the current node is the main node for a multi-node parallel job.

" @@ -341,8 +344,8 @@ "ComputeResourceUpdate$minvCpus": "

The minimum number of Amazon EC2 vCPUs that an environment should maintain.

", "ComputeResourceUpdate$maxvCpus": "

The maximum number of Amazon EC2 vCPUs that an environment can reach.

", "ComputeResourceUpdate$desiredvCpus": "

The desired number of Amazon EC2 vCPUS in the compute environment.

", - "ContainerDetail$vcpus": "

The number of VCPUs allocated for the job.

", - "ContainerDetail$memory": "

The number of MiB of memory reserved for the job.

", + "ContainerDetail$vcpus": "

The number of VCPUs allocated for the job. This is a required parameter.

", + "ContainerDetail$memory": "

The number of MiB of memory reserved for the job. This is a required parameter.

", "ContainerDetail$exitCode": "

The exit code to return upon completion.

", "ContainerOverrides$vcpus": "

The number of vCPUs to reserve for the container. This value overrides the value set in the job definition.

", "ContainerOverrides$memory": "

The number of MiB of memory reserved for the job. This value overrides the value set in the job definition.

", @@ -501,6 +504,16 @@ "refs": { } }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, "LogConfiguration": { "base": "

Log configuration options to send to a custom log driver for the container.

", "refs": { @@ -517,7 +530,7 @@ "LogDriver": { "base": null, "refs": { - "LogConfiguration$logDriver": "

The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default.

The supported log drivers are awslogs, fluentd, gelf, json-file, journald, logentries, syslog, and splunk.

For more information about using the awslogs log driver, see Using the awslogs Log Driver in the Amazon Elastic Container Service Developer Guide.

If you have a custom driver that is not listed earlier that you would like to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that is available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, Amazon Web Services does not currently support running modified copies of this software.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "LogConfiguration$logDriver": "

The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default.

The supported log drivers are awslogs, fluentd, gelf, json-file, journald, logentries, syslog, and splunk.

awslogs

Specifies the Amazon CloudWatch Logs logging driver. For more information, see Using the awslogs Log Driver in the AWS Batch User Guide and Amazon CloudWatch Logs logging driver in the Docker documentation.

fluentd

Specifies the Fluentd logging driver. For more information, including usage and options, see Fluentd logging driver in the Docker documentation.

gelf

Specifies the Graylog Extended Format (GELF) logging driver. For more information, including usage and options, see Graylog Extended Format logging driver in the Docker documentation.

journald

Specifies the journald logging driver. For more information, including usage and options, see Journald logging driver in the Docker documentation.

json-file

Specifies the JSON file logging driver. For more information, including usage and options, see JSON File logging driver in the Docker documentation.

splunk

Specifies the Splunk logging driver. For more information, including usage and options, see Splunk logging driver in the Docker documentation.

syslog

Specifies the syslog logging driver. For more information, including usage and options, see Syslog logging driver in the Docker documentation.

If you have a custom driver that is not listed earlier that you would like to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that is available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, Amazon Web Services does not currently support running modified copies of this software.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" } }, "Long": { @@ -668,7 +681,7 @@ "refs": { "ContainerDetail$secrets": "

The secrets to pass to the container. For more information, see Specifying Sensitive Data in the Amazon Elastic Container Service Developer Guide.

", "ContainerProperties$secrets": "

The secrets for the container. For more information, see Specifying Sensitive Data in the Amazon Elastic Container Service Developer Guide.

", - "LogConfiguration$secretOptions": "

The secrets to pass to the log configuration. For more information, see Specifying Sensitive Data in the Amazon Elastic Container Service Developer Guide.

" + "LogConfiguration$secretOptions": "

The secrets to pass to the log configuration. For more information, see Specifying Sensitive Data in the AWS Batch User Guide.

" } }, "ServerException": { @@ -701,7 +714,7 @@ "ComputeResource$spotIamFleetRole": "

The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This role is required if the allocation strategy set to BEST_FIT or if the allocation strategy is not specified. For more information, see Amazon EC2 Spot Fleet Role in the AWS Batch User Guide.

", "ContainerDetail$image": "

The image used to start the container.

", "ContainerDetail$jobRoleArn": "

The Amazon Resource Name (ARN) associated with the job upon execution.

", - "ContainerDetail$executionRoleArn": "

The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see Amazon ECS task execution IAM role.

", + "ContainerDetail$executionRoleArn": "

The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see AWS Batch execution IAM role.

", "ContainerDetail$user": "

The user name to use inside the container.

", "ContainerDetail$reason": "

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

", "ContainerDetail$containerInstanceArn": "

The Amazon Resource Name (ARN) of the container instance on which the container is running.

", @@ -711,7 +724,7 @@ "ContainerOverrides$instanceType": "

The instance type to use for a multi-node parallel job. This parameter is not valid for single-node container jobs.

", "ContainerProperties$image": "

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

", "ContainerProperties$jobRoleArn": "

The Amazon Resource Name (ARN) of the IAM role that the container can assume for AWS permissions.

", - "ContainerProperties$executionRoleArn": "

The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see Amazon ECS task execution IAM role.

", + "ContainerProperties$executionRoleArn": "

The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see AWS Batch execution IAM role.

", "ContainerProperties$user": "

The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run.

", "ContainerProperties$instanceType": "

The instance type to use for a multi-node parallel job. Currently all node groups in a multi-node parallel job must use the same instance type. This parameter is not valid for single-node container jobs.

", "ContainerSummary$reason": "

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

", @@ -741,6 +754,7 @@ "JobDefinition$status": "

The status of the job definition.

", "JobDefinition$type": "

The type of job definition.

", "JobDependency$jobId": "

The job ID of the AWS Batch job associated with this dependency.

", + "JobDetail$jobArn": "

The Amazon Resource Name (ARN) of the job.

", "JobDetail$jobName": "

The name of the job.

", "JobDetail$jobId": "

The ID for the job.

", "JobDetail$jobQueue": "

The Amazon Resource Name (ARN) of the job queue with which the job is associated.

", @@ -749,6 +763,7 @@ "JobQueueDetail$jobQueueName": "

The name of the job queue.

", "JobQueueDetail$jobQueueArn": "

The Amazon Resource Name (ARN) of the job queue.

", "JobQueueDetail$statusReason": "

A short, human-readable string to provide additional details about the current status of the job queue.

", + "JobSummary$jobArn": "

The Amazon Resource Name (ARN) of the job.

", "JobSummary$jobId": "

The ID of the job.

", "JobSummary$jobName": "

The name of the job.

", "JobSummary$statusReason": "

A short, human-readable string to provide additional details about the current status of the job.

", @@ -762,6 +777,7 @@ "ListJobsRequest$multiNodeJobId": "

The job ID for a multi-node parallel job. Specifying a multi-node parallel job ID with this parameter lists all nodes that are associated with the specified job.

", "ListJobsRequest$nextToken": "

The nextToken value returned from a previous paginated ListJobs 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.

", "ListJobsResponse$nextToken": "

The nextToken value to include in a future ListJobs request. When the results of a ListJobs 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.

", + "ListTagsForResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

", "LogConfigurationOptionsMap$key": null, "LogConfigurationOptionsMap$value": null, "MountPoint$containerPath": "

The path on the container at which to mount the host volume.

", @@ -784,14 +800,17 @@ "SubmitJobRequest$jobName": "

The name of the job. The first character must be alphanumeric, and up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

", "SubmitJobRequest$jobQueue": "

The job queue into which the job is submitted. You can specify either the name or the Amazon Resource Name (ARN) of the queue.

", "SubmitJobRequest$jobDefinition": "

The job definition used by this job. This value can be one of name, name:revision, or the Amazon Resource Name (ARN) for the job definition. If name is specified without a revision then the latest active revision is used.

", + "SubmitJobResponse$jobArn": "

The Amazon Resource Name (ARN) for the job.

", "SubmitJobResponse$jobName": "

The name of the job.

", "SubmitJobResponse$jobId": "

The unique identifier for the job.

", + "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource to which to add tags. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

", "TagsMap$key": null, "TagsMap$value": null, "TerminateJobRequest$jobId": "

The AWS Batch job ID of the job to terminate.

", "TerminateJobRequest$reason": "

A message to attach to the job that explains the reason for canceling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs.

", - "Tmpfs$containerPath": "

The absolute file path where the tmpfs volume is to be mounted.

", + "Tmpfs$containerPath": "

The absolute file path in the container where the tmpfs volume is to be mounted.

", "Ulimit$name": "

The type of the ulimit.

", + "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource from which to delete tags. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

", "UpdateComputeEnvironmentRequest$computeEnvironment": "

The name or full Amazon Resource Name (ARN) of the compute environment to update.

", "UpdateComputeEnvironmentRequest$serviceRole": "

The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf.

If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path.

Depending on how you created your AWS Batch service role, its ARN may contain the service-role path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments.

", "UpdateComputeEnvironmentResponse$computeEnvironmentName": "

The name of the compute environment.

", @@ -815,7 +834,7 @@ "DescribeJobDefinitionsRequest$jobDefinitions": "

A list of up to 100 job definition names or full Amazon Resource Name (ARN) entries.

", "DescribeJobQueuesRequest$jobQueues": "

A list of up to 100 queue names or full queue Amazon Resource Name (ARN) entries.

", "DescribeJobsRequest$jobs": "

A list of up to 100 job IDs.

", - "Tmpfs$mountOptions": "

The list of tmpfs volume mount options.

Valid values: \"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"

" + "Tmpfs$mountOptions": "

The list of tmpfs volume mount options.

Valid values: \"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"

" } }, "SubmitJobRequest": { @@ -828,10 +847,54 @@ "refs": { } }, + "TagKey": { + "base": null, + "refs": { + "TagKeysList$member": null, + "TagrisTagsMap$key": null + } + }, + "TagKeysList": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The keys of the tags to be removed.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagrisTagsMap$value": null + } + }, + "TagrisTagsMap": { + "base": null, + "refs": { + "ComputeEnvironmentDetail$tags": "

The tags applied to the compute environment.

", + "CreateComputeEnvironmentRequest$tags": "

The tags that you apply to the compute environment to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General Reference.

These tags can be updated or removed using the TagResource and UntagResource API operations. These tags do not propagate to the underlying compute resources.

", + "CreateJobQueueRequest$tags": "

The tags that you apply to the job queue to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General Reference.

", + "JobDefinition$tags": "

The tags applied to the job definition.

", + "JobDetail$tags": "

The tags applied to the job.

", + "JobQueueDetail$tags": "

The tags applied to the job queue.

", + "ListTagsForResourceResponse$tags": "

The tags for the resource.

", + "RegisterJobDefinitionRequest$tags": "

The tags that you apply to the job definition to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General Reference.

", + "SubmitJobRequest$tags": "

The tags that you apply to the job request to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General Reference.

", + "TagResourceRequest$tags": "

The tags that you apply to the resource to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General Reference.

" + } + }, "TagsMap": { "base": null, "refs": { - "ComputeResource$tags": "

Key-value pair tags to be applied to resources that are launched in the compute environment. For AWS Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value—for example, { \"Name\": \"AWS Batch Instance - C4OnDemand\" }.

" + "ComputeResource$tags": "

Key-value pair tags to be applied to resources that are launched in the compute environment. For AWS Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value—for example, { \"Name\": \"AWS Batch Instance - C4OnDemand\" }. These tags can not be updated or removed after the compute environment has been created; any changes require creating a new compute environment and removing the old compute environment. These tags are not seen when using the AWS Batch ListTagsForResource API operation.

" } }, "TerminateJobRequest": { @@ -869,6 +932,16 @@ "ContainerProperties$ulimits": "

A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run.

" } }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, "UpdateComputeEnvironmentRequest": { "base": null, "refs": { diff --git a/models/apis/batch/2016-08-10/examples-1.json b/models/apis/batch/2016-08-10/examples-1.json index 68001e3c6bb..87bc683b6fa 100644 --- a/models/apis/batch/2016-08-10/examples-1.json +++ b/models/apis/batch/2016-08-10/examples-1.json @@ -471,6 +471,29 @@ "title": "To list submitted jobs" } ], + "ListTagsForResource": [ + { + "input": { + "resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1" + }, + "output": { + "tags": { + "Department": "Engineering", + "Stage": "Alpha", + "User": "JaneDoe" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This demonstrates calling the ListTagsForResource action.", + "id": "listtagsforresource-example-1591293003710", + "title": "ListTagsForResource Example" + } + ], "RegisterJobDefinition": [ { "input": { @@ -500,6 +523,39 @@ "description": "This example registers a job definition for a simple container job.", "id": "to-register-a-job-definition-1481154325325", "title": "To register a job definition" + }, + { + "input": { + "type": "container", + "containerProperties": { + "command": [ + "sleep", + "30" + ], + "image": "busybox", + "memory": 128, + "vcpus": 1 + }, + "jobDefinitionName": "sleep30", + "tags": { + "Department": "Engineering", + "User": "JaneDoe" + } + }, + "output": { + "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep30:1", + "jobDefinitionName": "sleep30", + "revision": 1 + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This demonstrates calling the RegisterJobDefinition action, including tags.", + "id": "registerjobdefinition-with-tags-1591290509028", + "title": "RegisterJobDefinition with tags" } ], "SubmitJob": [ @@ -524,6 +580,27 @@ "title": "To submit a job to a queue" } ], + "TagResource": [ + { + "input": { + "resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1", + "tags": { + "Stage": "Alpha" + } + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This demonstrates calling the TagResource action.", + "id": "tagresource-example-1591291959952", + "title": "TagResource Example" + } + ], "TerminateJob": [ { "input": { @@ -543,6 +620,27 @@ "title": "To terminate a job" } ], + "UntagResource": [ + { + "input": { + "resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1", + "tagKeys": [ + "Stage" + ] + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This demonstrates calling the UntagResource action.", + "id": "untagresource-example-1591292811042", + "title": "UntagResource Example" + } + ], "UpdateComputeEnvironment": [ { "input": { diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json index 01c4d8abed5..a1430240aed 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json @@ -75,7 +75,8 @@ {"shape":"TooManyActionsException"}, {"shape":"InvalidLoadBalancerActionException"}, {"shape":"TooManyUniqueTargetGroupsPerLoadBalancerException"}, - {"shape":"ALPNPolicyNotSupportedException"} + {"shape":"ALPNPolicyNotSupportedException"}, + {"shape":"TooManyTagsException"} ] }, "CreateLoadBalancer":{ @@ -130,7 +131,8 @@ {"shape":"UnsupportedProtocolException"}, {"shape":"TooManyActionsException"}, {"shape":"InvalidLoadBalancerActionException"}, - {"shape":"TooManyUniqueTargetGroupsPerLoadBalancerException"} + {"shape":"TooManyUniqueTargetGroupsPerLoadBalancerException"}, + {"shape":"TooManyTagsException"} ] }, "CreateTargetGroup":{ @@ -147,7 +149,8 @@ "errors":[ {"shape":"DuplicateTargetGroupNameException"}, {"shape":"TooManyTargetGroupsException"}, - {"shape":"InvalidConfigurationRequestException"} + {"shape":"InvalidConfigurationRequestException"}, + {"shape":"TooManyTagsException"} ] }, "DeleteListener":{ @@ -893,7 +896,8 @@ "SslPolicy":{"shape":"SslPolicyName"}, "Certificates":{"shape":"CertificateList"}, "DefaultActions":{"shape":"Actions"}, - "AlpnPolicy":{"shape":"AlpnPolicyName"} + "AlpnPolicy":{"shape":"AlpnPolicyName"}, + "Tags":{"shape":"TagList"} } }, "CreateListenerOutput":{ @@ -935,7 +939,8 @@ "ListenerArn":{"shape":"ListenerArn"}, "Conditions":{"shape":"RuleConditionList"}, "Priority":{"shape":"RulePriority"}, - "Actions":{"shape":"Actions"} + "Actions":{"shape":"Actions"}, + "Tags":{"shape":"TagList"} } }, "CreateRuleOutput":{ @@ -961,7 +966,8 @@ "HealthyThresholdCount":{"shape":"HealthCheckThresholdCount"}, "UnhealthyThresholdCount":{"shape":"HealthCheckThresholdCount"}, "Matcher":{"shape":"Matcher"}, - "TargetType":{"shape":"TargetTypeEnum"} + "TargetType":{"shape":"TargetTypeEnum"}, + "Tags":{"shape":"TagList"} } }, "CreateTargetGroupOutput":{ diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json index 7db1cb0f21c..5e5ffd2c68f 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json @@ -3,7 +3,7 @@ "service": "Elastic Load Balancing

A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets.

Elastic Load Balancing supports the following types of load balancers: Application Load Balancers, Network Load Balancers, and Classic Load Balancers. This reference covers Application Load Balancers and Network Load Balancers.

An Application Load Balancer makes routing and load balancing decisions at the application layer (HTTP/HTTPS). A Network Load Balancer makes routing and load balancing decisions at the transport layer (TCP/TLS). Both Application Load Balancers and Network Load Balancers can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC). For more information, see the Elastic Load Balancing User Guide.

All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds.

", "operations": { "AddListenerCertificates": "

Adds the specified SSL server certificate to the certificate list for the specified HTTPS or TLS listener.

If the certificate in already in the certificate list, the call is successful but the certificate is not added again.

To get the certificate list for a listener, use DescribeListenerCertificates. To remove certificates from the certificate list for a listener, use RemoveListenerCertificates. To replace the default certificate for a listener, use ModifyListener.

For more information, see SSL Certificates in the Application Load Balancers Guide.

", - "AddTags": "

Adds the specified tags to the specified Elastic Load Balancing resource. You can tag your Application Load Balancers, Network Load Balancers, and your target groups.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value.

To list the current tags for your resources, use DescribeTags. To remove tags from your resources, use RemoveTags.

", + "AddTags": "

Adds the specified tags to the specified Elastic Load Balancing resource. You can tag your Application Load Balancers, Network Load Balancers, target groups, listeners, and rules.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value.

To list the current tags for your resources, use DescribeTags. To remove tags from your resources, use RemoveTags.

", "CreateListener": "

Creates a listener for the specified Application Load Balancer or Network Load Balancer.

To update a listener, use ModifyListener. When you are finished with a listener, you can delete it using DeleteListener. If you are finished with both the listener and the load balancer, you can delete them both using DeleteLoadBalancer.

This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple listeners with the same settings, each call succeeds.

For more information, see Listeners for Your Application Load Balancers in the Application Load Balancers Guide and Listeners for Your Network Load Balancers in the Network Load Balancers Guide.

", "CreateLoadBalancer": "

Creates an Application Load Balancer or a Network Load Balancer.

When you create a load balancer, you can specify security groups, public subnets, IP address type, and tags. Otherwise, you could do so later using SetSecurityGroups, SetSubnets, SetIpAddressType, and AddTags.

To create listeners for your load balancer, use CreateListener. To describe your current load balancers, see DescribeLoadBalancers. When you are finished with a load balancer, you can delete it using DeleteLoadBalancer.

For limit information, see Limits for Your Application Load Balancer in the Application Load Balancers Guide and Limits for Your Network Load Balancer in the Network Load Balancers Guide.

This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple load balancers with the same settings, each call succeeds.

For more information, see Application Load Balancers in the Application Load Balancers Guide and Network Load Balancers in the Network Load Balancers Guide.

", "CreateRule": "

Creates a rule for the specified listener. The listener must be associated with an Application Load Balancer.

Each rule consists of a priority, one or more actions, and one or more conditions. Rules are evaluated in priority order, from the lowest value to the highest value. When the conditions for a rule are met, its actions are performed. If the conditions for no rules are met, the actions for the default rule are performed. For more information, see Listener Rules in the Application Load Balancers Guide.

To view your current rules, use DescribeRules. To update a rule, use ModifyRule. To set the priorities of your rules, use SetRulePriorities. To delete a rule, use DeleteRule.

", @@ -20,7 +20,7 @@ "DescribeLoadBalancers": "

Describes the specified load balancers or all of your load balancers.

To describe the listeners for a load balancer, use DescribeListeners. To describe the attributes for a load balancer, use DescribeLoadBalancerAttributes.

", "DescribeRules": "

Describes the specified rules or the rules for the specified listener. You must specify either a listener or one or more rules.

", "DescribeSSLPolicies": "

Describes the specified policies or all policies used for SSL negotiation.

For more information, see Security Policies in the Application Load Balancers Guide.

", - "DescribeTags": "

Describes the tags for the specified resources. You can describe the tags for one or more Application Load Balancers, Network Load Balancers, and target groups.

", + "DescribeTags": "

Describes the tags for the specified Elastic Load Balancing resources. You can describe the tags for one or more Application Load Balancers, Network Load Balancers, target groups, listeners, or rules.

", "DescribeTargetGroupAttributes": "

Describes the attributes for the specified target group.

For more information, see Target Group Attributes in the Application Load Balancers Guide or Target Group Attributes in the Network Load Balancers Guide.

", "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.

To describe the targets for a target group, use DescribeTargetHealth. To describe the attributes of a target group, use DescribeTargetGroupAttributes.

", "DescribeTargetHealth": "

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

", @@ -31,7 +31,7 @@ "ModifyTargetGroupAttributes": "

Modifies the specified attributes of the specified target group.

", "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.

To remove a target from a target group, use DeregisterTargets.

", "RemoveListenerCertificates": "

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

You can't remove the default certificate for a listener. To replace the default certificate, call ModifyListener.

To list the certificates for your listener, use DescribeListenerCertificates.

", - "RemoveTags": "

Removes the specified tags from the specified Elastic Load Balancing resource.

To list the current tags for your resources, use DescribeTags.

", + "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, target groups, listeners, or rules.

To list the current tags for your resources, use DescribeTags.

", "SetIpAddressType": "

Sets the type of IP addresses used by the subnets of the specified Application Load Balancer or Network Load Balancer.

", "SetRulePriorities": "

Sets the priorities of the specified rules.

You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority.

", "SetSecurityGroups": "

Associates the specified security groups with the specified Application Load Balancer. The specified security groups override the previously associated security groups.

You can't specify a security group for a Network Load Balancer.

", @@ -1490,7 +1490,10 @@ "base": null, "refs": { "AddTagsInput$Tags": "

The tags.

", - "CreateLoadBalancerInput$Tags": "

One or more tags to assign to the load balancer.

", + "CreateListenerInput$Tags": "

The tags to assign to the listener.

", + "CreateLoadBalancerInput$Tags": "

The tags to assign to the load balancer.

", + "CreateRuleInput$Tags": "

The tags to assign to the rule.

", + "CreateTargetGroupInput$Tags": "

The tags to assign to the target group.

", "TagDescription$Tags": "

Information about the tags.

" } }, diff --git a/models/apis/personalize-events/2018-03-22/api-2.json b/models/apis/personalize-events/2018-03-22/api-2.json index 2e2c42d58b7..24d57a9d763 100644 --- a/models/apis/personalize-events/2018-03-22/api-2.json +++ b/models/apis/personalize-events/2018-03-22/api-2.json @@ -22,9 +22,38 @@ "errors":[ {"shape":"InvalidInputException"} ] + }, + "PutItems":{ + "name":"PutItems", + "http":{ + "method":"POST", + "requestUri":"/items" + }, + "input":{"shape":"PutItemsRequest"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "PutUsers":{ + "name":"PutUsers", + "http":{ + "method":"POST", + "requestUri":"/users" + }, + "input":{"shape":"PutUsersRequest"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ] } }, "shapes":{ + "Arn":{ + "type":"string", + "max":256, + "pattern":"arn:([a-z\\d-]+):personalize:.*:.*:.+" + }, "Date":{"type":"timestamp"}, "ErrorMessage":{"type":"string"}, "Event":{ @@ -73,11 +102,33 @@ "error":{"httpStatusCode":400}, "exception":true }, + "Item":{ + "type":"structure", + "required":["itemId"], + "members":{ + "itemId":{"shape":"StringType"}, + "properties":{ + "shape":"ItemProperties", + "jsonvalue":true + } + } + }, "ItemId":{ "type":"string", "max":256, "min":1 }, + "ItemList":{ + "type":"list", + "member":{"shape":"Item"}, + "max":10, + "min":1 + }, + "ItemProperties":{ + "type":"string", + "max":1024, + "min":1 + }, "PutEventsRequest":{ "type":"structure", "required":[ @@ -92,20 +143,72 @@ "eventList":{"shape":"EventList"} } }, + "PutItemsRequest":{ + "type":"structure", + "required":[ + "datasetArn", + "items" + ], + "members":{ + "datasetArn":{"shape":"Arn"}, + "items":{"shape":"ItemList"} + } + }, + "PutUsersRequest":{ + "type":"structure", + "required":[ + "datasetArn", + "users" + ], + "members":{ + "datasetArn":{"shape":"Arn"}, + "users":{"shape":"UserList"} + } + }, "RecommendationId":{ "type":"string", "max":40, "min":1 }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, "StringType":{ "type":"string", "max":256, "min":1 }, + "User":{ + "type":"structure", + "required":["userId"], + "members":{ + "userId":{"shape":"StringType"}, + "properties":{ + "shape":"UserProperties", + "jsonvalue":true + } + } + }, "UserId":{ "type":"string", "max":256, "min":1 + }, + "UserList":{ + "type":"list", + "member":{"shape":"User"}, + "max":10, + "min":1 + }, + "UserProperties":{ + "type":"string", + "max":1024, + "min":1 } } } diff --git a/models/apis/personalize-events/2018-03-22/docs-2.json b/models/apis/personalize-events/2018-03-22/docs-2.json index 99f2c9f71dd..9f4eb6c50fa 100644 --- a/models/apis/personalize-events/2018-03-22/docs-2.json +++ b/models/apis/personalize-events/2018-03-22/docs-2.json @@ -2,9 +2,18 @@ "version": "2.0", "service": "

Amazon Personalize can consume real-time user event data, such as stream or click data, and use it for model training either alone or combined with historical data. For more information see recording-events.

", "operations": { - "PutEvents": "

Records user interaction event data. For more information see event-record-api.

" + "PutEvents": "

Records user interaction event data. For more information see event-record-api.

", + "PutItems": "

Adds one or more items to an Items dataset. For more information see importing-items.

", + "PutUsers": "

Adds one or more users to a Users dataset. For more information see importing-users.

" }, "shapes": { + "Arn": { + "base": null, + "refs": { + "PutItemsRequest$datasetArn": "

The Amazon Resource Number (ARN) of the Items dataset you are adding the item or items to.

", + "PutUsersRequest$datasetArn": "

The Amazon Resource Number (ARN) of the Users dataset you are adding the user or users to.

" + } + }, "Date": { "base": null, "refs": { @@ -14,7 +23,8 @@ "ErrorMessage": { "base": null, "refs": { - "InvalidInputException$message": null + "InvalidInputException$message": null, + "ResourceNotFoundException$message": null } }, "Event": { @@ -52,6 +62,12 @@ "refs": { } }, + "Item": { + "base": "

Represents item metadata added to an Items dataset using the PutItems API.

", + "refs": { + "ItemList$member": null + } + }, "ItemId": { "base": null, "refs": { @@ -59,24 +75,59 @@ "Impression$member": null } }, + "ItemList": { + "base": null, + "refs": { + "PutItemsRequest$items": "

A list of item data.

" + } + }, + "ItemProperties": { + "base": null, + "refs": { + "Item$properties": "

A string map of item-specific metadata. Each element in the map consists of a key-value pair. For example,

{\"numberOfRatings\": \"12\"}

The keys use camel case names that match the fields in the Items schema. In the above example, the numberOfRatings would match the 'NUMBER_OF_RATINGS' field defined in the Items schema.

" + } + }, "PutEventsRequest": { "base": null, "refs": { } }, + "PutItemsRequest": { + "base": null, + "refs": { + } + }, + "PutUsersRequest": { + "base": null, + "refs": { + } + }, "RecommendationId": { "base": null, "refs": { "Event$recommendationId": "

The ID of the recommendation.

" } }, + "ResourceNotFoundException": { + "base": "

Could not find the specified resource.

", + "refs": { + } + }, "StringType": { "base": null, "refs": { "Event$eventId": "

An ID associated with the event. If an event ID is not provided, Amazon Personalize generates a unique ID for the event. An event ID is not used as an input to the model. Amazon Personalize uses the event ID to distinquish unique events. Any subsequent events after the first with the same event ID are not used in model training.

", - "Event$eventType": "

The type of event. This property corresponds to the EVENT_TYPE field of the Interactions schema.

", + "Event$eventType": "

The type of event, such as click or download. This property corresponds to the EVENT_TYPE field of your Interactions schema and depends on the types of events you are tracking.

", + "Item$itemId": "

The ID associated with the item.

", "PutEventsRequest$trackingId": "

The tracking ID for the event. The ID is generated by a call to the CreateEventTracker API.

", - "PutEventsRequest$sessionId": "

The session ID associated with the user's visit. Your application generates the sessionId when a user first visits your website or uses your application. Amazon Personalize uses the sessionId to associate events with the user before they log in. For more information see event-record-api.

" + "PutEventsRequest$sessionId": "

The session ID associated with the user's visit. Your application generates the sessionId when a user first visits your website or uses your application. Amazon Personalize uses the sessionId to associate events with the user before they log in. For more information see event-record-api.

", + "User$userId": "

The ID associated with the user.

" + } + }, + "User": { + "base": "

Represents user metadata added to a Users dataset using the PutUsers API.

", + "refs": { + "UserList$member": null } }, "UserId": { @@ -84,6 +135,18 @@ "refs": { "PutEventsRequest$userId": "

The user associated with the event.

" } + }, + "UserList": { + "base": null, + "refs": { + "PutUsersRequest$users": "

A list of user data.

" + } + }, + "UserProperties": { + "base": null, + "refs": { + "User$properties": "

A string map of user-specific metadata. Each element in the map consists of a key-value pair. For example,

{\"numberOfVideosWatched\": \"45\"}

The keys use camel case names that match the fields in the Users schema. In the above example, the numberOfVideosWatched would match the 'NUMBER_OF_VIDEOS_WATCHED' field defined in the Users schema.

" + } } } } diff --git a/models/apis/rds/2014-10-31/api-2.json b/models/apis/rds/2014-10-31/api-2.json index a4202cc21df..64a2b0804bc 100644 --- a/models/apis/rds/2014-10-31/api-2.json +++ b/models/apis/rds/2014-10-31/api-2.json @@ -2852,6 +2852,7 @@ "Iops":{"shape":"IntegerOptional"}, "OptionGroupName":{"shape":"String"}, "CharacterSetName":{"shape":"String"}, + "NcharCharacterSetName":{"shape":"String"}, "PubliclyAccessible":{"shape":"BooleanOptional"}, "Tags":{"shape":"TagList"}, "DBClusterIdentifier":{"shape":"String"}, @@ -3588,6 +3589,7 @@ "DBEngineVersionDescription":{"shape":"String"}, "DefaultCharacterSet":{"shape":"CharacterSet"}, "SupportedCharacterSets":{"shape":"SupportedCharacterSetsList"}, + "SupportedNcharCharacterSets":{"shape":"SupportedCharacterSetsList"}, "ValidUpgradeTarget":{"shape":"ValidUpgradeTargetList"}, "SupportedTimezones":{"shape":"SupportedTimezonesList"}, "ExportableLogTypes":{"shape":"LogTypeList"}, @@ -3647,6 +3649,7 @@ "Iops":{"shape":"IntegerOptional"}, "OptionGroupMemberships":{"shape":"OptionGroupMembershipList"}, "CharacterSetName":{"shape":"String"}, + "NcharCharacterSetName":{"shape":"String"}, "SecondaryAvailabilityZone":{"shape":"String"}, "PubliclyAccessible":{"shape":"Boolean"}, "StatusInfos":{"shape":"DBInstanceStatusInfoList"}, diff --git a/models/apis/rds/2014-10-31/docs-2.json b/models/apis/rds/2014-10-31/docs-2.json index 6e434f15103..6f3ddc14563 100644 --- a/models/apis/rds/2014-10-31/docs-2.json +++ b/models/apis/rds/2014-10-31/docs-2.json @@ -3501,6 +3501,7 @@ "CreateDBInstanceMessage$LicenseModel": "

License model information for this DB instance.

Valid values: license-included | bring-your-own-license | general-public-license

", "CreateDBInstanceMessage$OptionGroupName": "

Indicates that the DB instance should be associated with the specified option group.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group. Also, that option group can't be removed from a DB instance once it is associated with a DB instance

", "CreateDBInstanceMessage$CharacterSetName": "

For supported engines, indicates that the DB instance should be associated with the specified CharacterSet.

Amazon Aurora

Not applicable. The character set is managed by the DB cluster. For more information, see CreateDBCluster.

", + "CreateDBInstanceMessage$NcharCharacterSetName": "

The name of the NCHAR character set for the Oracle DB instance.

", "CreateDBInstanceMessage$DBClusterIdentifier": "

The identifier of the DB cluster that the instance will belong to.

", "CreateDBInstanceMessage$StorageType": "

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp2

", "CreateDBInstanceMessage$TdeCredentialArn": "

The ARN from the key store with which to associate the instance for TDE encryption.

", @@ -3640,6 +3641,7 @@ "DBInstance$ReadReplicaSourceDBInstanceIdentifier": "

Contains the identifier of the source DB instance if this DB instance is a read replica.

", "DBInstance$LicenseModel": "

License model information for this DB instance.

", "DBInstance$CharacterSetName": "

If present, specifies the name of the character set that this instance is associated with.

", + "DBInstance$NcharCharacterSetName": "

The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2.

", "DBInstance$SecondaryAvailabilityZone": "

If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.

", "DBInstance$StorageType": "

Specifies the storage type associated with DB instance.

", "DBInstance$TdeCredentialArn": "

The ARN from the key store with which the instance is associated for TDE encryption.

", @@ -4335,7 +4337,8 @@ "SupportedCharacterSetsList": { "base": null, "refs": { - "DBEngineVersion$SupportedCharacterSets": "

A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance action.

" + "DBEngineVersion$SupportedCharacterSets": "

A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance operation.

", + "DBEngineVersion$SupportedNcharCharacterSets": "

A list of the character sets supported by the Oracle DB engine for the NcharCharacterSetName parameter of the CreateDBInstance operation.

" } }, "SupportedTimezonesList": { diff --git a/models/apis/s3/2006-03-01/api-2.json b/models/apis/s3/2006-03-01/api-2.json index 28f447fb07f..3568a0dadeb 100644 --- a/models/apis/s3/2006-03-01/api-2.json +++ b/models/apis/s3/2006-03-01/api-2.json @@ -143,6 +143,15 @@ }, "input":{"shape":"DeleteBucketMetricsConfigurationRequest"} }, + "DeleteBucketOwnershipControls":{ + "name":"DeleteBucketOwnershipControls", + "http":{ + "method":"DELETE", + "requestUri":"/{Bucket}?ownershipControls", + "responseCode":204 + }, + "input":{"shape":"DeleteBucketOwnershipControlsRequest"} + }, "DeleteBucketPolicy":{ "name":"DeleteBucketPolicy", "http":{ @@ -349,6 +358,15 @@ "input":{"shape":"GetBucketNotificationConfigurationRequest"}, "output":{"shape":"NotificationConfiguration"} }, + "GetBucketOwnershipControls":{ + "name":"GetBucketOwnershipControls", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?ownershipControls" + }, + "input":{"shape":"GetBucketOwnershipControlsRequest"}, + "output":{"shape":"GetBucketOwnershipControlsOutput"} + }, "GetBucketPolicy":{ "name":"GetBucketPolicy", "http":{ @@ -727,6 +745,14 @@ }, "input":{"shape":"PutBucketNotificationConfigurationRequest"} }, + "PutBucketOwnershipControls":{ + "name":"PutBucketOwnershipControls", + "http":{ + "method":"PUT", + "requestUri":"/{Bucket}?ownershipControls" + }, + "input":{"shape":"PutBucketOwnershipControlsRequest"} + }, "PutBucketPolicy":{ "name":"PutBucketPolicy", "http":{ @@ -2096,6 +2122,22 @@ } } }, + "DeleteBucketOwnershipControlsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ExpectedBucketOwner":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-expected-bucket-owner" + } + } + }, "DeleteBucketPolicyRequest":{ "type":"structure", "required":["Bucket"], @@ -2851,6 +2893,29 @@ } } }, + "GetBucketOwnershipControlsOutput":{ + "type":"structure", + "members":{ + "OwnershipControls":{"shape":"OwnershipControls"} + }, + "payload":"OwnershipControls" + }, + "GetBucketOwnershipControlsRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ExpectedBucketOwner":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-expected-bucket-owner" + } + } + }, "GetBucketPolicyOutput":{ "type":"structure", "members":{ @@ -4873,6 +4938,13 @@ }, "exception":true }, + "ObjectOwnership":{ + "type":"string", + "enum":[ + "BucketOwnerPreferred", + "ObjectWriter" + ] + }, "ObjectStorageClass":{ "type":"string", "enum":[ @@ -4933,6 +5005,28 @@ "type":"string", "enum":["Destination"] }, + "OwnershipControls":{ + "type":"structure", + "required":["Rules"], + "members":{ + "Rules":{ + "shape":"OwnershipControlsRules", + "locationName":"Rule" + } + } + }, + "OwnershipControlsRule":{ + "type":"structure", + "required":["ObjectOwnership"], + "members":{ + "ObjectOwnership":{"shape":"ObjectOwnership"} + } + }, + "OwnershipControlsRules":{ + "type":"list", + "member":{"shape":"OwnershipControlsRule"}, + "flattened":true + }, "ParquetInput":{ "type":"structure", "members":{ @@ -5411,6 +5505,36 @@ }, "payload":"NotificationConfiguration" }, + "PutBucketOwnershipControlsRequest":{ + "type":"structure", + "required":[ + "Bucket", + "OwnershipControls" + ], + "members":{ + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"Bucket" + }, + "ContentMD5":{ + "shape":"ContentMD5", + "location":"header", + "locationName":"Content-MD5" + }, + "ExpectedBucketOwner":{ + "shape":"AccountId", + "location":"header", + "locationName":"x-amz-expected-bucket-owner" + }, + "OwnershipControls":{ + "shape":"OwnershipControls", + "locationName":"OwnershipControls", + "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"} + } + }, + "payload":"OwnershipControls" + }, "PutBucketPolicyRequest":{ "type":"structure", "required":[ diff --git a/models/apis/s3/2006-03-01/docs-2.json b/models/apis/s3/2006-03-01/docs-2.json index 0c4ea4b8a65..a210aeea023 100644 --- a/models/apis/s3/2006-03-01/docs-2.json +++ b/models/apis/s3/2006-03-01/docs-2.json @@ -5,7 +5,7 @@ "AbortMultipartUpload": "

This operation aborts a multipart upload. After a multipart upload is aborted, no additional parts can be uploaded using that upload ID. The storage consumed by any previously uploaded parts will be freed. However, if any part uploads are currently in progress, those part uploads might or might not succeed. As a result, it might be necessary to abort a given multipart upload multiple times in order to completely free all storage consumed by all parts.

To verify that all parts have been removed, so you don't get charged for the part storage, you should call the ListParts operation and ensure that the parts list is empty.

For information about permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

The following operations are related to AbortMultipartUpload:

", "CompleteMultipartUpload": "

Completes a multipart upload by assembling previously uploaded parts.

You first initiate the multipart upload and then upload all parts using the UploadPart operation. After successfully uploading all relevant parts of an upload, you call this operation to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the Complete Multipart Upload request, you must provide the parts list. You must ensure that the parts list is complete. This operation concatenates the parts that you provide in the list. For each part in the list, you must provide the part number and the ETag value, returned after that part was uploaded.

Processing of a Complete Multipart Upload request could take several minutes to complete. After Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white space characters to keep the connection from timing out. Because a request could fail after the initial 200 OK response has been sent, it is important that you check the response body to determine whether the request succeeded.

Note that if CompleteMultipartUpload fails, applications should be prepared to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

For more information about multipart uploads, see Uploading Objects Using Multipart Upload.

For information about permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

CompleteMultipartUpload has the following special errors:

The following operations are related to CompleteMultipartUpload:

", "CopyObject": "

Creates a copy of an object that is already stored in Amazon S3.

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic operation using this API. However, to copy an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API. For more information, see Copy Object Using the REST Multipart Upload API.

All copy requests must be authenticated. Additionally, you must have read access to the source object and write access to the destination bucket. For more information, see REST Authentication. Both the Region that you want to copy the object from and the Region that you want to copy the object to must be enabled for your account.

A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3 is copying the files. If the error occurs before the copy operation starts, you receive a standard Amazon S3 error. If the error occurs during the copy operation, the error response is embedded in the 200 OK response. This means that a 200 OK response can contain either a success or an error. Design your application to parse the contents of the response and handle it appropriately.

If the copy is successful, you receive a response with information about the copied object.

If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not, it would not contain the content-length, and you would need to read the entire body.

The copy request charge is based on the storage class and Region that you specify for the destination object. For pricing information, see Amazon S3 pricing.

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad Request error. For more information, see Transfer Acceleration.

Metadata

When copying an object, you can preserve all metadata (default) or specify new metadata. However, the ACL is not preserved and is set to private for the user making the request. To override the default ACL setting, specify a new ACL when generating a copy request. For more information, see Using ACLs.

To specify whether you want the object metadata copied from the source object or replaced with metadata provided in the request, you can optionally add the x-amz-metadata-directive header. When you grant permissions, you can use the s3:x-amz-metadata-directive condition key to enforce certain metadata behavior when objects are uploaded. For more information, see Specifying Conditions in a Policy in the Amazon S3 Developer Guide. For a complete list of Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for Amazon S3.

x-amz-copy-source-if Headers

To only copy an object under certain conditions, such as whether the Etag matches or whether the object was modified before or after a specified date, use the following request parameters:

If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request and evaluate as follows, Amazon S3 returns the 412 Precondition Failed response code:

All headers with the x-amz- prefix, including x-amz-copy-source, must be signed.

Encryption

The source object that you are copying can be encrypted or unencrypted. The source object can be encrypted with server-side encryption using AWS managed encryption keys (SSE-S3 or SSE-KMS) or by using a customer-provided encryption key. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it.

You can optionally use the appropriate encryption-related headers to request server-side encryption for the target object. You have the option to provide your own encryption key or use SSE-S3 or SSE-KMS, regardless of the form of server-side encryption that was used to encrypt the source object. You can even request encryption if the source object was not encrypted. For more information about server-side encryption, see Using Server-Side Encryption.

Access Control List (ACL)-Specific Request Headers

When copying an object, you can optionally use headers to grant ACL-based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

Storage Class Options

You can use the CopyObject operation to change the storage class of an object that is already stored in Amazon S3 using the StorageClass parameter. For more information, see Storage Classes in the Amazon S3 Service Developer Guide.

Versioning

By default, x-amz-copy-source identifies the current version of an object to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was deleted. To copy a different version, use the versionId subresource.

If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for the object being copied. This version ID is different from the version ID of the source object. Amazon S3 returns the version ID of the copied object in the x-amz-version-id response header in the response.

If you do not enable versioning or suspend it on the target bucket, the version ID that Amazon S3 generates is always null.

If the source object's storage class is GLACIER, you must restore a copy of this object before you can use it as a source object for the copy operation. For more information, see RestoreObject.

The following operations are related to CopyObject:

For more information, see Copying Objects.

", - "CreateBucket": "

Creates a new S3 bucket. To create a bucket, you must register with Amazon S3 and have a valid AWS Access Key ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the bucket, you become the bucket owner.

Not every string is an acceptable bucket name. For information about bucket naming restrictions, see Working with Amazon S3 Buckets.

If you want to create an Amazon S3 on Outposts bucket, see Create Bucket.

By default, the bucket is created in the US East (N. Virginia) Region. You can optionally specify a Region in the request body. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region. For more information, see How to Select a Region for Your Buckets.

If you send your create bucket request to the s3.amazonaws.com endpoint, the request goes to the us-east-1 Region. Accordingly, the signature calculations in Signature Version 4 must use us-east-1 as the Region, even if the location constraint in the request specifies another Region where the bucket is to be created. If you create a bucket in a Region other than US East (N. Virginia), your application must be able to handle 307 redirect. For more information, see Virtual Hosting of Buckets.

When creating a bucket using this operation, you can optionally specify the accounts or groups that should be granted specific permissions on the bucket. There are two ways to grant the appropriate permissions using the request headers.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

The following operations are related to CreateBucket:

", + "CreateBucket": "

Creates a new S3 bucket. To create a bucket, you must register with Amazon S3 and have a valid AWS Access Key ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the bucket, you become the bucket owner.

Not every string is an acceptable bucket name. For information about bucket naming restrictions, see Working with Amazon S3 buckets.

If you want to create an Amazon S3 on Outposts bucket, see Create Bucket.

By default, the bucket is created in the US East (N. Virginia) Region. You can optionally specify a Region in the request body. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region. For more information, see Accessing a bucket.

If you send your create bucket request to the s3.amazonaws.com endpoint, the request goes to the us-east-1 Region. Accordingly, the signature calculations in Signature Version 4 must use us-east-1 as the Region, even if the location constraint in the request specifies another Region where the bucket is to be created. If you create a bucket in a Region other than US East (N. Virginia), your application must be able to handle 307 redirect. For more information, see Virtual hosting of buckets.

When creating a bucket using this operation, you can optionally specify the accounts or groups that should be granted specific permissions on the bucket. There are two ways to grant the appropriate permissions using the request headers.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

The following operations are related to CreateBucket:

", "CreateMultipartUpload": "

This operation initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see UploadPart). You also include this upload ID in the final request to either complete or abort the multipart upload request.

For more information about multipart uploads, see Multipart Upload Overview.

If you have configured a lifecycle rule to abort incomplete multipart uploads, the upload must complete within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort operation and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

For information about the permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send one or more requests to upload parts, and then complete the multipart upload process. You sign each request individually. There is nothing special about signing multipart upload requests. For more information about signing, see Authenticating Requests (AWS Signature Version 4).

After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stop charging you for storing them only after you either complete or abort a multipart upload.

You can optionally request server-side encryption. For server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You can provide your own encryption key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or Amazon S3-managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to initiate the upload by using CreateMultipartUpload.

To perform a multipart upload with encryption using an AWS KMS CMK, the requester must have permission to the kms:Encrypt, kms:Decrypt, kms:ReEncrypt*, kms:GenerateDataKey*, and kms:DescribeKey actions on the key. These permissions are required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the multipart upload.

If your AWS Identity and Access Management (IAM) user or role is in the same AWS account as the AWS KMS CMK, then you must have these permissions on the key policy. If your IAM user or role belongs to a different account than the key, then you must have the permissions on both the key policy and your IAM user or role.

For more information, see Protecting Data Using Server-Side Encryption.

Access Permissions

When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

  • Specify a canned ACL with the x-amz-acl request header. For more information, see Canned ACL.

  • Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Server-Side- Encryption-Specific Request Headers

You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use AWS managed encryption keys or provide your own encryption key.

  • Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used to encrypt data, specify the following headers in the request.

    • x-amz-server-side-encryption

    • x-amz-server-side-encryption-aws-kms-key-id

    • x-amz-server-side-encryption-context

    If you specify x-amz-server-side-encryption:aws:kms, but don't provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the AWS managed CMK in AWS KMS to protect the data.

    All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4.

    For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

  • Use customer-provided encryption keys – If you want to manage your own encryption keys, provide all the following headers in the request.

    • x-amz-server-side-encryption-customer-algorithm

    • x-amz-server-side-encryption-customer-key

    • x-amz-server-side-encryption-customer-key-MD5

    For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS.

Access-Control-List (ACL)-Specific Request Headers

You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

  • Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. For more information, see Canned ACL.

  • Specify access permissions explicitly — To explicitly grant access permissions to specific AWS accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly, use:

    • x-amz-grant-read

    • x-amz-grant-write

    • x-amz-grant-read-acp

    • x-amz-grant-write-acp

    • x-amz-grant-full-control

    You specify each grantee as a type=value pair, where the type is one of the following:

    • id – if the value specified is the canonical user ID of an AWS account

    • uri – if you are granting permissions to a predefined group

    • emailAddress – if the value specified is the email address of an AWS account

      Using email addresses to specify a grantee is only supported in the following AWS Regions:

      • US East (N. Virginia)

      • US West (N. California)

      • US West (Oregon)

      • Asia Pacific (Singapore)

      • Asia Pacific (Sydney)

      • Asia Pacific (Tokyo)

      • Europe (Ireland)

      • South America (São Paulo)

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the AWS General Reference.

    For example, the following x-amz-grant-read header grants the AWS accounts identified by account IDs permissions to read object data and its metadata:

    x-amz-grant-read: id=\"11112222333\", id=\"444455556666\"

The following operations are related to CreateMultipartUpload:

", "DeleteBucket": "

Deletes the S3 bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted.

Related Resources

", "DeleteBucketAnalyticsConfiguration": "

Deletes an analytics configuration for the bucket (specified by the analytics configuration ID).

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis.

The following operations are related to DeleteBucketAnalyticsConfiguration:

", @@ -14,6 +14,7 @@ "DeleteBucketInventoryConfiguration": "

Deletes an inventory configuration (identified by the inventory ID) from the bucket.

To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

Operations related to DeleteBucketInventoryConfiguration include:

", "DeleteBucketLifecycle": "

Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration.

To use this operation, you must have permission to perform the s3:PutLifecycleConfiguration action. By default, the bucket owner has this permission and the bucket owner can grant this permission to others.

There is usually some time lag before lifecycle configuration deletion is fully propagated to all the Amazon S3 systems.

For more information about the object expiration, see Elements to Describe Lifecycle Actions.

Related actions include:

", "DeleteBucketMetricsConfiguration": "

Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to DeleteBucketMetricsConfiguration:

", + "DeleteBucketOwnershipControls": "

Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For information about Amazon S3 Object Ownership, see Using Object Ownership.

The following operations are related to DeleteBucketOwnershipControls:

", "DeleteBucketPolicy": "

This implementation of the DELETE operation uses the policy subresource to delete the policy of a specified bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the DeleteBucketPolicy permissions on the specified bucket and belong to the bucket owner's account to use this operation.

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and UserPolicies.

The following operations are related to DeleteBucketPolicy

", "DeleteBucketReplication": "

Deletes the replication configuration from the bucket.

To use this operation, you must have permissions to perform the s3:PutReplicationConfiguration action. The bucket owner has these permissions by default and can grant it to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

It can take a while for the deletion of a replication configuration to fully propagate.

For information about replication configuration, see Replication in the Amazon S3 Developer Guide.

The following operations are related to DeleteBucketReplication:

", "DeleteBucketTagging": "

Deletes the tags from the bucket.

To use this operation, you must have permission to perform the s3:PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

The following operations are related to DeleteBucketTagging:

", @@ -35,6 +36,7 @@ "GetBucketMetricsConfiguration": "

Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to GetBucketMetricsConfiguration:

", "GetBucketNotification": "

No longer used, see GetBucketNotificationConfiguration.

", "GetBucketNotificationConfiguration": "

Returns the notification configuration of a bucket.

If notifications are not enabled on the bucket, the operation returns an empty NotificationConfiguration element.

By default, you must be the bucket owner to read the notification configuration of a bucket. However, the bucket owner can use a bucket policy to grant permission to other users to read this configuration with the s3:GetBucketNotification permission.

For more information about setting and reading the notification configuration on a bucket, see Setting Up Notification of Bucket Events. For more information about bucket policies, see Using Bucket Policies.

The following operation is related to GetBucketNotification:

", + "GetBucketOwnershipControls": "

Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For information about Amazon S3 Object Ownership, see Using Object Ownership.

The following operations are related to GetBucketOwnershipControls:

", "GetBucketPolicy": "

Returns the policy of a specified bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

The following operation is related to GetBucketPolicy:

", "GetBucketPolicyStatus": "

Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public. In order to use this operation, you must have the s3:GetBucketPolicyStatus permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For more information about when Amazon S3 considers a bucket public, see The Meaning of \"Public\".

The following operations are related to GetBucketPolicyStatus:

", "GetBucketReplication": "

Returns the replication configuration of a bucket.

It can take a while to propagate the put or delete a replication configuration to all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong result.

For information about replication configuration, see Replication in the Amazon Simple Storage Service Developer Guide.

This operation requires permissions for the s3:GetReplicationConfiguration action. For more information about permissions, see Using Bucket Policies and User Policies.

If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication and Priority elements. The response also returns those elements.

For information about GetBucketReplication errors, see List of replication-related error codes

The following operations are related to GetBucketReplication:

", @@ -73,13 +75,14 @@ "PutBucketMetricsConfiguration": "

Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to PutBucketMetricsConfiguration:

GetBucketLifecycle has the following special error:

", "PutBucketNotification": "

No longer used, see the PutBucketNotificationConfiguration operation.

", "PutBucketNotificationConfiguration": "

Enables notifications of specified events for a bucket. For more information about event notifications, see Configuring Event Notifications.

Using this API, you can replace an existing notification configuration. The configuration is an XML file that defines the event types that you want Amazon S3 to publish and the destination where you want Amazon S3 to publish an event notification when it detects an event of the specified type.

By default, your bucket has no event notifications configured. That is, the notification configuration will be an empty NotificationConfiguration.

<NotificationConfiguration>

</NotificationConfiguration>

This operation replaces the existing notification configuration with the configuration you include in the request body.

After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner has permission to publish to it by sending a test notification. In the case of AWS Lambda destinations, Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information, see Configuring Notifications for Amazon S3 Events.

You can disable notifications by adding the empty NotificationConfiguration element.

By default, only the bucket owner can configure notifications on a bucket. However, bucket owners can use a bucket policy to grant permission to other users to set this configuration with s3:PutBucketNotification permission.

The PUT notification is an atomic operation. For example, suppose your notification configuration includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT operation will fail, and Amazon S3 will not add the configuration to your bucket.

Responses

If the configuration in the request body includes only one TopicConfiguration specifying only the s3:ReducedRedundancyLostObject event type, the response will also include the x-amz-sns-test-message-id header containing the message ID of the test notification sent to the topic.

The following operation is related to PutBucketNotificationConfiguration:

", + "PutBucketOwnershipControls": "

Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For information about Amazon S3 Object Ownership, see Using Object Ownership.

The following operations are related to GetBucketOwnershipControls:

", "PutBucketPolicy": "

Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the PutBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

The following operations are related to PutBucketPolicy:

", "PutBucketReplication": "

Creates a replication configuration or replaces an existing one. For more information, see Replication in the Amazon S3 Developer Guide.

To perform this operation, the user or role performing the operation must have the iam:PassRole permission.

Specify the replication configuration in the request body. In the replication configuration, you provide the name of the destination bucket where you want Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your behalf, and other relevant information.

A replication configuration must include at least one rule, and can contain a maximum of 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in the source bucket. To choose additional subsets of objects to replicate, add a rule for each subset. All rules must specify the same destination bucket.

To specify a subset of the objects in the source bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, Status, and Priority.

The latest version of the replication configuration XML is V2. XML V2 replication configurations are those that contain the Filter element for rules, and rules that specify S3 Replication Time Control (S3 RTC). In XML V2 replication configurations, Amazon S3 doesn't replicate delete markers. Therefore, you must set the DeleteMarkerReplication element to Disabled. For backward compatibility, Amazon S3 continues to support the XML V1 replication configuration.

For information about enabling versioning on a bucket, see Using Versioning.

By default, a resource owner, in this case the AWS account that created the bucket, can perform this operation. The resource owner can also grant others permissions to perform the operation. For more information about permissions, see Specifying Permissions in a Policy and Managing Access Permissions to Your Amazon S3 Resources.

Handling Replication of Encrypted Objects

By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side encryption with CMKs stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following: SourceSelectionCriteria, SseKmsEncryptedObjects, Status, EncryptionConfiguration, and ReplicaKmsKeyID. For information about replication configuration, see Replicating Objects Created with SSE Using CMKs stored in AWS KMS.

For information on PutBucketReplication errors, see List of replication-related error codes

The following operations are related to PutBucketReplication:

", "PutBucketRequestPayment": "

Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. For more information, see Requester Pays Buckets.

The following operations are related to PutBucketRequestPayment:

", "PutBucketTagging": "

Sets the tags for a bucket.

Use tags to organize your AWS bill to reflect your own cost structure. To do this, sign up to get your AWS account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see Cost Allocation and Tagging.

Within a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites the old value. For more information, see Using Cost Allocation in Amazon S3 Bucket Tags.

To use this operation, you must have permissions to perform the s3:PutBucketTagging action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

PutBucketTagging has the following special errors:

The following operations are related to PutBucketTagging:

", "PutBucketVersioning": "

Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.

You can set the versioning state with one of the following values:

Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

If the versioning state has never been set on a bucket, it has no versioning state; a GetBucketVersioning request does not return a versioning state value.

If the bucket owner enables MFA Delete in the bucket versioning configuration, the bucket owner must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket.

If you have an object expiration lifecycle policy in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle policy will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see Lifecycle and Versioning.

Related Resources

", "PutBucketWebsite": "

Sets the configuration of the website that is specified in the website subresource. To configure a bucket as a website, you can add this subresource on the bucket with website configuration information such as the file name of the index document and any redirect rules. For more information, see Hosting Websites on Amazon S3.

This PUT operation requires the S3:PutBucketWebsite permission. By default, only the bucket owner can configure the website attached to a bucket; however, bucket owners can allow other users to set the website configuration by writing a bucket policy that grants them the S3:PutBucketWebsite permission.

To redirect all website requests sent to the bucket's website endpoint, you add a website configuration with the following elements. Because all requests are sent to another website, you don't need to provide index document name for the bucket.

If you want granular control over redirects, you can use the following elements to add routing rules that describe conditions for redirecting requests and information about the redirect destination. In this case, the website configuration must provide an index document for the bucket, because some requests might not be redirected.

Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more than 50 routing rules, you can use object redirect. For more information, see Configuring an Object Redirect in the Amazon Simple Storage Service Developer Guide.

", - "PutObject": "

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket.

Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object locking; if you need this, make sure to build it into your application layer or use versioning instead.

To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

The Content-MD5 header is required for any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more information about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview in the Amazon Simple Storage Service Developer Guide.

Server-side Encryption

You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. You have the option to provide your own encryption key or use AWS managed encryption keys. For more information, see Using Server-Side Encryption.

Access Control List (ACL)-Specific Request Headers

You can use headers to grant ACL- based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

Storage Class Options

By default, Amazon S3 uses the STANDARD storage class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different storage class. For more information, see Storage Classes in the Amazon S3 Service Developer Guide.

Versioning

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects.

For more information about versioning, see Adding Objects to Versioning Enabled Buckets. For information about returning the versioning state of a bucket, see GetBucketVersioning.

Related Resources

", + "PutObject": "

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket.

Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object locking; if you need this, make sure to build it into your application layer or use versioning instead.

To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

The Content-MD5 header is required for any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more information about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview in the Amazon Simple Storage Service Developer Guide.

Server-side Encryption

You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. You have the option to provide your own encryption key or use AWS managed encryption keys. For more information, see Using Server-Side Encryption.

Access Control List (ACL)-Specific Request Headers

You can use headers to grant ACL- based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

Storage Class Options

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 Service Developer Guide.

Versioning

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects.

For more information about versioning, see Adding Objects to Versioning Enabled Buckets. For information about returning the versioning state of a bucket, see GetBucketVersioning.

Related Resources

", "PutObjectAcl": "

Uses the acl subresource to set the access control list (ACL) permissions for a new or existing object in an S3 bucket. You must have WRITE_ACP permission to set the ACL of an object. For more information, see What permissions can I grant? in the Amazon Simple Storage Service Developer Guide.

This action is not supported by Amazon S3 on Outposts.

Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, you can continue to use that approach. For more information, see Access Control List (ACL) Overview in the Amazon S3 Developer Guide.

Access Permissions

You can set access permissions using one of the following methods:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

Versioning

The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the versionId subresource.

Related Resources

", "PutObjectLegalHold": "

Applies a Legal Hold configuration to the specified object.

This action is not supported by Amazon S3 on Outposts.

Related Resources

", "PutObjectLockConfiguration": "

Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket.

DefaultRetention requires either Days or Years. You can't specify both at the same time.

Related Resources

", @@ -88,7 +91,7 @@ "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

Related Resources

", "RestoreObject": "

Restores an archived copy of an object back into Amazon S3

This action is not supported by Amazon S3 on Outposts.

This action performs the following types of requests:

To use this operation, you must have permissions to perform the s3:RestoreObject action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon Simple Storage Service Developer Guide.

Querying Archives with Select Requests

You use a select type of request to perform SQL queries on archived objects. The archived objects that are being queried by the select request must be formatted as uncompressed comma-separated values (CSV) files. You can run queries and custom analytics on your archived data without having to restore your data to a hotter Amazon S3 tier. For an overview about select requests, see Querying Archived Objects in the Amazon Simple Storage Service Developer Guide.

When making a select request, do the following:

For more information about using SQL with S3 Glacier Select restore, see SQL Reference for Amazon S3 Select and S3 Glacier Select in the Amazon Simple Storage Service Developer Guide.

When making a select request, you can also do the following:

The following are additional important facts about the select feature:

Restoring Archives

Objects in the GLACIER and DEEP_ARCHIVE storage classes are archived. To access an archived object, you must first initiate a restore request. This restores a temporary copy of the archived object. In a restore request, you specify the number of days that you want the restored copy to exist. After the specified period, Amazon S3 deletes the temporary copy but the object remains archived in the GLACIER or DEEP_ARCHIVE storage class that object was restored from.

To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version.

The time it takes restore jobs to finish depends on which storage class the object is being restored from and which data access tier you specify.

When restoring an archived object (or using a select request), you can specify one of the following data access tier options in the Tier element of the request body:

For more information about archive retrieval options and provisioned capacity for Expedited data access, see Restoring Archived Objects in the Amazon Simple Storage Service Developer Guide.

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. You upgrade the speed of an in-progress restoration by issuing another restore request to the same object, setting a new Tier request element. When issuing a request to upgrade the restore tier, you must choose a tier that is faster than the tier that the in-progress restore is using. You must not change any other parameters, such as the Days request element. For more information, see Upgrading the Speed of an In-Progress Restore in the Amazon Simple Storage Service Developer Guide.

To get the status of object restoration, you can send a HEAD request. Operations return the x-amz-restore header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in the Amazon Simple Storage Service Developer Guide.

After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object.

If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in Amazon Simple Storage Service Developer Guide.

Responses

A successful operation returns either the 200 OK or 202 Accepted status code.

Special Errors

Related Resources

", "SelectObjectContent": "

This operation filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.

This action is not supported by Amazon S3 on Outposts.

For more information about Amazon S3 Select, see Selecting Content from Objects in the Amazon Simple Storage Service Developer Guide.

For more information about using SQL with Amazon S3 Select, see SQL Reference for Amazon S3 Select and S3 Glacier Select in the Amazon Simple Storage Service Developer Guide.

Permissions

You must have s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy in the Amazon Simple Storage Service Developer Guide.

Object Data Formats

You can use Amazon S3 Select to query objects that have the following format properties:

Working with the Response Body

Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a Transfer-Encoding header with chunked as its value in the response. For more information, see Appendix: SelectObjectContent Response .

GetObject Support

The SelectObjectContent operation does not support the following GetObject functionality. For more information, see GetObject.

Special Errors

For a list of special errors for this operation, see List of SELECT Object Content Error Codes

Related Resources

", - "UploadPart": "

Uploads a part in a multipart upload.

In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request.

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten. Each part must be at least 5 MB in size, except the last part. There is no size limit on the last part of your multipart upload.

To ensure that data is not corrupted when traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.

Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

For more information on multipart uploads, go to Multipart Upload Overview in the Amazon Simple Storage Service Developer Guide .

For information on the permissions required to use the multipart upload API, go to Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

You can optionally request server-side encryption where Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it for you when you access it. You have the option of providing your own encryption key, or you can use the AWS managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. For more information, go to Using Server-Side Encryption in the Amazon Simple Storage Service Developer Guide.

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key, you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate Multipart request. For more information, see CreateMultipartUpload.

If you requested server-side encryption using a customer-provided encryption key in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers.

Special Errors

Related Resources

", + "UploadPart": "

Uploads a part in a multipart upload.

In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request.

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten. Each part must be at least 5 MB in size, except the last part. There is no size limit on the last part of your multipart upload.

To ensure that data is not corrupted when traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.

If the upload request is signed with Signature Version 4, then AWS S3 uses the x-amz-content-sha256 header as a checksum instead of Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (AWS Signature Version 4).

Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

For more information on multipart uploads, go to Multipart Upload Overview in the Amazon Simple Storage Service Developer Guide .

For information on the permissions required to use the multipart upload API, go to Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

You can optionally request server-side encryption where Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it for you when you access it. You have the option of providing your own encryption key, or you can use the AWS managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. For more information, go to Using Server-Side Encryption in the Amazon Simple Storage Service Developer Guide.

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key, you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate Multipart request. For more information, see CreateMultipartUpload.

If you requested server-side encryption using a customer-provided encryption key in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers.

Special Errors

Related Resources

", "UploadPartCopy": "

Uploads a part by copying data from an existing object as data source. You specify the data source by adding the request header x-amz-copy-source in your request and a byte range by adding the request header x-amz-copy-source-range in your request.

The minimum allowable part size for a multipart upload is 5 MB. For more information about multipart upload limits, go to Quick Facts in the Amazon Simple Storage Service Developer Guide.

Instead of using an existing object as part data, you might use the UploadPart operation and provide data in your request.

You must initiate a multipart upload before you can upload any part. In response to your initiate request. Amazon S3 returns a unique identifier, the upload ID, that you must include in your upload part request.

For more information about using the UploadPartCopy operation, see the following:

Note the following additional considerations about the request headers x-amz-copy-source-if-match, x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, and x-amz-copy-source-if-modified-since:

Versioning

If your bucket has versioning enabled, you could have multiple versions of the same object. By default, x-amz-copy-source identifies the current version of the object to copy. If the current version is a delete marker and you don't specify a versionId in the x-amz-copy-source, Amazon S3 returns a 404 error, because the object does not exist. If you specify versionId in the x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns an HTTP 400 error, because you are not allowed to specify a delete marker as a version for the x-amz-copy-source.

You can optionally specify a specific version of the source object to copy by adding the versionId subresource as shown in the following example:

x-amz-copy-source: /bucket/object?versionId=version id

Special Errors

Related Resources

" }, "shapes": { @@ -164,6 +167,7 @@ "DeleteBucketInventoryConfigurationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "DeleteBucketLifecycleRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "DeleteBucketMetricsConfigurationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", + "DeleteBucketOwnershipControlsRequest$ExpectedBucketOwner": null, "DeleteBucketPolicyRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "DeleteBucketReplicationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "DeleteBucketRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", @@ -186,6 +190,7 @@ "GetBucketLoggingRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "GetBucketMetricsConfigurationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "GetBucketNotificationConfigurationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", + "GetBucketOwnershipControlsRequest$ExpectedBucketOwner": null, "GetBucketPolicyRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "GetBucketPolicyStatusRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "GetBucketReplicationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", @@ -224,6 +229,7 @@ "PutBucketMetricsConfigurationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "PutBucketNotificationConfigurationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "PutBucketNotificationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", + "PutBucketOwnershipControlsRequest$ExpectedBucketOwner": null, "PutBucketPolicyRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "PutBucketReplicationRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", "PutBucketRequestPaymentRequest$ExpectedBucketOwner": "

The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

", @@ -363,7 +369,7 @@ } }, "BucketAlreadyExists": { - "base": "

The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.

", + "base": "

The requested bucket name is not available. The bucket namespace is shared by all users of the system. Select a different name and try again.

", "refs": { } }, @@ -407,29 +413,30 @@ "BucketName": { "base": null, "refs": { - "AbortMultipartUploadRequest$Bucket": "

The bucket name to which the upload was taking place.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "AbortMultipartUploadRequest$Bucket": "

The bucket name to which the upload was taking place.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "AnalyticsS3BucketDestination$Bucket": "

The Amazon Resource Name (ARN) of the bucket to which data is exported.

", "Bucket$Name": "

The name of the bucket.

", - "CompleteMultipartUploadOutput$Bucket": "

The name of the bucket that contains the newly created object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "CompleteMultipartUploadOutput$Bucket": "

The name of the bucket that contains the newly created object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "CompleteMultipartUploadRequest$Bucket": "

Name of the bucket to which the multipart upload was initiated.

", - "CopyObjectRequest$Bucket": "

The name of the destination bucket.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "CopyObjectRequest$Bucket": "

The name of the destination bucket.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "CreateBucketRequest$Bucket": "

The name of the bucket to create.

", - "CreateMultipartUploadOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", - "CreateMultipartUploadRequest$Bucket": "

The name of the bucket to which to initiate the upload

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "CreateMultipartUploadOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "CreateMultipartUploadRequest$Bucket": "

The name of the bucket to which to initiate the upload

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "DeleteBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket from which an analytics configuration is deleted.

", "DeleteBucketCorsRequest$Bucket": "

Specifies the bucket whose cors configuration is being deleted.

", "DeleteBucketEncryptionRequest$Bucket": "

The name of the bucket containing the server-side encryption configuration to delete.

", "DeleteBucketInventoryConfigurationRequest$Bucket": "

The name of the bucket containing the inventory configuration to delete.

", "DeleteBucketLifecycleRequest$Bucket": "

The bucket name of the lifecycle to delete.

", "DeleteBucketMetricsConfigurationRequest$Bucket": "

The name of the bucket containing the metrics configuration to delete.

", + "DeleteBucketOwnershipControlsRequest$Bucket": "

The Amazon S3 bucket whose OwnershipControls you want to delete.

", "DeleteBucketPolicyRequest$Bucket": "

The bucket name.

", "DeleteBucketReplicationRequest$Bucket": "

The bucket name.

", "DeleteBucketRequest$Bucket": "

Specifies the bucket being deleted.

", "DeleteBucketTaggingRequest$Bucket": "

The bucket that has the tag set to be removed.

", "DeleteBucketWebsiteRequest$Bucket": "

The bucket name for which you want to remove the website configuration.

", - "DeleteObjectRequest$Bucket": "

The bucket name of the bucket containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", - "DeleteObjectTaggingRequest$Bucket": "

The bucket name containing the objects from which to remove the tags.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", - "DeleteObjectsRequest$Bucket": "

The bucket name containing the objects to delete.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "DeleteObjectRequest$Bucket": "

The bucket name of the bucket containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "DeleteObjectTaggingRequest$Bucket": "

The bucket name containing the objects from which to remove the tags.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "DeleteObjectsRequest$Bucket": "

The bucket name containing the objects to delete.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "DeletePublicAccessBlockRequest$Bucket": "

The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete.

", "Destination$Bucket": "

The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.

", "GetBucketAccelerateConfigurationRequest$Bucket": "

The name of the bucket for which the accelerate configuration is retrieved.

", @@ -444,6 +451,7 @@ "GetBucketLoggingRequest$Bucket": "

The bucket name for which to get the logging information.

", "GetBucketMetricsConfigurationRequest$Bucket": "

The name of the bucket containing the metrics configuration to retrieve.

", "GetBucketNotificationConfigurationRequest$Bucket": "

The name of the bucket for which to get the notification configuration.

", + "GetBucketOwnershipControlsRequest$Bucket": "

The name of the Amazon S3 bucket whose OwnershipControls you want to retrieve.

", "GetBucketPolicyRequest$Bucket": "

The bucket name for which to get the bucket policy.

", "GetBucketPolicyStatusRequest$Bucket": "

The name of the Amazon S3 bucket whose policy status you want to retrieve.

", "GetBucketReplicationRequest$Bucket": "

The bucket name for which to get the replication information.

", @@ -451,30 +459,30 @@ "GetBucketTaggingRequest$Bucket": "

The name of the bucket for which to get the tagging information.

", "GetBucketVersioningRequest$Bucket": "

The name of the bucket for which to get the versioning information.

", "GetBucketWebsiteRequest$Bucket": "

The bucket name for which to get the website configuration.

", - "GetObjectAclRequest$Bucket": "

The bucket name that contains the object for which to get the ACL information.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "GetObjectLegalHoldRequest$Bucket": "

The bucket name containing the object whose Legal Hold status you want to retrieve.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "GetObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to retrieve.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "GetObjectRequest$Bucket": "

The bucket name containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", - "GetObjectRetentionRequest$Bucket": "

The bucket name containing the object whose retention settings you want to retrieve.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "GetObjectTaggingRequest$Bucket": "

The bucket name containing the object for which to get the tagging information.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "GetObjectAclRequest$Bucket": "

The bucket name that contains the object for which to get the ACL information.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "GetObjectLegalHoldRequest$Bucket": "

The bucket name containing the object whose Legal Hold status you want to retrieve.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "GetObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to retrieve.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "GetObjectRequest$Bucket": "

The bucket name containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "GetObjectRetentionRequest$Bucket": "

The bucket name containing the object whose retention settings you want to retrieve.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "GetObjectTaggingRequest$Bucket": "

The bucket name containing the object for which to get the tagging information.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "GetObjectTorrentRequest$Bucket": "

The name of the bucket containing the object for which to get the torrent files.

", "GetPublicAccessBlockRequest$Bucket": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to retrieve.

", - "HeadBucketRequest$Bucket": "

The bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", - "HeadObjectRequest$Bucket": "

The name of the bucket containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "HeadBucketRequest$Bucket": "

The bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "HeadObjectRequest$Bucket": "

The name of the bucket containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "InventoryS3BucketDestination$Bucket": "

The Amazon Resource Name (ARN) of the bucket where inventory results will be published.

", "ListBucketAnalyticsConfigurationsRequest$Bucket": "

The name of the bucket from which analytics configurations are retrieved.

", "ListBucketInventoryConfigurationsRequest$Bucket": "

The name of the bucket containing the inventory configurations to retrieve.

", "ListBucketMetricsConfigurationsRequest$Bucket": "

The name of the bucket containing the metrics configurations to retrieve.

", "ListMultipartUploadsOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated.

", - "ListMultipartUploadsRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "ListMultipartUploadsRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "ListObjectVersionsOutput$Name": "

The bucket name.

", "ListObjectVersionsRequest$Bucket": "

The bucket name that contains the objects.

", "ListObjectsOutput$Name": "

The bucket name.

", - "ListObjectsRequest$Bucket": "

The name of the bucket containing the objects.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", - "ListObjectsV2Output$Name": "

The bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", - "ListObjectsV2Request$Bucket": "

Bucket name to list.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "ListObjectsRequest$Bucket": "

The name of the bucket containing the objects.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "ListObjectsV2Output$Name": "

The bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "ListObjectsV2Request$Bucket": "

Bucket name to list.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "ListPartsOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated.

", - "ListPartsRequest$Bucket": "

The name of the bucket to which the parts are being uploaded.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "ListPartsRequest$Bucket": "

The name of the bucket to which the parts are being uploaded.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "PutBucketAccelerateConfigurationRequest$Bucket": "

The name of the bucket for which the accelerate configuration is set.

", "PutBucketAclRequest$Bucket": "

The bucket to which to apply the ACL.

", "PutBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket to which an analytics configuration is stored.

", @@ -487,24 +495,25 @@ "PutBucketMetricsConfigurationRequest$Bucket": "

The name of the bucket for which the metrics configuration is set.

", "PutBucketNotificationConfigurationRequest$Bucket": "

The name of the bucket.

", "PutBucketNotificationRequest$Bucket": "

The name of the bucket.

", + "PutBucketOwnershipControlsRequest$Bucket": "

The name of the Amazon S3 bucket whose OwnershipControls you want to set.

", "PutBucketPolicyRequest$Bucket": "

The name of the bucket.

", "PutBucketReplicationRequest$Bucket": "

The name of the bucket

", "PutBucketRequestPaymentRequest$Bucket": "

The bucket name.

", "PutBucketTaggingRequest$Bucket": "

The bucket name.

", "PutBucketVersioningRequest$Bucket": "

The bucket name.

", "PutBucketWebsiteRequest$Bucket": "

The bucket name.

", - "PutObjectAclRequest$Bucket": "

The bucket name that contains the object to which you want to attach the ACL.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "PutObjectLegalHoldRequest$Bucket": "

The bucket name containing the object that you want to place a Legal Hold on.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "PutObjectAclRequest$Bucket": "

The bucket name that contains the object to which you want to attach the ACL.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "PutObjectLegalHoldRequest$Bucket": "

The bucket name containing the object that you want to place a Legal Hold on.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", "PutObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to create or replace.

", - "PutObjectRequest$Bucket": "

The bucket name to which the PUT operation was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", - "PutObjectRetentionRequest$Bucket": "

The bucket name that contains the object you want to apply this Object Retention configuration to.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "PutObjectTaggingRequest$Bucket": "

The bucket name containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "PutObjectRequest$Bucket": "

The bucket name to which the PUT operation was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "PutObjectRetentionRequest$Bucket": "

The bucket name that contains the object you want to apply this Object Retention configuration to.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "PutObjectTaggingRequest$Bucket": "

The bucket name containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "PutPublicAccessBlockRequest$Bucket": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to set.

", - "RestoreObjectRequest$Bucket": "

The bucket name or containing the object to restore.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "RestoreObjectRequest$Bucket": "

The bucket name or containing the object to restore.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "S3Location$BucketName": "

The name of the bucket where the restore results will be placed.

", "SelectObjectContentRequest$Bucket": "

The S3 bucket.

", - "UploadPartCopyRequest$Bucket": "

The bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", - "UploadPartRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

" + "UploadPartCopyRequest$Bucket": "

The bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "UploadPartRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

" } }, "BucketVersioningStatus": { @@ -729,6 +738,7 @@ "PutBucketLifecycleRequest$ContentMD5": "

", "PutBucketLoggingRequest$ContentMD5": "

The MD5 hash of the PutBucketLogging request body.

", "PutBucketNotificationRequest$ContentMD5": "

The MD5 hash of the PutPublicAccessBlock request body.

", + "PutBucketOwnershipControlsRequest$ContentMD5": "

The MD5 hash of the OwnershipControls request body.

", "PutBucketPolicyRequest$ContentMD5": "

The MD5 hash of the request body.

", "PutBucketReplicationRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see RFC 1864.

", "PutBucketRequestPaymentRequest$ContentMD5": "

>The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see RFC 1864.

", @@ -957,6 +967,11 @@ "refs": { } }, + "DeleteBucketOwnershipControlsRequest": { + "base": null, + "refs": { + } + }, "DeleteBucketPolicyRequest": { "base": null, "refs": { @@ -1434,6 +1449,16 @@ "refs": { } }, + "GetBucketOwnershipControlsOutput": { + "base": null, + "refs": { + } + }, + "GetBucketOwnershipControlsRequest": { + "base": null, + "refs": { + } + }, "GetBucketPolicyOutput": { "base": null, "refs": { @@ -1599,34 +1624,34 @@ "GrantFullControl": { "base": null, "refs": { - "CopyObjectRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

", + "CopyObjectRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

This action is not supported by Amazon S3 on Outposts.

", "CreateBucketRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

", - "CreateMultipartUploadRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

", + "CreateMultipartUploadRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

This action is not supported by Amazon S3 on Outposts.

", "PutBucketAclRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

", - "PutObjectAclRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

", - "PutObjectRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

" + "PutObjectAclRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

This action is not supported by Amazon S3 on Outposts.

", + "PutObjectRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

This action is not supported by Amazon S3 on Outposts.

" } }, "GrantRead": { "base": null, "refs": { - "CopyObjectRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

", + "CopyObjectRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

This action is not supported by Amazon S3 on Outposts.

", "CreateBucketRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

", - "CreateMultipartUploadRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

", + "CreateMultipartUploadRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

This action is not supported by Amazon S3 on Outposts.

", "PutBucketAclRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

", - "PutObjectAclRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

", - "PutObjectRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

" + "PutObjectAclRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

This action is not supported by Amazon S3 on Outposts.

", + "PutObjectRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

This action is not supported by Amazon S3 on Outposts.

" } }, "GrantReadACP": { "base": null, "refs": { - "CopyObjectRequest$GrantReadACP": "

Allows grantee to read the object ACL.

", + "CopyObjectRequest$GrantReadACP": "

Allows grantee to read the object ACL.

This action is not supported by Amazon S3 on Outposts.

", "CreateBucketRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

", - "CreateMultipartUploadRequest$GrantReadACP": "

Allows grantee to read the object ACL.

", + "CreateMultipartUploadRequest$GrantReadACP": "

Allows grantee to read the object ACL.

This action is not supported by Amazon S3 on Outposts.

", "PutBucketAclRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

", - "PutObjectAclRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

", - "PutObjectRequest$GrantReadACP": "

Allows grantee to read the object ACL.

" + "PutObjectAclRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

This action is not supported by Amazon S3 on Outposts.

", + "PutObjectRequest$GrantReadACP": "

Allows grantee to read the object ACL.

This action is not supported by Amazon S3 on Outposts.

" } }, "GrantWrite": { @@ -1640,12 +1665,12 @@ "GrantWriteACP": { "base": null, "refs": { - "CopyObjectRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

", + "CopyObjectRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

This action is not supported by Amazon S3 on Outposts.

", "CreateBucketRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

", - "CreateMultipartUploadRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

", + "CreateMultipartUploadRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

This action is not supported by Amazon S3 on Outposts.

", "PutBucketAclRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

", - "PutObjectAclRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

", - "PutObjectRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

" + "PutObjectAclRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

This action is not supported by Amazon S3 on Outposts.

", + "PutObjectRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

This action is not supported by Amazon S3 on Outposts.

" } }, "Grantee": { @@ -2403,10 +2428,10 @@ "ObjectCannedACL": { "base": null, "refs": { - "CopyObjectRequest$ACL": "

The canned ACL to apply to the object.

", - "CreateMultipartUploadRequest$ACL": "

The canned ACL to apply to the object.

", + "CopyObjectRequest$ACL": "

The canned ACL to apply to the object.

This action is not supported by Amazon S3 on Outposts.

", + "CreateMultipartUploadRequest$ACL": "

The canned ACL to apply to the object.

This action is not supported by Amazon S3 on Outposts.

", "PutObjectAclRequest$ACL": "

The canned ACL to apply to the object. For more information, see Canned ACL.

", - "PutObjectRequest$ACL": "

The canned ACL to apply to the object. For more information, see Canned ACL.

", + "PutObjectRequest$ACL": "

The canned ACL to apply to the object. For more information, see Canned ACL.

This action is not supported by Amazon S3 on Outposts.

", "S3Location$CannedACL": "

The canned ACL to apply to the restore results.

" } }, @@ -2450,7 +2475,7 @@ "Object$Key": "

The name that you assign to an object. You use the object key to retrieve the object.

", "ObjectIdentifier$Key": "

Key name of the object to delete.

", "ObjectVersion$Key": "

The object key.

", - "PutObjectAclRequest$Key": "

Key for which the PUT operation was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "PutObjectAclRequest$Key": "

Key for which the PUT operation was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "PutObjectLegalHoldRequest$Key": "

The key name for the object that you want to place a Legal Hold on.

", "PutObjectRequest$Key": "

Object key for which the PUT operation was initiated.

", "PutObjectRetentionRequest$Key": "

The key name for the object that you want to apply this Object Retention configuration to.

", @@ -2558,6 +2583,12 @@ "refs": { } }, + "ObjectOwnership": { + "base": "

The container element for object ownership for a bucket's ownership controls.

BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the bucket owner if the objects are uploaded with the bucket-owner-full-control canned ACL.

ObjectWriter - The uploading account will own the object if the object is uploaded with the bucket-owner-full-control canned ACL.

", + "refs": { + "OwnershipControlsRule$ObjectOwnership": null + } + }, "ObjectStorageClass": { "base": null, "refs": { @@ -2647,6 +2678,25 @@ "AccessControlTranslation$Owner": "

Specifies the replica ownership. For default and valid values, see PUT bucket replication in the Amazon Simple Storage Service API Reference.

" } }, + "OwnershipControls": { + "base": "

The container element for a bucket's ownership controls.

", + "refs": { + "GetBucketOwnershipControlsOutput$OwnershipControls": "

The OwnershipControls (BucketOwnerPreferred or ObjectWriter) currently in effect for this Amazon S3 bucket.

", + "PutBucketOwnershipControlsRequest$OwnershipControls": "

The OwnershipControls (BucketOwnerPreferred or ObjectWriter) that you want to apply to this Amazon S3 bucket.

" + } + }, + "OwnershipControlsRule": { + "base": "

The container element for an ownership control rule.

", + "refs": { + "OwnershipControlsRules$member": null + } + }, + "OwnershipControlsRules": { + "base": null, + "refs": { + "OwnershipControls$Rules": "

The container element for an ownership control rule.

" + } + }, "ParquetInput": { "base": "

Container for Parquet.

", "refs": { @@ -2836,6 +2886,11 @@ "refs": { } }, + "PutBucketOwnershipControlsRequest": { + "base": null, + "refs": { + } + }, "PutBucketPolicyRequest": { "base": null, "refs": { @@ -2986,7 +3041,7 @@ "base": null, "refs": { "GetObjectRequest$Range": "

Downloads the specified range bytes of an object. For more information about the HTTP Range header, see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

Amazon S3 doesn't support retrieving multiple ranges of data per GET request.

", - "HeadObjectRequest$Range": "

Downloads the specified range bytes of an object. For more information about the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

Amazon S3 doesn't support retrieving multiple ranges of data per GET request.

" + "HeadObjectRequest$Range": "

Downloads the specified range bytes of an object. For more information about the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.

Amazon S3 doesn't support retrieving multiple ranges of data per GET request.

" } }, "RecordDelimiter": { @@ -3505,14 +3560,14 @@ "StorageClass": { "base": null, "refs": { - "CopyObjectRequest$StorageClass": "

The type of storage to use for the object. Defaults to 'STANDARD'.

", - "CreateMultipartUploadRequest$StorageClass": "

The type of storage to use for the object. Defaults to 'STANDARD'.

", + "CopyObjectRequest$StorageClass": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 Service Developer Guide.

", + "CreateMultipartUploadRequest$StorageClass": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 Service Developer Guide.

", "Destination$StorageClass": "

The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.

For valid values, see the StorageClass element of the PUT Bucket replication action in the Amazon Simple Storage Service API Reference.

", "GetObjectOutput$StorageClass": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.

", "HeadObjectOutput$StorageClass": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.

For more information, see Storage Classes.

", "ListPartsOutput$StorageClass": "

Class of storage (STANDARD or REDUCED_REDUNDANCY) used to store the uploaded object.

", "MultipartUpload$StorageClass": "

The class of storage used to store the object.

", - "PutObjectRequest$StorageClass": "

If you don't specify, S3 Standard is the default storage class. Amazon S3 supports other storage classes.

", + "PutObjectRequest$StorageClass": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 Service Developer Guide.

", "S3Location$StorageClass": "

The class of storage used to store the restore results.

" } }, diff --git a/models/apis/servicediscovery/2017-03-14/api-2.json b/models/apis/servicediscovery/2017-03-14/api-2.json index 46d988a0c24..a9872bdf228 100644 --- a/models/apis/servicediscovery/2017-03-14/api-2.json +++ b/models/apis/servicediscovery/2017-03-14/api-2.json @@ -516,6 +516,7 @@ "ServiceName":{"shape":"ServiceName"}, "MaxResults":{"shape":"DiscoverMaxResults"}, "QueryParameters":{"shape":"Attributes"}, + "OptionalParameters":{"shape":"Attributes"}, "HealthStatus":{"shape":"HealthStatusFilter"} } }, diff --git a/models/apis/servicediscovery/2017-03-14/docs-2.json b/models/apis/servicediscovery/2017-03-14/docs-2.json index eddacc7c723..e4eb451f4d8 100644 --- a/models/apis/servicediscovery/2017-03-14/docs-2.json +++ b/models/apis/servicediscovery/2017-03-14/docs-2.json @@ -60,7 +60,8 @@ "Attributes": { "base": null, "refs": { - "DiscoverInstancesRequest$QueryParameters": "

A string map that contains attributes with values that you can use to filter instances by any custom attribute that you specified when you registered the instance. Only instances that match all the specified key/value pairs will be returned.

", + "DiscoverInstancesRequest$QueryParameters": "

Filters to scope the results based on custom attributes for the instance. For example, {version=v1, az=1a}. Only instances that match all the specified key-value pairs will be returned.

", + "DiscoverInstancesRequest$OptionalParameters": "

Opportunistic filters to scope the results based on custom attributes. If there are instances that match both the filters specified in both the QueryParameters parameter and this parameter, they are returned. Otherwise, these filters are ignored and only instances that match the filters specified in the QueryParameters parameter are returned.

", "HttpInstanceSummary$Attributes": "

If you included any attributes when you registered the instance, the values of those attributes.

", "Instance$Attributes": "

A string map that contains the following information for the service that you specify in ServiceId:

Supported attribute keys include the following:

AWS_ALIAS_DNS_NAME

If you want AWS Cloud Map to create a Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer. For information about how to get the DNS name, see \"DNSName\" in the topic AliasTarget.

Note the following:

AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 instance ID for the instance. The AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.

AWS_INSTANCE_CNAME

If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries, for example, example.com.

This value is required if the service specified by ServiceId includes settings for an CNAME record.

AWS_INSTANCE_IPV4

If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries, for example, 192.0.2.44.

This value is required if the service specified by ServiceId includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_IPV6

If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries, for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is required if the service specified by ServiceId includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_PORT

If the service includes an SRV record, the value that you want Route 53 to return for the port.

If the service includes HealthCheckConfig, the port on the endpoint that you want Route 53 to send requests to.

This value is required if you specified settings for an SRV record or a Route 53 health check when you created the service.

", "InstanceSummary$Attributes": "

A string map that contains the following information:

Supported attribute keys include the following:

", @@ -231,7 +232,7 @@ "base": null, "refs": { "HealthCheckConfig$FailureThreshold": "

The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. For more information, see How Route 53 Determines Whether an Endpoint Is Healthy in the Route 53 Developer Guide.

", - "HealthCheckCustomConfig$FailureThreshold": "

The number of 30-second intervals that you want AWS Cloud Map to wait after receiving an UpdateInstanceCustomHealthStatus request before it changes the health status of a service instance. For example, suppose you specify a value of 2 for FailureTheshold, and then your application sends an UpdateInstanceCustomHealthStatus request. AWS Cloud Map waits for approximately 60 seconds (2 x 30) before changing the status of the service instance based on that request.

Sending a second or subsequent UpdateInstanceCustomHealthStatus request with the same value before FailureThreshold x 30 seconds has passed doesn't accelerate the change. AWS Cloud Map still waits FailureThreshold x 30 seconds after the first request to make the change.

" + "HealthCheckCustomConfig$FailureThreshold": "

This parameter has been deprecated and is always set to 1. AWS Cloud Map waits for approximately 30 seconds after receiving an UpdateInstanceCustomHealthStatus request before changing the status of the service instance.

The number of 30-second intervals that you want AWS Cloud Map to wait after receiving an UpdateInstanceCustomHealthStatus request before it changes the health status of a service instance.

Sending a second or subsequent UpdateInstanceCustomHealthStatus request with the same value before 30 seconds has passed doesn't accelerate the change. AWS Cloud Map still waits 30 seconds after the first request to make the change.

" } }, "FilterCondition": { diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 9e5676a7861..8b8ca1b0bc4 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -3862,6 +3862,7 @@ "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -5342,6 +5343,7 @@ "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, diff --git a/service/batch/api.go b/service/batch/api.go index 04b3f9ba098..c995839579c 100644 --- a/service/batch/api.go +++ b/service/batch/api.go @@ -1249,6 +1249,92 @@ func (c *Batch) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, return p.Err() } +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource 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 ListTagsForResource for more information on using the ListTagsForResource +// 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 ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ListTagsForResource +func (c *Batch) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/v1/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for AWS Batch. +// +// List the tags for an AWS Batch resource. AWS Batch resources that support +// tags are compute environments, jobs, job definitions, and job queues. ARNs +// for child jobs of array and multi-node parallel (MNP) jobs are not supported. +// +// 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 AWS Batch's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// * ClientException +// These errors are usually caused by a client action, such as using an action +// or resource on behalf of a user that doesn't have permissions to use the +// action or resource, or specifying an identifier that is not valid. +// +// * ServerException +// These errors are usually caused by a server issue. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ListTagsForResource +func (c *Batch) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource 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 *Batch) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opRegisterJobDefinition = "RegisterJobDefinition" // RegisterJobDefinitionRequest generates a "aws/request.Request" representing the @@ -1418,6 +1504,96 @@ func (c *Batch) SubmitJobWithContext(ctx aws.Context, input *SubmitJobInput, opt return out, req.Send() } +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource 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 TagResource for more information on using the TagResource +// 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 TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/TagResource +func (c *Batch) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/v1/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for AWS Batch. +// +// Associates the specified tags to a resource with the specified resourceArn. +// If existing tags on a resource are not specified in the request parameters, +// they are not changed. When a resource is deleted, the tags associated with +// that resource are deleted as well. AWS Batch resources that support tags +// are compute environments, jobs, job definitions, and job queues. ARNs for +// child jobs of array and multi-node parallel (MNP) jobs are not supported. +// +// 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 AWS Batch's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// * ClientException +// These errors are usually caused by a client action, such as using an action +// or resource on behalf of a user that doesn't have permissions to use the +// action or resource, or specifying an identifier that is not valid. +// +// * ServerException +// These errors are usually caused by a server issue. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/TagResource +func (c *Batch) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource 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 *Batch) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opTerminateJob = "TerminateJob" // TerminateJobRequest generates a "aws/request.Request" representing the @@ -1505,6 +1681,91 @@ func (c *Batch) TerminateJobWithContext(ctx aws.Context, input *TerminateJobInpu return out, req.Send() } +const opUntagResource = "UntagResource" + +// UntagResourceRequest generates a "aws/request.Request" representing the +// client's request for the UntagResource 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 UntagResource for more information on using the UntagResource +// 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 UntagResourceRequest method. +// req, resp := client.UntagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UntagResource +func (c *Batch) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/v1/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for AWS Batch. +// +// Deletes specified tags from an AWS Batch 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 AWS Batch's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// * ClientException +// These errors are usually caused by a client action, such as using an action +// or resource on behalf of a user that doesn't have permissions to use the +// action or resource, or specifying an identifier that is not valid. +// +// * ServerException +// These errors are usually caused by a server issue. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UntagResource +func (c *Batch) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource 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 *Batch) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateComputeEnvironment = "UpdateComputeEnvironment" // UpdateComputeEnvironmentRequest generates a "aws/request.Request" representing the @@ -2079,6 +2340,9 @@ type ComputeEnvironmentDetail struct { // status of the compute environment. StatusReason *string `locationName:"statusReason" type:"string"` + // The tags applied to the compute environment. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The type of the compute environment. Type *string `locationName:"type" type:"string" enum:"CEType"` } @@ -2141,6 +2405,12 @@ func (s *ComputeEnvironmentDetail) SetStatusReason(v string) *ComputeEnvironment return s } +// SetTags sets the Tags field's value. +func (s *ComputeEnvironmentDetail) SetTags(v map[string]*string) *ComputeEnvironmentDetail { + s.Tags = v + return s +} + // SetType sets the Type field's value. func (s *ComputeEnvironmentDetail) SetType(v string) *ComputeEnvironmentDetail { s.Type = &v @@ -2315,7 +2585,11 @@ type ComputeResource struct { // Key-value pair tags to be applied to resources that are launched in the compute // environment. For AWS Batch, these take the form of "String1": "String2", // where String1 is the tag key and String2 is the tag value—for example, - // { "Name": "AWS Batch Instance - C4OnDemand" }. + // { "Name": "AWS Batch Instance - C4OnDemand" }. These tags can not be updated + // or removed after the compute environment has been created; any changes require + // creating a new compute environment and removing the old compute environment. + // These tags are not seen when using the AWS Batch ListTagsForResource API + // operation. Tags map[string]*string `locationName:"tags" type:"map"` // The type of compute environment: EC2 or SPOT. @@ -2519,7 +2793,7 @@ type ContainerDetail struct { Environment []*KeyValuePair `locationName:"environment" type:"list"` // The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. - // For more information, see Amazon ECS task execution IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html). + // For more information, see AWS Batch execution IAM role (https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html). ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"` // The exit code to return upon completion. @@ -2575,7 +2849,7 @@ type ContainerDetail struct { // receives a log stream name when they reach the RUNNING status. LogStreamName *string `locationName:"logStreamName" type:"string"` - // The number of MiB of memory reserved for the job. + // The number of MiB of memory reserved for the job. This is a required parameter. Memory *int64 `locationName:"memory" type:"integer"` // The mount points for data volumes in your container. @@ -2616,7 +2890,7 @@ type ContainerDetail struct { // The user name to use inside the container. User *string `locationName:"user" type:"string"` - // The number of VCPUs allocated for the job. + // The number of VCPUs allocated for the job. This is a required parameter. Vcpus *int64 `locationName:"vcpus" type:"integer"` // A list of volumes associated with the job. @@ -2903,7 +3177,7 @@ type ContainerProperties struct { Environment []*KeyValuePair `locationName:"environment" type:"list"` // The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. - // For more information, see Amazon ECS task execution IAM role (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html). + // For more information, see AWS Batch execution IAM role (https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html). ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"` // The image used to start a container. This string is passed directly to the @@ -3278,6 +3552,16 @@ type CreateComputeEnvironmentInput struct { // on queues. State *string `locationName:"state" type:"string" enum:"CEState"` + // The tags that you apply to the compute environment to help you categorize + // and organize your resources. Each tag consists of a key and an optional value. + // For more information, see Tagging AWS Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + // in AWS General Reference. + // + // These tags can be updated or removed using the TagResource (https://docs.aws.amazon.com/batch/latest/APIReference/API_TagResource.html) + // and UntagResource (https://docs.aws.amazon.com/batch/latest/APIReference/API_UntagResource.html) + // API operations. These tags do not propagate to the underlying compute resources. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The type of the compute environment. For more information, see Compute Environments // (https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) // in the AWS Batch User Guide. @@ -3305,6 +3589,9 @@ func (s *CreateComputeEnvironmentInput) Validate() error { if s.ServiceRole == nil { invalidParams.Add(request.NewErrParamRequired("ServiceRole")) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } if s.Type == nil { invalidParams.Add(request.NewErrParamRequired("Type")) } @@ -3344,6 +3631,12 @@ func (s *CreateComputeEnvironmentInput) SetState(v string) *CreateComputeEnviron return s } +// SetTags sets the Tags field's value. +func (s *CreateComputeEnvironmentInput) SetTags(v map[string]*string) *CreateComputeEnvironmentInput { + s.Tags = v + return s +} + // SetType sets the Type field's value. func (s *CreateComputeEnvironmentInput) SetType(v string) *CreateComputeEnvironmentInput { s.Type = &v @@ -3412,6 +3705,12 @@ type CreateJobQueueInput struct { // to accept jobs. If the job queue state is DISABLED, new jobs cannot be added // to the queue, but jobs already in the queue can finish. State *string `locationName:"state" type:"string" enum:"JQState"` + + // The tags that you apply to the job queue to help you categorize and organize + // your resources. Each tag consists of a key and an optional value. For more + // information, see Tagging AWS Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + // in AWS General Reference. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` } // String returns the string representation @@ -3436,6 +3735,9 @@ func (s *CreateJobQueueInput) Validate() error { if s.Priority == nil { invalidParams.Add(request.NewErrParamRequired("Priority")) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } if s.ComputeEnvironmentOrder != nil { for i, v := range s.ComputeEnvironmentOrder { if v == nil { @@ -3477,6 +3779,12 @@ func (s *CreateJobQueueInput) SetState(v string) *CreateJobQueueInput { return s } +// SetTags sets the Tags field's value. +func (s *CreateJobQueueInput) SetTags(v map[string]*string) *CreateJobQueueInput { + s.Tags = v + return s +} + type CreateJobQueueOutput struct { _ struct{} `type:"structure"` @@ -4152,6 +4460,9 @@ type JobDefinition struct { // The status of the job definition. Status *string `locationName:"status" type:"string"` + // The tags applied to the job definition. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The timeout configuration for jobs that are submitted with this job definition. // You can specify a timeout duration after which AWS Batch terminates your // jobs if they have not finished. @@ -4221,6 +4532,12 @@ func (s *JobDefinition) SetStatus(v string) *JobDefinition { return s } +// SetTags sets the Tags field's value. +func (s *JobDefinition) SetTags(v map[string]*string) *JobDefinition { + s.Tags = v + return s +} + // SetTimeout sets the Timeout field's value. func (s *JobDefinition) SetTimeout(v *JobTimeout) *JobDefinition { s.Timeout = v @@ -4289,6 +4606,9 @@ type JobDetail struct { // A list of job IDs on which this job depends. DependsOn []*JobDependency `locationName:"dependsOn" type:"list"` + // The Amazon Resource Name (ARN) of the job. + JobArn *string `locationName:"jobArn" type:"string"` + // The job definition that is used by this job. // // JobDefinition is a required field @@ -4349,6 +4669,9 @@ type JobDetail struct { // or FAILED). StoppedAt *int64 `locationName:"stoppedAt" type:"long"` + // The tags applied to the job. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The timeout configuration for the job. Timeout *JobTimeout `locationName:"timeout" type:"structure"` } @@ -4393,6 +4716,12 @@ func (s *JobDetail) SetDependsOn(v []*JobDependency) *JobDetail { return s } +// SetJobArn sets the JobArn field's value. +func (s *JobDetail) SetJobArn(v string) *JobDetail { + s.JobArn = &v + return s +} + // SetJobDefinition sets the JobDefinition field's value. func (s *JobDetail) SetJobDefinition(v string) *JobDetail { s.JobDefinition = &v @@ -4465,6 +4794,12 @@ func (s *JobDetail) SetStoppedAt(v int64) *JobDetail { return s } +// SetTags sets the Tags field's value. +func (s *JobDetail) SetTags(v map[string]*string) *JobDetail { + s.Tags = v + return s +} + // SetTimeout sets the Timeout field's value. func (s *JobDetail) SetTimeout(v *JobTimeout) *JobDetail { s.Timeout = v @@ -4511,6 +4846,9 @@ type JobQueueDetail struct { // A short, human-readable string to provide additional details about the current // status of the job queue. StatusReason *string `locationName:"statusReason" type:"string"` + + // The tags applied to the job queue. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` } // String returns the string representation @@ -4565,6 +4903,12 @@ func (s *JobQueueDetail) SetStatusReason(v string) *JobQueueDetail { return s } +// SetTags sets the Tags field's value. +func (s *JobQueueDetail) SetTags(v map[string]*string) *JobQueueDetail { + s.Tags = v + return s +} + // An object representing summary details of a job. type JobSummary struct { _ struct{} `type:"structure"` @@ -4582,6 +4926,9 @@ type JobSummary struct { // spawned by its parent and entered the PENDING state. CreatedAt *int64 `locationName:"createdAt" type:"long"` + // The Amazon Resource Name (ARN) of the job. + JobArn *string `locationName:"jobArn" type:"string"` + // The ID of the job. // // JobId is a required field @@ -4639,6 +4986,12 @@ func (s *JobSummary) SetCreatedAt(v int64) *JobSummary { return s } +// SetJobArn sets the JobArn field's value. +func (s *JobSummary) SetJobArn(v string) *JobSummary { + s.JobArn = &v + return s +} + // SetJobId sets the JobId field's value. func (s *JobSummary) SetJobId(v string) *JobSummary { s.JobId = &v @@ -4801,8 +5154,8 @@ type LinuxParameters struct { // and the --device option to docker run (https://docs.docker.com/engine/reference/run/). Devices []*Device `locationName:"devices" type:"list"` - // Run an init process inside the container that forwards signals and reaps - // processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/). + // If true, run an init process inside the container that forwards signals and + // reaps processes. This parameter maps to the --init option to docker run (https://docs.docker.com/engine/reference/run/). // This parameter requires version 1.25 of the Docker Remote API or greater // on your container instance. To check the Docker Remote API version on your // container instance, log into your container instance and run the following @@ -5037,6 +5390,73 @@ func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput { return s } +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) that identifies the resource for which to + // list the tags. AWS Batch resources that support tags are compute environments, + // jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node + // parallel (MNP) jobs are not supported. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The tags for the resource. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v + return s +} + // Log configuration options to send to a custom log driver for the container. type LogConfiguration struct { _ struct{} `type:"structure"` @@ -5048,9 +5468,48 @@ type LogConfiguration struct { // The supported log drivers are awslogs, fluentd, gelf, json-file, journald, // logentries, syslog, and splunk. // - // For more information about using the awslogs log driver, see Using the awslogs - // Log Driver (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) - // in the Amazon Elastic Container Service Developer Guide. + // awslogs + // + // Specifies the Amazon CloudWatch Logs logging driver. For more information, + // see Using the awslogs Log Driver (https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html) + // in the AWS Batch User Guide and Amazon CloudWatch Logs logging driver (https://docs.docker.com/config/containers/logging/awslogs/) + // in the Docker documentation. + // + // fluentd + // + // Specifies the Fluentd logging driver. For more information, including usage + // and options, see Fluentd logging driver (https://docs.docker.com/config/containers/logging/fluentd/) + // in the Docker documentation. + // + // gelf + // + // Specifies the Graylog Extended Format (GELF) logging driver. For more information, + // including usage and options, see Graylog Extended Format logging driver (https://docs.docker.com/config/containers/logging/gelf/) + // in the Docker documentation. + // + // journald + // + // Specifies the journald logging driver. For more information, including usage + // and options, see Journald logging driver (https://docs.docker.com/config/containers/logging/journald/) + // in the Docker documentation. + // + // json-file + // + // Specifies the JSON file logging driver. For more information, including usage + // and options, see JSON File logging driver (https://docs.docker.com/config/containers/logging/json-file/) + // in the Docker documentation. + // + // splunk + // + // Specifies the Splunk logging driver. For more information, including usage + // and options, see Splunk logging driver (https://docs.docker.com/config/containers/logging/splunk/) + // in the Docker documentation. + // + // syslog + // + // Specifies the syslog logging driver. For more information, including usage + // and options, see Syslog logging driver (https://docs.docker.com/config/containers/logging/syslog/) + // in the Docker documentation. // // If you have a custom driver that is not listed earlier that you would like // to work with the Amazon ECS container agent, you can fork the Amazon ECS @@ -5075,8 +5534,8 @@ type LogConfiguration struct { Options map[string]*string `locationName:"options" type:"map"` // The secrets to pass to the log configuration. For more information, see Specifying - // Sensitive Data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) - // in the Amazon Elastic Container Service Developer Guide. + // Sensitive Data (https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) + // in the AWS Batch User Guide. SecretOptions []*Secret `locationName:"secretOptions" type:"list"` } @@ -5595,6 +6054,12 @@ type RegisterJobDefinitionInput struct { // a timeout, it is not retried. RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` + // The tags that you apply to the job definition to help you categorize and + // organize your resources. Each tag consists of a key and an optional value. + // For more information, see Tagging AWS Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + // in AWS General Reference. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The timeout configuration for jobs that are submitted with this job definition, // after which AWS Batch terminates your jobs if they have not finished. If // a job is terminated due to a timeout, it is not retried. The minimum value @@ -5626,6 +6091,9 @@ func (s *RegisterJobDefinitionInput) Validate() error { if s.JobDefinitionName == nil { invalidParams.Add(request.NewErrParamRequired("JobDefinitionName")) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } if s.Type == nil { invalidParams.Add(request.NewErrParamRequired("Type")) } @@ -5676,6 +6144,12 @@ func (s *RegisterJobDefinitionInput) SetRetryStrategy(v *RetryStrategy) *Registe return s } +// SetTags sets the Tags field's value. +func (s *RegisterJobDefinitionInput) SetTags(v map[string]*string) *RegisterJobDefinitionInput { + s.Tags = v + return s +} + // SetTimeout sets the Timeout field's value. func (s *RegisterJobDefinitionInput) SetTimeout(v *JobTimeout) *RegisterJobDefinitionInput { s.Timeout = v @@ -6007,6 +6481,12 @@ type SubmitJobInput struct { // defined in the job definition. RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` + // The tags that you apply to the job request to help you categorize and organize + // your resources. Each tag consists of a key and an optional value. For more + // information, see Tagging AWS Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + // in AWS General Reference. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The timeout configuration for this SubmitJob operation. You can specify a // timeout duration after which AWS Batch terminates your jobs if they have // not finished. If a job is terminated due to a timeout, it is not retried. @@ -6040,6 +6520,9 @@ func (s *SubmitJobInput) Validate() error { if s.JobQueue == nil { invalidParams.Add(request.NewErrParamRequired("JobQueue")) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } if s.ContainerOverrides != nil { if err := s.ContainerOverrides.Validate(); err != nil { invalidParams.AddNested("ContainerOverrides", err.(request.ErrInvalidParams)) @@ -6111,6 +6594,12 @@ func (s *SubmitJobInput) SetRetryStrategy(v *RetryStrategy) *SubmitJobInput { return s } +// SetTags sets the Tags field's value. +func (s *SubmitJobInput) SetTags(v map[string]*string) *SubmitJobInput { + s.Tags = v + return s +} + // SetTimeout sets the Timeout field's value. func (s *SubmitJobInput) SetTimeout(v *JobTimeout) *SubmitJobInput { s.Timeout = v @@ -6120,6 +6609,9 @@ func (s *SubmitJobInput) SetTimeout(v *JobTimeout) *SubmitJobInput { type SubmitJobOutput struct { _ struct{} `type:"structure"` + // The Amazon Resource Name (ARN) for the job. + JobArn *string `locationName:"jobArn" type:"string"` + // The unique identifier for the job. // // JobId is a required field @@ -6141,6 +6633,12 @@ func (s SubmitJobOutput) GoString() string { return s.String() } +// SetJobArn sets the JobArn field's value. +func (s *SubmitJobOutput) SetJobArn(v string) *SubmitJobOutput { + s.JobArn = &v + return s +} + // SetJobId sets the JobId field's value. func (s *SubmitJobOutput) SetJobId(v string) *SubmitJobOutput { s.JobId = &v @@ -6153,6 +6651,84 @@ func (s *SubmitJobOutput) SetJobName(v string) *SubmitJobOutput { return s } +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource to which to add tags. AWS + // Batch resources that support tags are compute environments, jobs, job definitions, + // and job queues. ARNs for child jobs of array and multi-node parallel (MNP) + // jobs are not supported. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The tags that you apply to the resource to help you categorize and organize + // your resources. Each tag consists of a key and an optional value. For more + // information, see Tagging AWS Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + // in AWS General Reference. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagResourceOutput) GoString() string { + return s.String() +} + type TerminateJobInput struct { _ struct{} `type:"structure"` @@ -6225,7 +6801,7 @@ func (s TerminateJobOutput) GoString() string { type Tmpfs struct { _ struct{} `type:"structure"` - // The absolute file path where the tmpfs volume is to be mounted. + // The absolute file path in the container where the tmpfs volume is to be mounted. // // ContainerPath is a required field ContainerPath *string `locationName:"containerPath" type:"string" required:"true"` @@ -6357,6 +6933,81 @@ func (s *Ulimit) SetSoftLimit(v int64) *Ulimit { return s } +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource from which to delete tags. + // AWS Batch resources that support tags are compute environments, jobs, job + // definitions, and job queues. ARNs for child jobs of array and multi-node + // parallel (MNP) jobs are not supported. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The keys of the tags to be removed. + // + // TagKeys is a required field + TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + if s.TagKeys != nil && len(s.TagKeys) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagResourceOutput) GoString() string { + return s.String() +} + type UpdateComputeEnvironmentInput struct { _ struct{} `type:"structure"` diff --git a/service/batch/batchiface/interface.go b/service/batch/batchiface/interface.go index d1aa1bbecea..afd8db5c74a 100644 --- a/service/batch/batchiface/interface.go +++ b/service/batch/batchiface/interface.go @@ -116,6 +116,10 @@ type BatchAPI interface { ListJobsPages(*batch.ListJobsInput, func(*batch.ListJobsOutput, bool) bool) error ListJobsPagesWithContext(aws.Context, *batch.ListJobsInput, func(*batch.ListJobsOutput, bool) bool, ...request.Option) error + ListTagsForResource(*batch.ListTagsForResourceInput) (*batch.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *batch.ListTagsForResourceInput, ...request.Option) (*batch.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*batch.ListTagsForResourceInput) (*request.Request, *batch.ListTagsForResourceOutput) + RegisterJobDefinition(*batch.RegisterJobDefinitionInput) (*batch.RegisterJobDefinitionOutput, error) RegisterJobDefinitionWithContext(aws.Context, *batch.RegisterJobDefinitionInput, ...request.Option) (*batch.RegisterJobDefinitionOutput, error) RegisterJobDefinitionRequest(*batch.RegisterJobDefinitionInput) (*request.Request, *batch.RegisterJobDefinitionOutput) @@ -124,10 +128,18 @@ type BatchAPI interface { SubmitJobWithContext(aws.Context, *batch.SubmitJobInput, ...request.Option) (*batch.SubmitJobOutput, error) SubmitJobRequest(*batch.SubmitJobInput) (*request.Request, *batch.SubmitJobOutput) + TagResource(*batch.TagResourceInput) (*batch.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *batch.TagResourceInput, ...request.Option) (*batch.TagResourceOutput, error) + TagResourceRequest(*batch.TagResourceInput) (*request.Request, *batch.TagResourceOutput) + TerminateJob(*batch.TerminateJobInput) (*batch.TerminateJobOutput, error) TerminateJobWithContext(aws.Context, *batch.TerminateJobInput, ...request.Option) (*batch.TerminateJobOutput, error) TerminateJobRequest(*batch.TerminateJobInput) (*request.Request, *batch.TerminateJobOutput) + UntagResource(*batch.UntagResourceInput) (*batch.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *batch.UntagResourceInput, ...request.Option) (*batch.UntagResourceOutput, error) + UntagResourceRequest(*batch.UntagResourceInput) (*request.Request, *batch.UntagResourceOutput) + UpdateComputeEnvironment(*batch.UpdateComputeEnvironmentInput) (*batch.UpdateComputeEnvironmentOutput, error) UpdateComputeEnvironmentWithContext(aws.Context, *batch.UpdateComputeEnvironmentInput, ...request.Option) (*batch.UpdateComputeEnvironmentOutput, error) UpdateComputeEnvironmentRequest(*batch.UpdateComputeEnvironmentInput) (*request.Request, *batch.UpdateComputeEnvironmentOutput) diff --git a/service/batch/examples_test.go b/service/batch/examples_test.go index ad312875d26..cb26b79a25f 100644 --- a/service/batch/examples_test.go +++ b/service/batch/examples_test.go @@ -550,6 +550,37 @@ func ExampleBatch_ListJobs_shared01() { fmt.Println(result) } +// ListTagsForResource Example +// +// This demonstrates calling the ListTagsForResource action. +func ExampleBatch_ListTagsForResource_shared00() { + svc := batch.New(session.New()) + input := &batch.ListTagsForResourceInput{ + ResourceArn: aws.String("arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1"), + } + + result, err := svc.ListTagsForResource(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case batch.ErrCodeClientException: + fmt.Println(batch.ErrCodeClientException, aerr.Error()) + case batch.ErrCodeServerException: + fmt.Println(batch.ErrCodeServerException, 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 register a job definition // // This example registers a job definition for a simple container job. @@ -591,6 +622,51 @@ func ExampleBatch_RegisterJobDefinition_shared00() { fmt.Println(result) } +// RegisterJobDefinition with tags +// +// This demonstrates calling the RegisterJobDefinition action, including tags. +func ExampleBatch_RegisterJobDefinition_shared01() { + svc := batch.New(session.New()) + input := &batch.RegisterJobDefinitionInput{ + ContainerProperties: &batch.ContainerProperties{ + Command: []*string{ + aws.String("sleep"), + aws.String("30"), + }, + Image: aws.String("busybox"), + Memory: aws.Int64(128), + Vcpus: aws.Int64(1), + }, + JobDefinitionName: aws.String("sleep30"), + Tags: map[string]*string{ + "Department": aws.String("Engineering"), + "User": aws.String("JaneDoe"), + }, + Type: aws.String("container"), + } + + result, err := svc.RegisterJobDefinition(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case batch.ErrCodeClientException: + fmt.Println(batch.ErrCodeClientException, aerr.Error()) + case batch.ErrCodeServerException: + fmt.Println(batch.ErrCodeServerException, 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 submit a job to a queue // // This example submits a simple container job called example to the HighPriority job @@ -625,6 +701,40 @@ func ExampleBatch_SubmitJob_shared00() { fmt.Println(result) } +// TagResource Example +// +// This demonstrates calling the TagResource action. +func ExampleBatch_TagResource_shared00() { + svc := batch.New(session.New()) + input := &batch.TagResourceInput{ + ResourceArn: aws.String("arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1"), + Tags: map[string]*string{ + "Stage": aws.String("Alpha"), + }, + } + + result, err := svc.TagResource(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case batch.ErrCodeClientException: + fmt.Println(batch.ErrCodeClientException, aerr.Error()) + case batch.ErrCodeServerException: + fmt.Println(batch.ErrCodeServerException, 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 terminate a job // // This example terminates a job with the specified job ID. @@ -657,6 +767,40 @@ func ExampleBatch_TerminateJob_shared00() { fmt.Println(result) } +// UntagResource Example +// +// This demonstrates calling the UntagResource action. +func ExampleBatch_UntagResource_shared00() { + svc := batch.New(session.New()) + input := &batch.UntagResourceInput{ + ResourceArn: aws.String("arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1"), + TagKeys: []*string{ + aws.String("Stage"), + }, + } + + result, err := svc.UntagResource(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case batch.ErrCodeClientException: + fmt.Println(batch.ErrCodeClientException, aerr.Error()) + case batch.ErrCodeServerException: + fmt.Println(batch.ErrCodeServerException, 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 update a compute environment // // This example disables the P2OnDemand compute environment so it can be deleted. diff --git a/service/elbv2/api.go b/service/elbv2/api.go index f75d8a12874..89eed6b4a6c 100644 --- a/service/elbv2/api.go +++ b/service/elbv2/api.go @@ -155,8 +155,8 @@ func (c *ELBV2) AddTagsRequest(input *AddTagsInput) (req *request.Request, outpu // AddTags API operation for Elastic Load Balancing. // // Adds the specified tags to the specified Elastic Load Balancing resource. -// You can tag your Application Load Balancers, Network Load Balancers, and -// your target groups. +// You can tag your Application Load Balancers, Network Load Balancers, target +// groups, listeners, and rules. // // Each tag consists of a key and an optional value. If a resource already has // a tag with the same key, AddTags updates its value. @@ -328,6 +328,9 @@ func (c *ELBV2) CreateListenerRequest(input *CreateListenerInput) (req *request. // * ErrCodeALPNPolicyNotSupportedException "ALPNPolicyNotFound" // The specified ALPN policy is not supported. // +// * ErrCodeTooManyTagsException "TooManyTags" +// You've reached the limit on the number of tags per load balancer. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateListener func (c *ELBV2) CreateListener(input *CreateListenerInput) (*CreateListenerOutput, error) { req, out := c.CreateListenerRequest(input) @@ -597,6 +600,9 @@ func (c *ELBV2) CreateRuleRequest(input *CreateRuleInput) (req *request.Request, // across all listeners. If a target group is used by multiple actions for a // load balancer, it is counted as only one use. // +// * ErrCodeTooManyTagsException "TooManyTags" +// You've reached the limit on the number of tags per load balancer. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateRule func (c *ELBV2) CreateRule(input *CreateRuleInput) (*CreateRuleOutput, error) { req, out := c.CreateRuleRequest(input) @@ -701,6 +707,9 @@ func (c *ELBV2) CreateTargetGroupRequest(input *CreateTargetGroupInput) (req *re // * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" // The requested configuration is not valid. // +// * ErrCodeTooManyTagsException "TooManyTags" +// You've reached the limit on the number of tags per load balancer. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateTargetGroup func (c *ELBV2) CreateTargetGroup(input *CreateTargetGroupInput) (*CreateTargetGroupOutput, error) { req, out := c.CreateTargetGroupRequest(input) @@ -1907,9 +1916,9 @@ func (c *ELBV2) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Requ // DescribeTags API operation for Elastic Load Balancing. // -// Describes the tags for the specified resources. You can describe the tags -// for one or more Application Load Balancers, Network Load Balancers, and target -// groups. +// Describes the tags for the specified Elastic Load Balancing resources. You +// can describe the tags for one or more Application Load Balancers, Network +// Load Balancers, target groups, listeners, or rules. // // 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 @@ -3022,7 +3031,9 @@ func (c *ELBV2) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, // RemoveTags API operation for Elastic Load Balancing. // -// Removes the specified tags from the specified Elastic Load Balancing resource. +// 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, target groups, listeners, or rules. // // To list the current tags for your resources, use DescribeTags. // @@ -4251,6 +4262,9 @@ type CreateListenerInput struct { // in the Application Load Balancers Guide and Security Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) // in the Network Load Balancers Guide. SslPolicy *string `type:"string"` + + // The tags to assign to the listener. + Tags []*Tag `min:"1" type:"list"` } // String returns the string representation @@ -4281,6 +4295,9 @@ func (s *CreateListenerInput) Validate() error { if s.Protocol == nil { invalidParams.Add(request.NewErrParamRequired("Protocol")) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } if s.DefaultActions != nil { for i, v := range s.DefaultActions { if v == nil { @@ -4291,6 +4308,16 @@ func (s *CreateListenerInput) Validate() error { } } } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -4340,6 +4367,12 @@ func (s *CreateListenerInput) SetSslPolicy(v string) *CreateListenerInput { return s } +// SetTags sets the Tags field's value. +func (s *CreateListenerInput) SetTags(v []*Tag) *CreateListenerInput { + s.Tags = v + return s +} + type CreateListenerOutput struct { _ struct{} `type:"structure"` @@ -4435,7 +4468,7 @@ type CreateLoadBalancerInput struct { // Zones. Subnets []*string `type:"list"` - // One or more tags to assign to the load balancer. + // The tags to assign to the load balancer. Tags []*Tag `min:"1" type:"list"` // The type of load balancer. The default is application. @@ -4599,6 +4632,9 @@ type CreateRuleInput struct { // // Priority is a required field Priority *int64 `min:"1" type:"integer" required:"true"` + + // The tags to assign to the rule. + Tags []*Tag `min:"1" type:"list"` } // String returns the string representation @@ -4629,6 +4665,9 @@ func (s *CreateRuleInput) Validate() error { if s.Priority != nil && *s.Priority < 1 { invalidParams.Add(request.NewErrParamMinValue("Priority", 1)) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } if s.Actions != nil { for i, v := range s.Actions { if v == nil { @@ -4639,6 +4678,16 @@ func (s *CreateRuleInput) Validate() error { } } } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -4670,6 +4719,12 @@ func (s *CreateRuleInput) SetPriority(v int64) *CreateRuleInput { return s } +// SetTags sets the Tags field's value. +func (s *CreateRuleInput) SetTags(v []*Tag) *CreateRuleInput { + s.Tags = v + return s +} + type CreateRuleOutput struct { _ struct{} `type:"structure"` @@ -4763,6 +4818,9 @@ type CreateTargetGroupInput struct { // function, this parameter does not apply. Protocol *string `type:"string" enum:"ProtocolEnum"` + // The tags to assign to the target group. + Tags []*Tag `min:"1" type:"list"` + // The type of target that you must specify when registering targets with this // target group. You can't specify targets for a target group using more than // one target type. @@ -4822,6 +4880,9 @@ func (s *CreateTargetGroupInput) Validate() error { if s.Port != nil && *s.Port < 1 { invalidParams.Add(request.NewErrParamMinValue("Port", 1)) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } if s.UnhealthyThresholdCount != nil && *s.UnhealthyThresholdCount < 2 { invalidParams.Add(request.NewErrParamMinValue("UnhealthyThresholdCount", 2)) } @@ -4830,6 +4891,16 @@ func (s *CreateTargetGroupInput) Validate() error { invalidParams.AddNested("Matcher", err.(request.ErrInvalidParams)) } } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -4903,6 +4974,12 @@ func (s *CreateTargetGroupInput) SetProtocol(v string) *CreateTargetGroupInput { return s } +// SetTags sets the Tags field's value. +func (s *CreateTargetGroupInput) SetTags(v []*Tag) *CreateTargetGroupInput { + s.Tags = v + return s +} + // SetTargetType sets the TargetType field's value. func (s *CreateTargetGroupInput) SetTargetType(v string) *CreateTargetGroupInput { s.TargetType = &v diff --git a/service/elbv2/examples_test.go b/service/elbv2/examples_test.go index e5683e815be..12578d90c83 100644 --- a/service/elbv2/examples_test.go +++ b/service/elbv2/examples_test.go @@ -128,6 +128,8 @@ func ExampleELBV2_CreateListener_shared00() { fmt.Println(elbv2.ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException, aerr.Error()) case elbv2.ErrCodeALPNPolicyNotSupportedException: fmt.Println(elbv2.ErrCodeALPNPolicyNotSupportedException, aerr.Error()) + case elbv2.ErrCodeTooManyTagsException: + fmt.Println(elbv2.ErrCodeTooManyTagsException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -208,6 +210,8 @@ func ExampleELBV2_CreateListener_shared01() { fmt.Println(elbv2.ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException, aerr.Error()) case elbv2.ErrCodeALPNPolicyNotSupportedException: fmt.Println(elbv2.ErrCodeALPNPolicyNotSupportedException, aerr.Error()) + case elbv2.ErrCodeTooManyTagsException: + fmt.Println(elbv2.ErrCodeTooManyTagsException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -396,6 +400,8 @@ func ExampleELBV2_CreateRule_shared00() { fmt.Println(elbv2.ErrCodeInvalidLoadBalancerActionException, aerr.Error()) case elbv2.ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException: fmt.Println(elbv2.ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException, aerr.Error()) + case elbv2.ErrCodeTooManyTagsException: + fmt.Println(elbv2.ErrCodeTooManyTagsException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -433,6 +439,8 @@ func ExampleELBV2_CreateTargetGroup_shared00() { fmt.Println(elbv2.ErrCodeTooManyTargetGroupsException, aerr.Error()) case elbv2.ErrCodeInvalidConfigurationRequestException: fmt.Println(elbv2.ErrCodeInvalidConfigurationRequestException, aerr.Error()) + case elbv2.ErrCodeTooManyTagsException: + fmt.Println(elbv2.ErrCodeTooManyTagsException, aerr.Error()) default: fmt.Println(aerr.Error()) } diff --git a/service/personalizeevents/api.go b/service/personalizeevents/api.go index 57bc448c1ae..650cd0c2afc 100644 --- a/service/personalizeevents/api.go +++ b/service/personalizeevents/api.go @@ -93,6 +93,172 @@ func (c *PersonalizeEvents) PutEventsWithContext(ctx aws.Context, input *PutEven return out, req.Send() } +const opPutItems = "PutItems" + +// PutItemsRequest generates a "aws/request.Request" representing the +// client's request for the PutItems 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 PutItems for more information on using the PutItems +// 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 PutItemsRequest method. +// req, resp := client.PutItemsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutItems +func (c *PersonalizeEvents) PutItemsRequest(input *PutItemsInput) (req *request.Request, output *PutItemsOutput) { + op := &request.Operation{ + Name: opPutItems, + HTTPMethod: "POST", + HTTPPath: "/items", + } + + if input == nil { + input = &PutItemsInput{} + } + + output = &PutItemsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutItems API operation for Amazon Personalize Events. +// +// Adds one or more items to an Items dataset. For more information see importing-items. +// +// 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 Personalize Events's +// API operation PutItems for usage and error information. +// +// Returned Error Types: +// * InvalidInputException +// Provide a valid value for the field or parameter. +// +// * ResourceNotFoundException +// Could not find the specified resource. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutItems +func (c *PersonalizeEvents) PutItems(input *PutItemsInput) (*PutItemsOutput, error) { + req, out := c.PutItemsRequest(input) + return out, req.Send() +} + +// PutItemsWithContext is the same as PutItems with the addition of +// the ability to pass a context and additional request options. +// +// See PutItems 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 *PersonalizeEvents) PutItemsWithContext(ctx aws.Context, input *PutItemsInput, opts ...request.Option) (*PutItemsOutput, error) { + req, out := c.PutItemsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutUsers = "PutUsers" + +// PutUsersRequest generates a "aws/request.Request" representing the +// client's request for the PutUsers 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 PutUsers for more information on using the PutUsers +// 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 PutUsersRequest method. +// req, resp := client.PutUsersRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutUsers +func (c *PersonalizeEvents) PutUsersRequest(input *PutUsersInput) (req *request.Request, output *PutUsersOutput) { + op := &request.Operation{ + Name: opPutUsers, + HTTPMethod: "POST", + HTTPPath: "/users", + } + + if input == nil { + input = &PutUsersInput{} + } + + output = &PutUsersOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutUsers API operation for Amazon Personalize Events. +// +// Adds one or more users to a Users dataset. For more information see importing-users. +// +// 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 Personalize Events's +// API operation PutUsers for usage and error information. +// +// Returned Error Types: +// * InvalidInputException +// Provide a valid value for the field or parameter. +// +// * ResourceNotFoundException +// Could not find the specified resource. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutUsers +func (c *PersonalizeEvents) PutUsers(input *PutUsersInput) (*PutUsersOutput, error) { + req, out := c.PutUsersRequest(input) + return out, req.Send() +} + +// PutUsersWithContext is the same as PutUsers with the addition of +// the ability to pass a context and additional request options. +// +// See PutUsers 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 *PersonalizeEvents) PutUsersWithContext(ctx aws.Context, input *PutUsersInput, opts ...request.Option) (*PutUsersOutput, error) { + req, out := c.PutUsersRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + // Represents user interaction event information sent using the PutEvents API. type Event struct { _ struct{} `type:"structure"` @@ -104,8 +270,9 @@ type Event struct { // not used in model training. EventId *string `locationName:"eventId" min:"1" type:"string"` - // The type of event. This property corresponds to the EVENT_TYPE field of the - // Interactions schema. + // The type of event, such as click or download. This property corresponds to + // the EVENT_TYPE field of your Interactions schema and depends on the types + // of events you are tracking. // // EventType is a required field EventType *string `locationName:"eventType" min:"1" type:"string" required:"true"` @@ -290,6 +457,64 @@ func (s *InvalidInputException) RequestID() string { return s.RespMetadata.RequestID } +// Represents item metadata added to an Items dataset using the PutItems API. +type Item struct { + _ struct{} `type:"structure"` + + // The ID associated with the item. + // + // ItemId is a required field + ItemId *string `locationName:"itemId" min:"1" type:"string" required:"true"` + + // A string map of item-specific metadata. Each element in the map consists + // of a key-value pair. For example, + // + // {"numberOfRatings": "12"} + // + // The keys use camel case names that match the fields in the Items schema. + // In the above example, the numberOfRatings would match the 'NUMBER_OF_RATINGS' + // field defined in the Items schema. + Properties aws.JSONValue `locationName:"properties" type:"jsonvalue"` +} + +// String returns the string representation +func (s Item) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Item) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Item) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Item"} + if s.ItemId == nil { + invalidParams.Add(request.NewErrParamRequired("ItemId")) + } + if s.ItemId != nil && len(*s.ItemId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ItemId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetItemId sets the ItemId field's value. +func (s *Item) SetItemId(v string) *Item { + s.ItemId = &v + return s +} + +// SetProperties sets the Properties field's value. +func (s *Item) SetProperties(v aws.JSONValue) *Item { + s.Properties = v + return s +} + type PutEventsInput struct { _ struct{} `type:"structure"` @@ -405,3 +630,277 @@ func (s PutEventsOutput) String() string { func (s PutEventsOutput) GoString() string { return s.String() } + +type PutItemsInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Number (ARN) of the Items dataset you are adding the + // item or items to. + // + // DatasetArn is a required field + DatasetArn *string `locationName:"datasetArn" type:"string" required:"true"` + + // A list of item data. + // + // Items is a required field + Items []*Item `locationName:"items" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s PutItemsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutItemsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutItemsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutItemsInput"} + if s.DatasetArn == nil { + invalidParams.Add(request.NewErrParamRequired("DatasetArn")) + } + if s.Items == nil { + invalidParams.Add(request.NewErrParamRequired("Items")) + } + if s.Items != nil && len(s.Items) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Items", 1)) + } + if s.Items != nil { + for i, v := range s.Items { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDatasetArn sets the DatasetArn field's value. +func (s *PutItemsInput) SetDatasetArn(v string) *PutItemsInput { + s.DatasetArn = &v + return s +} + +// SetItems sets the Items field's value. +func (s *PutItemsInput) SetItems(v []*Item) *PutItemsInput { + s.Items = v + return s +} + +type PutItemsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutItemsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutItemsOutput) GoString() string { + return s.String() +} + +type PutUsersInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Number (ARN) of the Users dataset you are adding the + // user or users to. + // + // DatasetArn is a required field + DatasetArn *string `locationName:"datasetArn" type:"string" required:"true"` + + // A list of user data. + // + // Users is a required field + Users []*User `locationName:"users" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s PutUsersInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutUsersInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutUsersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutUsersInput"} + if s.DatasetArn == nil { + invalidParams.Add(request.NewErrParamRequired("DatasetArn")) + } + if s.Users == nil { + invalidParams.Add(request.NewErrParamRequired("Users")) + } + if s.Users != nil && len(s.Users) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Users", 1)) + } + if s.Users != nil { + for i, v := range s.Users { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Users", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDatasetArn sets the DatasetArn field's value. +func (s *PutUsersInput) SetDatasetArn(v string) *PutUsersInput { + s.DatasetArn = &v + return s +} + +// SetUsers sets the Users field's value. +func (s *PutUsersInput) SetUsers(v []*User) *PutUsersInput { + s.Users = v + return s +} + +type PutUsersOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutUsersOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutUsersOutput) GoString() string { + return s.String() +} + +// Could not find the specified resource. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) 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 *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Represents user metadata added to a Users dataset using the PutUsers API. +type User struct { + _ struct{} `type:"structure"` + + // A string map of user-specific metadata. Each element in the map consists + // of a key-value pair. For example, + // + // {"numberOfVideosWatched": "45"} + // + // The keys use camel case names that match the fields in the Users schema. + // In the above example, the numberOfVideosWatched would match the 'NUMBER_OF_VIDEOS_WATCHED' + // field defined in the Users schema. + Properties aws.JSONValue `locationName:"properties" type:"jsonvalue"` + + // The ID associated with the user. + // + // UserId is a required field + UserId *string `locationName:"userId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s User) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s User) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *User) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "User"} + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetProperties sets the Properties field's value. +func (s *User) SetProperties(v aws.JSONValue) *User { + s.Properties = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *User) SetUserId(v string) *User { + s.UserId = &v + return s +} diff --git a/service/personalizeevents/errors.go b/service/personalizeevents/errors.go index b4a39580e9c..dc5d66c563f 100644 --- a/service/personalizeevents/errors.go +++ b/service/personalizeevents/errors.go @@ -13,8 +13,15 @@ const ( // // Provide a valid value for the field or parameter. ErrCodeInvalidInputException = "InvalidInputException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // Could not find the specified resource. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" ) var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ - "InvalidInputException": newErrorInvalidInputException, + "InvalidInputException": newErrorInvalidInputException, + "ResourceNotFoundException": newErrorResourceNotFoundException, } diff --git a/service/personalizeevents/personalizeeventsiface/interface.go b/service/personalizeevents/personalizeeventsiface/interface.go index d6e63e21874..2c79cc1652b 100644 --- a/service/personalizeevents/personalizeeventsiface/interface.go +++ b/service/personalizeevents/personalizeeventsiface/interface.go @@ -63,6 +63,14 @@ type PersonalizeEventsAPI interface { PutEvents(*personalizeevents.PutEventsInput) (*personalizeevents.PutEventsOutput, error) PutEventsWithContext(aws.Context, *personalizeevents.PutEventsInput, ...request.Option) (*personalizeevents.PutEventsOutput, error) PutEventsRequest(*personalizeevents.PutEventsInput) (*request.Request, *personalizeevents.PutEventsOutput) + + PutItems(*personalizeevents.PutItemsInput) (*personalizeevents.PutItemsOutput, error) + PutItemsWithContext(aws.Context, *personalizeevents.PutItemsInput, ...request.Option) (*personalizeevents.PutItemsOutput, error) + PutItemsRequest(*personalizeevents.PutItemsInput) (*request.Request, *personalizeevents.PutItemsOutput) + + PutUsers(*personalizeevents.PutUsersInput) (*personalizeevents.PutUsersOutput, error) + PutUsersWithContext(aws.Context, *personalizeevents.PutUsersInput, ...request.Option) (*personalizeevents.PutUsersOutput, error) + PutUsersRequest(*personalizeevents.PutUsersInput) (*request.Request, *personalizeevents.PutUsersOutput) } var _ PersonalizeEventsAPI = (*personalizeevents.PersonalizeEvents)(nil) diff --git a/service/rds/api.go b/service/rds/api.go index 9de61a74ab7..84cc40469ca 100644 --- a/service/rds/api.go +++ b/service/rds/api.go @@ -18328,6 +18328,9 @@ type CreateDBInstanceInput struct { // deployment. MultiAZ *bool `type:"boolean"` + // The name of the NCHAR character set for the Oracle DB instance. + NcharCharacterSetName *string `type:"string"` + // Indicates that the DB instance should be associated with the specified option // group. // @@ -18737,6 +18740,12 @@ func (s *CreateDBInstanceInput) SetMultiAZ(v bool) *CreateDBInstanceInput { return s } +// SetNcharCharacterSetName sets the NcharCharacterSetName field's value. +func (s *CreateDBInstanceInput) SetNcharCharacterSetName(v string) *CreateDBInstanceInput { + s.NcharCharacterSetName = &v + return s +} + // SetOptionGroupName sets the OptionGroupName field's value. func (s *CreateDBInstanceInput) SetOptionGroupName(v string) *CreateDBInstanceInput { s.OptionGroupName = &v @@ -21768,7 +21777,7 @@ type DBEngineVersion struct { Status *string `type:"string"` // A list of the character sets supported by this engine for the CharacterSetName - // parameter of the CreateDBInstance action. + // parameter of the CreateDBInstance operation. SupportedCharacterSets []*CharacterSet `locationNameList:"CharacterSet" type:"list"` // A list of the supported DB engine modes. @@ -21784,6 +21793,10 @@ type DBEngineVersion struct { // * s3Import SupportedFeatureNames []*string `type:"list"` + // A list of the character sets supported by the Oracle DB engine for the NcharCharacterSetName + // parameter of the CreateDBInstance operation. + SupportedNcharCharacterSets []*CharacterSet `locationNameList:"CharacterSet" type:"list"` + // A list of the time zones supported by this engine for the Timezone parameter // of the CreateDBInstance action. SupportedTimezones []*Timezone `locationNameList:"Timezone" type:"list"` @@ -21884,6 +21897,12 @@ func (s *DBEngineVersion) SetSupportedFeatureNames(v []*string) *DBEngineVersion return s } +// SetSupportedNcharCharacterSets sets the SupportedNcharCharacterSets field's value. +func (s *DBEngineVersion) SetSupportedNcharCharacterSets(v []*CharacterSet) *DBEngineVersion { + s.SupportedNcharCharacterSets = v + return s +} + // SetSupportedTimezones sets the SupportedTimezones field's value. func (s *DBEngineVersion) SetSupportedTimezones(v []*Timezone) *DBEngineVersion { s.SupportedTimezones = v @@ -22096,6 +22115,11 @@ type DBInstance struct { // Specifies if the DB instance is a Multi-AZ deployment. MultiAZ *bool `type:"boolean"` + // The name of the NCHAR character set for the Oracle DB instance. This character + // set specifies the Unicode encoding for data stored in table columns of type + // NCHAR, NCLOB, or NVARCHAR2. + NcharCharacterSetName *string `type:"string"` + // Provides the list of option group memberships for this DB instance. OptionGroupMemberships []*OptionGroupMembership `locationNameList:"OptionGroupMembership" type:"list"` @@ -22439,6 +22463,12 @@ func (s *DBInstance) SetMultiAZ(v bool) *DBInstance { return s } +// SetNcharCharacterSetName sets the NcharCharacterSetName field's value. +func (s *DBInstance) SetNcharCharacterSetName(v string) *DBInstance { + s.NcharCharacterSetName = &v + return s +} + // SetOptionGroupMemberships sets the OptionGroupMemberships field's value. func (s *DBInstance) SetOptionGroupMemberships(v []*OptionGroupMembership) *DBInstance { s.OptionGroupMemberships = v diff --git a/service/s3/api.go b/service/s3/api.go index 97fe206b1ae..62e4783a590 100644 --- a/service/s3/api.go +++ b/service/s3/api.go @@ -536,7 +536,7 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // become the bucket owner. // // Not every string is an acceptable bucket name. For information about bucket -// naming restrictions, see Working with Amazon S3 Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html). +// naming restrictions, see Working with Amazon S3 buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html). // // If you want to create an Amazon S3 on Outposts bucket, see Create Bucket // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html). @@ -546,7 +546,7 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // to optimize latency, minimize costs, or address regulatory requirements. // For example, if you reside in Europe, you will probably find it advantageous // to create buckets in the Europe (Ireland) Region. For more information, see -// How to Select a Region for Your Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). +// Accessing a bucket (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). // // If you send your create bucket request to the s3.amazonaws.com endpoint, // the request goes to the us-east-1 Region. Accordingly, the signature calculations @@ -554,7 +554,7 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // constraint in the request specifies another Region where the bucket is to // be created. If you create a bucket in a Region other than US East (N. Virginia), // your application must be able to handle 307 redirect. For more information, -// see Virtual Hosting of Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html). +// see Virtual hosting of buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html). // // When creating a bucket using this operation, you can optionally specify the // accounts or groups that should be granted specific permissions on the bucket. @@ -569,7 +569,7 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // * Specify access permissions explicitly using the x-amz-grant-read, x-amz-grant-write, // x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control // headers. These headers map to the set of permissions Amazon S3 supports -// in an ACL. For more information, see Access Control List (ACL) Overview +// in an ACL. For more information, see Access control list (ACL) overview // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). You // specify each grantee as a type=value pair, where the type is one of the // following: id – if the value specified is the canonical user ID of an @@ -605,7 +605,7 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // Returned Error Codes: // * ErrCodeBucketAlreadyExists "BucketAlreadyExists" // The requested bucket name is not available. The bucket namespace is shared -// by all users of the system. Please select a different name and try again. +// by all users of the system. Select a different name and try again. // // * ErrCodeBucketAlreadyOwnedByYou "BucketAlreadyOwnedByYou" // The bucket you tried to create already exists, and you own it. Amazon S3 @@ -1496,6 +1496,92 @@ func (c *S3) DeleteBucketMetricsConfigurationWithContext(ctx aws.Context, input return out, req.Send() } +const opDeleteBucketOwnershipControls = "DeleteBucketOwnershipControls" + +// DeleteBucketOwnershipControlsRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBucketOwnershipControls 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 DeleteBucketOwnershipControls for more information on using the DeleteBucketOwnershipControls +// 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 DeleteBucketOwnershipControlsRequest method. +// req, resp := client.DeleteBucketOwnershipControlsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls +func (c *S3) DeleteBucketOwnershipControlsRequest(input *DeleteBucketOwnershipControlsInput) (req *request.Request, output *DeleteBucketOwnershipControlsOutput) { + op := &request.Operation{ + Name: opDeleteBucketOwnershipControls, + HTTPMethod: "DELETE", + HTTPPath: "/{Bucket}?ownershipControls", + } + + if input == nil { + input = &DeleteBucketOwnershipControlsInput{} + } + + output = &DeleteBucketOwnershipControlsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteBucketOwnershipControls API operation for Amazon Simple Storage Service. +// +// Removes OwnershipControls for an Amazon S3 bucket. To use this operation, +// you must have the s3:PutBucketOwnershipControls permission. For more information +// about Amazon S3 permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). +// +// For information about Amazon S3 Object Ownership, see Using Object Ownership +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). +// +// The following operations are related to DeleteBucketOwnershipControls: +// +// * GetBucketOwnershipControls +// +// * PutBucketOwnershipControls +// +// 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 Simple Storage Service's +// API operation DeleteBucketOwnershipControls for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls +func (c *S3) DeleteBucketOwnershipControls(input *DeleteBucketOwnershipControlsInput) (*DeleteBucketOwnershipControlsOutput, error) { + req, out := c.DeleteBucketOwnershipControlsRequest(input) + return out, req.Send() +} + +// DeleteBucketOwnershipControlsWithContext is the same as DeleteBucketOwnershipControls with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteBucketOwnershipControls 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 *S3) DeleteBucketOwnershipControlsWithContext(ctx aws.Context, input *DeleteBucketOwnershipControlsInput, opts ...request.Option) (*DeleteBucketOwnershipControlsOutput, error) { + req, out := c.DeleteBucketOwnershipControlsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteBucketPolicy = "DeleteBucketPolicy" // DeleteBucketPolicyRequest generates a "aws/request.Request" representing the @@ -3450,6 +3536,91 @@ func (c *S3) GetBucketNotificationConfigurationWithContext(ctx aws.Context, inpu return out, req.Send() } +const opGetBucketOwnershipControls = "GetBucketOwnershipControls" + +// GetBucketOwnershipControlsRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketOwnershipControls 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 GetBucketOwnershipControls for more information on using the GetBucketOwnershipControls +// 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 GetBucketOwnershipControlsRequest method. +// req, resp := client.GetBucketOwnershipControlsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls +func (c *S3) GetBucketOwnershipControlsRequest(input *GetBucketOwnershipControlsInput) (req *request.Request, output *GetBucketOwnershipControlsOutput) { + op := &request.Operation{ + Name: opGetBucketOwnershipControls, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}?ownershipControls", + } + + if input == nil { + input = &GetBucketOwnershipControlsInput{} + } + + output = &GetBucketOwnershipControlsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetBucketOwnershipControls API operation for Amazon Simple Storage Service. +// +// Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, +// you must have the s3:GetBucketOwnershipControls permission. For more information +// about Amazon S3 permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). +// +// For information about Amazon S3 Object Ownership, see Using Object Ownership +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). +// +// The following operations are related to GetBucketOwnershipControls: +// +// * PutBucketOwnershipControls +// +// * DeleteBucketOwnershipControls +// +// 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 Simple Storage Service's +// API operation GetBucketOwnershipControls for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls +func (c *S3) GetBucketOwnershipControls(input *GetBucketOwnershipControlsInput) (*GetBucketOwnershipControlsOutput, error) { + req, out := c.GetBucketOwnershipControlsRequest(input) + return out, req.Send() +} + +// GetBucketOwnershipControlsWithContext is the same as GetBucketOwnershipControls with the addition of +// the ability to pass a context and additional request options. +// +// See GetBucketOwnershipControls 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 *S3) GetBucketOwnershipControlsWithContext(ctx aws.Context, input *GetBucketOwnershipControlsInput, opts ...request.Option) (*GetBucketOwnershipControlsOutput, error) { + req, out := c.GetBucketOwnershipControlsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetBucketPolicy = "GetBucketPolicy" // GetBucketPolicyRequest generates a "aws/request.Request" representing the @@ -7733,6 +7904,93 @@ func (c *S3) PutBucketNotificationConfigurationWithContext(ctx aws.Context, inpu return out, req.Send() } +const opPutBucketOwnershipControls = "PutBucketOwnershipControls" + +// PutBucketOwnershipControlsRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketOwnershipControls 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 PutBucketOwnershipControls for more information on using the PutBucketOwnershipControls +// 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 PutBucketOwnershipControlsRequest method. +// req, resp := client.PutBucketOwnershipControlsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls +func (c *S3) PutBucketOwnershipControlsRequest(input *PutBucketOwnershipControlsInput) (req *request.Request, output *PutBucketOwnershipControlsOutput) { + op := &request.Operation{ + Name: opPutBucketOwnershipControls, + HTTPMethod: "PUT", + HTTPPath: "/{Bucket}?ownershipControls", + } + + if input == nil { + input = &PutBucketOwnershipControlsInput{} + } + + output = &PutBucketOwnershipControlsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutBucketOwnershipControls API operation for Amazon Simple Storage Service. +// +// Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this +// operation, you must have the s3:GetBucketOwnershipControls permission. For +// more information about Amazon S3 permissions, see Specifying Permissions +// in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). +// +// For information about Amazon S3 Object Ownership, see Using Object Ownership +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). +// +// The following operations are related to GetBucketOwnershipControls: +// +// * GetBucketOwnershipControls +// +// * DeleteBucketOwnershipControls +// +// 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 Simple Storage Service's +// API operation PutBucketOwnershipControls for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls +func (c *S3) PutBucketOwnershipControls(input *PutBucketOwnershipControlsInput) (*PutBucketOwnershipControlsOutput, error) { + req, out := c.PutBucketOwnershipControlsRequest(input) + return out, req.Send() +} + +// PutBucketOwnershipControlsWithContext is the same as PutBucketOwnershipControls with the addition of +// the ability to pass a context and additional request options. +// +// See PutBucketOwnershipControls 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 *S3) PutBucketOwnershipControlsWithContext(ctx aws.Context, input *PutBucketOwnershipControlsInput, opts ...request.Option) (*PutBucketOwnershipControlsOutput, error) { + req, out := c.PutBucketOwnershipControlsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opPutBucketPolicy = "PutBucketPolicy" // PutBucketPolicyRequest generates a "aws/request.Request" representing the @@ -8520,10 +8778,11 @@ func (c *S3) PutObjectRequest(input *PutObjectInput) (req *request.Request, outp // // Storage Class Options // -// By default, Amazon S3 uses the STANDARD storage class to store newly created +// By default, Amazon S3 uses the STANDARD Storage Class to store newly created // objects. The STANDARD storage class provides high durability and high availability. -// Depending on performance needs, you can specify a different storage class. -// For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) +// Depending on performance needs, you can specify a different Storage Class. +// Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, +// see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) // in the Amazon S3 Service Developer Guide. // // Versioning @@ -9887,6 +10146,11 @@ func (c *S3) UploadPartRequest(input *UploadPartInput) (req *request.Request, ou // data against the provided MD5 value. If they do not match, Amazon S3 returns // an error. // +// If the upload request is signed with Signature Version 4, then AWS S3 uses +// the x-amz-content-sha256 header as a checksum instead of Content-MD5. For +// more information see Authenticating Requests: Using the Authorization Header +// (AWS Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html). +// // Note: After you initiate multipart upload and upload one or more parts, you // must either complete or abort multipart upload in order to stop getting charged // for storage of the uploaded parts. Only after you either complete or abort @@ -10172,7 +10436,7 @@ type AbortMultipartUploadInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -10182,7 +10446,7 @@ type AbortMultipartUploadInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -11452,7 +11716,7 @@ type CompleteMultipartUploadOutput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -11462,7 +11726,7 @@ type CompleteMultipartUploadOutput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. Bucket *string `type:"string"` @@ -11716,13 +11980,15 @@ type CopyObjectInput struct { _ struct{} `locationName:"CopyObjectRequest" type:"structure"` // The canned ACL to apply to the object. + // + // This action is not supported by Amazon S3 on Outposts. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` // The name of the destination bucket. // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -11732,7 +11998,7 @@ type CopyObjectInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -11829,15 +12095,23 @@ type CopyObjectInput struct { Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"` // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. + // + // This action is not supported by Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to read the object data and its metadata. + // + // This action is not supported by Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the object ACL. + // + // This action is not supported by Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to write the ACL for the applicable object. + // + // This action is not supported by Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // The key of the destination object. @@ -11901,7 +12175,12 @@ type CopyObjectInput struct { // S3 (for example, AES256, aws:kms). ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` - // The type of storage to use for the object. Defaults to 'STANDARD'. + // By default, Amazon S3 uses the STANDARD Storage Class to store newly created + // objects. The STANDARD storage class provides high durability and high availability. + // Depending on performance needs, you can specify a different Storage Class. + // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, + // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + // in the Amazon S3 Service Developer Guide. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The tag-set for the object destination object this value must be used in @@ -12591,13 +12870,15 @@ type CreateMultipartUploadInput struct { _ struct{} `locationName:"CreateMultipartUploadRequest" type:"structure"` // The canned ACL to apply to the object. + // + // This action is not supported by Amazon S3 on Outposts. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` // The name of the bucket to which to initiate the upload // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -12607,7 +12888,7 @@ type CreateMultipartUploadInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -12639,15 +12920,23 @@ type CreateMultipartUploadInput struct { Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"` // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. + // + // This action is not supported by Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to read the object data and its metadata. + // + // This action is not supported by Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the object ACL. + // + // This action is not supported by Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to write the ACL for the applicable object. + // + // This action is not supported by Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // Object key for which the multipart upload is to be initiated. @@ -12707,7 +12996,12 @@ type CreateMultipartUploadInput struct { // S3 (for example, AES256, aws:kms). ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` - // The type of storage to use for the object. Defaults to 'STANDARD'. + // By default, Amazon S3 uses the STANDARD Storage Class to store newly created + // objects. The STANDARD storage class provides high durability and high availability. + // Depending on performance needs, you can specify a different Storage Class. + // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, + // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + // in the Amazon S3 Service Developer Guide. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The tag-set for the object. The tag-set must be encoded as URL Query parameters. @@ -12981,7 +13275,7 @@ type CreateMultipartUploadOutput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -12991,7 +13285,7 @@ type CreateMultipartUploadOutput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. Bucket *string `locationName:"Bucket" type:"string"` @@ -13945,6 +14239,101 @@ func (s DeleteBucketOutput) GoString() string { return s.String() } +type DeleteBucketOwnershipControlsInput struct { + _ struct{} `locationName:"DeleteBucketOwnershipControlsRequest" type:"structure"` + + // The Amazon S3 bucket whose OwnershipControls you want to delete. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` +} + +// String returns the string representation +func (s DeleteBucketOwnershipControlsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketOwnershipControlsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketOwnershipControlsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketOwnershipControlsInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketOwnershipControlsInput) SetBucket(v string) *DeleteBucketOwnershipControlsInput { + s.Bucket = &v + return s +} + +func (s *DeleteBucketOwnershipControlsInput) getBucket() (v string) { + if s.Bucket == nil { + return v + } + return *s.Bucket +} + +// SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. +func (s *DeleteBucketOwnershipControlsInput) SetExpectedBucketOwner(v string) *DeleteBucketOwnershipControlsInput { + s.ExpectedBucketOwner = &v + return s +} + +func (s *DeleteBucketOwnershipControlsInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *DeleteBucketOwnershipControlsInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketOwnershipControlsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +type DeleteBucketOwnershipControlsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBucketOwnershipControlsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketOwnershipControlsOutput) GoString() string { + return s.String() +} + type DeleteBucketPolicyInput struct { _ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"` @@ -14442,7 +14831,7 @@ type DeleteObjectInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -14452,7 +14841,7 @@ type DeleteObjectInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -14646,7 +15035,7 @@ type DeleteObjectTaggingInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -14656,7 +15045,7 @@ type DeleteObjectTaggingInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -14794,7 +15183,7 @@ type DeleteObjectsInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -14804,7 +15193,7 @@ type DeleteObjectsInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -17248,6 +17637,111 @@ func (s *GetBucketNotificationConfigurationRequest) updateArnableField(v string) return nil } +type GetBucketOwnershipControlsInput struct { + _ struct{} `locationName:"GetBucketOwnershipControlsRequest" type:"structure"` + + // The name of the Amazon S3 bucket whose OwnershipControls you want to retrieve. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` +} + +// String returns the string representation +func (s GetBucketOwnershipControlsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketOwnershipControlsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetBucketOwnershipControlsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketOwnershipControlsInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *GetBucketOwnershipControlsInput) SetBucket(v string) *GetBucketOwnershipControlsInput { + s.Bucket = &v + return s +} + +func (s *GetBucketOwnershipControlsInput) getBucket() (v string) { + if s.Bucket == nil { + return v + } + return *s.Bucket +} + +// SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. +func (s *GetBucketOwnershipControlsInput) SetExpectedBucketOwner(v string) *GetBucketOwnershipControlsInput { + s.ExpectedBucketOwner = &v + return s +} + +func (s *GetBucketOwnershipControlsInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *GetBucketOwnershipControlsInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketOwnershipControlsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +type GetBucketOwnershipControlsOutput struct { + _ struct{} `type:"structure" payload:"OwnershipControls"` + + // The OwnershipControls (BucketOwnerPreferred or ObjectWriter) currently in + // effect for this Amazon S3 bucket. + OwnershipControls *OwnershipControls `type:"structure"` +} + +// String returns the string representation +func (s GetBucketOwnershipControlsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketOwnershipControlsOutput) GoString() string { + return s.String() +} + +// SetOwnershipControls sets the OwnershipControls field's value. +func (s *GetBucketOwnershipControlsOutput) SetOwnershipControls(v *OwnershipControls) *GetBucketOwnershipControlsOutput { + s.OwnershipControls = v + return s +} + type GetBucketPolicyInput struct { _ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"` @@ -18046,7 +18540,7 @@ type GetObjectAclInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -18218,7 +18712,7 @@ type GetObjectInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -18228,7 +18722,7 @@ type GetObjectInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -18516,7 +19010,7 @@ type GetObjectLegalHoldInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -18669,7 +19163,7 @@ type GetObjectLockConfigurationInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -19105,7 +19599,7 @@ type GetObjectRetentionInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -19258,7 +19752,7 @@ type GetObjectTaggingInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -19268,7 +19762,7 @@ type GetObjectTaggingInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -19859,7 +20353,7 @@ type HeadBucketInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -19869,7 +20363,7 @@ type HeadBucketInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -19972,7 +20466,7 @@ type HeadObjectInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -19982,7 +20476,7 @@ type HeadObjectInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -20021,7 +20515,8 @@ type HeadObjectInput struct { PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer"` // Downloads the specified range bytes of an object. For more information about - // the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. + // the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 + // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35). // // Amazon S3 doesn't support retrieving multiple ranges of data per GET request. Range *string `location:"header" locationName:"Range" type:"string"` @@ -22090,7 +22585,7 @@ type ListMultipartUploadsInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -22100,7 +22595,7 @@ type ListMultipartUploadsInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -22726,7 +23221,7 @@ type ListObjectsInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -22736,7 +23231,7 @@ type ListObjectsInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -23018,7 +23513,7 @@ type ListObjectsV2Input struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -23028,7 +23523,7 @@ type ListObjectsV2Input struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -23252,7 +23747,7 @@ type ListObjectsV2Output struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -23262,7 +23757,7 @@ type ListObjectsV2Output struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. Name *string `type:"string"` @@ -23368,7 +23863,7 @@ type ListPartsInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -23378,7 +23873,7 @@ type ListPartsInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -24920,6 +25415,101 @@ func (s *Owner) SetID(v string) *Owner { return s } +// The container element for a bucket's ownership controls. +type OwnershipControls struct { + _ struct{} `type:"structure"` + + // The container element for an ownership control rule. + // + // Rules is a required field + Rules []*OwnershipControlsRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` +} + +// String returns the string representation +func (s OwnershipControls) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s OwnershipControls) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OwnershipControls) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "OwnershipControls"} + if s.Rules == nil { + invalidParams.Add(request.NewErrParamRequired("Rules")) + } + if s.Rules != nil { + for i, v := range s.Rules { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRules sets the Rules field's value. +func (s *OwnershipControls) SetRules(v []*OwnershipControlsRule) *OwnershipControls { + s.Rules = v + return s +} + +// The container element for an ownership control rule. +type OwnershipControlsRule struct { + _ struct{} `type:"structure"` + + // The container element for object ownership for a bucket's ownership controls. + // + // BucketOwnerPreferred - Objects uploaded to the bucket change ownership to + // the bucket owner if the objects are uploaded with the bucket-owner-full-control + // canned ACL. + // + // ObjectWriter - The uploading account will own the object if the object is + // uploaded with the bucket-owner-full-control canned ACL. + // + // ObjectOwnership is a required field + ObjectOwnership *string `type:"string" required:"true" enum:"ObjectOwnership"` +} + +// String returns the string representation +func (s OwnershipControlsRule) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s OwnershipControlsRule) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OwnershipControlsRule) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "OwnershipControlsRule"} + if s.ObjectOwnership == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectOwnership")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetObjectOwnership sets the ObjectOwnership field's value. +func (s *OwnershipControlsRule) SetObjectOwnership(v string) *OwnershipControlsRule { + s.ObjectOwnership = &v + return s +} + // Container for Parquet. type ParquetInput struct { _ struct{} `type:"structure"` @@ -26671,6 +27261,121 @@ func (s PutBucketNotificationOutput) GoString() string { return s.String() } +type PutBucketOwnershipControlsInput struct { + _ struct{} `locationName:"PutBucketOwnershipControlsRequest" type:"structure" payload:"OwnershipControls"` + + // The name of the Amazon S3 bucket whose OwnershipControls you want to set. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` + + // The OwnershipControls (BucketOwnerPreferred or ObjectWriter) that you want + // to apply to this Amazon S3 bucket. + // + // OwnershipControls is a required field + OwnershipControls *OwnershipControls `locationName:"OwnershipControls" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` +} + +// String returns the string representation +func (s PutBucketOwnershipControlsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketOwnershipControlsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutBucketOwnershipControlsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutBucketOwnershipControlsInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + if s.OwnershipControls == nil { + invalidParams.Add(request.NewErrParamRequired("OwnershipControls")) + } + if s.OwnershipControls != nil { + if err := s.OwnershipControls.Validate(); err != nil { + invalidParams.AddNested("OwnershipControls", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *PutBucketOwnershipControlsInput) SetBucket(v string) *PutBucketOwnershipControlsInput { + s.Bucket = &v + return s +} + +func (s *PutBucketOwnershipControlsInput) getBucket() (v string) { + if s.Bucket == nil { + return v + } + return *s.Bucket +} + +// SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. +func (s *PutBucketOwnershipControlsInput) SetExpectedBucketOwner(v string) *PutBucketOwnershipControlsInput { + s.ExpectedBucketOwner = &v + return s +} + +// SetOwnershipControls sets the OwnershipControls field's value. +func (s *PutBucketOwnershipControlsInput) SetOwnershipControls(v *OwnershipControls) *PutBucketOwnershipControlsInput { + s.OwnershipControls = v + return s +} + +func (s *PutBucketOwnershipControlsInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *PutBucketOwnershipControlsInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketOwnershipControlsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +type PutBucketOwnershipControlsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutBucketOwnershipControlsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketOwnershipControlsOutput) GoString() string { + return s.String() +} + type PutBucketPolicyInput struct { _ struct{} `locationName:"PutBucketPolicyRequest" type:"structure" payload:"Policy"` @@ -27407,7 +28112,7 @@ type PutObjectAclInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -27422,25 +28127,33 @@ type PutObjectAclInput struct { // Allows grantee the read, write, read ACP, and write ACP permissions on the // bucket. + // + // This action is not supported by Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to list the objects in the bucket. + // + // This action is not supported by Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the bucket ACL. + // + // This action is not supported by Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to create, overwrite, and delete any object in the bucket. GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` // Allows grantee to write the ACL for the applicable bucket. + // + // This action is not supported by Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // Key for which the PUT operation was initiated. // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -27450,7 +28163,7 @@ type PutObjectAclInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Key is a required field @@ -27637,6 +28350,8 @@ type PutObjectInput struct { // The canned ACL to apply to the object. For more information, see Canned ACL // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). + // + // This action is not supported by Amazon S3 on Outposts. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` // Object data. @@ -27646,7 +28361,7 @@ type PutObjectInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -27656,7 +28371,7 @@ type PutObjectInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -27707,15 +28422,23 @@ type PutObjectInput struct { Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"` // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. + // + // This action is not supported by Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to read the object data and its metadata. + // + // This action is not supported by Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the object ACL. + // + // This action is not supported by Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to write the ACL for the applicable object. + // + // This action is not supported by Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // Object key for which the PUT operation was initiated. @@ -27780,8 +28503,12 @@ type PutObjectInput struct { // S3 (for example, AES256, aws:kms). ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` - // If you don't specify, S3 Standard is the default storage class. Amazon S3 - // supports other storage classes. + // By default, Amazon S3 uses the STANDARD Storage Class to store newly created + // objects. The STANDARD storage class provides high durability and high availability. + // Depending on performance needs, you can specify a different Storage Class. + // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, + // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + // in the Amazon S3 Service Developer Guide. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The tag-set for the object. The tag-set must be encoded as URL Query parameters. @@ -28074,7 +28801,7 @@ type PutObjectLegalHoldInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -28490,7 +29217,7 @@ type PutObjectRetentionInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -28664,7 +29391,7 @@ type PutObjectTaggingInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -28674,7 +29401,7 @@ type PutObjectTaggingInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -29775,7 +30502,7 @@ type RestoreObjectInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -29785,7 +30512,7 @@ type RestoreObjectInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -31641,7 +32368,7 @@ type UploadPartCopyInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -31651,7 +32378,7 @@ type UploadPartCopyInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -32071,7 +32798,7 @@ type UploadPartInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -32081,7 +32808,7 @@ type UploadPartInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -33178,6 +33905,30 @@ func ObjectLockRetentionMode_Values() []string { } } +// The container element for object ownership for a bucket's ownership controls. +// +// BucketOwnerPreferred - Objects uploaded to the bucket change ownership to +// the bucket owner if the objects are uploaded with the bucket-owner-full-control +// canned ACL. +// +// ObjectWriter - The uploading account will own the object if the object is +// uploaded with the bucket-owner-full-control canned ACL. +const ( + // ObjectOwnershipBucketOwnerPreferred is a ObjectOwnership enum value + ObjectOwnershipBucketOwnerPreferred = "BucketOwnerPreferred" + + // ObjectOwnershipObjectWriter is a ObjectOwnership enum value + ObjectOwnershipObjectWriter = "ObjectWriter" +) + +// ObjectOwnership_Values returns all elements of the ObjectOwnership enum +func ObjectOwnership_Values() []string { + return []string{ + ObjectOwnershipBucketOwnerPreferred, + ObjectOwnershipObjectWriter, + } +} + const ( // ObjectStorageClassStandard is a ObjectStorageClass enum value ObjectStorageClassStandard = "STANDARD" diff --git a/service/s3/errors.go b/service/s3/errors.go index 49aeff16f20..dd73d460cf3 100644 --- a/service/s3/errors.go +++ b/service/s3/errors.go @@ -8,7 +8,7 @@ const ( // "BucketAlreadyExists". // // The requested bucket name is not available. The bucket namespace is shared - // by all users of the system. Please select a different name and try again. + // by all users of the system. Select a different name and try again. ErrCodeBucketAlreadyExists = "BucketAlreadyExists" // ErrCodeBucketAlreadyOwnedByYou for service response error code diff --git a/service/s3/s3iface/interface.go b/service/s3/s3iface/interface.go index 2646a42722b..bca091d758e 100644 --- a/service/s3/s3iface/interface.go +++ b/service/s3/s3iface/interface.go @@ -108,6 +108,10 @@ type S3API interface { DeleteBucketMetricsConfigurationWithContext(aws.Context, *s3.DeleteBucketMetricsConfigurationInput, ...request.Option) (*s3.DeleteBucketMetricsConfigurationOutput, error) DeleteBucketMetricsConfigurationRequest(*s3.DeleteBucketMetricsConfigurationInput) (*request.Request, *s3.DeleteBucketMetricsConfigurationOutput) + DeleteBucketOwnershipControls(*s3.DeleteBucketOwnershipControlsInput) (*s3.DeleteBucketOwnershipControlsOutput, error) + DeleteBucketOwnershipControlsWithContext(aws.Context, *s3.DeleteBucketOwnershipControlsInput, ...request.Option) (*s3.DeleteBucketOwnershipControlsOutput, error) + DeleteBucketOwnershipControlsRequest(*s3.DeleteBucketOwnershipControlsInput) (*request.Request, *s3.DeleteBucketOwnershipControlsOutput) + DeleteBucketPolicy(*s3.DeleteBucketPolicyInput) (*s3.DeleteBucketPolicyOutput, error) DeleteBucketPolicyWithContext(aws.Context, *s3.DeleteBucketPolicyInput, ...request.Option) (*s3.DeleteBucketPolicyOutput, error) DeleteBucketPolicyRequest(*s3.DeleteBucketPolicyInput) (*request.Request, *s3.DeleteBucketPolicyOutput) @@ -192,6 +196,10 @@ type S3API interface { GetBucketNotificationConfigurationWithContext(aws.Context, *s3.GetBucketNotificationConfigurationRequest, ...request.Option) (*s3.NotificationConfiguration, error) GetBucketNotificationConfigurationRequest(*s3.GetBucketNotificationConfigurationRequest) (*request.Request, *s3.NotificationConfiguration) + GetBucketOwnershipControls(*s3.GetBucketOwnershipControlsInput) (*s3.GetBucketOwnershipControlsOutput, error) + GetBucketOwnershipControlsWithContext(aws.Context, *s3.GetBucketOwnershipControlsInput, ...request.Option) (*s3.GetBucketOwnershipControlsOutput, error) + GetBucketOwnershipControlsRequest(*s3.GetBucketOwnershipControlsInput) (*request.Request, *s3.GetBucketOwnershipControlsOutput) + GetBucketPolicy(*s3.GetBucketPolicyInput) (*s3.GetBucketPolicyOutput, error) GetBucketPolicyWithContext(aws.Context, *s3.GetBucketPolicyInput, ...request.Option) (*s3.GetBucketPolicyOutput, error) GetBucketPolicyRequest(*s3.GetBucketPolicyInput) (*request.Request, *s3.GetBucketPolicyOutput) @@ -359,6 +367,10 @@ type S3API interface { PutBucketNotificationConfigurationWithContext(aws.Context, *s3.PutBucketNotificationConfigurationInput, ...request.Option) (*s3.PutBucketNotificationConfigurationOutput, error) PutBucketNotificationConfigurationRequest(*s3.PutBucketNotificationConfigurationInput) (*request.Request, *s3.PutBucketNotificationConfigurationOutput) + PutBucketOwnershipControls(*s3.PutBucketOwnershipControlsInput) (*s3.PutBucketOwnershipControlsOutput, error) + PutBucketOwnershipControlsWithContext(aws.Context, *s3.PutBucketOwnershipControlsInput, ...request.Option) (*s3.PutBucketOwnershipControlsOutput, error) + PutBucketOwnershipControlsRequest(*s3.PutBucketOwnershipControlsInput) (*request.Request, *s3.PutBucketOwnershipControlsOutput) + PutBucketPolicy(*s3.PutBucketPolicyInput) (*s3.PutBucketPolicyOutput, error) PutBucketPolicyWithContext(aws.Context, *s3.PutBucketPolicyInput, ...request.Option) (*s3.PutBucketPolicyOutput, error) PutBucketPolicyRequest(*s3.PutBucketPolicyInput) (*request.Request, *s3.PutBucketPolicyOutput) diff --git a/service/s3/s3manager/upload_input.go b/service/s3/s3manager/upload_input.go index 34dec7fff2d..d1ad5400bad 100644 --- a/service/s3/s3manager/upload_input.go +++ b/service/s3/s3manager/upload_input.go @@ -16,6 +16,8 @@ type UploadInput struct { // The canned ACL to apply to the object. For more information, see Canned ACL // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). + // + // This action is not supported by Amazon S3 on Outposts. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` // The readable body payload to send to S3. @@ -25,7 +27,7 @@ type UploadInput struct { // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you + // When using this operation with an access point through the AWS SDKs, you // provide the access point ARN in place of the bucket name. For more information // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. @@ -35,7 +37,7 @@ type UploadInput struct { // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When // using this operation using S3 on Outposts through the AWS SDKs, you provide // the Outposts bucket ARN in place of the bucket name. For more information - // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field @@ -81,15 +83,23 @@ type UploadInput struct { Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"` // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. + // + // This action is not supported by Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to read the object data and its metadata. + // + // This action is not supported by Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the object ACL. + // + // This action is not supported by Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to write the ACL for the applicable object. + // + // This action is not supported by Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // Object key for which the PUT operation was initiated. @@ -154,8 +164,12 @@ type UploadInput struct { // S3 (for example, AES256, aws:kms). ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` - // If you don't specify, S3 Standard is the default storage class. Amazon S3 - // supports other storage classes. + // By default, Amazon S3 uses the STANDARD Storage Class to store newly created + // objects. The STANDARD storage class provides high durability and high availability. + // Depending on performance needs, you can specify a different Storage Class. + // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, + // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + // in the Amazon S3 Service Developer Guide. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The tag-set for the object. The tag-set must be encoded as URL Query parameters. diff --git a/service/servicediscovery/api.go b/service/servicediscovery/api.go index 68aaa0b331b..cc86b974fcc 100644 --- a/service/servicediscovery/api.go +++ b/service/servicediscovery/api.go @@ -3221,10 +3221,16 @@ type DiscoverInstancesInput struct { // NamespaceName is a required field NamespaceName *string `type:"string" required:"true"` - // A string map that contains attributes with values that you can use to filter - // instances by any custom attribute that you specified when you registered - // the instance. Only instances that match all the specified key/value pairs - // will be returned. + // Opportunistic filters to scope the results based on custom attributes. If + // there are instances that match both the filters specified in both the QueryParameters + // parameter and this parameter, they are returned. Otherwise, these filters + // are ignored and only instances that match the filters specified in the QueryParameters + // parameter are returned. + OptionalParameters map[string]*string `type:"map"` + + // Filters to scope the results based on custom attributes for the instance. + // For example, {version=v1, az=1a}. Only instances that match all the specified + // key-value pairs will be returned. QueryParameters map[string]*string `type:"map"` // The name of the service that you specified when you registered the instance. @@ -3280,6 +3286,12 @@ func (s *DiscoverInstancesInput) SetNamespaceName(v string) *DiscoverInstancesIn return s } +// SetOptionalParameters sets the OptionalParameters field's value. +func (s *DiscoverInstancesInput) SetOptionalParameters(v map[string]*string) *DiscoverInstancesInput { + s.OptionalParameters = v + return s +} + // SetQueryParameters sets the QueryParameters field's value. func (s *DiscoverInstancesInput) SetQueryParameters(v map[string]*string) *DiscoverInstancesInput { s.QueryParameters = v @@ -4286,17 +4298,19 @@ func (s *HealthCheckConfig) SetType(v string) *HealthCheckConfig { type HealthCheckCustomConfig struct { _ struct{} `type:"structure"` + // + // This parameter has been deprecated and is always set to 1. AWS Cloud Map + // waits for approximately 30 seconds after receiving an UpdateInstanceCustomHealthStatus + // request before changing the status of the service instance. + // // The number of 30-second intervals that you want AWS Cloud Map to wait after // receiving an UpdateInstanceCustomHealthStatus request before it changes the - // health status of a service instance. For example, suppose you specify a value - // of 2 for FailureTheshold, and then your application sends an UpdateInstanceCustomHealthStatus - // request. AWS Cloud Map waits for approximately 60 seconds (2 x 30) before - // changing the status of the service instance based on that request. + // health status of a service instance. // // Sending a second or subsequent UpdateInstanceCustomHealthStatus request with - // the same value before FailureThreshold x 30 seconds has passed doesn't accelerate - // the change. AWS Cloud Map still waits FailureThreshold x 30 seconds after - // the first request to make the change. + // the same value before 30 seconds has passed doesn't accelerate the change. + // AWS Cloud Map still waits 30 seconds after the first request to make the + // change. FailureThreshold *int64 `min:"1" type:"integer"` }