diff --git a/.changes/1.35.77.json b/.changes/1.35.77.json new file mode 100644 index 0000000000..364f8c259c --- /dev/null +++ b/.changes/1.35.77.json @@ -0,0 +1,37 @@ +[ + { + "category": "``appsync``", + "description": "Provides description of new Amazon Bedrock runtime datasource.", + "type": "api-change" + }, + { + "category": "``cognito-idp``", + "description": "Change `CustomDomainConfig` from a required to an optional parameter for the `UpdateUserPoolDomain` operation.", + "type": "api-change" + }, + { + "category": "``ec2``", + "description": "This release includes a new API for modifying instance network-performance-options after launch.", + "type": "api-change" + }, + { + "category": "``ecs``", + "description": "This is a documentation only update to address various tickets for Amazon ECS.", + "type": "api-change" + }, + { + "category": "``keyspaces``", + "description": "Amazon Keyspaces: adding the list of IAM actions required by the UpdateKeyspace API.", + "type": "api-change" + }, + { + "category": "``medialive``", + "description": "H265 outputs now support disabling the deblocking filter.", + "type": "api-change" + }, + { + "category": "``workspaces``", + "description": "Added text to clarify case-sensitivity", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index c4ca8612d7..8a90a18ecf 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -32,7 +32,7 @@ jobs: run: | python scripts/ci/run-tests --with-cov --with-xdist - name: Run codecov - uses: codecov/codecov-action@5c47607acb93fed5485fdbf7232e8a31425f672a + uses: codecov/codecov-action@7f8b4b4bde536c465e797be725718b88c5d95e0e with: directory: tests diff --git a/.github/workflows/stale_issue.yml b/.github/workflows/stale_issue.yml index 07acdbe065..7789fe4889 100644 --- a/.github/workflows/stale_issue.yml +++ b/.github/workflows/stale_issue.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest name: Stale issue job steps: - - uses: aws-actions/stale-issue-cleanup@2017b87caa8e25014362d434a980d60fa758f3af + - uses: aws-actions/stale-issue-cleanup@413d85a1603df4f0a8158f5f3c8204ab1691313e with: issue-types: issues stale-issue-message: Greetings! It looks like this issue hasn’t been diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e1388a75af..041af12105 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,18 @@ CHANGELOG ========= +1.35.77 +======= + +* api-change:``appsync``: Provides description of new Amazon Bedrock runtime datasource. +* api-change:``cognito-idp``: Change `CustomDomainConfig` from a required to an optional parameter for the `UpdateUserPoolDomain` operation. +* api-change:``ec2``: This release includes a new API for modifying instance network-performance-options after launch. +* api-change:``ecs``: This is a documentation only update to address various tickets for Amazon ECS. +* api-change:``keyspaces``: Amazon Keyspaces: adding the list of IAM actions required by the UpdateKeyspace API. +* api-change:``medialive``: H265 outputs now support disabling the deblocking filter. +* api-change:``workspaces``: Added text to clarify case-sensitivity + + 1.35.76 ======= diff --git a/botocore/__init__.py b/botocore/__init__.py index 7b1f0454c9..fbead541ac 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import os import re -__version__ = '1.35.76' +__version__ = '1.35.77' class NullHandler(logging.Handler): diff --git a/botocore/data/appsync/2017-07-25/service-2.json b/botocore/data/appsync/2017-07-25/service-2.json index 7ecb40d417..92f851bf5d 100644 --- a/botocore/data/appsync/2017-07-25/service-2.json +++ b/botocore/data/appsync/2017-07-25/service-2.json @@ -2462,7 +2462,7 @@ }, "type":{ "shape":"DataSourceType", - "documentation":"

The type of the data source.

" + "documentation":"

The type of the data source.

" }, "serviceRoleArn":{ "shape":"String", diff --git a/botocore/data/cognito-idp/2016-04-18/service-2.json b/botocore/data/cognito-idp/2016-04-18/service-2.json index 26a1bea22b..fe6dac1fed 100644 --- a/botocore/data/cognito-idp/2016-04-18/service-2.json +++ b/botocore/data/cognito-idp/2016-04-18/service-2.json @@ -8700,8 +8700,7 @@ "type":"structure", "required":[ "Domain", - "UserPoolId", - "CustomDomainConfig" + "UserPoolId" ], "members":{ "Domain":{ diff --git a/botocore/data/ec2/2016-11-15/service-2.json b/botocore/data/ec2/2016-11-15/service-2.json index 9d7e611990..ed8d7ccf21 100644 --- a/botocore/data/ec2/2016-11-15/service-2.json +++ b/botocore/data/ec2/2016-11-15/service-2.json @@ -2835,7 +2835,7 @@ }, "input":{"shape":"DescribeInstanceTopologyRequest"}, "output":{"shape":"DescribeInstanceTopologyResult"}, - "documentation":"

Describes a tree-based hierarchy that represents the physical host placement of your EC2 instances within an Availability Zone or Local Zone. You can use this information to determine the relative proximity of your EC2 instances within the Amazon Web Services network to support your tightly coupled workloads.

Limitations

For more information, see Amazon EC2 instance topology in the Amazon EC2 User Guide.

" + "documentation":"

Describes a tree-based hierarchy that represents the physical host placement of your EC2 instances within an Availability Zone or Local Zone. You can use this information to determine the relative proximity of your EC2 instances within the Amazon Web Services network to support your tightly coupled workloads.

Limitations

For more information, see Amazon EC2 instance topology in the Amazon EC2 User Guide.

" }, "DescribeInstanceTypeOfferings":{ "name":"DescribeInstanceTypeOfferings", @@ -5335,6 +5335,16 @@ "output":{"shape":"ModifyInstanceMetadataOptionsResult"}, "documentation":"

Modify the instance metadata parameters on a running or stopped instance. When you modify the parameters on a stopped instance, they are applied when the instance is started. When you modify the parameters on a running instance, the API responds with a state of “pending”. After the parameter modifications are successfully applied to the instance, the state of the modifications changes from “pending” to “applied” in subsequent describe-instances API calls. For more information, see Instance metadata and user data in the Amazon EC2 User Guide.

" }, + "ModifyInstanceNetworkPerformanceOptions":{ + "name":"ModifyInstanceNetworkPerformanceOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyInstanceNetworkPerformanceRequest"}, + "output":{"shape":"ModifyInstanceNetworkPerformanceResult"}, + "documentation":"

Change the configuration of the network performance options for an existing instance.

" + }, "ModifyInstancePlacement":{ "name":"ModifyInstancePlacement", "http":{ @@ -9862,6 +9872,21 @@ "locationName":"item" } }, + "BandwidthWeightingType":{ + "type":"string", + "enum":[ + "default", + "vpc-1", + "ebs-1" + ] + }, + "BandwidthWeightingTypeList":{ + "type":"list", + "member":{ + "shape":"BandwidthWeightingType", + "locationName":"item" + } + }, "BareMetal":{ "type":"string", "enum":[ @@ -22773,7 +22798,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters. Filter names and values are case-sensitive.

", + "documentation":"

One or more filters. Filter names and values are case-sensitive.

", "locationName":"Filter" }, "MaxResults":{ @@ -22816,7 +22841,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

The filters.

", + "documentation":"

The filters.

", "locationName":"Filter" }, "NextToken":{ @@ -24229,7 +24254,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters.

", + "documentation":"

One or more filters.

", "locationName":"filter" } }, @@ -36739,6 +36764,11 @@ "documentation":"

The boot mode that is used to boot the instance at launch or start. For more information, see Boot modes in the Amazon EC2 User Guide.

", "locationName":"currentInstanceBootMode" }, + "NetworkPerformanceOptions":{ + "shape":"InstanceNetworkPerformanceOptions", + "documentation":"

Contains settings for the network performance options for your instance.

", + "locationName":"networkPerformanceOptions" + }, "Operator":{ "shape":"OperatorResponse", "documentation":"

The service provider that manages the instance.

", @@ -36993,6 +37023,14 @@ "default" ] }, + "InstanceBandwidthWeighting":{ + "type":"string", + "enum":[ + "default", + "vpc-1", + "ebs-1" + ] + }, "InstanceBlockDeviceMapping":{ "type":"structure", "members":{ @@ -38109,6 +38147,27 @@ "locationName":"item" } }, + "InstanceNetworkPerformanceOptions":{ + "type":"structure", + "members":{ + "BandwidthWeighting":{ + "shape":"InstanceBandwidthWeighting", + "documentation":"

When you configure network bandwidth weighting, you can boost your baseline bandwidth for either networking or EBS by up to 25%. The total available baseline bandwidth for your instance remains the same. The default option uses the standard bandwidth configuration for your instance type.

", + "locationName":"bandwidthWeighting" + } + }, + "documentation":"

With network performance options, you can adjust your bandwidth preferences to meet the needs of the workload that runs on your instance.

" + }, + "InstanceNetworkPerformanceOptionsRequest":{ + "type":"structure", + "members":{ + "BandwidthWeighting":{ + "shape":"InstanceBandwidthWeighting", + "documentation":"

Specify the bandwidth weighting option to boost the associated type of baseline bandwidth, as follows:

default

This option uses the standard bandwidth configuration for your instance type.

vpc-1

This option boosts your networking baseline bandwidth and reduces your EBS baseline bandwidth.

ebs-1

This option boosts your EBS baseline bandwidth and reduces your networking baseline bandwidth.

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

Configure network performance options for your instance that are geared towards performance improvements based on the workload that it runs.

" + }, "InstancePrivateIpAddress":{ "type":"structure", "members":{ @@ -42992,6 +43051,27 @@ "locationName":"item" } }, + "LaunchTemplateNetworkPerformanceOptions":{ + "type":"structure", + "members":{ + "BandwidthWeighting":{ + "shape":"InstanceBandwidthWeighting", + "documentation":"

When you configure network bandwidth weighting, you can boost baseline bandwidth for either networking or EBS by up to 25%. The total available baseline bandwidth for your instance remains the same. The default option uses the standard bandwidth configuration for your instance type.

", + "locationName":"bandwidthWeighting" + } + }, + "documentation":"

With network performance options, you can adjust your bandwidth preferences to meet the needs of the workload that runs on your instance at launch.

" + }, + "LaunchTemplateNetworkPerformanceOptionsRequest":{ + "type":"structure", + "members":{ + "BandwidthWeighting":{ + "shape":"InstanceBandwidthWeighting", + "documentation":"

Specify the bandwidth weighting option to boost the associated type of baseline bandwidth, as follows:

default

This option uses the standard bandwidth configuration for your instance type.

vpc-1

This option boosts your networking baseline bandwidth and reduces your EBS baseline bandwidth.

ebs-1

This option boosts your EBS baseline bandwidth and reduces your networking baseline bandwidth.

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

When you configure network performance options in your launch template, your instance is geared for performance improvements based on the workload that it runs as soon as it's available.

" + }, "LaunchTemplateOverrides":{ "type":"structure", "members":{ @@ -45479,6 +45559,42 @@ } } }, + "ModifyInstanceNetworkPerformanceRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "BandwidthWeighting" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The ID of the instance to update.

" + }, + "BandwidthWeighting":{ + "shape":"InstanceBandwidthWeighting", + "documentation":"

Specify the bandwidth weighting option to boost the associated type of baseline bandwidth, as follows:

default

This option uses the standard bandwidth configuration for your instance type.

vpc-1

This option boosts your networking baseline bandwidth and reduces your EBS baseline bandwidth.

ebs-1

This option boosts your EBS baseline bandwidth and reduces your networking baseline bandwidth.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "ModifyInstanceNetworkPerformanceResult":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The instance ID that was updated.

", + "locationName":"instanceId" + }, + "BandwidthWeighting":{ + "shape":"InstanceBandwidthWeighting", + "documentation":"

Contains the updated configuration for bandwidth weighting on the specified instance.

", + "locationName":"bandwidthWeighting" + } + } + }, "ModifyInstancePlacementRequest":{ "type":"structure", "required":["InstanceId"], @@ -48412,6 +48528,11 @@ "shape":"EnaSrdSupported", "documentation":"

Indicates whether the instance type supports ENA Express. ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances.

", "locationName":"enaSrdSupported" + }, + "BandwidthWeightings":{ + "shape":"BandwidthWeightingTypeList", + "documentation":"

A list of valid settings for configurable bandwidth weighting for the instance type, if supported.

", + "locationName":"bandwidthWeightings" } }, "documentation":"

Describes the networking features of the instance type.

" @@ -53004,6 +53125,10 @@ "Operator":{ "shape":"OperatorRequest", "documentation":"

The entity that manages the launch template.

" + }, + "NetworkPerformanceOptions":{ + "shape":"LaunchTemplateNetworkPerformanceOptionsRequest", + "documentation":"

Contains launch template settings to boost network performance for the type of workload that runs on your instance.

" } }, "documentation":"

The information to include in the launch template.

You must specify at least one parameter for the launch template data.

" @@ -54304,6 +54429,11 @@ "shape":"OperatorResponse", "documentation":"

The entity that manages the launch template.

", "locationName":"operator" + }, + "NetworkPerformanceOptions":{ + "shape":"LaunchTemplateNetworkPerformanceOptions", + "documentation":"

Contains the launch template settings for network performance options for your instance.

", + "locationName":"networkPerformanceOptions" } }, "documentation":"

The information for a launch template.

" @@ -55270,6 +55400,10 @@ "shape":"Boolean", "documentation":"

If you’re launching an instance into a dual-stack or IPv6-only subnet, you can enable assigning a primary IPv6 address. A primary IPv6 address is an IPv6 GUA address associated with an ENI that you have enabled to use a primary IPv6 address. Use this option if an instance relies on its IPv6 address not changing. When you launch the instance, Amazon Web Services will automatically assign an IPv6 address associated with the ENI attached to your instance to be the primary IPv6 address. Once you enable an IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. If you have multiple IPv6 addresses associated with an ENI attached to your instance and you enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI becomes the primary IPv6 address.

" }, + "NetworkPerformanceOptions":{ + "shape":"InstanceNetworkPerformanceOptionsRequest", + "documentation":"

Contains settings for the network performance options for the instance.

" + }, "Operator":{ "shape":"OperatorRequest", "documentation":"

Reserved for internal use.

" diff --git a/botocore/data/ecs/2014-11-13/service-2.json b/botocore/data/ecs/2014-11-13/service-2.json index 4a7000b9d2..8f5a1fdf9a 100644 --- a/botocore/data/ecs/2014-11-13/service-2.json +++ b/botocore/data/ecs/2014-11-13/service-2.json @@ -1295,7 +1295,7 @@ "documentation":"

The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, the default value of 0 is used.

" } }, - "documentation":"

The details of a capacity provider strategy. A capacity provider strategy can be set when using the RunTaskor CreateCluster APIs or as the default capacity provider strategy for a cluster with the CreateCluster API.

Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateClusterCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.

With FARGATE_SPOT, you can run interruption tolerant tasks at a rate that's discounted compared to the FARGATE price. FARGATE_SPOT runs tasks on spare compute capacity. When Amazon Web Services needs the capacity back, your tasks are interrupted with a two-minute warning. FARGATE_SPOT supports Linux tasks with the X86_64 architecture on platform version 1.3.0 or later. FARGATE_SPOT supports Linux tasks with the ARM64 architecture on platform version 1.4.0 or later.

A capacity provider strategy may contain a maximum of 6 capacity providers.

" + "documentation":"

The details of a capacity provider strategy. A capacity provider strategy can be set when using the RunTaskor CreateCluster APIs or as the default capacity provider strategy for a cluster with the CreateCluster API.

Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateClusterCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.

With FARGATE_SPOT, you can run interruption tolerant tasks at a rate that's discounted compared to the FARGATE price. FARGATE_SPOT runs tasks on spare compute capacity. When Amazon Web Services needs the capacity back, your tasks are interrupted with a two-minute warning. FARGATE_SPOT supports Linux tasks with the X86_64 architecture on platform version 1.3.0 or later. FARGATE_SPOT supports Linux tasks with the ARM64 architecture on platform version 1.4.0 or later.

A capacity provider strategy can contain a maximum of 20 capacity providers.

" }, "CapacityProviderStrategyItemBase":{ "type":"integer", @@ -2175,7 +2175,7 @@ }, "capacityProviderStrategy":{ "shape":"CapacityProviderStrategy", - "documentation":"

The capacity provider strategy to use for the service.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

A capacity provider strategy may contain a maximum of 6 capacity providers.

" + "documentation":"

The capacity provider strategy to use for the service.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

A capacity provider strategy can contain a maximum of 20 capacity providers.

" }, "platformVersion":{ "shape":"String", @@ -2646,11 +2646,11 @@ }, "maximumPercent":{ "shape":"BoxedInteger", - "documentation":"

If a service is using the rolling update (ECS) deployment type, the maximumPercent parameter represents an upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the REPLICA service scheduler and has a desiredCount of four tasks and a maximumPercent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default maximumPercent value for a service using the REPLICA service scheduler is 200%.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types, and tasks in the service use the EC2 launch type, the maximum percent value is set to the default value. The maximum percent value is used to define the upper limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state.

You can't specify a custom maximumPercent value for a service that uses either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and has tasks that use the EC2 launch type.

If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.

" + "documentation":"

If a service is using the rolling update (ECS) deployment type, the maximumPercent parameter represents an upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the REPLICA service scheduler and has a desiredCount of four tasks and a maximumPercent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default maximumPercent value for a service using the REPLICA service scheduler is 200%.

The Amazon ECS scheduler uses this parameter to replace unhealthy tasks by starting replacement tasks first and then stopping the unhealthy tasks, as long as cluster resources for starting replacement tasks are available. For more information about how the scheduler replaces unhealthy tasks, see Amazon ECS services.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types, and tasks in the service use the EC2 launch type, the maximum percent value is set to the default value. The maximum percent value is used to define the upper limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state.

You can't specify a custom maximumPercent value for a service that uses either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and has tasks that use the EC2 launch type.

If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.

" }, "minimumHealthyPercent":{ "shape":"BoxedInteger", - "documentation":"

If a service is using the rolling update (ECS) deployment type, the minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks.

For services that do not use a load balancer, the following should be noted:

For services that do use a load balancer, the following should be noted:

The default value for a replica service for minimumHealthyPercent is 100%. The default minimumHealthyPercent value for a service using the DAEMON service schedule is 0% for the CLI, the Amazon Web Services SDKs, and the APIs and 50% for the Amazon Web Services Management Console.

The minimum number of healthy tasks during a deployment is the desiredCount multiplied by the minimumHealthyPercent/100, rounded up to the nearest integer value.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the EC2 launch type, the minimum healthy percent value is set to the default value. The minimum healthy percent value is used to define the lower limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state.

You can't specify a custom minimumHealthyPercent value for a service that uses either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and has tasks that use the EC2 launch type.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.

" + "documentation":"

If a service is using the rolling update (ECS) deployment type, the minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks.

If any tasks are unhealthy and if maximumPercent doesn't allow the Amazon ECS scheduler to start replacement tasks, the scheduler stops the unhealthy tasks one-by-one — using the minimumHealthyPercent as a constraint — to clear up capacity to launch replacement tasks. For more information about how the scheduler replaces unhealthy tasks, see Amazon ECS services .

For services that do not use a load balancer, the following should be noted:

For services that do use a load balancer, the following should be noted:

The default value for a replica service for minimumHealthyPercent is 100%. The default minimumHealthyPercent value for a service using the DAEMON service schedule is 0% for the CLI, the Amazon Web Services SDKs, and the APIs and 50% for the Amazon Web Services Management Console.

The minimum number of healthy tasks during a deployment is the desiredCount multiplied by the minimumHealthyPercent/100, rounded up to the nearest integer value.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the EC2 launch type, the minimum healthy percent value is set to the default value. The minimum healthy percent value is used to define the lower limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state.

You can't specify a custom minimumHealthyPercent value for a service that uses either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and has tasks that use the EC2 launch type.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.

" }, "alarms":{ "shape":"DeploymentAlarms", @@ -4695,7 +4695,7 @@ "members":{ "name":{ "shape":"SettingName", - "documentation":"

The Amazon ECS account setting name to modify.

The following are the valid values for the account setting name.

" + "documentation":"

The Amazon ECS account setting name to modify.

The following are the valid values for the account setting name.

" }, "value":{ "shape":"String", @@ -5030,7 +5030,7 @@ "members":{ "capacityProviderStrategy":{ "shape":"CapacityProviderStrategy", - "documentation":"

The capacity provider strategy to use for the task.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

When you use cluster auto scaling, you must specify capacityProviderStrategy and not launchType.

A capacity provider strategy may contain a maximum of 6 capacity providers.

" + "documentation":"

The capacity provider strategy to use for the task.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

When you use cluster auto scaling, you must specify capacityProviderStrategy and not launchType.

A capacity provider strategy can contain a maximum of 20 capacity providers.

" }, "cluster":{ "shape":"String", diff --git a/botocore/data/endpoints.json b/botocore/data/endpoints.json index 1cbdc68d02..7f973b234b 100644 --- a/botocore/data/endpoints.json +++ b/botocore/data/endpoints.json @@ -4505,27 +4505,132 @@ }, "cognito-identity" : { "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ca-central-1" : { }, - "ca-west-1" : { }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "cognito-identity.af-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-east-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-northeast-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-northeast-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-northeast-3.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-south-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-southeast-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-southeast-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-southeast-3.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-southeast-4.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ca-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "cognito-identity.ca-west-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-central-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-north-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-south-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-west-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-west-2.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "cognito-identity.eu-west-3.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -4554,32 +4659,76 @@ "deprecated" : true, "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com" }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "sa-east-1" : { }, + "il-central-1" : { + "variants" : [ { + "hostname" : "cognito-identity.il-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "cognito-identity.me-central-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "cognito-identity.me-south-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "cognito-identity.sa-east-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-east-1.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-east-1.amazonaws.com", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-east-2.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-east-2.amazonaws.com", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-west-1.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-west-1.amazonaws.com", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-west-2.amazonaws.com", + "tags" : [ "dualstack" ] } ] } } @@ -23840,7 +23989,12 @@ }, "cognito-identity" : { "endpoints" : { - "cn-north-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "cognito-identity.cn-north-1.amazonaws.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "compute-optimizer" : { @@ -26118,8 +26272,14 @@ }, "us-gov-west-1" : { "variants" : [ { + "hostname" : "cognito-identity-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "cognito-identity-fips.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cognito-identity.us-gov-west-1.amazonaws.com", + "tags" : [ "dualstack" ] } ] } } @@ -30481,6 +30641,23 @@ "us-iso-west-1" : { } } }, + "bedrock" : { + "endpoints" : { + "bedrock-runtime-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "hostname" : "bedrock-runtime.us-iso-east-1.c2s.ic.gov" + }, + "bedrock-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "hostname" : "bedrock.us-iso-east-1.c2s.ic.gov" + }, + "us-iso-east-1" : { } + } + }, "cloudcontrolapi" : { "endpoints" : { "us-iso-east-1" : { }, @@ -31455,13 +31632,21 @@ }, "budgets" : { "endpoints" : { + "aws-iso-b-global" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "hostname" : "budgets.global.sc2s.sgov.gov" + }, "us-isob-east-1" : { "credentialScope" : { "region" : "us-isob-east-1" }, - "hostname" : "budgets.us-isob-east-1.sc2s.sgov.gov" + "hostname" : "budgets.global.sc2s.sgov.gov" } - } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-b-global" }, "cloudcontrolapi" : { "endpoints" : { diff --git a/botocore/data/keyspaces/2022-02-10/service-2.json b/botocore/data/keyspaces/2022-02-10/service-2.json index 8c2f872b88..b6ec9a09c5 100644 --- a/botocore/data/keyspaces/2022-02-10/service-2.json +++ b/botocore/data/keyspaces/2022-02-10/service-2.json @@ -328,7 +328,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Adds a new Amazon Web Services Region to the keyspace. You can add a new Region to a keyspace that is either a single or a multi-Region keyspace. The new replica Region is applied to all tables in the keyspace. For more information, see Add an Amazon Web Services Region to a keyspace in Amazon Keyspaces in the Amazon Keyspaces Developer Guide.

To change a single-Region to a multi-Region keyspace, you have to enable client-side timestamps for all tables in the keyspace. For more information, see Client-side timestamps in Amazon Keyspaces in the Amazon Keyspaces Developer Guide.

" + "documentation":"

Adds a new Amazon Web Services Region to the keyspace. You can add a new Region to a keyspace that is either a single or a multi-Region keyspace. Amazon Keyspaces is going to replicate all tables in the keyspace to the new Region. To successfully replicate all tables to the new Region, they must use client-side timestamps for conflict resolution. To enable client-side timestamps, specify clientSideTimestamps.status = enabled when invoking the API. For more information about client-side timestamps, see Client-side timestamps in Amazon Keyspaces in the Amazon Keyspaces Developer Guide.

To add a Region to a keyspace using the UpdateKeyspace API, the IAM principal needs permissions for the following IAM actions:

If the keyspace contains a table that is configured in provisioned mode with auto scaling enabled, the following additional IAM actions need to be allowed.

To use the UpdateKeyspace API, the IAM principal also needs permissions to create a service-linked role with the following elements:

For more information, see Configure the IAM permissions required to add an Amazon Web Services Region to a keyspace in the Amazon Keyspaces Developer Guide.

" }, "UpdateTable":{ "name":"UpdateTable", diff --git a/botocore/data/medialive/2017-10-14/service-2.json b/botocore/data/medialive/2017-10-14/service-2.json index d0bdf73695..b31a894c23 100644 --- a/botocore/data/medialive/2017-10-14/service-2.json +++ b/botocore/data/medialive/2017-10-14/service-2.json @@ -11209,6 +11209,11 @@ "shape": "__integerMin1Max51", "locationName": "minQp", "documentation": "Sets the minimum QP. If you aren't familiar with quantization adjustment, leave the field empty. MediaLive will\napply an appropriate value." + }, + "Deblocking": { + "shape": "H265Deblocking", + "locationName": "deblocking", + "documentation": "Enable or disable the deblocking filter for this codec. The filter reduces blocking artifacts at block boundaries,\nwhich improves overall video quality. If the filter is disabled, visible block edges might appear in the output,\nespecially at lower bitrates." } }, "documentation": "H265 Settings", @@ -18891,7 +18896,10 @@ "Tags": { "shape": "Tags", "locationName": "tags", - "documentation": "A collection of key-value pairs." + "documentation": "A collection of key-value pairs.", + "deprecated": true, + "deprecatedMessage": "This API is deprecated. You must use UpdateTagsForResource instead.", + "deprecatedSince": "2024-11-20" }, "WhitelistRules": { "shape": "__listOfInputWhitelistRuleCidr", @@ -28078,6 +28086,14 @@ } }, "documentation": "Multiplex M2ts Settings" + }, + "H265Deblocking": { + "type": "string", + "documentation": "H265 Deblocking", + "enum": [ + "DISABLED", + "ENABLED" + ] } }, "documentation": "API for AWS Elemental MediaLive" diff --git a/botocore/data/workspaces/2015-04-08/service-2.json b/botocore/data/workspaces/2015-04-08/service-2.json index c6925f80f7..02d2584531 100644 --- a/botocore/data/workspaces/2015-04-08/service-2.json +++ b/botocore/data/workspaces/2015-04-08/service-2.json @@ -6749,7 +6749,7 @@ }, "UserName":{ "shape":"UserName", - "documentation":"

The user name of the user for the WorkSpace. This user name must exist in the Directory Service directory for the WorkSpace.

The reserved keyword, [UNDEFINED], is used when creating user-decoupled WorkSpaces.

" + "documentation":"

The user name of the user for the WorkSpace. This user name must exist in the Directory Service directory for the WorkSpace.

The username is not case-sensitive, but we recommend matching the case in the Directory Service directory to avoid potential incompatibilities.

The reserved keyword, [UNDEFINED], is used when creating user-decoupled WorkSpaces.

" }, "BundleId":{ "shape":"BundleId", diff --git a/botocore/endpoint_provider.py b/botocore/endpoint_provider.py index 0fbd802b8d..d76f9ac245 100644 --- a/botocore/endpoint_provider.py +++ b/botocore/endpoint_provider.py @@ -577,6 +577,7 @@ class ParameterType(Enum): string = str boolean = bool + stringarray = tuple class ParameterDefinition: @@ -600,7 +601,7 @@ def __init__( except AttributeError: raise EndpointResolutionError( msg=f"Unknown parameter type: {parameter_type}. " - "A parameter must be of type string or boolean." + "A parameter must be of type string, boolean, or stringarray." ) self.documentation = documentation self.builtin = builtIn diff --git a/botocore/model.py b/botocore/model.py index 70d20f8cca..efd15e90e7 100644 --- a/botocore/model.py +++ b/botocore/model.py @@ -624,6 +624,10 @@ def context_parameters(self): and 'name' in shape.metadata['contextParam'] ] + @CachedProperty + def operation_context_parameters(self): + return self._operation_model.get('operationContextParams', []) + @CachedProperty def request_compression(self): return self._operation_model.get('requestcompression') diff --git a/botocore/regions.py b/botocore/regions.py index 4c23737270..d3b2705727 100644 --- a/botocore/regions.py +++ b/botocore/regions.py @@ -22,6 +22,8 @@ import re from enum import Enum +import jmespath + from botocore import UNSIGNED, xform_name from botocore.auth import AUTH_TYPE_MAPS, HAS_CRT from botocore.crt import CRT_SUPPORTED_AUTH_TYPES @@ -578,6 +580,13 @@ def _resolve_param_from_context( ) if dynamic is not None: return dynamic + operation_context_params = ( + self._resolve_param_as_operation_context_param( + param_name, operation_model, call_args + ) + ) + if operation_context_params is not None: + return operation_context_params return self._resolve_param_as_client_context_param(param_name) def _resolve_param_as_static_context_param( @@ -600,6 +609,14 @@ def _resolve_param_as_client_context_param(self, param_name): client_ctx_varname = client_ctx_params[param_name] return self._client_context.get(client_ctx_varname) + def _resolve_param_as_operation_context_param( + self, param_name, operation_model, call_args + ): + operation_ctx_params = operation_model.operation_context_parameters + if param_name in operation_ctx_params: + path = operation_ctx_params[param_name]['path'] + return jmespath.search(path, call_args) + def _resolve_param_as_builtin(self, builtin_name, builtins): if builtin_name not in EndpointResolverBuiltins.__members__.values(): raise UnknownEndpointResolutionBuiltInName(name=builtin_name) diff --git a/botocore/utils.py b/botocore/utils.py index a54f4a39d3..2d55e8a8dc 100644 --- a/botocore/utils.py +++ b/botocore/utils.py @@ -1479,7 +1479,7 @@ def lru_cache_weakref(*cache_args, **cache_kwargs): functools implementation which offers ``max_size`` and ``typed`` properties. lru_cache is a global cache even when used on a method. The cache's - reference to ``self`` will prevent garbace collection of the object. This + reference to ``self`` will prevent garbage collection of the object. This wrapper around functools.lru_cache replaces the reference to ``self`` with a weak reference to not interfere with garbage collection. """ @@ -1491,6 +1491,9 @@ def func_with_weakref(weakref_to_self, *args, **kwargs): @functools.wraps(func) def inner(self, *args, **kwargs): + for kwarg_key, kwarg_value in kwargs.items(): + if isinstance(kwarg_value, list): + kwargs[kwarg_key] = tuple(kwarg_value) return func_with_weakref(weakref.ref(self), *args, **kwargs) inner.cache_info = func_with_weakref.cache_info diff --git a/docs/source/conf.py b/docs/source/conf.py index 9df15468a5..08d037549a 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.76' +release = '1.35.77' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/tests/unit/data/endpoints/test-cases/array-index.json b/tests/unit/data/endpoints/test-cases/array-index.json new file mode 100644 index 0000000000..aa73d460d3 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/array-index.json @@ -0,0 +1,37 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "Access an array index at index 0", + "params": { + "ResourceList": ["resource"] + }, + "expect": { + "endpoint": { + "url": "https://www.resource.example.com" + } + } + }, + { + "documentation": "Resolved value when array is explictly set to empty", + "params": { + "ResourceList": [] + }, + "expect": { + "endpoint": { + "url": "https://www.example.com" + } + } + }, + { + "documentation": "Resolved value to default if array is unset", + "params": { + }, + "expect": { + "endpoint": { + "url": "https://www.default1.example.com" + } + } + } + ] +} diff --git a/tests/unit/data/endpoints/valid-rules/array-index.json b/tests/unit/data/endpoints/valid-rules/array-index.json new file mode 100644 index 0000000000..3d426b09aa --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/array-index.json @@ -0,0 +1,47 @@ +{ + "version": "1.3", + "parameters": { + "ResourceList": { + "required": true, + "default": ["default1", "default2"], + "type": "stringArray" + } + }, + "rules": [ + { + "documentation": "Array is set, retrieve index 0", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "ResourceList" + } + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "ResourceList" + }, + "[0]" + ], + "assign": "resourceid" + } + ], + "endpoint": { + "url": "https://www.{resourceid}.example.com" + }, + "type": "endpoint" + }, + { + "documentation": "Fallback when array is unset", + "conditions": [], + "endpoint": { + "url": "https://www.example.com" + }, + "type": "endpoint" + } + ] +} diff --git a/tests/unit/test_endpoint_provider.py b/tests/unit/test_endpoint_provider.py index 8bc8c429d0..3d6bf81e32 100644 --- a/tests/unit/test_endpoint_provider.py +++ b/tests/unit/test_endpoint_provider.py @@ -137,6 +137,7 @@ def endpoint_rule(): def ruleset_testcases(): filenames = [ + "array-index", "aws-region", "default-values", "eventbridge",