diff --git a/.changes/1.35.46.json b/.changes/1.35.46.json new file mode 100644 index 0000000000..6ec9cec464 --- /dev/null +++ b/.changes/1.35.46.json @@ -0,0 +1,37 @@ +[ + { + "category": "``bedrock-runtime``", + "description": "Updating invoke regex to support imported models for converse API", + "type": "api-change" + }, + { + "category": "``imagebuilder``", + "description": "Add macOS platform and instance placement options", + "type": "api-change" + }, + { + "category": "``m2``", + "description": "Add AuthSecretsManagerArn optional parameter to batch job APIs, expand batch parameter limits, and introduce clientToken constraints.", + "type": "api-change" + }, + { + "category": "``rds``", + "description": "Global clusters now expose the Endpoint attribute as one of its fields. It is a Read/Write endpoint for the global cluster which resolves to the Global Cluster writer instance.", + "type": "api-change" + }, + { + "category": "``repostspace``", + "description": "Adds the BatchAddRole and BatchRemoveRole APIs.", + "type": "api-change" + }, + { + "category": "``timestream-query``", + "description": "This release adds support for Query Insights, a feature that provides details of query execution, enabling users to identify areas for improvement to optimize their queries, resulting in improved query performance and lower query costs.", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "Fixed SelectObjectContent regression from `#3284 `__.", + "type": "bugfix" + } +] \ No newline at end of file diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 93589871c2..7f9bbcb8fb 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,18 @@ CHANGELOG ========= +1.35.46 +======= + +* api-change:``bedrock-runtime``: Updating invoke regex to support imported models for converse API +* api-change:``imagebuilder``: Add macOS platform and instance placement options +* api-change:``m2``: Add AuthSecretsManagerArn optional parameter to batch job APIs, expand batch parameter limits, and introduce clientToken constraints. +* api-change:``rds``: Global clusters now expose the Endpoint attribute as one of its fields. It is a Read/Write endpoint for the global cluster which resolves to the Global Cluster writer instance. +* api-change:``repostspace``: Adds the BatchAddRole and BatchRemoveRole APIs. +* api-change:``timestream-query``: This release adds support for Query Insights, a feature that provides details of query execution, enabling users to identify areas for improvement to optimize their queries, resulting in improved query performance and lower query costs. +* bugfix:``s3``: Fixed SelectObjectContent regression from `#3284 `__. + + 1.35.45 ======= diff --git a/botocore/__init__.py b/botocore/__init__.py index 276d102ff5..3e3cc37fc1 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import os import re -__version__ = '1.35.45' +__version__ = '1.35.46' class NullHandler(logging.Handler): diff --git a/botocore/data/bedrock-runtime/2023-09-30/service-2.json b/botocore/data/bedrock-runtime/2023-09-30/service-2.json index e4fb75f6c0..70519f0141 100644 --- a/botocore/data/bedrock-runtime/2023-09-30/service-2.json +++ b/botocore/data/bedrock-runtime/2023-09-30/service-2.json @@ -339,7 +339,7 @@ "type":"string", "max":2048, "min":1, - "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(model-gateway|inference-profile)/[a-zA-Z0-9-:.]+)|([a-zA-Z0-9-:.]+)" + "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})|([0-9]{12}:inference-profile/[a-zA-Z0-9-:.]+)))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|([a-zA-Z0-9-:.]+)" }, "ConverseMetrics":{ "type":"structure", @@ -1515,7 +1515,7 @@ "type":"string", "max":2048, "min":1, - "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(model-gateway|inference-profile)/[a-zA-Z0-9-:.]+)|([a-zA-Z0-9-:.]+)" + "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})|([0-9]{12}:inference-profile/[a-zA-Z0-9-:.]+)))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|([a-zA-Z0-9-:.]+)" }, "InvokeModelRequest":{ "type":"structure", diff --git a/botocore/data/endpoints.json b/botocore/data/endpoints.json index 5eaa988108..9df595b200 100644 --- a/botocore/data/endpoints.json +++ b/botocore/data/endpoints.json @@ -4979,6 +4979,7 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "controltower-fips.ca-central-1.amazonaws.com", diff --git a/botocore/data/imagebuilder/2019-12-02/service-2.json b/botocore/data/imagebuilder/2019-12-02/service-2.json index b3751ef166..55b1830ebf 100644 --- a/botocore/data/imagebuilder/2019-12-02/service-2.json +++ b/botocore/data/imagebuilder/2019-12-02/service-2.json @@ -11,7 +11,8 @@ "serviceId":"imagebuilder", "signatureVersion":"v4", "signingName":"imagebuilder", - "uid":"imagebuilder-2019-12-02" + "uid":"imagebuilder-2019-12-02", + "auth":["aws.auth#sigv4"] }, "operations":{ "CancelImageCreation":{ @@ -769,7 +770,7 @@ {"shape":"ForbiddenException"}, {"shape":"CallRateLimitExceededException"} ], - "documentation":"

Returns the list of component build versions for the specified semantic version.

The semantic version has four nodes: <major>.<minor>.<patch>/<build>. You can assign values for the first three, and can filter on all of them.

Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards.

" + "documentation":"

Returns the list of component build versions for the specified component version Amazon Resource Name (ARN).

" }, "ListComponents":{ "name":"ListComponents", @@ -2266,7 +2267,7 @@ }, "kmsKeyId":{ "shape":"NonEmptyString", - "documentation":"

Identifies which KMS key is used to encrypt the container image.

" + "documentation":"

Identifies which KMS key is used to encrypt the Dockerfile template.

" }, "clientToken":{ "shape":"ClientToken", @@ -2619,7 +2620,7 @@ }, "resourceTags":{ "shape":"ResourceTagMap", - "documentation":"

The tags attached to the resource created by Image Builder.

" + "documentation":"

The metadata tags to assign to the Amazon EC2 instance that Image Builder launches during the build process. Tags are formatted as key value pairs.

" }, "instanceMetadataOptions":{ "shape":"InstanceMetadataOptions", @@ -2627,7 +2628,11 @@ }, "tags":{ "shape":"TagMap", - "documentation":"

The tags of the infrastructure configuration.

" + "documentation":"

The metadata tags to assign to the infrastructure configuration resource that Image Builder creates as output. Tags are formatted as key value pairs.

" + }, + "placement":{ + "shape":"Placement", + "documentation":"

The instance placement settings that define where the instances that are launched from your image will run.

" }, "clientToken":{ "shape":"ClientToken", @@ -3282,7 +3287,7 @@ }, "containerTags":{ "shape":"StringList", - "documentation":"

Tags for Image Builder to apply to the output container image that &INS; scans. Tags can help you identify and manage your scanned images.

" + "documentation":"

Tags for Image Builder to apply to the output container image that Amazon Inspector scans. Tags can help you identify and manage your scanned images.

" } }, "documentation":"

Settings that Image Builder uses to configure the ECR repository and the output container images that Amazon Inspector scans.

" @@ -4840,6 +4845,10 @@ "tags":{ "shape":"TagMap", "documentation":"

The tags of the infrastructure configuration.

" + }, + "placement":{ + "shape":"Placement", + "documentation":"

The instance placement settings that define where the instances that are launched from your image will run.

" } }, "documentation":"

Details of the infrastructure configuration.

" @@ -4886,6 +4895,10 @@ "instanceProfileName":{ "shape":"InstanceProfileNameType", "documentation":"

The instance profile of the infrastructure configuration.

" + }, + "placement":{ + "shape":"Placement", + "documentation":"

The instance placement settings that define where the instances that are launched from your image will run.

" } }, "documentation":"

The infrastructure used when building Amazon EC2 AMIs.

" @@ -6606,11 +6619,34 @@ "ENABLED" ] }, + "Placement":{ + "type":"structure", + "members":{ + "availabilityZone":{ + "shape":"NonEmptyString", + "documentation":"

The Availability Zone where your build and test instances will launch.

" + }, + "tenancy":{ + "shape":"TenancyType", + "documentation":"

The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware. An instance with a tenancy of host runs on a Dedicated Host.

If tenancy is set to host, then you can optionally specify one target for placement – either host ID or host resource group ARN. If automatic placement is enabled for your host, and you don't specify any placement target, Amazon EC2 will try to find an available host for your build and test instances.

" + }, + "hostId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the Dedicated Host on which build and test instances run. This only applies if tenancy is host. If you specify the host ID, you must not specify the resource group ARN. If you specify both, Image Builder returns an error.

" + }, + "hostResourceGroupArn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the host resource group in which to launch build and test instances. This only applies if tenancy is host. If you specify the resource group ARN, you must not specify the host ID. If you specify both, Image Builder returns an error.

" + } + }, + "documentation":"

By default, EC2 instances run on shared tenancy hardware. This means that multiple Amazon Web Services accounts might share the same physical hardware. When you use dedicated hardware, the physical server that hosts your instances is dedicated to your Amazon Web Services account. Instance placement settings contain the details for the physical hardware where instances that Image Builder launches during image creation will run.

" + }, "Platform":{ "type":"string", "enum":[ "Windows", - "Linux" + "Linux", + "macOS" ] }, "PutComponentPolicyRequest":{ @@ -7206,6 +7242,14 @@ "max":10000, "min":1 }, + "TenancyType":{ + "type":"string", + "enum":[ + "default", + "dedicated", + "host" + ] + }, "Timezone":{ "type":"string", "max":100, @@ -7414,11 +7458,6 @@ "shape":"SnsTopicArn", "documentation":"

The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys from other accounts. The key that is used to encrypt the SNS topic must reside in the account that the Image Builder service runs under.

" }, - "clientToken":{ - "shape":"ClientToken", - "documentation":"

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference.

", - "idempotencyToken":true - }, "resourceTags":{ "shape":"ResourceTagMap", "documentation":"

The tags attached to the resource created by Image Builder.

" @@ -7426,6 +7465,15 @@ "instanceMetadataOptions":{ "shape":"InstanceMetadataOptions", "documentation":"

The instance metadata options that you can set for the HTTP requests that pipeline builds use to launch EC2 build and test instances. For more information about instance metadata options, see one of the following links:

" + }, + "placement":{ + "shape":"Placement", + "documentation":"

The instance placement settings that define where the instances that are launched from your image will run.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see Ensuring idempotency in the Amazon EC2 API Reference.

", + "idempotencyToken":true } } }, diff --git a/botocore/data/m2/2021-04-28/service-2.json b/botocore/data/m2/2021-04-28/service-2.json index 621d8ee061..f42b9c245d 100644 --- a/botocore/data/m2/2021-04-28/service-2.json +++ b/botocore/data/m2/2021-04-28/service-2.json @@ -5,11 +5,13 @@ "endpointPrefix":"m2", "jsonVersion":"1.1", "protocol":"rest-json", + "protocols":["rest-json"], "serviceFullName":"AWSMainframeModernization", "serviceId":"m2", "signatureVersion":"v4", "signingName":"m2", - "uid":"m2-2021-04-28" + "uid":"m2-2021-04-28", + "auth":["aws.auth#sigv4"] }, "operations":{ "CancelBatchJobExecution":{ @@ -402,7 +404,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists all the job steps for JCL files to restart a batch job. This is only applicable for Micro Focus engine with versions 8.0.6 and above.

" + "documentation":"

Lists all the job steps for a JCL file to restart a batch job. This is only applicable for Micro Focus engine with versions 8.0.6 and above.

" }, "ListDataSetImportHistory":{ "name":"ListDataSetImportHistory", @@ -833,6 +835,11 @@ "member":{"shape":"Arn"}, "min":1 }, + "AuthSecretsManagerArn":{ + "type":"string", + "max":2048, + "min":20 + }, "BatchJobDefinition":{ "type":"structure", "members":{ @@ -932,7 +939,7 @@ }, "restartBatchJobIdentifier":{ "shape":"RestartBatchJobIdentifier", - "documentation":"

Specifies the required information for restart, including execution ID and jobsteprestartmarker.

" + "documentation":"

Specifies the required information for restart, including executionId and JobStepRestartMarker.

" }, "s3BatchJobIdentifier":{ "shape":"S3BatchJobIdentifier", @@ -968,15 +975,15 @@ }, "BatchParamKey":{ "type":"string", - "documentation":"

See https://www.ibm.com/docs/en/workload-automation/9.3.0?topic=zos-coding-variables-in-jcl to get details about limits for both keys and values: 8 for keys (variable names), 44 for values (variable values) In addition, keys will be only alphabetic characters and digits, without any space or special characters (dash, underscore, etc ...)

Parameter key: the first character must be alphabetic. Can be of up to 8 alphanumeric characters.

", + "documentation":"

See https://www.ibm.com/docs/en/workload-automation/9.3.0?topic=zos-coding-variables-in-jcl to get details about limits for both keys and values: 8 for keys (variable names), 44 for values (variable values) In addition, keys will be only alphabetic characters and digits, without any space or special characters (dash, underscore, etc ...)

For BluAge Engine: There is no limit in length of keys and values. Additional validation may be applied in code, per engine. Parameter key: the first character must be alphabetic. Can be of up to 32 alphanumeric characters.

", "max":32, "min":1, - "pattern":"^[A-Za-z][A-Za-z0-9]{1,7}$" + "pattern":"^[A-Za-z][A-Za-z0-9]{1,31}$" }, "BatchParamValue":{ "type":"string", - "documentation":"

Parameter value can be of up to 44 alphanumeric characters.

", - "max":80, + "documentation":"

Parameter value can be of up to 1024 alphanumeric characters.

", + "max":1024, "min":0 }, "Boolean":{"type":"boolean"}, @@ -993,6 +1000,10 @@ "location":"uri", "locationName":"applicationId" }, + "authSecretsManagerArn":{ + "shape":"AuthSecretsManagerArn", + "documentation":"

The Amazon Web Services Secrets Manager containing user's credentials for authentication and authorization for Cancel Batch Job Execution operation.

" + }, "executionId":{ "shape":"Identifier", "documentation":"

The unique identifier of the batch job execution.

", @@ -1010,6 +1021,13 @@ "type":"integer", "box":true }, + "ClientToken":{ + "type":"string", + "documentation":"

A client token is a unique, case-sensitive string of up to 128 ASCII characters with ASCII values of 33-126 inclusive. It is generated by the client to ensure idempotent operations, allowing safe retries without unintended side effects.

", + "max":128, + "min":0, + "pattern":"^[!-~]+$" + }, "ConflictException":{ "type":"structure", "required":["message"], @@ -1040,8 +1058,8 @@ ], "members":{ "clientToken":{ - "shape":"String", - "documentation":"

Unique, case-sensitive identifier the service generates to ensure the idempotency of the request to create an application. The service generates the clientToken when the API call is triggered. The token expires after one hour, so if you retry the API within this timeframe with the same clientToken, you will get the same response. The service also handles deleting the clientToken after it expires.

", + "shape":"ClientToken", + "documentation":"

A client token is a unique, case-sensitive string of up to 128 ASCII characters with ASCII values of 33-126 inclusive. It's generated by the client to ensure idempotent operations, allowing for safe retries without unintended side effects.

", "idempotencyToken":true }, "definition":{ @@ -1110,7 +1128,7 @@ "locationName":"applicationId" }, "clientToken":{ - "shape":"String", + "shape":"ClientToken", "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request to create a data set import. The service generates the clientToken when the API call is triggered. The token expires after one hour, so if you retry the API within this timeframe with the same clientToken, you will get the same response. The service also handles deleting the clientToken after it expires.

", "idempotencyToken":true }, @@ -1149,7 +1167,7 @@ "documentation":"

The version of the application to deploy.

" }, "clientToken":{ - "shape":"String", + "shape":"ClientToken", "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request to create a deployment. The service generates the clientToken when the API call is triggered. The token expires after one hour, so if you retry the API within this timeframe with the same clientToken, you will get the same response. The service also handles deleting the clientToken after it expires.

", "idempotencyToken":true }, @@ -1178,7 +1196,7 @@ ], "members":{ "clientToken":{ - "shape":"String", + "shape":"ClientToken", "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request to create an environment. The service generates the clientToken when the API call is triggered. The token expires after one hour, so if you retry the API within this timeframe with the same clientToken, you will get the same response. The service also handles deleting the clientToken after it expires.

", "idempotencyToken":true }, @@ -1697,7 +1715,8 @@ "Available", "Updating", "Deleting", - "Failed" + "Failed", + "UnHealthy" ] }, "EnvironmentSummary":{ @@ -2076,7 +2095,7 @@ }, "jobStepRestartMarker":{ "shape":"JobStepRestartMarker", - "documentation":"

The restart steps information for the most recent restart operation.

" + "documentation":"

The step/procedure step information for the restart batch job operation.

" }, "jobType":{ "shape":"BatchJobType", @@ -2367,7 +2386,7 @@ }, "status":{ "shape":"EnvironmentLifecycle", - "documentation":"

The status of the runtime environment.

" + "documentation":"

The status of the runtime environment. If the Amazon Web Services Mainframe Modernization environment is missing a connection to the customer owned dependent resource, the status will be Unhealthy.

" }, "statusReason":{ "shape":"String", @@ -2492,11 +2511,11 @@ "members":{ "fromProcStep":{ "shape":"String", - "documentation":"

The procedure step name that a job was restarted from.

" + "documentation":"

The procedure step name that a batch job was restarted from.

" }, "fromStep":{ "shape":"String", - "documentation":"

The step name that a batch job restart was from.

" + "documentation":"

The step name that a batch job was restarted from.

" }, "toProcStep":{ "shape":"String", @@ -2504,10 +2523,10 @@ }, "toStep":{ "shape":"String", - "documentation":"

The step name that a job was restarted to.

" + "documentation":"

The step name that a batch job was restarted to.

" } }, - "documentation":"

Provides restart step information for the most recent restart operation.

" + "documentation":"

Provides step/procedure step information for a restart batch job operation.

" }, "ListApplicationVersionsRequest":{ "type":"structure", @@ -2715,9 +2734,15 @@ "location":"uri", "locationName":"applicationId" }, + "authSecretsManagerArn":{ + "shape":"AuthSecretsManagerArn", + "documentation":"

The Amazon Web Services Secrets Manager containing user's credentials for authentication and authorization for List Batch Job Restart Points operation.

", + "location":"querystring", + "locationName":"authSecretsManagerArn" + }, "executionId":{ "shape":"Identifier", - "documentation":"

The unique identifier of each batch job execution.

", + "documentation":"

The unique identifier of the batch job execution.

", "location":"uri", "locationName":"executionId" } @@ -3177,14 +3202,14 @@ "members":{ "executionId":{ "shape":"Identifier", - "documentation":"

The executionId from the StartBatchJob response when the job ran for the first time.

" + "documentation":"

The executionId from the StartBatchJob response when the job ran for the first time.

" }, "jobStepRestartMarker":{ "shape":"JobStepRestartMarker", - "documentation":"

The restart step information for the most recent restart operation.

" + "documentation":"

The step/procedure step information for a restart batch job operation.

" } }, - "documentation":"

An identifier for the StartBatchJob API to show that it is a restart operation.

" + "documentation":"

An identifier for the StartBatchJob API to show that it is a restart operation.

" }, "S3BatchJobIdentifier":{ "type":"structure", @@ -3301,6 +3326,10 @@ "location":"uri", "locationName":"applicationId" }, + "authSecretsManagerArn":{ + "shape":"AuthSecretsManagerArn", + "documentation":"

The Amazon Web Services Secrets Manager containing user's credentials for authentication and authorization for Start Batch Job execution operation.

" + }, "batchJobIdentifier":{ "shape":"BatchJobIdentifier", "documentation":"

The unique identifier of the batch job.

" diff --git a/botocore/data/rds/2014-10-31/service-2.json b/botocore/data/rds/2014-10-31/service-2.json index 79b29b7233..f3fe6c0839 100644 --- a/botocore/data/rds/2014-10-31/service-2.json +++ b/botocore/data/rds/2014-10-31/service-2.json @@ -2258,6 +2258,7 @@ }, "errors":[ {"shape":"GlobalClusterNotFoundFault"}, + {"shape":"GlobalClusterAlreadyExistsFault"}, {"shape":"InvalidGlobalClusterStateFault"}, {"shape":"InvalidDBClusterStateFault"}, {"shape":"InvalidDBInstanceStateFault"} @@ -11124,6 +11125,10 @@ "shape":"GlobalClusterMemberList", "documentation":"

The list of primary and secondary clusters within the global database cluster.

" }, + "Endpoint":{ + "shape":"String", + "documentation":"

The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster.

" + }, "FailoverState":{ "shape":"FailoverState", "documentation":"

A data object containing all properties for the current state of an in-process or pending switchover or failover process for this global cluster (Aurora global database). This object is empty unless the SwitchoverGlobalCluster or FailoverGlobalCluster operation was called on this global cluster.

" @@ -11137,7 +11142,7 @@ "type":"structure", "members":{ }, - "documentation":"

The GlobalClusterIdentifier already exists. Choose a new global database identifier (unique name) to create a new global database cluster.

", + "documentation":"

The GlobalClusterIdentifier already exists. Specify a new global database identifier (unique name) to create a new global database cluster or to rename an existing one.

", "error":{ "code":"GlobalClusterAlreadyExistsFault", "httpStatusCode":400, diff --git a/botocore/data/repostspace/2022-05-13/service-2.json b/botocore/data/repostspace/2022-05-13/service-2.json index 1f74bf054f..9e737cf037 100644 --- a/botocore/data/repostspace/2022-05-13/service-2.json +++ b/botocore/data/repostspace/2022-05-13/service-2.json @@ -5,13 +5,53 @@ "endpointPrefix":"repostspace", "jsonVersion":"1.1", "protocol":"rest-json", + "protocols":["rest-json"], "serviceFullName":"AWS re:Post Private", "serviceId":"repostspace", "signatureVersion":"v4", "signingName":"repostspace", - "uid":"repostspace-2022-05-13" + "uid":"repostspace-2022-05-13", + "auth":["aws.auth#sigv4"] }, "operations":{ + "BatchAddRole":{ + "name":"BatchAddRole", + "http":{ + "method":"POST", + "requestUri":"/spaces/{spaceId}/roles", + "responseCode":200 + }, + "input":{"shape":"BatchAddRoleInput"}, + "output":{"shape":"BatchAddRoleOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Add role to multiple users or groups in a private re:Post.

", + "idempotent":true + }, + "BatchRemoveRole":{ + "name":"BatchRemoveRole", + "http":{ + "method":"PATCH", + "requestUri":"/spaces/{spaceId}/roles", + "responseCode":200 + }, + "input":{"shape":"BatchRemoveRoleInput"}, + "output":{"shape":"BatchRemoveRoleOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Remove role from multiple users or groups in a private re:Post.

", + "idempotent":true + }, "CreateSpace":{ "name":"CreateSpace", "http":{ @@ -243,6 +283,115 @@ "max":2048, "min":20 }, + "BatchAddRoleInput":{ + "type":"structure", + "required":[ + "accessorIds", + "role", + "spaceId" + ], + "members":{ + "accessorIds":{ + "shape":"AccessorIdList", + "documentation":"

The user or group accessor identifiers to add the role to.

" + }, + "role":{ + "shape":"Role", + "documentation":"

The role to add to the users or groups.

" + }, + "spaceId":{ + "shape":"SpaceId", + "documentation":"

The unique ID of the private re:Post.

", + "location":"uri", + "locationName":"spaceId" + } + } + }, + "BatchAddRoleOutput":{ + "type":"structure", + "required":[ + "addedAccessorIds", + "errors" + ], + "members":{ + "addedAccessorIds":{ + "shape":"AccessorIdList", + "documentation":"

An array of successfully updated accessor identifiers.

" + }, + "errors":{ + "shape":"BatchErrorList", + "documentation":"

An array of errors that occurred when roles were added.

" + } + } + }, + "BatchError":{ + "type":"structure", + "required":[ + "accessorId", + "error", + "message" + ], + "members":{ + "accessorId":{ + "shape":"AccessorId", + "documentation":"

The accessor identifier that's related to the error.

" + }, + "error":{ + "shape":"ErrorCode", + "documentation":"

The error code.

" + }, + "message":{ + "shape":"ErrorMessage", + "documentation":"

Description of the error.

" + } + }, + "documentation":"

An error that occurred during a batch operation.

" + }, + "BatchErrorList":{ + "type":"list", + "member":{"shape":"BatchError"} + }, + "BatchRemoveRoleInput":{ + "type":"structure", + "required":[ + "accessorIds", + "role", + "spaceId" + ], + "members":{ + "accessorIds":{ + "shape":"AccessorIdList", + "documentation":"

The user or group accessor identifiers to remove the role from.

" + }, + "role":{ + "shape":"Role", + "documentation":"

The role to remove from the users or groups.

" + }, + "spaceId":{ + "shape":"SpaceId", + "documentation":"

The unique ID of the private re:Post.

", + "location":"uri", + "locationName":"spaceId" + } + } + }, + "BatchRemoveRoleOutput":{ + "type":"structure", + "required":[ + "errors", + "removedAccessorIds" + ], + "members":{ + "errors":{ + "shape":"BatchErrorList", + "documentation":"

An array of errors that occurred when roles were removed.

" + }, + "removedAccessorIds":{ + "shape":"AccessorIdList", + "documentation":"

An array of successfully updated accessor identifiers.

" + } + } + }, "ClientId":{"type":"string"}, "ConfigurationStatus":{ "type":"string", @@ -361,6 +510,11 @@ } } }, + "ErrorCode":{ + "type":"integer", + "box":true + }, + "ErrorMessage":{"type":"string"}, "GetSpaceInput":{ "type":"structure", "required":["spaceId"], @@ -424,7 +578,9 @@ }, "groupAdmins":{ "shape":"GroupAdmins", - "documentation":"

The list of groups that are administrators of the private re:Post.

" + "documentation":"

The list of groups that are administrators of the private re:Post.

", + "deprecated":true, + "deprecatedMessage":"This property has been depracted and will be replaced by the roles property." }, "name":{ "shape":"SpaceName", @@ -434,6 +590,10 @@ "shape":"Url", "documentation":"

The AWS generated subdomain of the private re:Post

" }, + "roles":{ + "shape":"Roles", + "documentation":"

A map of accessor identifiers and their roles.

" + }, "spaceId":{ "shape":"SpaceId", "documentation":"

The unique ID of the private re:Post.

" @@ -452,7 +612,9 @@ }, "userAdmins":{ "shape":"UserAdmins", - "documentation":"

The list of users that are administrators of the private re:Post.

" + "documentation":"

The list of users that are administrators of the private re:Post.

", + "deprecated":true, + "deprecatedMessage":"This property has been depracted and will be replaced by the roles property." }, "userCount":{ "shape":"UserCount", @@ -620,6 +782,24 @@ }, "exception":true }, + "Role":{ + "type":"string", + "enum":[ + "EXPERT", + "MODERATOR", + "ADMINISTRATOR", + "SUPPORTREQUESTOR" + ] + }, + "RoleList":{ + "type":"list", + "member":{"shape":"Role"} + }, + "Roles":{ + "type":"map", + "key":{"shape":"AccessorId"}, + "value":{"shape":"RoleList"} + }, "SendInvitesInput":{ "type":"structure", "required":[ diff --git a/botocore/data/timestream-query/2018-11-01/paginators-1.json b/botocore/data/timestream-query/2018-11-01/paginators-1.json index c497694235..a20456bab9 100644 --- a/botocore/data/timestream-query/2018-11-01/paginators-1.json +++ b/botocore/data/timestream-query/2018-11-01/paginators-1.json @@ -6,7 +6,8 @@ "non_aggregate_keys": [ "ColumnInfo", "QueryId", - "QueryStatus" + "QueryStatus", + "QueryInsightsResponse" ], "output_token": "NextToken", "result_key": "Rows" diff --git a/botocore/data/timestream-query/2018-11-01/service-2.json b/botocore/data/timestream-query/2018-11-01/service-2.json index 2d8acf6c5c..08f3fd5184 100644 --- a/botocore/data/timestream-query/2018-11-01/service-2.json +++ b/botocore/data/timestream-query/2018-11-01/service-2.json @@ -142,7 +142,7 @@ {"shape":"ValidationException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

You can use this API to run a scheduled query manually.

", + "documentation":"

You can use this API to run a scheduled query manually.

If you enabled QueryInsights, this API also returns insights and metrics related to the query that you executed as part of an Amazon SNS notification. QueryInsights helps with performance tuning of your query.

", "endpointdiscovery":{"required":true}, "idempotent":true }, @@ -217,7 +217,7 @@ {"shape":"ValidationException"}, {"shape":"InvalidEndpointException"} ], - "documentation":"

Query is a synchronous operation that enables you to run a query against your Amazon Timestream data. Query will time out after 60 seconds. You must update the default timeout in the SDK to support a timeout of 60 seconds. See the code sample for details.

Your query request will fail in the following cases:

", + "documentation":"

Query is a synchronous operation that enables you to run a query against your Amazon Timestream data.

If you enabled QueryInsights, this API also returns insights and metrics related to the query that you executed. QueryInsights helps with performance tuning of your query.

The maximum number of Query API requests you're allowed to make with QueryInsights enabled is 1 query per second (QPS). If you exceed this query rate, it might result in throttling.

Query will time out after 60 seconds. You must update the default timeout in the SDK to support a timeout of 60 seconds. See the code sample for details.

Your query request will fail in the following cases:

", "endpointdiscovery":{"required":true}, "idempotent":true }, @@ -614,6 +614,10 @@ "shape":"ClientToken", "documentation":"

Not used.

", "idempotencyToken":true + }, + "QueryInsights":{ + "shape":"ScheduledQueryInsights", + "documentation":"

Encapsulates settings for enabling QueryInsights.

Enabling QueryInsights returns insights and metrics as a part of the Amazon SNS notification for the query that you executed. You can use QueryInsights to tune your query performance and cost.

" } } }, @@ -867,6 +871,11 @@ "type":"list", "member":{"shape":"ParameterMapping"} }, + "PartitionKey":{"type":"string"}, + "PartitionKeyList":{ + "type":"list", + "member":{"shape":"PartitionKey"} + }, "PrepareQueryRequest":{ "type":"structure", "required":["QueryString"], @@ -917,6 +926,68 @@ "min":1, "pattern":"[a-zA-Z0-9]+" }, + "QueryInsights":{ + "type":"structure", + "required":["Mode"], + "members":{ + "Mode":{ + "shape":"QueryInsightsMode", + "documentation":"

Provides the following modes to enable QueryInsights:

" + } + }, + "documentation":"

QueryInsights is a performance tuning feature that helps you optimize your queries, reducing costs and improving performance. With QueryInsights, you can assess the pruning efficiency of your queries and identify areas for improvement to enhance query performance. With QueryInsights, you can also analyze the effectiveness of your queries in terms of temporal and spatial pruning, and identify opportunities to improve performance. Specifically, you can evaluate how well your queries use time-based and partition key-based indexing strategies to optimize data retrieval. To optimize query performance, it's essential that you fine-tune both the temporal and spatial parameters that govern query execution.

The key metrics provided by QueryInsights are QuerySpatialCoverage and QueryTemporalRange. QuerySpatialCoverage indicates how much of the spatial axis the query scans, with lower values being more efficient. QueryTemporalRange shows the time range scanned, with narrower ranges being more performant.

Benefits of QueryInsights

The following are the key benefits of using QueryInsights:

The maximum number of Query API requests you're allowed to make with QueryInsights enabled is 1 query per second (QPS). If you exceed this query rate, it might result in throttling.

" + }, + "QueryInsightsMode":{ + "type":"string", + "enum":[ + "ENABLED_WITH_RATE_CONTROL", + "DISABLED" + ] + }, + "QueryInsightsResponse":{ + "type":"structure", + "members":{ + "QuerySpatialCoverage":{ + "shape":"QuerySpatialCoverage", + "documentation":"

Provides insights into the spatial coverage of the query, including the table with sub-optimal (max) spatial pruning. This information can help you identify areas for improvement in your partitioning strategy to enhance spatial pruning.

" + }, + "QueryTemporalRange":{ + "shape":"QueryTemporalRange", + "documentation":"

Provides insights into the temporal range of the query, including the table with the largest (max) time range. Following are some of the potential options for optimizing time-based pruning:

" + }, + "QueryTableCount":{ + "shape":"Long", + "documentation":"

Indicates the number of tables in the query.

", + "box":true + }, + "OutputRows":{ + "shape":"Long", + "documentation":"

Indicates the total number of rows returned as part of the query result set. You can use this data to validate if the number of rows in the result set have changed as part of the query tuning exercise.

", + "box":true + }, + "OutputBytes":{ + "shape":"Long", + "documentation":"

Indicates the size of query result set in bytes. You can use this data to validate if the result set has changed as part of the query tuning exercise.

", + "box":true + }, + "UnloadPartitionCount":{ + "shape":"Long", + "documentation":"

Indicates the partitions created by the Unload operation.

", + "box":true + }, + "UnloadWrittenRows":{ + "shape":"Long", + "documentation":"

Indicates the rows written by the Unload query.

", + "box":true + }, + "UnloadWrittenBytes":{ + "shape":"Long", + "documentation":"

Indicates the size, in bytes, written by the Unload operation.

", + "box":true + } + }, + "documentation":"

Provides various insights and metrics related to the query that you executed.

" + }, "QueryPricingModel":{ "type":"string", "enum":[ @@ -944,6 +1015,10 @@ "MaxRows":{ "shape":"MaxQueryResults", "documentation":"

The total number of rows to be returned in the Query output. The initial run of Query with a MaxRows value specified will return the result set of the query in two cases:

Otherwise, the initial invocation of Query only returns a NextToken, which can then be used in subsequent calls to fetch the result set. To resume pagination, provide the NextToken value in the subsequent command.

If the row size is large (e.g. a row has many columns), Timestream may return fewer rows to keep the response size from exceeding the 1 MB limit. If MaxRows is not provided, Timestream will send the necessary number of rows to meet the 1 MB limit.

" + }, + "QueryInsights":{ + "shape":"QueryInsights", + "documentation":"

Encapsulates settings for enabling QueryInsights.

Enabling QueryInsights returns insights and metrics in addition to query results for the query that you executed. You can use QueryInsights to tune your query performance.

" } } }, @@ -974,9 +1049,41 @@ "QueryStatus":{ "shape":"QueryStatus", "documentation":"

Information about the status of the query, including progress and bytes scanned.

" + }, + "QueryInsightsResponse":{ + "shape":"QueryInsightsResponse", + "documentation":"

Encapsulates QueryInsights containing insights and metrics related to the query that you executed.

" } } }, + "QuerySpatialCoverage":{ + "type":"structure", + "members":{ + "Max":{ + "shape":"QuerySpatialCoverageMax", + "documentation":"

Provides insights into the spatial coverage of the executed query and the table with the most inefficient spatial pruning.

" + } + }, + "documentation":"

Provides insights into the spatial coverage of the query, including the table with sub-optimal (max) spatial pruning. This information can help you identify areas for improvement in your partitioning strategy to enhance spatial pruning

For example, you can do the following with the QuerySpatialCoverage information:

" + }, + "QuerySpatialCoverageMax":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"Double", + "documentation":"

The maximum ratio of spatial coverage.

" + }, + "TableArn":{ + "shape":"AmazonResourceName", + "documentation":"

The Amazon Resource Name (ARN) of the table with the most sub-optimal spatial pruning.

" + }, + "PartitionKey":{ + "shape":"PartitionKeyList", + "documentation":"

The partition key used for partitioning, which can be a default measure_name or a customer defined partition key.

" + } + }, + "documentation":"

Provides insights into the table with the most sub-optimal spatial range scanned by your query.

" + }, "QueryStatus":{ "type":"structure", "members":{ @@ -1001,6 +1108,30 @@ "min":1, "sensitive":true }, + "QueryTemporalRange":{ + "type":"structure", + "members":{ + "Max":{ + "shape":"QueryTemporalRangeMax", + "documentation":"

Encapsulates the following properties that provide insights into the most sub-optimal performing table on the temporal axis:

" + } + }, + "documentation":"

Provides insights into the temporal range of the query, including the table with the largest (max) time range.

" + }, + "QueryTemporalRangeMax":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"Long", + "documentation":"

The maximum duration in nanoseconds between the start and end of the query.

" + }, + "TableArn":{ + "shape":"AmazonResourceName", + "documentation":"

The Amazon Resource Name (ARN) of the table which is queried with the largest time range.

" + } + }, + "documentation":"

Provides insights into the table with the most sub-optimal temporal pruning scanned by your query.

" + }, "ResourceName":{"type":"string"}, "ResourceNotFoundException":{ "type":"structure", @@ -1246,6 +1377,53 @@ }, "documentation":"

Structure that describes scheduled query.

" }, + "ScheduledQueryInsights":{ + "type":"structure", + "required":["Mode"], + "members":{ + "Mode":{ + "shape":"ScheduledQueryInsightsMode", + "documentation":"

Provides the following modes to enable ScheduledQueryInsights:

" + } + }, + "documentation":"

Encapsulates settings for enabling QueryInsights on an ExecuteScheduledQueryRequest.

" + }, + "ScheduledQueryInsightsMode":{ + "type":"string", + "enum":[ + "ENABLED_WITH_RATE_CONTROL", + "DISABLED" + ] + }, + "ScheduledQueryInsightsResponse":{ + "type":"structure", + "members":{ + "QuerySpatialCoverage":{ + "shape":"QuerySpatialCoverage", + "documentation":"

Provides insights into the spatial coverage of the query, including the table with sub-optimal (max) spatial pruning. This information can help you identify areas for improvement in your partitioning strategy to enhance spatial pruning.

" + }, + "QueryTemporalRange":{ + "shape":"QueryTemporalRange", + "documentation":"

Provides insights into the temporal range of the query, including the table with the largest (max) time range. Following are some of the potential options for optimizing time-based pruning:

" + }, + "QueryTableCount":{ + "shape":"Long", + "documentation":"

Indicates the number of tables in the query.

", + "box":true + }, + "OutputRows":{ + "shape":"Long", + "documentation":"

Indicates the total number of rows returned as part of the query result set. You can use this data to validate if the number of rows in the result set have changed as part of the query tuning exercise.

", + "box":true + }, + "OutputBytes":{ + "shape":"Long", + "documentation":"

Indicates the size of query result set in bytes. You can use this data to validate if the result set has changed as part of the query tuning exercise.

", + "box":true + } + }, + "documentation":"

Provides various insights and metrics related to the ExecuteScheduledQueryRequest that was executed.

" + }, "ScheduledQueryList":{ "type":"list", "member":{"shape":"ScheduledQuery"} @@ -1284,6 +1462,10 @@ "shape":"ExecutionStats", "documentation":"

Runtime statistics for a scheduled run.

" }, + "QueryInsightsResponse":{ + "shape":"ScheduledQueryInsightsResponse", + "documentation":"

Provides various insights and metrics related to the run summary of the scheduled query.

" + }, "ErrorReportLocation":{ "shape":"ErrorReportLocation", "documentation":"

S3 location for error report.

" diff --git a/botocore/handlers.py b/botocore/handlers.py index 9a7f78acef..6c68473d4e 100644 --- a/botocore/handlers.py +++ b/botocore/handlers.py @@ -1245,7 +1245,11 @@ def document_expires_shape(section, event_name, **kwargs): def _handle_200_error(operation_model, response_dict, **kwargs): # S3 can return a 200 response with an error embedded in the body. # Convert the 200 to a 500 for retry resolution in ``_update_status_code``. - if not response_dict or operation_model.has_streaming_output: + if ( + not response_dict + or operation_model.has_streaming_output + or operation_model.has_event_stream_output + ): # Operations with streaming response blobs are excluded as they # can't be reliably distinguished from an S3 error. return diff --git a/docs/source/conf.py b/docs/source/conf.py index be9f4d02f6..9fe210b7cb 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -59,7 +59,7 @@ # The short X.Y version. version = '1.35.' # The full version, including alpha/beta/rc tags. -release = '1.35.45' +release = '1.35.46' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages.