diff --git a/.changelog/185e4e7e4be34ef89940e98a5bf27055.json b/.changelog/185e4e7e4be34ef89940e98a5bf27055.json new file mode 100644 index 00000000000..dd5969eb122 --- /dev/null +++ b/.changelog/185e4e7e4be34ef89940e98a5bf27055.json @@ -0,0 +1,8 @@ +{ + "id": "185e4e7e-4be3-4ef8-9940-e98a5bf27055", + "type": "feature", + "description": "AWS Elemental MediaConnect now supports Content Quality Analysis for enhanced source stream monitoring. This enables you to track specific audio and video metrics in transport stream source flows, ensuring your content meets quality standards.", + "modules": [ + "service/mediaconnect" + ] +} \ No newline at end of file diff --git a/.changelog/19d83f59e5354897bc2982782ee1ffe8.json b/.changelog/19d83f59e5354897bc2982782ee1ffe8.json new file mode 100644 index 00000000000..4dbb9f6e2f5 --- /dev/null +++ b/.changelog/19d83f59e5354897bc2982782ee1ffe8.json @@ -0,0 +1,8 @@ +{ + "id": "19d83f59-e535-4897-bc29-82782ee1ffe8", + "type": "feature", + "description": "This release adds support for the AVC3 codec and fixes an alignment issue with Japanese vertical captions.", + "modules": [ + "service/mediaconvert" + ] +} \ No newline at end of file diff --git a/.changelog/239daa75615f4a34bbdb22bfc60b7fe3.json b/.changelog/239daa75615f4a34bbdb22bfc60b7fe3.json new file mode 100644 index 00000000000..9076dde9b0c --- /dev/null +++ b/.changelog/239daa75615f4a34bbdb22bfc60b7fe3.json @@ -0,0 +1,8 @@ +{ + "id": "239daa75-615f-4a34-bbdb-22bfc60b7fe3", + "type": "feature", + "description": "Amazon GameLift releases a new game session shutdown feature. Use the Amazon GameLift console or AWS CLI to terminate an in-progress game session that's entered a bad state or is no longer needed.", + "modules": [ + "service/gamelift" + ] +} \ No newline at end of file diff --git a/.changelog/65383f993357456aa66c5076b4ab5172.json b/.changelog/65383f993357456aa66c5076b4ab5172.json new file mode 100644 index 00000000000..e018993ed8f --- /dev/null +++ b/.changelog/65383f993357456aa66c5076b4ab5172.json @@ -0,0 +1,8 @@ +{ + "id": "65383f99-3357-456a-a66c-5076b4ab5172", + "type": "documentation", + "description": "In-flight message typo fix from 20k to 120k.", + "modules": [ + "service/sqs" + ] +} \ No newline at end of file diff --git a/.changelog/cb97ba81f9d84e18a9f4f0f93b65b74d.json b/.changelog/cb97ba81f9d84e18a9f4f0f93b65b74d.json new file mode 100644 index 00000000000..b0cd04cf634 --- /dev/null +++ b/.changelog/cb97ba81f9d84e18a9f4f0f93b65b74d.json @@ -0,0 +1,8 @@ +{ + "id": "cb97ba81-f9d8-4e18-a9f4-f0f93b65b74d", + "type": "feature", + "description": "Modify UpdateGraphQLAPI operation and flag authenticationType as required.", + "modules": [ + "service/appsync" + ] +} \ No newline at end of file diff --git a/.changelog/e1d2080d8d704b5e9c8bddcea0638ca2.json b/.changelog/e1d2080d8d704b5e9c8bddcea0638ca2.json new file mode 100644 index 00000000000..8e54e5d0d11 --- /dev/null +++ b/.changelog/e1d2080d8d704b5e9c8bddcea0638ca2.json @@ -0,0 +1,8 @@ +{ + "id": "e1d2080d-8d70-4b5e-9c8b-ddcea0638ca2", + "type": "feature", + "description": "Adding ETag information with Model Artifacts for Model Registry", + "modules": [ + "service/sagemaker" + ] +} \ No newline at end of file diff --git a/.changelog/ee696f5800d24282b899969de7d5b816.json b/.changelog/ee696f5800d24282b899969de7d5b816.json new file mode 100644 index 00000000000..0dc2c32da3a --- /dev/null +++ b/.changelog/ee696f5800d24282b899969de7d5b816.json @@ -0,0 +1,8 @@ +{ + "id": "ee696f58-00d2-4282-b899-969de7d5b816", + "type": "feature", + "description": "Added ALL_FEATURES_MIGRATION_ORGANIZATION_SIZE_LIMIT_EXCEEDED to ConstraintViolationException for the EnableAllFeatures operation.", + "modules": [ + "service/organizations" + ] +} \ No newline at end of file diff --git a/service/appsync/api_op_UpdateGraphqlApi.go b/service/appsync/api_op_UpdateGraphqlApi.go index 8da10c0882a..f1ccf0b2986 100644 --- a/service/appsync/api_op_UpdateGraphqlApi.go +++ b/service/appsync/api_op_UpdateGraphqlApi.go @@ -34,6 +34,11 @@ type UpdateGraphqlApiInput struct { // This member is required. ApiId *string + // The new authentication type for the GraphqlApi object. + // + // This member is required. + AuthenticationType types.AuthenticationType + // The new name for the GraphqlApi object. // // This member is required. @@ -42,9 +47,6 @@ type UpdateGraphqlApiInput struct { // A list of additional authentication providers for the GraphqlApi API. AdditionalAuthenticationProviders []types.AdditionalAuthenticationProvider - // The new authentication type for the GraphqlApi object. - AuthenticationType types.AuthenticationType - // The enhancedMetricsConfig object. EnhancedMetricsConfig *types.EnhancedMetricsConfig diff --git a/service/appsync/validators.go b/service/appsync/validators.go index 9b3430238c9..da53c7873df 100644 --- a/service/appsync/validators.go +++ b/service/appsync/validators.go @@ -3531,6 +3531,9 @@ func validateOpUpdateGraphqlApiInput(v *UpdateGraphqlApiInput) error { invalidParams.AddNested("LogConfig", err.(smithy.InvalidParamsError)) } } + if len(v.AuthenticationType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("AuthenticationType")) + } if v.UserPoolConfig != nil { if err := validateUserPoolConfig(v.UserPoolConfig); err != nil { invalidParams.AddNested("UserPoolConfig", err.(smithy.InvalidParamsError)) diff --git a/service/comprehend/internal/endpoints/endpoints.go b/service/comprehend/internal/endpoints/endpoints.go index a198be5ec9b..56bb01a5009 100644 --- a/service/comprehend/internal/endpoints/endpoints.go +++ b/service/comprehend/internal/endpoints/endpoints.go @@ -278,9 +278,24 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.AwsIso, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "fips-us-iso-east-1", + }: endpoints.Endpoint{ + Hostname: "comprehend-fips.us-iso-east-1.c2s.ic.gov", + CredentialScope: endpoints.CredentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: aws.TrueTernary, + }, endpoints.EndpointKey{ Region: "us-iso-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-iso-east-1", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "comprehend-fips.us-iso-east-1.c2s.ic.gov", + }, }, }, { diff --git a/service/connect/internal/endpoints/endpoints.go b/service/connect/internal/endpoints/endpoints.go index f1f9ad8c066..e3fd62e19bd 100644 --- a/service/connect/internal/endpoints/endpoints.go +++ b/service/connect/internal/endpoints/endpoints.go @@ -157,12 +157,27 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ca-central-1", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "connect-fips.ca-central-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "eu-west-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "fips-ca-central-1", + }: endpoints.Endpoint{ + Hostname: "connect-fips.ca-central-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ca-central-1", + }, + Deprecated: aws.TrueTernary, + }, endpoints.EndpointKey{ Region: "fips-us-east-1", }: endpoints.Endpoint{ diff --git a/service/gamelift/api_op_CreateBuild.go b/service/gamelift/api_op_CreateBuild.go index 4729493ee3f..144571f15e9 100644 --- a/service/gamelift/api_op_CreateBuild.go +++ b/service/gamelift/api_op_CreateBuild.go @@ -11,35 +11,33 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an Amazon GameLift build resource for your game server software and -// stores the software for deployment to hosting resources. Combine game server -// binaries and dependencies into a single .zip file +// Creates a new Amazon GameLift build resource for your game server binary files. +// Combine game server binaries into a zip file for use with Amazon GameLift. // -// Use the CLI command [upload-build] to quickly and simply create a new build and upload your -// game build .zip file to Amazon GameLift Amazon S3. This helper command -// eliminates the need to explicitly manage access permissions. +// When setting up a new game build for Amazon GameLift, we recommend using the +// CLI command [upload-build]. This helper command combines two tasks: (1) it uploads your build +// files from a file directory to an Amazon GameLift Amazon S3 location, and (2) it +// creates a new build resource. // -// Alternatively, use the CreateBuild action for the following scenarios: +// You can use the CreateBuild operation in the following scenarios: // -// - You want to create a build and upload a game build zip file from in an -// Amazon S3 location that you control. In this scenario, you need to give Amazon -// GameLift permission to access to the Amazon S3 bucket. With permission in place, -// call CreateBuild and specify a build name, the build's runtime operating -// system, and the Amazon S3 storage location where the build file is stored. +// - Create a new game build with build files that are in an Amazon S3 location +// under an Amazon Web Services account that you control. To use this option, you +// give Amazon GameLift access to the Amazon S3 bucket. With permissions in place, +// specify a build name, operating system, and the Amazon S3 storage location of +// your game build. // -// - You want to create a build and upload a local game build zip file to an -// Amazon S3 location that's controlled by Amazon GameLift. (See the upload-build -// CLI command for this scenario.) In this scenario, you need to request temporary -// access credentials to the Amazon GameLift Amazon S3 location. Specify a build -// name and the build's runtime operating system. The response provides an Amazon -// S3 location and a set of temporary access credentials. Use the credentials to -// upload your build files to the specified Amazon S3 location (see [Uploading Objects]in the -// Amazon S3 Developer Guide). You can't update build files after uploading them to -// Amazon GameLift Amazon S3. +// - Upload your build files to a Amazon GameLift Amazon S3 location. To use +// this option, specify a build name and operating system. This operation creates a +// new build resource and also returns an Amazon S3 location with temporary access +// credentials. Use the credentials to manually upload your build files to the +// specified Amazon S3 location. For more information, see [Uploading Objects]in the Amazon S3 +// Developer Guide. After you upload build files to the Amazon GameLift Amazon S3 +// location, you can't update them. // -// If successful, this action creates a new build resource with a unique build ID -// and places it in INITIALIZED status. When the build reaches READY status, you -// can create fleets with it. +// If successful, this operation creates a new build resource with a unique build +// ID and places it in INITIALIZED status. A build must be in READY status before +// you can create fleets with it. // // # Learn more // @@ -75,11 +73,11 @@ type CreateBuildInput struct { // be unique. You can change this value later. Name *string - // The environment that your game server binaries run on. This value determines - // the type of fleet resources that you use for this build. If your game build - // contains multiple executables, they all must run on the same operating system. - // This parameter is required, and there's no default value. You can't change a - // build's operating system later. + // The operating system that your game server binaries run on. This value + // determines the type of fleet resources that you use for this build. If your game + // build contains multiple executables, they all must run on the same operating + // system. You must specify a valid operating system in this request. There is no + // default value. You can't change a build's operating system later. // // Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details // in the [Amazon Linux 2 FAQs]. For game servers that are hosted on AL2 and use Amazon GameLift server diff --git a/service/gamelift/api_op_CreateContainerFleet.go b/service/gamelift/api_op_CreateContainerFleet.go index 22986b56889..95798ef4cd3 100644 --- a/service/gamelift/api_op_CreateContainerFleet.go +++ b/service/gamelift/api_op_CreateContainerFleet.go @@ -128,8 +128,11 @@ type CreateContainerFleetInput struct { // can specify the container group definition's name to use the latest version. // Alternatively, provide an ARN value with a specific version number. // - // Create a container group definition by calling CreateContainerGroupDefinition. This operation creates a ContainerGroupDefinition + // Create a container group definition by calling [CreateContainerGroupDefinition]. This operation creates a [ContainerGroupDefinition] // resource. + // + // [ContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html + // [CreateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateContainerGroupDefinition.html GameServerContainerGroupDefinitionName *string // The number of times to replicate the game server container group on each fleet @@ -265,8 +268,11 @@ type CreateContainerFleetInput struct { // specify the container group definition's name to use the latest version. // Alternatively, provide an ARN value with a specific version number. // - // Create a container group definition by calling CreateContainerGroupDefinition. This operation creates a ContainerGroupDefinition + // Create a container group definition by calling [https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateContainerGroupDefinition.html]. This operation creates a [https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html] // resource. + // + // [https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateContainerGroupDefinition.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateContainerGroupDefinition.html + // [https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html PerInstanceContainerGroupDefinitionName *string // A list of labels to assign to the new fleet resource. Tags are diff --git a/service/gamelift/api_op_CreateContainerGroupDefinition.go b/service/gamelift/api_op_CreateContainerGroupDefinition.go index d08d3774397..de6c033c560 100644 --- a/service/gamelift/api_op_CreateContainerGroupDefinition.go +++ b/service/gamelift/api_op_CreateContainerGroupDefinition.go @@ -14,7 +14,7 @@ import ( // Creates a ContainerGroupDefinition that describes a set of containers for // hosting your game server with Amazon GameLift managed containers hosting. An // Amazon GameLift container group is similar to a container task or pod. Use -// container group definitions when you create a container fleet with CreateContainerFleet. +// container group definitions when you create a container fleet with [CreateContainerFleet]. // // A container group definition determines how Amazon GameLift deploys your // containers to each instance in a container fleet. You can maintain multiple @@ -104,8 +104,10 @@ import ( // // If successful, this request creates a ContainerGroupDefinition resource and // assigns a unique ARN value. You can update most properties of a container group -// definition by calling UpdateContainerGroupDefinition, and optionally save the update as a new version. +// definition by calling [UpdateContainerGroupDefinition], and optionally save the update as a new version. // +// [UpdateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html +// [CreateContainerFleet]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateContainerFleet.html // [IAM permissions for Amazon GameLift]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-iam-policy-examples.html func (c *Client) CreateContainerGroupDefinition(ctx context.Context, params *CreateContainerGroupDefinitionInput, optFns ...func(*Options)) (*CreateContainerGroupDefinitionOutput, error) { if params == nil { diff --git a/service/gamelift/api_op_CreateFleet.go b/service/gamelift/api_op_CreateFleet.go index fb2d5de0412..3f355edfe1f 100644 --- a/service/gamelift/api_op_CreateFleet.go +++ b/service/gamelift/api_op_CreateFleet.go @@ -133,9 +133,9 @@ type CreateFleetInput struct { // - EC2 – The game server build is deployed to Amazon EC2 instances for cloud // hosting. This is the default setting. // - // - ANYWHERE – Your game server and supporting software is deployed to compute - // resources that are provided and managed by you. With this compute type, you can - // also set the AnywhereConfiguration parameter. + // - ANYWHERE – Game servers and supporting software are deployed to compute + // resources that you provide and manage. With this compute type, you can also set + // the AnywhereConfiguration parameter. ComputeType types.ComputeType // A description for the fleet. @@ -144,10 +144,12 @@ type CreateFleetInput struct { // The IP address ranges and port settings that allow inbound traffic to access // game server processes and other processes on this fleet. Set this parameter for // managed EC2 fleets. You can leave this parameter empty when creating the fleet, - // but you must call UpdateFleetPortSettingsto set it before players can connect to game sessions. As a + // but you must call [https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetPortSettings]to set it before players can connect to game sessions. As a // best practice, we recommend opening ports for remote access only when you need // them and closing them when you're finished. For Realtime Servers fleets, Amazon // GameLift automatically sets TCP and UDP ranges. + // + // [https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetPortSettings]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetPortSettings EC2InboundPermissions []types.IpPermission // The Amazon GameLift-supported Amazon EC2 instance type to use with managed EC2 diff --git a/service/gamelift/api_op_CreateFleetLocations.go b/service/gamelift/api_op_CreateFleetLocations.go index 474a4c8a19e..5bebb1ecd31 100644 --- a/service/gamelift/api_op_CreateFleetLocations.go +++ b/service/gamelift/api_op_CreateFleetLocations.go @@ -11,9 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds remote locations to a managed EC2 fleet or managed container fleet and -// begins populating the new locations with instances. The new instances conform to -// the fleet's instance type, auto-scaling, and other configuration settings. +// Adds remote locations to an EC2 and begins populating the new locations with +// instances. The new instances conform to the fleet's instance type, auto-scaling, +// and other configuration settings. // // You can't add remote locations to a fleet that resides in an Amazon Web // Services Region that doesn't support multiple locations. Fleets created prior to diff --git a/service/gamelift/api_op_CreateScript.go b/service/gamelift/api_op_CreateScript.go index 1ebb3b9e5d7..702611471df 100644 --- a/service/gamelift/api_op_CreateScript.go +++ b/service/gamelift/api_op_CreateScript.go @@ -11,15 +11,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a script resource for your Realtime Servers script. Realtime scripts -// are JavaScript files that provide configuration settings and optional custom -// game logic for your game. Script logic is executed during an active game -// session. To deploy Realtime Servers for hosting, create an Amazon GameLift -// managed fleet with the script. +// Creates a new script record for your Realtime Servers script. Realtime scripts +// are JavaScript that provide configuration settings and optional custom game +// logic for your game. The script is deployed when you create a Realtime Servers +// fleet to host your game sessions. Script logic is executed during an active game +// session. // -// To create a script resource, specify a script name and provide the script -// file(s). The script files and all dependencies must be combined into a single -// .zip file. You can upload the .zip file from either of these locations: +// To create a new script record, specify a script name and provide the script +// file(s). The script files and all dependencies must be zipped into a single +// file. You can pull the zip file from either of these locations: // // - A locally available directory. Use the ZipFile parameter for this option. // @@ -28,9 +28,11 @@ import ( // to have an Identity Access Management (IAM) role that allows the Amazon GameLift // service to access your S3 bucket. // -// If the call is successful, Amazon GameLift creates a new script resource with a -// unique script ID. The script is uploaded to an Amazon S3 bucket that is owned by -// Amazon GameLift. +// If the call is successful, a new script record is created with a unique script +// ID. If the script file is provided as a local file, the file is uploaded to an +// Amazon GameLift-owned S3 bucket and the script record's storage location +// reflects this location. If the script file is provided as an S3 bucket, Amazon +// GameLift accesses the file at this storage location as needed for deployment. // // # Learn more // diff --git a/service/gamelift/api_op_DeleteContainerGroupDefinition.go b/service/gamelift/api_op_DeleteContainerGroupDefinition.go index 0efb4003e0e..680299f2ce7 100644 --- a/service/gamelift/api_op_DeleteContainerGroupDefinition.go +++ b/service/gamelift/api_op_DeleteContainerGroupDefinition.go @@ -10,8 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a container group definition. You can delete a container group -// definition if there are no fleets using the definition. +// Deletes a container group definition. // // Request options: // @@ -27,6 +26,20 @@ import ( // example, set VersionCountToRetain to 5 to delete all but the five most recent // versions. // +// # Result +// +// If successful, Amazon GameLift removes the container group definition versions +// that you request deletion for. This request will fail for any requested versions +// if the following is true: +// +// - If the version is being used in an active fleet +// +// - If the version is being deployed to a fleet in a deployment that's +// currently in progress. +// +// - If the version is designated as a rollback definition in a fleet deployment +// that's currently in progress. +// // # Learn more // // [Manage a container group definition] diff --git a/service/gamelift/api_op_DescribeCompute.go b/service/gamelift/api_op_DescribeCompute.go index d97af95a436..87425400bfe 100644 --- a/service/gamelift/api_op_DescribeCompute.go +++ b/service/gamelift/api_op_DescribeCompute.go @@ -12,7 +12,7 @@ import ( ) // Retrieves properties for a compute resource in an Amazon GameLift fleet. To get -// a list of all computes in a fleet, call ListCompute. +// a list of all computes in a fleet, call [https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListCompute.html]. // // To request information on a specific compute, provide the fleet ID and compute // name. @@ -26,6 +26,8 @@ import ( // // - For Anywhere fleets, this operation returns information about the // registered compute. +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListCompute.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListCompute.html func (c *Client) DescribeCompute(ctx context.Context, params *DescribeComputeInput, optFns ...func(*Options)) (*DescribeComputeOutput, error) { if params == nil { params = &DescribeComputeInput{} diff --git a/service/gamelift/api_op_DescribeFleetCapacity.go b/service/gamelift/api_op_DescribeFleetCapacity.go index 6611c1599fa..ad89e3e0e45 100644 --- a/service/gamelift/api_op_DescribeFleetCapacity.go +++ b/service/gamelift/api_op_DescribeFleetCapacity.go @@ -16,7 +16,7 @@ import ( // groups. // // With multi-location fleets, this operation retrieves data for the fleet's home -// Region only. To retrieve capacity for remote locations, see DescribeFleetLocationCapacity. +// Region only. To retrieve capacity for remote locations, see [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html]. // // This operation can be used in the following ways: // @@ -43,6 +43,7 @@ import ( // // [GameLift metrics for fleets] // +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html // [Setting up Amazon GameLift fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html // [GameLift metrics for fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html#gamelift-metrics-fleet func (c *Client) DescribeFleetCapacity(ctx context.Context, params *DescribeFleetCapacityInput, optFns ...func(*Options)) (*DescribeFleetCapacityOutput, error) { diff --git a/service/gamelift/api_op_DescribeFleetPortSettings.go b/service/gamelift/api_op_DescribeFleetPortSettings.go index 74f43961326..e499c85381b 100644 --- a/service/gamelift/api_op_DescribeFleetPortSettings.go +++ b/service/gamelift/api_op_DescribeFleetPortSettings.go @@ -11,12 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Retrieves a fleet's inbound connection permissions. Inbound permissions specify -// IP addresses and port settings that incoming traffic can use to access server -// processes in the fleet. Game server processes that are running in the fleet must -// use a port that falls within this range. To connect to game server processes on -// a managed container fleet, the port settings should include one or more of the -// container fleet's connection ports. +// Retrieves a fleet's inbound connection permissions. Connection permissions +// specify IP addresses and port settings that incoming traffic can use to access +// server processes in the fleet. Game server processes that are running in the +// fleet must use a port that falls within this range. // // Use this operation in the following ways: // diff --git a/service/gamelift/api_op_DescribeInstances.go b/service/gamelift/api_op_DescribeInstances.go index 2bf212cf117..19ac67cb24b 100644 --- a/service/gamelift/api_op_DescribeInstances.go +++ b/service/gamelift/api_op_DescribeInstances.go @@ -14,7 +14,7 @@ import ( // Retrieves information about the EC2 instances in an Amazon GameLift managed // fleet, including instance ID, connection data, and status. You can use this // operation with a multi-location fleet to get location-specific instance -// information. As an alternative, use the operations ListComputeand DescribeCompute to retrieve information +// information. As an alternative, use the operations [https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListCompute]and [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeCompute] to retrieve information // for compute resources, including EC2 and Anywhere fleets. // // You can call this operation in the following ways: @@ -44,8 +44,10 @@ import ( // // [All APIs by task] // +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListCompute]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListCompute // [Remotely connect to fleet instances]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-remote-access.html // [Debug fleet issues]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeCompute]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeCompute // [All APIs by task]: https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets func (c *Client) DescribeInstances(ctx context.Context, params *DescribeInstancesInput, optFns ...func(*Options)) (*DescribeInstancesOutput, error) { if params == nil { diff --git a/service/gamelift/api_op_DescribeRuntimeConfiguration.go b/service/gamelift/api_op_DescribeRuntimeConfiguration.go index 16eb4ce6fef..6f24a888ad7 100644 --- a/service/gamelift/api_op_DescribeRuntimeConfiguration.go +++ b/service/gamelift/api_op_DescribeRuntimeConfiguration.go @@ -12,9 +12,10 @@ import ( ) // Retrieves a fleet's runtime configuration settings. The runtime configuration -// determines which server processes run, and how they run, and how many run -// concurrently on computes in managed EC2 and Anywhere fleets. You can update a -// fleet's runtime configuration at any time using UpdateRuntimeConfiguration. +// determines which server processes run, and how, on computes in the fleet. For +// managed EC2 fleets, the runtime configuration describes server processes that +// run on each fleet instance. can update a fleet's runtime configuration at any +// time using [UpdateRuntimeConfiguration]. // // To get the current runtime configuration for a fleet, provide the fleet ID. // @@ -27,6 +28,7 @@ import ( // // [Running multiple processes on a fleet] // +// [UpdateRuntimeConfiguration]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateRuntimeConfiguration.html // [Setting up Amazon GameLift fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html // [Running multiple processes on a fleet]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-multiprocess.html func (c *Client) DescribeRuntimeConfiguration(ctx context.Context, params *DescribeRuntimeConfigurationInput, optFns ...func(*Options)) (*DescribeRuntimeConfigurationOutput, error) { diff --git a/service/gamelift/api_op_GetComputeAccess.go b/service/gamelift/api_op_GetComputeAccess.go index 2f3be6ccacd..abf92fb2e35 100644 --- a/service/gamelift/api_op_GetComputeAccess.go +++ b/service/gamelift/api_op_GetComputeAccess.go @@ -47,7 +47,9 @@ func (c *Client) GetComputeAccess(ctx context.Context, params *GetComputeAccessI type GetComputeAccessInput struct { // A unique identifier for the compute resource that you want to connect to. For - // an EC2 fleet compute, use the instance ID. Use ListComputeto retrieve compute identifiers. + // an EC2 fleet compute, use the instance ID. Use [https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListCompute.html]to retrieve compute identifiers. + // + // [https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListCompute.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListCompute.html // // This member is required. ComputeName *string diff --git a/service/gamelift/api_op_GetInstanceAccess.go b/service/gamelift/api_op_GetInstanceAccess.go index 6cfa4dc3984..7c6204ca43c 100644 --- a/service/gamelift/api_op_GetInstanceAccess.go +++ b/service/gamelift/api_op_GetInstanceAccess.go @@ -14,7 +14,7 @@ import ( // Requests authorization to remotely connect to an instance in an Amazon GameLift // managed fleet. Use this operation to connect to instances with game servers that // use Amazon GameLift server SDK 4.x or earlier. To connect to instances with game -// servers that use server SDK 5.x or later, call GetComputeAccess. +// servers that use server SDK 5.x or later, call [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetComputeAccess]. // // To request access to an instance, specify IDs for the instance and the fleet it // belongs to. You can retrieve instance IDs for a fleet by calling [DescribeInstances]with the fleet @@ -42,6 +42,7 @@ import ( // [All APIs by task] // // [Remotely connect to fleet instances]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-remote-access.html +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetComputeAccess]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetComputeAccess // [DescribeInstances]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeInstances.html // [Get credentials for a Linux instance]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetInstanceAccess.html#API_GetInstanceAccess_Examples // [Debug fleet issues]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html diff --git a/service/gamelift/api_op_ListContainerGroupDefinitions.go b/service/gamelift/api_op_ListContainerGroupDefinitions.go index 580313eaa74..ebb51f490f9 100644 --- a/service/gamelift/api_op_ListContainerGroupDefinitions.go +++ b/service/gamelift/api_op_ListContainerGroupDefinitions.go @@ -16,7 +16,7 @@ import ( // a set of sequential pages. // // This operation returns only the latest version of each definition. To retrieve -// all versions of a container group definition, use ListContainerGroupDefinitionVersions. +// all versions of a container group definition, use [ListContainerGroupDefinitionVersions]. // // Request options: // @@ -33,11 +33,7 @@ import ( // This operation returns the list of container group definitions in no particular // order. // -// # Learn more -// -// [Manage a container group definition] -// -// [Manage a container group definition]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-create-groups.html +// [ListContainerGroupDefinitionVersions]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListContainerGroupDefinitionVersions.html func (c *Client) ListContainerGroupDefinitions(ctx context.Context, params *ListContainerGroupDefinitionsInput, optFns ...func(*Options)) (*ListContainerGroupDefinitionsOutput, error) { if params == nil { params = &ListContainerGroupDefinitionsInput{} diff --git a/service/gamelift/api_op_ListFleetDeployments.go b/service/gamelift/api_op_ListFleetDeployments.go index 192c372abab..09e81f9f98c 100644 --- a/service/gamelift/api_op_ListFleetDeployments.go +++ b/service/gamelift/api_op_ListFleetDeployments.go @@ -12,7 +12,8 @@ import ( ) // Retrieves a collection of container fleet deployments in an Amazon Web Services -// Region. +// Region. Use the pagination parameters to retrieve results as a set of sequential +// pages. // // Request options // @@ -22,18 +23,13 @@ import ( // - Get a list of all deployments for a fleet. Specify the container fleet ID // or ARN value. // -// - To get a list of all Realtime Servers fleets with a specific configuration -// script, provide the script ID. -// -// Use the pagination parameters to retrieve results as a set of sequential pages. -// // # Results // // If successful, this operation returns a list of deployments that match the // request parameters. A NextToken value is also returned if there are more result // pages to retrieve. // -// Fleet IDs are returned in no particular order. +// Deployments are returned starting with the latest. func (c *Client) ListFleetDeployments(ctx context.Context, params *ListFleetDeploymentsInput, optFns ...func(*Options)) (*ListFleetDeploymentsOutput, error) { if params == nil { params = &ListFleetDeploymentsInput{} diff --git a/service/gamelift/api_op_SearchGameSessions.go b/service/gamelift/api_op_SearchGameSessions.go index da1aca434c1..997fab221c1 100644 --- a/service/gamelift/api_op_SearchGameSessions.go +++ b/service/gamelift/api_op_SearchGameSessions.go @@ -51,7 +51,7 @@ import ( // // - gameSessionProperties -- A set of key-value pairs that can store custom // data in a game session. For example: {"Key": "difficulty", "Value": "novice"} -// . The filter expression must specify the GameProperty-- a Key and a string Value to search +// . The filter expression must specify the [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameProperty]-- a Key and a string Value to search // for the game sessions. // // For example, to search for the above key-value pair, specify the following @@ -83,6 +83,7 @@ import ( // [All APIs by task] // // [Search game sessions by game property]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html#game-properties-search +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameProperty]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameProperty // [DescribeGameSessions]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeGameSessions.html // [All APIs by task]: https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets func (c *Client) SearchGameSessions(ctx context.Context, params *SearchGameSessionsInput, optFns ...func(*Options)) (*SearchGameSessionsOutput, error) { diff --git a/service/gamelift/api_op_StartGameSessionPlacement.go b/service/gamelift/api_op_StartGameSessionPlacement.go index 5d12412019d..a1442a5a70b 100644 --- a/service/gamelift/api_op_StartGameSessionPlacement.go +++ b/service/gamelift/api_op_StartGameSessionPlacement.go @@ -51,7 +51,7 @@ import ( // To track the status of a placement request, call [DescribeGameSessionPlacement] and check the request's // status. If the status is FULFILLED , a new game session has been created and a // game session ARN and Region are referenced. If the placement request times out, -// submit a new request to the same queue or a different queue. +// you can resubmit the request or retry it with a different queue. // // [DescribeGameSessionPlacement]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeGameSessionPlacement.html func (c *Client) StartGameSessionPlacement(ctx context.Context, params *StartGameSessionPlacementInput, optFns ...func(*Options)) (*StartGameSessionPlacementOutput, error) { diff --git a/service/gamelift/api_op_TerminateGameSession.go b/service/gamelift/api_op_TerminateGameSession.go new file mode 100644 index 00000000000..3c01ebfd5d9 --- /dev/null +++ b/service/gamelift/api_op_TerminateGameSession.go @@ -0,0 +1,223 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Ends a game session that's currently in progress. You can use this action to +// terminate any game session that isn't in TERMINATED or TERMINATING status. +// Terminating a game session is the most efficient way to free up a server process +// when it's hosting a game session that's in a bad state or not ending naturally. +// You can use this action to terminate a game session that's being hosted on any +// type of Amazon GameLift fleet compute, including computes for managed EC2, +// managed container, and Anywhere fleets. +// +// There are two potential methods for terminating a game session: +// +// - With a graceful termination, the Amazon GameLift service prompts the server +// process to initiate its normal game session shutdown sequence. This sequence is +// implemented in the game server code and might involve a variety of actions to +// gracefully end a game session, such as notifying players, and stop the server +// process. +// +// - With a forceful termination, the Amazon GameLift service takes immediate +// action to terminate the game session by stopping the server process. Termination +// occurs without the normal game session shutdown sequence. +// +// Request options +// +// - Request termination for a single game session. Provide the game session ID +// and the termination method. +// +// # Results +// +// If successful, game session termination is initiated, which includes changing +// the game session status to TERMINATING . As a result of this action, and +// depending on the implementation of OnProcessTerminate() , the server process +// either becomes available to host a new game session, or it's recycled and a new +// server process started with availability to host a game session. The game +// session status is changed to TERMINATED , with a status reason that indicates +// the termination method used. +func (c *Client) TerminateGameSession(ctx context.Context, params *TerminateGameSessionInput, optFns ...func(*Options)) (*TerminateGameSessionOutput, error) { + if params == nil { + params = &TerminateGameSessionInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "TerminateGameSession", params, optFns, c.addOperationTerminateGameSessionMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*TerminateGameSessionOutput) + out.ResultMetadata = metadata + return out, nil +} + +type TerminateGameSessionInput struct { + + // A unique identifier for the game session to be terminated. A game session ARN + // has the following format: arn:aws:gamelift:::gamesession// . + // + // This member is required. + GameSessionId *string + + // The method to use to terminate the game session. Available methods include: + // + // - TRIGGER_ON_PROCESS_TERMINATE – Sends an OnProcessTerminate() callback to the + // server process to initiate the normal game session shutdown sequence. At a + // minimum, the callback method must include a call to the server SDK action + // ProcessEnding() , which is how the server process signals that a game session + // is ending. If the server process doesn't call ProcessEnding() , this + // termination method won't be successful. + // + // - FORCE_TERMINATE – Takes action to stop the server process, using existing + // methods to control how server processes run on an Amazon GameLift managed + // compute. + // + // This method is not available for game sessions that are running on Anywhere + // fleets unless the fleet is deployed with the Amazon GameLift Agent. In this + // scenario, a force terminate request results in an invalid or bad request + // exception. + // + // This member is required. + TerminationMode types.TerminationMode + + noSmithyDocumentSerde +} + +type TerminateGameSessionOutput struct { + + // Properties describing a game session. + // + // A game session in ACTIVE status can host players. When a game session ends, its + // status is set to TERMINATED . + // + // Amazon GameLift retains a game session resource for 30 days after the game + // session ends. You can reuse idempotency token values after this time. Game + // session logs are retained for 14 days. + // + // [All APIs by task] + // + // [All APIs by task]: https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets + GameSession *types.GameSession + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationTerminateGameSessionMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpTerminateGameSession{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpTerminateGameSession{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "TerminateGameSession"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpTerminateGameSessionValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opTerminateGameSession(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opTerminateGameSession(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "TerminateGameSession", + } +} diff --git a/service/gamelift/api_op_UpdateContainerFleet.go b/service/gamelift/api_op_UpdateContainerFleet.go index 63a67f0eb3d..654d7d7c6c7 100644 --- a/service/gamelift/api_op_UpdateContainerFleet.go +++ b/service/gamelift/api_op_UpdateContainerFleet.go @@ -13,7 +13,7 @@ import ( // Updates the properties of a managed container fleet. Depending on the // properties being updated, this operation might initiate a fleet deployment. You -// can track deployments for a fleet using DescribeFleetDeployment. +// can track deployments for a fleet using [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetDeployment.html]. // // # Request options // @@ -52,6 +52,8 @@ import ( // You can have only one update deployment active at a time for a fleet. If a // second update request initiates a deployment while another deployment is in // progress, the first deployment is cancelled. +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetDeployment.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetDeployment.html func (c *Client) UpdateContainerFleet(ctx context.Context, params *UpdateContainerFleetInput, optFns ...func(*Options)) (*UpdateContainerFleetOutput, error) { if params == nil { params = &UpdateContainerFleetInput{} @@ -90,8 +92,11 @@ type UpdateContainerFleetInput struct { // can use the name value. You can't remove a fleet's game server container group // definition, you can only update or replace it with another definition. // - // Update a container group definition by calling UpdateContainerGroupDefinition. This operation creates a ContainerGroupDefinition + // Update a container group definition by calling [UpdateContainerGroupDefinition]. This operation creates a [ContainerGroupDefinition] // resource with an incremented version. + // + // [ContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html + // [UpdateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html GameServerContainerGroupDefinitionName *string // The number of times to replicate the game server container group on each fleet @@ -136,11 +141,14 @@ type UpdateContainerFleetInput struct { // you're updating the fleet to the latest version of a container group definition, // you can use the name value. // - // Update a container group definition by calling UpdateContainerGroupDefinition. This operation creates a ContainerGroupDefinition + // Update a container group definition by calling [UpdateContainerGroupDefinition]. This operation creates a [ContainerGroupDefinition] // resource with an incremented version. // // To remove a fleet's per-instance container group definition, leave this // parameter empty and use the parameter RemoveAttributes . + // + // [ContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html + // [UpdateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html PerInstanceContainerGroupDefinitionName *string // If set, this update removes a fleet's per-instance container group definition. diff --git a/service/gamelift/api_op_UpdateContainerGroupDefinition.go b/service/gamelift/api_op_UpdateContainerGroupDefinition.go index 0f281e66daa..6544601bc82 100644 --- a/service/gamelift/api_op_UpdateContainerGroupDefinition.go +++ b/service/gamelift/api_op_UpdateContainerGroupDefinition.go @@ -48,7 +48,9 @@ import ( // // If the container group definition version is used in an active fleets, the // update automatically initiates a new fleet deployment of the new version. You -// can track a fleet's deployments using ListFleetDeployments. +// can track a fleet's deployments using [ListFleetDeployments]. +// +// [ListFleetDeployments]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListFleetDeployments.html func (c *Client) UpdateContainerGroupDefinition(ctx context.Context, params *UpdateContainerGroupDefinitionInput, optFns ...func(*Options)) (*UpdateContainerGroupDefinitionOutput, error) { if params == nil { params = &UpdateContainerGroupDefinitionInput{} diff --git a/service/gamelift/api_op_UpdateFleetPortSettings.go b/service/gamelift/api_op_UpdateFleetPortSettings.go index 8f0b2ae436a..265358f67ea 100644 --- a/service/gamelift/api_op_UpdateFleetPortSettings.go +++ b/service/gamelift/api_op_UpdateFleetPortSettings.go @@ -20,9 +20,6 @@ import ( // InboundPermissionRevocations . Permissions to be removed must match existing // fleet permissions. // -// For a container fleet, inbound permissions must specify port numbers that are -// defined in the fleet's connection port settings. -// // If successful, the fleet ID for the updated fleet is returned. For fleets with // remote locations, port setting updates can take time to propagate across all // locations. You can check the status of updates in each location by calling diff --git a/service/gamelift/api_op_UpdateGameSession.go b/service/gamelift/api_op_UpdateGameSession.go index 535a1f0e577..1647a8356ad 100644 --- a/service/gamelift/api_op_UpdateGameSession.go +++ b/service/gamelift/api_op_UpdateGameSession.go @@ -65,8 +65,7 @@ type UpdateGameSessionInput struct { // Game session protection policy to apply to this game session only. // - // - NoProtection -- The game session can be terminated during a scale-down - // event. + // - NoProtection -- The game session can be terminated during a scale-down event. // // - FullProtection -- If the game session is in an ACTIVE status, it cannot be // terminated during a scale-down event. diff --git a/service/gamelift/deserializers.go b/service/gamelift/deserializers.go index c9d420ebc95..61162d3b3ed 100644 --- a/service/gamelift/deserializers.go +++ b/service/gamelift/deserializers.go @@ -12256,6 +12256,132 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m } } +type awsAwsjson11_deserializeOpTerminateGameSession struct { +} + +func (*awsAwsjson11_deserializeOpTerminateGameSession) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpTerminateGameSession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorTerminateGameSession(response, &metadata) + } + output := &TerminateGameSessionOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + err = awsAwsjson11_deserializeOpDocumentTerminateGameSessionOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorTerminateGameSession(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidGameSessionStatusException", errorCode): + return awsAwsjson11_deserializeErrorInvalidGameSessionStatusException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("NotReadyException", errorCode): + return awsAwsjson11_deserializeErrorNotReadyException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpUntagResource struct { } @@ -27957,6 +28083,42 @@ func awsAwsjson11_deserializeOpDocumentTagResourceOutput(v **TagResourceOutput, return nil } +func awsAwsjson11_deserializeOpDocumentTerminateGameSessionOutput(v **TerminateGameSessionOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *TerminateGameSessionOutput + if *v == nil { + sv = &TerminateGameSessionOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "GameSession": + if err := awsAwsjson11_deserializeDocumentGameSession(&sv.GameSession, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentUntagResourceOutput(v **UntagResourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/gamelift/generated.json b/service/gamelift/generated.json index b729a81f083..30e614b229a 100644 --- a/service/gamelift/generated.json +++ b/service/gamelift/generated.json @@ -109,6 +109,7 @@ "api_op_StopMatchmaking.go", "api_op_SuspendGameServerGroup.go", "api_op_TagResource.go", + "api_op_TerminateGameSession.go", "api_op_UntagResource.go", "api_op_UpdateAlias.go", "api_op_UpdateBuild.go", diff --git a/service/gamelift/serializers.go b/service/gamelift/serializers.go index 2d8d27c9c39..918b23be144 100644 --- a/service/gamelift/serializers.go +++ b/service/gamelift/serializers.go @@ -6179,6 +6179,67 @@ func (m *awsAwsjson11_serializeOpTagResource) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpTerminateGameSession struct { +} + +func (*awsAwsjson11_serializeOpTerminateGameSession) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpTerminateGameSession) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*TerminateGameSessionInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.TerminateGameSession") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentTerminateGameSessionInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpUntagResource struct { } @@ -11149,6 +11210,23 @@ func awsAwsjson11_serializeOpDocumentTagResourceInput(v *TagResourceInput, value return nil } +func awsAwsjson11_serializeOpDocumentTerminateGameSessionInput(v *TerminateGameSessionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.GameSessionId != nil { + ok := object.Key("GameSessionId") + ok.String(*v.GameSessionId) + } + + if len(v.TerminationMode) > 0 { + ok := object.Key("TerminationMode") + ok.String(string(v.TerminationMode)) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentUntagResourceInput(v *UntagResourceInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/gamelift/snapshot/api_op_TerminateGameSession.go.snap b/service/gamelift/snapshot/api_op_TerminateGameSession.go.snap new file mode 100644 index 00000000000..9199e5651a4 --- /dev/null +++ b/service/gamelift/snapshot/api_op_TerminateGameSession.go.snap @@ -0,0 +1,41 @@ +TerminateGameSession + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot_test.go b/service/gamelift/snapshot_test.go index b9ad66ee798..9f366ef422f 100644 --- a/service/gamelift/snapshot_test.go +++ b/service/gamelift/snapshot_test.go @@ -1274,6 +1274,18 @@ func TestCheckSnapshot_TagResource(t *testing.T) { } } +func TestCheckSnapshot_TerminateGameSession(t *testing.T) { + svc := New(Options{}) + _, err := svc.TerminateGameSession(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "TerminateGameSession") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UntagResource(t *testing.T) { svc := New(Options{}) _, err := svc.UntagResource(context.Background(), nil, func(o *Options) { @@ -2677,6 +2689,18 @@ func TestUpdateSnapshot_TagResource(t *testing.T) { } } +func TestUpdateSnapshot_TerminateGameSession(t *testing.T) { + svc := New(Options{}) + _, err := svc.TerminateGameSession(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "TerminateGameSession") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UntagResource(t *testing.T) { svc := New(Options{}) _, err := svc.UntagResource(context.Background(), nil, func(o *Options) { diff --git a/service/gamelift/types/enums.go b/service/gamelift/types/enums.go index 9afa9ee4f9d..dfa31225a24 100644 --- a/service/gamelift/types/enums.go +++ b/service/gamelift/types/enums.go @@ -1439,7 +1439,9 @@ type GameSessionStatusReason string // Enum values for GameSessionStatusReason const ( - GameSessionStatusReasonInterrupted GameSessionStatusReason = "INTERRUPTED" + GameSessionStatusReasonInterrupted GameSessionStatusReason = "INTERRUPTED" + GameSessionStatusReasonTriggeredOnProcessTerminate GameSessionStatusReason = "TRIGGERED_ON_PROCESS_TERMINATE" + GameSessionStatusReasonForceTerminated GameSessionStatusReason = "FORCE_TERMINATED" ) // Values returns all known values for GameSessionStatusReason. Note that this can @@ -1449,6 +1451,8 @@ const ( func (GameSessionStatusReason) Values() []GameSessionStatusReason { return []GameSessionStatusReason{ "INTERRUPTED", + "TRIGGERED_ON_PROCESS_TERMINATE", + "FORCE_TERMINATED", } } @@ -1872,3 +1876,22 @@ func (SortOrder) Values() []SortOrder { "DESCENDING", } } + +type TerminationMode string + +// Enum values for TerminationMode +const ( + TerminationModeTriggerOnProcessTerminate TerminationMode = "TRIGGER_ON_PROCESS_TERMINATE" + TerminationModeForceTerminate TerminationMode = "FORCE_TERMINATE" +) + +// Values returns all known values for TerminationMode. Note that this can be +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. +func (TerminationMode) Values() []TerminationMode { + return []TerminationMode{ + "TRIGGER_ON_PROCESS_TERMINATE", + "FORCE_TERMINATE", + } +} diff --git a/service/gamelift/types/types.go b/service/gamelift/types/types.go index cb1be17aced..aa6d1965032 100644 --- a/service/gamelift/types/types.go +++ b/service/gamelift/types/types.go @@ -99,10 +99,13 @@ type AttributeValue struct { // You need Amazon Web Services credentials for the following tasks: // // - To upload a game server build directly to Amazon GameLift S3 storage using -// CreateBuild . To get access for this task, call RequestUploadCredentials. +// CreateBuild . To get access for this task, call [https://docs.aws.amazon.com/gamelift/latest/apireference/API_RequestUploadCredentials.html]. // // - To remotely connect to an active Amazon GameLift fleet instances. To get -// remote access, call GetComputeAccess. +// remote access, call [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetComputeAccess.html]. +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_RequestUploadCredentials.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_RequestUploadCredentials.html +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetComputeAccess.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetComputeAccess.html type AwsCredentials struct { // The access key ID that identifies the temporary security credentials. @@ -201,9 +204,9 @@ type CertificateConfiguration struct { // // Valid values include: // - // - GENERATED -- Generate a TLS/SSL certificate for this fleet. + // - GENERATED - Generate a TLS/SSL certificate for this fleet. // - // - DISABLED -- (default) Do not generate a TLS/SSL certificate for this fleet. + // - DISABLED - (default) Do not generate a TLS/SSL certificate for this fleet. // // This member is required. CertificateType CertificateType @@ -326,7 +329,9 @@ type ConnectionPortRange struct { // A unique identifier for a container in a container fleet compute. // -// Returned by: DescribeCompute +// Returned by: [DescribeCompute] +// +// [DescribeCompute]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeCompute.html type ContainerAttribute struct { // The identifier for a container that's running in a compute. @@ -348,7 +353,12 @@ type ContainerAttribute struct { // ContainerB has started. It also means that ContainerA must shut down before // ContainerB. // -// eiifcbfhgrdurhnucnufkgbnbnnerrvbtjvljdetkehcPart of: GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput +// Part of: [GameServerContainerDefinition], [GameServerContainerDefinitionInput], [SupportContainerDefinition], [SupportContainerDefinitionInput] +// +// [SupportContainerDefinitionInput]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinitionInput.html +// [GameServerContainerDefinitionInput]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput.html +// [GameServerContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinition.html +// [SupportContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinition.html type ContainerDependency struct { // The condition that the dependency container must reach before the dependent @@ -381,7 +391,12 @@ type ContainerDependency struct { // An environment variable to set inside a container, in the form of a key-value // pair. // -// Part of: GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput +// Part of: [GameServerContainerDefinition], [GameServerContainerDefinitionInput], [SupportContainerDefinition], [SupportContainerDefinitionInput] +// +// [SupportContainerDefinitionInput]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinitionInput.html +// [GameServerContainerDefinitionInput]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput.html +// [GameServerContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinition.html +// [SupportContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinition.html type ContainerEnvironment struct { // The environment variable name. @@ -571,9 +586,14 @@ type ContainerFleetLocationAttributes struct { // properties of a container group definition properties. Updates to a container // group definition are saved as new versions. // -// Used with: CreateContainerGroupDefinition +// Used with: [CreateContainerGroupDefinition] // -// Returned by: DescribeContainerGroupDefinition, ListContainerGroupDefinitions, UpdateContainerGroupDefinition +// Returned by: [DescribeContainerGroupDefinition], [ListContainerGroupDefinitions], [UpdateContainerGroupDefinition] +// +// [ListContainerGroupDefinitions]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListContainerGroupDefinitions.html +// [UpdateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html +// [DescribeContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeContainerGroupDefinition.html +// [CreateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateContainerGroupDefinition.html type ContainerGroupDefinition struct { // A descriptive identifier for the container group definition. The name value is @@ -635,7 +655,7 @@ type ContainerGroupDefinition struct { // status. Possible reasons include: // // - An internal issue prevented Amazon GameLift from creating the container - // group definition resource. Delete the failed resource and call CreateContainerGroupDefinitionagain. + // group definition resource. Delete the failed resource and call [CreateContainerGroupDefinition]again. // // - An access-denied message means that you don't have permissions to access // the container image on ECR. See [IAM permission examples]for help setting up required IAM permissions @@ -651,8 +671,9 @@ type ContainerGroupDefinition struct { // definition uses a different operating system than the one defined for the // container group. // - // [IAM permission examples]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-iam-policy-examples.html + // [IAM permission examples]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-iam-policy-examples.html.html // [Amazon GameLift endpoints and quotas]: https://docs.aws.amazon.com/general/latest/gr/gamelift.html + // [CreateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateContainerGroupDefinition.html StatusReason *string // The set of definitions for support containers in this group. A container group @@ -704,9 +725,11 @@ type ContainerGroupDefinition struct { // {"Command": [ "CMD-SHELL", "ps cax | grep "processmanager" || exit 1" ], // "Interval": 60, "Timeout": 10, "Retries": 3, "StartPeriod": 100 } // -// Part of: SupportContainerDefinition, SupportContainerDefinitionInput +// Part of: [SupportContainerDefinition], [SupportContainerDefinitionInput] // +// [SupportContainerDefinitionInput]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinitionInput.html // [HealthCheck command]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html#ECS-Type-HealthCheck-command +// [SupportContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinition.html type ContainerHealthCheck struct { // A string array that specifies the command that the container runs to determine @@ -737,9 +760,12 @@ type ContainerHealthCheck struct { // instance. This information makes it possible to remotely connect to a specific // container on a fleet instance. // -// Related to: ContainerAttribute +// Related to: [ContainerAttribute] +// +// Use with: [GetComputeAccess] // -// Use with: GetComputeAccess +// [ContainerAttribute]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerAttribute.html +// [GetComputeAccess]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetComputeAccess.html type ContainerIdentifier struct { // The identifier for a container that's running in a compute. @@ -755,7 +781,12 @@ type ContainerIdentifier struct { // A mount point that binds a container to a file or directory on the host system. // -// Part of: GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput +// Part of: [GameServerContainerDefinition], [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput.html], [SupportContainerDefinition], [https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinitionInput.html] +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinitionInput.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinitionInput.html +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput.html +// [GameServerContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinition.html +// [SupportContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinition.html type ContainerMountPoint struct { // The path to the source file or directory. @@ -777,7 +808,12 @@ type ContainerMountPoint struct { // running in the container can bind to a port number, making it accessible to // inbound traffic. Container ports map to a container fleet's connection ports. // -// Part of: GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput +// Part of: [GameServerContainerDefinition], [GameServerContainerDefinitionInput], [SupportContainerDefinition], [SupportContainerDefinitionInput] +// +// [SupportContainerDefinitionInput]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinitionInput.html +// [GameServerContainerDefinitionInput]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput.html +// [GameServerContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinition.html +// [SupportContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinition.html type ContainerPortConfiguration struct { // A set of one or more container port number ranges. The ranges can't overlap. @@ -790,7 +826,9 @@ type ContainerPortConfiguration struct { // A set of one or more port numbers that can be opened on the container. // -// Part of: ContainerPortConfiguration +// Part of: [ContainerPortConfiguration] +// +// [ContainerPortConfiguration]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerPortConfiguration.html type ContainerPortRange struct { // A starting value for the range of allowed port numbers. @@ -1028,14 +1066,6 @@ type Event struct { // - FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been successfully // deleted. // - // Container group events: - // - // - CONTAINER_GROUP_REGISTRATION_FAILED – A game server container group - // started, but timed out before calling RegisterCompute . - // - // - CONTAINER_GROUP_CRASHED A game server container group started and - // terminated without calling RegisterCompute . - // // Spot instance events: // // - INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a @@ -1145,10 +1175,12 @@ type FilterConfiguration struct { // Attributes include fleet identifiers and descriptive properties, // creation/termination time, and fleet status. // -// Returned by: DescribeFleetAttributes +// Returned by: [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetAttributes] +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetAttributes]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetAttributes type FleetAttributes struct { - // Amazon GameLift Anywhere configuration options. + // A set of attributes that are specific to an Anywhere fleet. AnywhereConfiguration *AnywhereConfiguration // The Amazon Resource Name ([ARN] ) associated with the Amazon GameLift build resource @@ -1204,7 +1236,7 @@ type FleetAttributes struct { // processes, and daemons (background processes). Create a role or look up a role's // ARN by using the [IAM dashboard]in the Amazon Web Services Management Console. Learn more // about using on-box credentials for your game servers at [Access external resources from a game server]. This attribute is - // used with fleets where ComputeType is "EC2". + // used with fleets where ComputeType is EC2 . // // [IAM dashboard]: https://console.aws.amazon.com/iam/ // [Access external resources from a game server]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html @@ -1216,7 +1248,7 @@ type FleetAttributes struct { // Services resources. This property is used only when the game server is // integrated with the server SDK version 5.x. For more information about using // shared credentials, see [Communicate with other Amazon Web Services resources from your fleets]. This attribute is used with fleets where ComputeType - // is "EC2". + // is EC2 . // // [Communicate with other Amazon Web Services resources from your fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html InstanceRoleCredentialsProvider InstanceRoleCredentialsProvider @@ -1224,7 +1256,7 @@ type FleetAttributes struct { // The Amazon EC2 instance type that the fleet uses. Instance type determines the // computing resources of each instance in the fleet, including CPU, memory, // storage, and networking capacity. See [Amazon Elastic Compute Cloud Instance Types]for detailed descriptions. This attribute - // is used with fleets where ComputeType is "EC2". + // is used with fleets where ComputeType is EC2 . // // [Amazon Elastic Compute Cloud Instance Types]: http://aws.amazon.com/ec2/instance-types/ InstanceType EC2InstanceType @@ -1239,7 +1271,7 @@ type FleetAttributes struct { // Name of a metric group that metrics for this fleet are added to. In Amazon // CloudWatch, you can view aggregated metrics for fleets that are in a metric // group. A fleet can be included in only one metric group at a time. This - // attribute is used with fleets where ComputeType is "EC2". + // attribute is used with fleets where ComputeType is EC2 . MetricGroups []string // A descriptive label that is associated with a fleet. Fleet names do not need to @@ -1248,7 +1280,7 @@ type FleetAttributes struct { // The type of game session protection to set on all new instances that are // started in the fleet. This attribute is used with fleets where ComputeType is - // "EC2". + // EC2 . // // - NoProtection -- The game session can be terminated during a scale-down // event. @@ -1259,11 +1291,11 @@ type FleetAttributes struct { // The operating system of the fleet's computing resources. A fleet's operating // system is determined by the OS of the build or script that is deployed on this - // fleet. This attribute is used with fleets where ComputeType is "EC2". + // fleet. This attribute is used with fleets where ComputeType is EC2 . // // Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details // in the [Amazon Linux 2 FAQs]. For game servers that are hosted on AL2 and use Amazon GameLift server - // SDK 4.x, first update the game server build to server SDK 5.x, and then deploy + // SDK 4.x., first update the game server build to server SDK 5.x, and then deploy // to AL2023 instances. See [Migrate to Amazon GameLift server SDK version 5.] // // [Amazon Linux 2 FAQs]: https://aws.amazon.com/amazon-linux-2/faqs/ @@ -1326,7 +1358,7 @@ type FleetAttributes struct { Status FleetStatus // A list of fleet activity that has been suspended using [StopFleetActions]. This includes fleet - // auto-scaling. This attribute is used with fleets where ComputeType is "EC2". + // auto-scaling. This attribute is used with fleets where ComputeType is EC2 . // // [StopFleetActions]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_StopFleetActions.html StoppedActions []FleetAction @@ -1426,11 +1458,15 @@ type FleetDeployment struct { PerInstanceBinaryArn *string // The unique identifier for the version of the game server container group - // definition to roll back to if deployment fails. + // definition to roll back to if deployment fails. Amazon GameLift sets this + // property to the container group definition version that the fleet used when it + // was last active. RollbackGameServerBinaryArn *string // The unique identifier for the version of the per-instance container group - // definition to roll back to if deployment fails. + // definition to roll back to if deployment fails. Amazon GameLift sets this + // property to the container group definition version that the fleet used when it + // was last active. RollbackPerInstanceBinaryArn *string noSmithyDocumentSerde @@ -1581,11 +1617,17 @@ type GameServer struct { // // You can update a container definition and deploy the updates to an existing // fleet. When creating or updating a game server container group definition, use -// the property GameServerContainerDefinitionInput. +// the property [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput]. // -// Part of: ContainerGroupDefinition +// Part of: [ContainerGroupDefinition] // -// Returned by: DescribeContainerGroupDefinition, ListContainerGroupDefinitions, UpdateContainerGroupDefinition +// Returned by: [DescribeContainerGroupDefinition], [ListContainerGroupDefinitions], [UpdateContainerGroupDefinition] +// +// [ListContainerGroupDefinitions]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListContainerGroupDefinitions.html +// [ContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html +// [UpdateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput +// [DescribeContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeContainerGroupDefinition.html type GameServerContainerDefinition struct { // The container definition identifier. Container names are unique within a @@ -1633,11 +1675,15 @@ type GameServerContainerDefinition struct { // Describes the configuration for a container that runs your game server // executable. This definition includes container configuration, resources, and // start instructions. Use this data type when creating or updating a game server -// container group definition. For properties of a deployed container, see GameServerContainerDefinition. A +// container group definition. For properties of a deployed container, see [GameServerContainerDefinition]. A // game server container is automatically considered essential; if an essential // container fails, the entire container group restarts. // -// Use with: CreateContainerGroupDefinition, UpdateContainerGroupDefinition +// Use with: [CreateContainerGroupDefinition], [UpdateContainerGroupDefinition] +// +// [GameServerContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinition.html +// [UpdateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html +// [CreateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateContainerGroupDefinition.html type GameServerContainerDefinitionInput struct { // A string that uniquely identifies the container definition within a container @@ -1714,7 +1760,10 @@ type GameServerContainerDefinitionInput struct { // container groups, and the game server container in each group runs 1 game server // process, then the fleet has the capacity to run host 50 game sessions at a time. // -// Returned by: DescribeFleetCapacity, DescribeFleetLocationCapacity +// Returned by: [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html], [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html] +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html type GameServerContainerGroupCounts struct { // The number of container groups that have active game sessions. @@ -1994,7 +2043,7 @@ type GameSession struct { // not need to be unique. Name *string - // Indicates whether or not the game session is accepting new players. + // Indicates whether the game session is accepting new players. PlayerSessionCreationPolicy PlayerSessionCreationPolicy // The port number for the game session. To connect to a Amazon GameLift game @@ -2005,9 +2054,16 @@ type GameSession struct { // to have player sessions. Status GameSessionStatus - // Provides additional information about game session status. INTERRUPTED - // indicates that the game session was hosted on a spot instance that was - // reclaimed, causing the active game session to be terminated. + // Provides additional information about game session status. + // + // - INTERRUPTED -- The game session was hosted on an EC2 Spot instance that was + // reclaimed, causing the active game session to be stopped. + // + // - TRIGGERED_ON_PROCESS_TERMINATE – The game session was stopped by calling + // TerminateGameSession with the termination mode TRIGGER_ON_PROCESS_TERMINATE . + // + // - FORCE_TERMINATED – The game session was stopped by calling + // TerminateGameSession with the termination mode FORCE_TERMINATE . StatusReason GameSessionStatusReason // A time stamp indicating when this data object was terminated. Format is a @@ -2106,8 +2162,10 @@ type GameSessionDetail struct { // session ID/ARN, region, IP address/DNS, and port aren't final. A game session is // not active and ready to accept players until placement status reaches FULFILLED // . When the placement is in PENDING status, Amazon GameLift may attempt to place -// a game session multiple times before succeeding. With each attempt it creates a GameSession +// a game session multiple times before succeeding. With each attempt it creates a [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession] // object and updates this placement object with the new game session properties.. +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession type GameSessionPlacement struct { // The DNS identifier assigned to the instance that is running the game session. @@ -2210,7 +2268,7 @@ type GameSessionPlacement struct { // - CANCELLED -- The placement request was canceled. // // - TIMED_OUT -- A new game session was not successfully created before the - // time limit expired. You can resubmit as a new placement request as needed. + // time limit expired. You can resubmit the placement request as needed. // // - FAILED -- Amazon GameLift is not able to complete the process of placing // the game session. Common reasons are the game session terminated before the @@ -2366,7 +2424,9 @@ type Instance struct { } // Information and credentials that you can use to remotely connect to an instance -// in an EC2 managed fleet. This data type is returned in response to a call to GetInstanceAccess. +// in an EC2 managed fleet. This data type is returned in response to a call to [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetInstanceAccess]. +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetInstanceAccess]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetInstanceAccess type InstanceAccess struct { // Security credentials that are required to access the instance. @@ -2388,9 +2448,11 @@ type InstanceAccess struct { } // A set of credentials that allow remote access to an instance in an EC2 managed -// fleet. These credentials are returned in response to a call to GetInstanceAccess, which requests +// fleet. These credentials are returned in response to a call to [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetInstanceAccess], which requests // access for instances that are running game servers with the Amazon GameLift // server SDK version 4.x or earlier. +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetInstanceAccess]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetInstanceAccess type InstanceCredentials struct { // Secret string. For Windows instances, the secret is a password for use with @@ -2435,8 +2497,7 @@ type InstanceDefinition struct { // A range of IP addresses and port settings that allow inbound traffic to connect // to processes on an instance in a fleet. Processes are assigned an IP // address/port number combination, which must fall into the fleet's allowed -// ranges. For managed container fleets, the port settings must use the same port -// numbers as the fleet's connection ports. +// ranges. // // For Realtime Servers fleets, Amazon GameLift automatically opens two port // ranges, one for TCP messaging and one for UDP. @@ -2558,7 +2619,9 @@ type LocationConfiguration struct { } // Properties of a custom location for use in an Amazon GameLift Anywhere fleet. -// This data type is returned in response to a call to CreateLocation. +// This data type is returned in response to a call to [https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateLocation]. +// +// [https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateLocation]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateLocation type LocationModel struct { // The Amazon Resource Name ([ARN] ) that is assigned to a Amazon GameLift location @@ -3212,9 +3275,9 @@ type RuntimeConfiguration struct { // timeout, it is ended and the game session status is changed to TERMINATED . GameSessionActivationTimeoutSeconds *int32 - // The number of game sessions in status ACTIVATING to allow on an instance. This - // setting limits the instance resources that can be used for new game activations - // at any one time. + // The number of game sessions in status ACTIVATING to allow on an instance or + // compute. This setting limits the instance resources that can be used for new + // game activations at any one time. MaxConcurrentGameSessionActivations *int32 // A collection of server process configurations that identify what server @@ -3468,11 +3531,17 @@ type ServerProcess struct { // // You can update a support container definition and deploy the updates to an // existing fleet. When creating or updating a game server container group -// definition, use the property GameServerContainerDefinitionInput. +// definition, use the property [GameServerContainerDefinitionInput]. // -// Part of: ContainerGroupDefinition +// Part of: [ContainerGroupDefinition] // -// Returned by: DescribeContainerGroupDefinition, ListContainerGroupDefinitions, UpdateContainerGroupDefinition +// Returned by: [DescribeContainerGroupDefinition], [ListContainerGroupDefinitions], [UpdateContainerGroupDefinition] +// +// [ListContainerGroupDefinitions]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListContainerGroupDefinitions.html +// [ContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html +// [GameServerContainerDefinitionInput]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameServerContainerDefinitionInput.html +// [UpdateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html +// [DescribeContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeContainerGroupDefinition.html type SupportContainerDefinition struct { // The container definition identifier. Container names are unique within a @@ -3506,7 +3575,9 @@ type SupportContainerDefinition struct { // memory limits aren't set for an individual container, the container shares the // container group's total memory allocation. // - // Related data type: ContainerGroupDefinition$TotalMemoryLimitMebibytes + // Related data type: [ContainerGroupDefinition TotalMemoryLimitMebibytes] + // + // [ContainerGroupDefinition TotalMemoryLimitMebibytes]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html MemoryHardLimitMebibytes *int32 // A mount point that binds a path inside the container to a file or directory on @@ -3527,7 +3598,9 @@ type SupportContainerDefinition struct { // The number of vCPU units that are reserved for the container. If no resources // are reserved, the container shares the total vCPU limit for the container group. // - // Related data type: ContainerGroupDefinition$TotalVcpuLimit + // Related data type: [ContainerGroupDefinition TotalVcpuLimit] + // + // [ContainerGroupDefinition TotalVcpuLimit]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html Vcpu *float64 noSmithyDocumentSerde @@ -3539,9 +3612,13 @@ type SupportContainerDefinition struct { // // This definition includes container configuration, resources, and start // instructions. Use this data type when creating or updating a container group -// definition. For properties of a deployed support container, see SupportContainerDefinition. +// definition. For properties of a deployed support container, see [SupportContainerDefinition]. +// +// Use with: [CreateContainerGroupDefinition], [UpdateContainerGroupDefinition] // -// Use with: CreateContainerGroupDefinition, UpdateContainerGroupDefinition +// [UpdateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateContainerGroupDefinition.html +// [SupportContainerDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_SupportContainerDefinition.html +// [CreateContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateContainerGroupDefinition.html type SupportContainerDefinitionInput struct { // A string that uniquely identifies the container definition within a container @@ -3606,7 +3683,9 @@ type SupportContainerDefinitionInput struct { // don't specify a container-specific memory limit, the container shares the // container group's total memory allocation. // - // Related data type: ContainerGroupDefinition TotalMemoryLimitMebibytes + // Related data type: [ContainerGroupDefinition]TotalMemoryLimitMebibytes + // + // [ContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html MemoryHardLimitMebibytes *int32 // A mount point that binds a path inside the container to a file or directory on @@ -3627,7 +3706,9 @@ type SupportContainerDefinitionInput struct { // more resources when needed, if available. If you don't reserve CPU units for // this container, it shares the container group's total vCPU limit. // - // Related data type: ContainerGroupDefinition TotalCpuLimit + // Related data type: [ContainerGroupDefinition] TotalCpuLimit + // + // [ContainerGroupDefinition]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ContainerGroupDefinition.html Vcpu *float64 noSmithyDocumentSerde diff --git a/service/gamelift/validators.go b/service/gamelift/validators.go index e10c4b1ca5c..19cbc72a841 100644 --- a/service/gamelift/validators.go +++ b/service/gamelift/validators.go @@ -1590,6 +1590,26 @@ func (m *validateOpTagResource) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpTerminateGameSession struct { +} + +func (*validateOpTerminateGameSession) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpTerminateGameSession) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*TerminateGameSessionInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpTerminateGameSessionInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUntagResource struct { } @@ -2226,6 +2246,10 @@ func addOpTagResourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpTagResource{}, middleware.After) } +func addOpTerminateGameSessionValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpTerminateGameSession{}, middleware.After) +} + func addOpUntagResourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUntagResource{}, middleware.After) } @@ -4356,6 +4380,24 @@ func validateOpTagResourceInput(v *TagResourceInput) error { } } +func validateOpTerminateGameSessionInput(v *TerminateGameSessionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TerminateGameSessionInput"} + if v.GameSessionId == nil { + invalidParams.Add(smithy.NewErrParamRequired("GameSessionId")) + } + if len(v.TerminationMode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("TerminationMode")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUntagResourceInput(v *UntagResourceInput) error { if v == nil { return nil diff --git a/service/location/internal/endpoints/endpoints.go b/service/location/internal/endpoints/endpoints.go index 86c6e9816ad..2317c49167e 100644 --- a/service/location/internal/endpoints/endpoints.go +++ b/service/location/internal/endpoints/endpoints.go @@ -151,6 +151,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-5", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, diff --git a/service/mediaconnect/deserializers.go b/service/mediaconnect/deserializers.go index b2379c428bc..c8d7bad1cab 100644 --- a/service/mediaconnect/deserializers.go +++ b/service/mediaconnect/deserializers.go @@ -9492,6 +9492,40 @@ func awsRestjson1_deserializeDocument__listOf__string(v *[]string, value interfa return nil } +func awsRestjson1_deserializeDocument__listOfAudioMonitoringSetting(v *[]types.AudioMonitoringSetting, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.AudioMonitoringSetting + if *v == nil { + cv = []types.AudioMonitoringSetting{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AudioMonitoringSetting + destAddr := &col + if err := awsRestjson1_deserializeDocumentAudioMonitoringSetting(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocument__listOfBridgeOutput(v *[]types.BridgeOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -10206,6 +10240,40 @@ func awsRestjson1_deserializeDocument__listOfTransportStreamProgram(v *[]types.T return nil } +func awsRestjson1_deserializeDocument__listOfVideoMonitoringSetting(v *[]types.VideoMonitoringSetting, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.VideoMonitoringSetting + if *v == nil { + cv = []types.VideoMonitoringSetting{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.VideoMonitoringSetting + destAddr := &col + if err := awsRestjson1_deserializeDocumentVideoMonitoringSetting(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocument__listOfVpcInterface(v *[]types.VpcInterface, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -10316,6 +10384,42 @@ func awsRestjson1_deserializeDocumentAddFlowOutputs420Exception(v **types.AddFlo return nil } +func awsRestjson1_deserializeDocumentAudioMonitoringSetting(v **types.AudioMonitoringSetting, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AudioMonitoringSetting + if *v == nil { + sv = &types.AudioMonitoringSetting{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "silentAudio": + if err := awsRestjson1_deserializeDocumentSilentAudio(&sv.SilentAudio, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentBadRequestException(v **types.BadRequestException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -10356,6 +10460,59 @@ func awsRestjson1_deserializeDocumentBadRequestException(v **types.BadRequestExc return nil } +func awsRestjson1_deserializeDocumentBlackFrames(v **types.BlackFrames, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.BlackFrames + if *v == nil { + sv = &types.BlackFrames{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "thresholdSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected __integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ThresholdSeconds = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentBridge(v **types.Bridge, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11778,6 +11935,59 @@ func awsRestjson1_deserializeDocumentFrameResolution(v **types.FrameResolution, return nil } +func awsRestjson1_deserializeDocumentFrozenFrames(v **types.FrozenFrames, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.FrozenFrames + if *v == nil { + sv = &types.FrozenFrames{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "thresholdSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected __integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ThresholdSeconds = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentGateway(v **types.Gateway, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -13097,6 +13307,20 @@ func awsRestjson1_deserializeDocumentMonitoringConfig(v **types.MonitoringConfig for key, value := range shape { switch key { + case "audioMonitoringSettings": + if err := awsRestjson1_deserializeDocument__listOfAudioMonitoringSetting(&sv.AudioMonitoringSettings, value); err != nil { + return err + } + + case "contentQualityAnalysisState": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContentQualityAnalysisState to be of type string, got %T instead", value) + } + sv.ContentQualityAnalysisState = types.ContentQualityAnalysisState(jtv) + } + case "thumbnailState": if value != nil { jtv, ok := value.(string) @@ -13106,6 +13330,11 @@ func awsRestjson1_deserializeDocumentMonitoringConfig(v **types.MonitoringConfig sv.ThumbnailState = types.ThumbnailState(jtv) } + case "videoMonitoringSettings": + if err := awsRestjson1_deserializeDocument__listOfVideoMonitoringSetting(&sv.VideoMonitoringSettings, value); err != nil { + return err + } + default: _, _ = key, value @@ -13702,6 +13931,59 @@ func awsRestjson1_deserializeDocumentServiceUnavailableException(v **types.Servi return nil } +func awsRestjson1_deserializeDocumentSilentAudio(v **types.SilentAudio, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SilentAudio + if *v == nil { + sv = &types.SilentAudio{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected State to be of type string, got %T instead", value) + } + sv.State = types.State(jtv) + } + + case "thresholdSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected __integer to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ThresholdSeconds = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentSource(v **types.Source, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14427,6 +14709,47 @@ func awsRestjson1_deserializeDocumentTransportStreamProgram(v **types.TransportS return nil } +func awsRestjson1_deserializeDocumentVideoMonitoringSetting(v **types.VideoMonitoringSetting, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.VideoMonitoringSetting + if *v == nil { + sv = &types.VideoMonitoringSetting{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "blackFrames": + if err := awsRestjson1_deserializeDocumentBlackFrames(&sv.BlackFrames, value); err != nil { + return err + } + + case "frozenFrames": + if err := awsRestjson1_deserializeDocumentFrozenFrames(&sv.FrozenFrames, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentVpcInterface(v **types.VpcInterface, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/mediaconnect/serializers.go b/service/mediaconnect/serializers.go index 99784be0e9c..3401161917d 100644 --- a/service/mediaconnect/serializers.go +++ b/service/mediaconnect/serializers.go @@ -4767,6 +4767,19 @@ func awsRestjson1_serializeDocument__listOfAddOutputRequest(v []types.AddOutputR return nil } +func awsRestjson1_serializeDocument__listOfAudioMonitoringSetting(v []types.AudioMonitoringSetting, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAudioMonitoringSetting(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocument__listOfDestinationConfigurationRequest(v []types.DestinationConfigurationRequest, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -4858,6 +4871,19 @@ func awsRestjson1_serializeDocument__listOfSetSourceRequest(v []types.SetSourceR return nil } +func awsRestjson1_serializeDocument__listOfVideoMonitoringSetting(v []types.VideoMonitoringSetting, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentVideoMonitoringSetting(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocument__listOfVpcInterfaceRequest(v []types.VpcInterfaceRequest, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -5202,6 +5228,37 @@ func awsRestjson1_serializeDocumentAddOutputRequest(v *types.AddOutputRequest, v return nil } +func awsRestjson1_serializeDocumentAudioMonitoringSetting(v *types.AudioMonitoringSetting, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SilentAudio != nil { + ok := object.Key("silentAudio") + if err := awsRestjson1_serializeDocumentSilentAudio(v.SilentAudio, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentBlackFrames(v *types.BlackFrames, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + if v.ThresholdSeconds != nil { + ok := object.Key("thresholdSeconds") + ok.Integer(*v.ThresholdSeconds) + } + + return nil +} + func awsRestjson1_serializeDocumentDestinationConfigurationRequest(v *types.DestinationConfigurationRequest, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5379,6 +5436,23 @@ func awsRestjson1_serializeDocumentFmtpRequest(v *types.FmtpRequest, value smith return nil } +func awsRestjson1_serializeDocumentFrozenFrames(v *types.FrozenFrames, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + if v.ThresholdSeconds != nil { + ok := object.Key("thresholdSeconds") + ok.Integer(*v.ThresholdSeconds) + } + + return nil +} + func awsRestjson1_serializeDocumentGatewayNetwork(v *types.GatewayNetwork, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5546,11 +5620,30 @@ func awsRestjson1_serializeDocumentMonitoringConfig(v *types.MonitoringConfig, v object := value.Object() defer object.Close() + if v.AudioMonitoringSettings != nil { + ok := object.Key("audioMonitoringSettings") + if err := awsRestjson1_serializeDocument__listOfAudioMonitoringSetting(v.AudioMonitoringSettings, ok); err != nil { + return err + } + } + + if len(v.ContentQualityAnalysisState) > 0 { + ok := object.Key("contentQualityAnalysisState") + ok.String(string(v.ContentQualityAnalysisState)) + } + if len(v.ThumbnailState) > 0 { ok := object.Key("thumbnailState") ok.String(string(v.ThumbnailState)) } + if v.VideoMonitoringSettings != nil { + ok := object.Key("videoMonitoringSettings") + if err := awsRestjson1_serializeDocument__listOfVideoMonitoringSetting(v.VideoMonitoringSettings, ok); err != nil { + return err + } + } + return nil } @@ -5693,6 +5786,23 @@ func awsRestjson1_serializeDocumentSetSourceRequest(v *types.SetSourceRequest, v return nil } +func awsRestjson1_serializeDocumentSilentAudio(v *types.SilentAudio, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.State) > 0 { + ok := object.Key("state") + ok.String(string(v.State)) + } + + if v.ThresholdSeconds != nil { + ok := object.Key("thresholdSeconds") + ok.Integer(*v.ThresholdSeconds) + } + + return nil +} + func awsRestjson1_serializeDocumentSourcePriority(v *types.SourcePriority, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5941,6 +6051,27 @@ func awsRestjson1_serializeDocumentUpdateMaintenance(v *types.UpdateMaintenance, return nil } +func awsRestjson1_serializeDocumentVideoMonitoringSetting(v *types.VideoMonitoringSetting, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BlackFrames != nil { + ok := object.Key("blackFrames") + if err := awsRestjson1_serializeDocumentBlackFrames(v.BlackFrames, ok); err != nil { + return err + } + } + + if v.FrozenFrames != nil { + ok := object.Key("frozenFrames") + if err := awsRestjson1_serializeDocumentFrozenFrames(v.FrozenFrames, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentVpcInterfaceAttachment(v *types.VpcInterfaceAttachment, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/mediaconnect/types/enums.go b/service/mediaconnect/types/enums.go index 14f92f27596..a383cf8ac73 100644 --- a/service/mediaconnect/types/enums.go +++ b/service/mediaconnect/types/enums.go @@ -129,6 +129,25 @@ func (ConnectionStatus) Values() []ConnectionStatus { } } +type ContentQualityAnalysisState string + +// Enum values for ContentQualityAnalysisState +const ( + ContentQualityAnalysisStateEnabled ContentQualityAnalysisState = "ENABLED" + ContentQualityAnalysisStateDisabled ContentQualityAnalysisState = "DISABLED" +) + +// Values returns all known values for ContentQualityAnalysisState. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. +func (ContentQualityAnalysisState) Values() []ContentQualityAnalysisState { + return []ContentQualityAnalysisState{ + "ENABLED", + "DISABLED", + } +} + type DesiredState string // Enum values for DesiredState diff --git a/service/mediaconnect/types/types.go b/service/mediaconnect/types/types.go index 8bc010b48b8..f54822b0f52 100644 --- a/service/mediaconnect/types/types.go +++ b/service/mediaconnect/types/types.go @@ -271,6 +271,28 @@ type AddOutputRequest struct { noSmithyDocumentSerde } +// Specifies the configuration for audio stream metrics monitoring. +type AudioMonitoringSetting struct { + + // Detects periods of silence. + SilentAudio *SilentAudio + + noSmithyDocumentSerde +} + +// Configures settings for the BlackFrames metric. +type BlackFrames struct { + + // Indicates whether the BlackFrames metric is enabled or disabled. + State State + + // Specifies the number of consecutive seconds of black frames that triggers an + // event or alert. + ThresholdSeconds *int32 + + noSmithyDocumentSerde +} + // A Bridge is the connection between your datacenter's Instances and the AWS // cloud. A bridge can be used to send video from the AWS cloud to your datacenter // or from your datacenter to the AWS cloud. @@ -812,6 +834,19 @@ type FrameResolution struct { noSmithyDocumentSerde } +// Configures settings for the FrozenFrames metric. +type FrozenFrames struct { + + // Indicates whether the FrozenFrames metric is enabled or disabled. + State State + + // Specifies the number of consecutive seconds of a static image that triggers an + // event or alert. + ThresholdSeconds *int32 + + noSmithyDocumentSerde +} + // The settings for a gateway, including its networks. type Gateway struct { @@ -1397,9 +1432,18 @@ type Messages struct { // The settings for source monitoring. type MonitoringConfig struct { + // Contains the settings for audio stream metrics monitoring. + AudioMonitoringSettings []AudioMonitoringSetting + + // Indicates whether content quality analysis is enabled or disabled. + ContentQualityAnalysisState ContentQualityAnalysisState + // The state of thumbnail monitoring. ThumbnailState ThumbnailState + // Contains the settings for video stream metrics monitoring. + VideoMonitoringSettings []VideoMonitoringSetting + noSmithyDocumentSerde } @@ -1721,6 +1765,19 @@ type SetSourceRequest struct { noSmithyDocumentSerde } +// Configures settings for the SilentAudio metric. +type SilentAudio struct { + + // Indicates whether the SilentAudio metric is enabled or disabled. + State State + + // Specifies the number of consecutive seconds of silence that triggers an event + // or alert. + ThresholdSeconds *int32 + + noSmithyDocumentSerde +} + // The settings for the source of the flow. type Source struct { @@ -2125,6 +2182,18 @@ type UpdateMaintenance struct { noSmithyDocumentSerde } +// Specifies the configuration for video stream metrics monitoring. +type VideoMonitoringSetting struct { + + // Detects video frames that are black. + BlackFrames *BlackFrames + + // Detects video frames that have not changed. + FrozenFrames *FrozenFrames + + noSmithyDocumentSerde +} + // The settings for a VPC Source. type VpcInterface struct { diff --git a/service/mediaconvert/deserializers.go b/service/mediaconvert/deserializers.go index 7c700523d4a..7f495addc8c 100644 --- a/service/mediaconvert/deserializers.go +++ b/service/mediaconvert/deserializers.go @@ -13630,6 +13630,15 @@ func awsRestjson1_deserializeDocumentH264Settings(v **types.H264Settings, value sv.UnregisteredSeiTimecode = types.H264UnregisteredSeiTimecode(jtv) } + case "writeMp4PackagingType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected H264WriteMp4PackagingType to be of type string, got %T instead", value) + } + sv.WriteMp4PackagingType = types.H264WriteMp4PackagingType(jtv) + } + default: _, _ = key, value @@ -17128,7 +17137,7 @@ func awsRestjson1_deserializeDocumentKantarWatermarkSettings(v **types.KantarWat if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringMin1Max2048PatternArnAwsAwsUsGovAwsCnSecretsmanagerUsGovApCaCnEuSaCentralNorthSouthEastWestDD12SecretAZAZ09 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max2048PatternArnAZSecretsmanagerWD12SecretAZAZ09 to be of type string, got %T instead", value) } sv.CredentialsSecretName = ptr.String(jtv) } diff --git a/service/mediaconvert/serializers.go b/service/mediaconvert/serializers.go index e6486340a16..6ea4b5e907b 100644 --- a/service/mediaconvert/serializers.go +++ b/service/mediaconvert/serializers.go @@ -6312,6 +6312,11 @@ func awsRestjson1_serializeDocumentH264Settings(v *types.H264Settings, value smi ok.String(string(v.UnregisteredSeiTimecode)) } + if len(v.WriteMp4PackagingType) > 0 { + ok := object.Key("writeMp4PackagingType") + ok.String(string(v.WriteMp4PackagingType)) + } + return nil } diff --git a/service/mediaconvert/types/enums.go b/service/mediaconvert/types/enums.go index 99d6c6c05d0..247679310da 100644 --- a/service/mediaconvert/types/enums.go +++ b/service/mediaconvert/types/enums.go @@ -4214,6 +4214,25 @@ func (H264UnregisteredSeiTimecode) Values() []H264UnregisteredSeiTimecode { } } +type H264WriteMp4PackagingType string + +// Enum values for H264WriteMp4PackagingType +const ( + H264WriteMp4PackagingTypeAvc1 H264WriteMp4PackagingType = "AVC1" + H264WriteMp4PackagingTypeAvc3 H264WriteMp4PackagingType = "AVC3" +) + +// Values returns all known values for H264WriteMp4PackagingType. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. +func (H264WriteMp4PackagingType) Values() []H264WriteMp4PackagingType { + return []H264WriteMp4PackagingType{ + "AVC1", + "AVC3", + } +} + type H265AdaptiveQuantization string // Enum values for H265AdaptiveQuantization diff --git a/service/mediaconvert/types/types.go b/service/mediaconvert/types/types.go index 35475430dc2..274ba0dc052 100644 --- a/service/mediaconvert/types/types.go +++ b/service/mediaconvert/types/types.go @@ -3622,6 +3622,15 @@ type H264Settings struct { // Inserts timecode for each frame as 4 bytes of an unregistered SEI message. UnregisteredSeiTimecode H264UnregisteredSeiTimecode + // Specify how SPS and PPS NAL units are written in your output MP4 container, + // according to ISO/IEC 14496-15. If the location of these parameters doesn't + // matter in your workflow: Keep the default value, AVC1. MediaConvert writes SPS + // and PPS NAL units in the sample description ('stsd') box (but not into samples + // directly). To write SPS and PPS NAL units directly into samples (but not in the + // 'stsd' box): Choose AVC3. When you do, note that your output might not play + // properly with some downstream systems or players. + WriteMp4PackagingType H264WriteMp4PackagingType + noSmithyDocumentSerde } diff --git a/service/organizations/deserializers.go b/service/organizations/deserializers.go index 3c0e046805c..55b43390ac3 100644 --- a/service/organizations/deserializers.go +++ b/service/organizations/deserializers.go @@ -3416,6 +3416,9 @@ func awsAwsjson11_deserializeOpErrorEnableAllFeatures(response *smithyhttp.Respo case strings.EqualFold("ConcurrentModificationException", errorCode): return awsAwsjson11_deserializeErrorConcurrentModificationException(response, errorBody) + case strings.EqualFold("ConstraintViolationException", errorCode): + return awsAwsjson11_deserializeErrorConstraintViolationException(response, errorBody) + case strings.EqualFold("HandshakeConstraintViolationException", errorCode): return awsAwsjson11_deserializeErrorHandshakeConstraintViolationException(response, errorBody) diff --git a/service/organizations/types/enums.go b/service/organizations/types/enums.go index 04e983b041a..d3ce557e900 100644 --- a/service/organizations/types/enums.go +++ b/service/organizations/types/enums.go @@ -141,6 +141,7 @@ const ( ConstraintViolationExceptionReasonInvalidPaymentInstrument ConstraintViolationExceptionReason = "INVALID_PAYMENT_INSTRUMENT" ConstraintViolationExceptionReasonAccountCreationNotComplete ConstraintViolationExceptionReason = "ACCOUNT_CREATION_NOT_COMPLETE" ConstraintViolationExceptionReasonCannotRegisterSuspendedAccountAsDelegatedAdministrator ConstraintViolationExceptionReason = "CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR" + ConstraintViolationExceptionReasonAllFeaturesMigrationOrganizationSizeLimitExceeded ConstraintViolationExceptionReason = "ALL_FEATURES_MIGRATION_ORGANIZATION_SIZE_LIMIT_EXCEEDED" ) // Values returns all known values for ConstraintViolationExceptionReason. Note @@ -185,6 +186,7 @@ func (ConstraintViolationExceptionReason) Values() []ConstraintViolationExceptio "INVALID_PAYMENT_INSTRUMENT", "ACCOUNT_CREATION_NOT_COMPLETE", "CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR", + "ALL_FEATURES_MIGRATION_ORGANIZATION_SIZE_LIMIT_EXCEEDED", } } diff --git a/service/organizations/types/errors.go b/service/organizations/types/errors.go index c1da2f31c2f..f9936c9dc3c 100644 --- a/service/organizations/types/errors.go +++ b/service/organizations/types/errors.go @@ -386,6 +386,12 @@ func (e *ConflictException) ErrorFault() smithy.ErrorFault { return smithy.Fault // organization, wait one hour and try again. After an hour, if the command // continues to fail with this error, contact [Amazon Web Services Support]. // +// - ALL_FEATURES_MIGRATION_ORGANIZATION_SIZE_LIMIT_EXCEEDED: Your organization +// has more than 5000 accounts, and you can only use the standard migration process +// for organizations with less than 5000 accounts. Use the assisted migration +// process to enable all features mode, or create a support case for assistance if +// you are unable to use assisted migration. +// // - CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot // register a suspended account as a delegated administrator. // diff --git a/service/sagemaker/deserializers.go b/service/sagemaker/deserializers.go index f665a905bd9..02096e643fb 100644 --- a/service/sagemaker/deserializers.go +++ b/service/sagemaker/deserializers.go @@ -38847,6 +38847,15 @@ func awsAwsjson11_deserializeDocumentAdditionalS3DataSource(v **types.Additional sv.CompressionType = types.CompressionType(jtv) } + case "ETag": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ETag = ptr.String(jtv) + } + case "S3DataType": if value != nil { jtv, ok := value.(string) @@ -66102,6 +66111,15 @@ func awsAwsjson11_deserializeDocumentModelPackageContainerDefinition(v **types.M sv.ImageDigest = ptr.String(jtv) } + case "ModelDataETag": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ModelDataETag = ptr.String(jtv) + } + case "ModelDataSource": if err := awsAwsjson11_deserializeDocumentModelDataSource(&sv.ModelDataSource, value); err != nil { return err @@ -79071,11 +79089,29 @@ func awsAwsjson11_deserializeDocumentS3ModelDataSource(v **types.S3ModelDataSour sv.CompressionType = types.ModelCompressionType(jtv) } + case "ETag": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ETag = ptr.String(jtv) + } + case "HubAccessConfig": if err := awsAwsjson11_deserializeDocumentInferenceHubAccessConfig(&sv.HubAccessConfig, value); err != nil { return err } + case "ManifestEtag": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ManifestEtag = ptr.String(jtv) + } + case "ManifestS3Uri": if value != nil { jtv, ok := value.(string) @@ -80399,6 +80435,15 @@ func awsAwsjson11_deserializeDocumentSourceAlgorithm(v **types.SourceAlgorithm, sv.AlgorithmName = ptr.String(jtv) } + case "ModelDataETag": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ModelDataETag = ptr.String(jtv) + } + case "ModelDataSource": if err := awsAwsjson11_deserializeDocumentModelDataSource(&sv.ModelDataSource, value); err != nil { return err diff --git a/service/sagemaker/serializers.go b/service/sagemaker/serializers.go index 5ab7e78e108..28fd8102547 100644 --- a/service/sagemaker/serializers.go +++ b/service/sagemaker/serializers.go @@ -21872,6 +21872,11 @@ func awsAwsjson11_serializeDocumentAdditionalS3DataSource(v *types.AdditionalS3D ok.String(string(v.CompressionType)) } + if v.ETag != nil { + ok := object.Key("ETag") + ok.String(*v.ETag) + } + if len(v.S3DataType) > 0 { ok := object.Key("S3DataType") ok.String(string(v.S3DataType)) @@ -28324,6 +28329,11 @@ func awsAwsjson11_serializeDocumentModelPackageContainerDefinition(v *types.Mode ok.String(*v.ImageDigest) } + if v.ModelDataETag != nil { + ok := object.Key("ModelDataETag") + ok.String(*v.ModelDataETag) + } + if v.ModelDataSource != nil { ok := object.Key("ModelDataSource") if err := awsAwsjson11_serializeDocumentModelDataSource(v.ModelDataSource, ok); err != nil { @@ -31493,6 +31503,11 @@ func awsAwsjson11_serializeDocumentS3ModelDataSource(v *types.S3ModelDataSource, ok.String(string(v.CompressionType)) } + if v.ETag != nil { + ok := object.Key("ETag") + ok.String(*v.ETag) + } + if v.HubAccessConfig != nil { ok := object.Key("HubAccessConfig") if err := awsAwsjson11_serializeDocumentInferenceHubAccessConfig(v.HubAccessConfig, ok); err != nil { @@ -31500,6 +31515,11 @@ func awsAwsjson11_serializeDocumentS3ModelDataSource(v *types.S3ModelDataSource, } } + if v.ManifestEtag != nil { + ok := object.Key("ManifestEtag") + ok.String(*v.ManifestEtag) + } + if v.ManifestS3Uri != nil { ok := object.Key("ManifestS3Uri") ok.String(*v.ManifestS3Uri) @@ -31894,6 +31914,11 @@ func awsAwsjson11_serializeDocumentSourceAlgorithm(v *types.SourceAlgorithm, val ok.String(*v.AlgorithmName) } + if v.ModelDataETag != nil { + ok := object.Key("ModelDataETag") + ok.String(*v.ModelDataETag) + } + if v.ModelDataSource != nil { ok := object.Key("ModelDataSource") if err := awsAwsjson11_serializeDocumentModelDataSource(v.ModelDataSource, ok); err != nil { diff --git a/service/sagemaker/types/types.go b/service/sagemaker/types/types.go index 776a6d03f47..075cadd73b4 100644 --- a/service/sagemaker/types/types.go +++ b/service/sagemaker/types/types.go @@ -127,6 +127,9 @@ type AdditionalS3DataSource struct { // training. Specify None if your additional data source is not compressed. CompressionType CompressionType + // The ETag associated with S3 URI. + ETag *string + noSmithyDocumentSerde } @@ -11623,6 +11626,9 @@ type ModelPackageContainerDefinition struct { // training. ImageDigest *string + // The ETag associated with Model Data URL. + ModelDataETag *string + // Specifies the location of ML model data to deploy during endpoint creation. ModelDataSource *ModelDataSource @@ -16528,9 +16534,15 @@ type S3ModelDataSource struct { // This member is required. S3Uri *string + // The ETag associated with S3 URI. + ETag *string + // Configuration information for hub access. HubAccessConfig *InferenceHubAccessConfig + // The ETag associated with Manifest S3URI. + ManifestEtag *string + // The Amazon S3 URI of the manifest file. The manifest file is a CSV file that // stores the artifact locations. ManifestS3Uri *string @@ -17164,6 +17176,9 @@ type SourceAlgorithm struct { // This member is required. AlgorithmName *string + // The ETag associated with Model Data URL. + ModelDataETag *string + // Specifies the location of ML model data to deploy during endpoint creation. ModelDataSource *ModelDataSource diff --git a/service/sqs/api_op_ChangeMessageVisibility.go b/service/sqs/api_op_ChangeMessageVisibility.go index b0ba3f478fb..cdd0bf25b3b 100644 --- a/service/sqs/api_op_ChangeMessageVisibility.go +++ b/service/sqs/api_op_ChangeMessageVisibility.go @@ -49,7 +49,7 @@ import ( // You can also increase the number of queues you use to process your messages. To // request a limit increase, [file a support request]. // -// For FIFO queues, there can be a maximum of 20,000 in flight messages (received +// For FIFO queues, there can be a maximum of 120,000 in flight messages (received // from a queue by a consumer, but not yet deleted from the queue). If you reach // this limit, Amazon SQS returns no error messages. // diff --git a/service/sqs/api_op_CreateQueue.go b/service/sqs/api_op_CreateQueue.go index 9fb6d584987..47e5cd20926 100644 --- a/service/sqs/api_op_CreateQueue.go +++ b/service/sqs/api_op_CreateQueue.go @@ -35,21 +35,27 @@ import ( // After you create a queue, you must wait at least one second after the queue is // created to be able to use the queue. // -// To get the queue URL, use the GetQueueUrl action. GetQueueUrl requires only the QueueName parameter. -// be aware of existing queue names: +// To retrieve the URL of a queue, use the [GetQueueUrl]GetQueueUrl action. This action only +// requires the [QueueName]QueueName parameter. // -// - If you provide the name of an existing queue along with the exact names and -// values of all the queue's attributes, CreateQueue returns the queue URL for -// the existing queue. +// When creating queues, keep the following points in mind: // -// - If the queue name, attribute names, or attribute values don't match an -// existing queue, CreateQueue returns an error. +// - If you specify the name of an existing queue and provide the exact same +// names and values for all its attributes, the [CreateQueue]CreateQueue action will return +// the URL of the existing queue instead of creating a new one. +// +// - If you attempt to create a queue with a name that already exists but with +// different attribute names or values, the CreateQueue action will return an +// error. This ensures that existing queues are not inadvertently altered. // // Cross-account permissions don't apply to this action. For more information, see [Grant cross-account permissions to a role and a username] // in the Amazon SQS Developer Guide. // // [limits related to queues]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html +// [CreateQueue]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html // [Grant cross-account permissions to a role and a username]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name +// [QueueName]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html#API_CreateQueue_RequestSyntax +// [GetQueueUrl]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html // // [Moving From a Standard Queue to a FIFO Queue]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-moving func (c *Client) CreateQueue(ctx context.Context, params *CreateQueueInput, optFns ...func(*Options)) (*CreateQueueOutput, error) { diff --git a/service/sqs/api_op_DeleteMessage.go b/service/sqs/api_op_DeleteMessage.go index f6504972a97..aa71f99263c 100644 --- a/service/sqs/api_op_DeleteMessage.go +++ b/service/sqs/api_op_DeleteMessage.go @@ -17,11 +17,13 @@ import ( // consumer. Amazon SQS automatically deletes messages left in a queue longer than // the retention period configured for the queue. // -// The ReceiptHandle is associated with a specific instance of receiving a -// message. If you receive a message more than once, the ReceiptHandle is -// different each time you receive a message. When you use the DeleteMessage -// action, you must provide the most recently received ReceiptHandle for the -// message (otherwise, the request succeeds, but the message will not be deleted). +// Each time you receive a message, meaning when a consumer retrieves a message +// from the queue, it comes with a unique ReceiptHandle . If you receive the same +// message more than once, you will get a different ReceiptHandle each time. When +// you want to delete a message using the DeleteMessage action, you must use the +// ReceiptHandle from the most recent time you received the message. If you use an +// old ReceiptHandle , the request will succeed, but the message might not be +// deleted. // // For standard queues, it is possible to receive a message even after you delete // it. This might happen on rare occasions if one of the servers which stores a diff --git a/service/sqs/api_op_GetQueueUrl.go b/service/sqs/api_op_GetQueueUrl.go index b5bf5639fe8..dd01ce10dc9 100644 --- a/service/sqs/api_op_GetQueueUrl.go +++ b/service/sqs/api_op_GetQueueUrl.go @@ -10,15 +10,17 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the URL of an existing Amazon SQS queue. +// The GetQueueUrl API returns the URL of an existing Amazon SQS queue. This is +// useful when you know the queue's name but need to retrieve its URL for further +// operations. // -// To access a queue that belongs to another AWS account, use the +// To access a queue owned by another Amazon Web Services account, use the // QueueOwnerAWSAccountId parameter to specify the account ID of the queue's owner. -// The queue's owner must grant you permission to access the queue. For more -// information about shared queue access, see AddPermissionor see [Allow Developers to Write Messages to a Shared Queue] in the Amazon SQS Developer -// Guide. +// Note that the queue owner must grant you the necessary permissions to access the +// queue. For more information about accessing shared queues, see the AddPermissionAPI or [Allow developers to write messages to a shared queue] in +// the Amazon SQS Developer Guide. // -// [Allow Developers to Write Messages to a Shared Queue]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue +// [Allow developers to write messages to a shared queue]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue func (c *Client) GetQueueUrl(ctx context.Context, params *GetQueueUrlInput, optFns ...func(*Options)) (*GetQueueUrlOutput, error) { if params == nil { params = &GetQueueUrlInput{} @@ -34,17 +36,20 @@ func (c *Client) GetQueueUrl(ctx context.Context, params *GetQueueUrlInput, optF return out, nil } +// Retrieves the URL of an existing queue based on its name and, optionally, the +// Amazon Web Services account ID. type GetQueueUrlInput struct { - // The name of the queue whose URL must be fetched. Maximum 80 characters. Valid - // values: alphanumeric characters, hyphens ( - ), and underscores ( _ ). - // - // Queue URLs and names are case-sensitive. + // (Required) The name of the queue for which you want to fetch the URL. The name + // can be up to 80 characters long and can include alphanumeric characters, hyphens + // (-), and underscores (_). Queue URLs and names are case-sensitive. // // This member is required. QueueName *string - // The Amazon Web Services account ID of the account that created the queue. + // (Optional) The Amazon Web Services account ID of the account that created the + // queue. This is only required when you are attempting to access a queue owned by + // another Amazon Web Services account. QueueOwnerAWSAccountId *string noSmithyDocumentSerde diff --git a/service/sqs/api_op_ReceiveMessage.go b/service/sqs/api_op_ReceiveMessage.go index b48d3233339..ca27a55c21d 100644 --- a/service/sqs/api_op_ReceiveMessage.go +++ b/service/sqs/api_op_ReceiveMessage.go @@ -16,7 +16,7 @@ import ( // in the Amazon SQS Developer Guide. // // Short poll is the default behavior where a weighted random set of machines is -// sampled on a ReceiveMessage call. Thus, only the messages on the sampled +// sampled on a ReceiveMessage call. Therefore, only the messages on the sampled // machines are returned. If the number of messages in the queue is small (fewer // than 1,000), you most likely get fewer messages than you requested per // ReceiveMessage call. If the number of messages in the queue is extremely small, @@ -43,20 +43,13 @@ import ( // You can provide the VisibilityTimeout parameter in your request. The parameter // is applied to the messages that Amazon SQS returns in the response. If you don't // include the parameter, the overall visibility timeout for the queue is used for -// the returned messages. For more information, see [Visibility Timeout]in the Amazon SQS Developer -// Guide. -// -// A message that isn't deleted or a message whose visibility isn't extended -// before the visibility timeout expires counts as a failed receive. Depending on -// the configuration of the queue, the message might be sent to the dead-letter -// queue. +// the returned messages. The default visibility timeout for a queue is 30 seconds. // // In the future, new attributes might be added. If you write code that calls this // action, we recommend that you structure your code so that it can handle new // attributes gracefully. // // [Queue and Message Identifiers]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html -// [Visibility Timeout]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html // [Amazon SQS Long Polling]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html // [RFC1321]: https://www.ietf.org/rfc/rfc1321.txt func (c *Client) ReceiveMessage(ctx context.Context, params *ReceiveMessageInput, optFns ...func(*Options)) (*ReceiveMessageOutput, error) { @@ -74,6 +67,7 @@ func (c *Client) ReceiveMessage(ctx context.Context, params *ReceiveMessageInput return out, nil } +// Retrieves one or more messages from a specified queue. type ReceiveMessageInput struct { // The URL of the Amazon SQS queue from which messages are received. @@ -83,7 +77,7 @@ type ReceiveMessageInput struct { // This member is required. QueueUrl *string - // This parameter has been deprecated but will be supported for backward + // This parameter has been discontinued but will be supported for backward // compatibility. To provide attribute names, you are encouraged to use // MessageSystemAttributeNames . // @@ -251,13 +245,44 @@ type ReceiveMessageInput struct { ReceiveRequestAttemptId *string // The duration (in seconds) that the received messages are hidden from subsequent - // retrieve requests after being retrieved by a ReceiveMessage request. + // retrieve requests after being retrieved by a ReceiveMessage request. If not + // specified, the default visibility timeout for the queue is used, which is 30 + // seconds. + // + // Understanding VisibilityTimeout : + // + // - When a message is received from a queue, it becomes temporarily invisible + // to other consumers for the duration of the visibility timeout. This prevents + // multiple consumers from processing the same message simultaneously. If the + // message is not deleted or its visibility timeout is not extended before the + // timeout expires, it becomes visible again and can be retrieved by other + // consumers. + // + // - Setting an appropriate visibility timeout is crucial. If it's too short, + // the message might become visible again before processing is complete, leading to + // duplicate processing. If it's too long, it delays the reprocessing of messages + // if the initial processing fails. + // + // - You can adjust the visibility timeout using the --visibility-timeout + // parameter in the receive-message command to match the processing time required + // by your application. + // + // - A message that isn't deleted or a message whose visibility isn't extended + // before the visibility timeout expires counts as a failed receive. Depending on + // the configuration of the queue, the message might be sent to the dead-letter + // queue. + // + // For more information, see [Visibility Timeout] in the Amazon SQS Developer Guide. + // + // [Visibility Timeout]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html VisibilityTimeout int32 // The duration (in seconds) for which the call waits for a message to arrive in // the queue before returning. If a message is available, the call returns sooner // than WaitTimeSeconds . If no messages are available and the wait time expires, - // the call does not return a message list. + // the call does not return a message list. If you are using the Java SDK, it + // returns a ReceiveMessageResponse object, which has a empty list instead of a + // Null object. // // To avoid HTTP errors, ensure that the HTTP response timeout for ReceiveMessage // requests is longer than the WaitTimeSeconds parameter. For example, with the diff --git a/service/sqs/types/errors.go b/service/sqs/types/errors.go index 7bbe0e5a878..92d368cb7df 100644 --- a/service/sqs/types/errors.go +++ b/service/sqs/types/errors.go @@ -85,7 +85,7 @@ func (e *EmptyBatchRequest) ErrorCode() string { } func (e *EmptyBatchRequest) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The accountId is invalid. +// The specified ID is invalid. type InvalidAddress struct { Message *string @@ -241,7 +241,7 @@ func (e *InvalidMessageContents) ErrorCode() string { } func (e *InvalidMessageContents) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// When the request to a queue is not HTTPS and SigV4. +// The request was not made over HTTPS or did not use SigV4 for signing. type InvalidSecurity struct { Message *string @@ -567,7 +567,7 @@ func (e *QueueDeletedRecently) ErrorCode() string { } func (e *QueueDeletedRecently) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The specified queue doesn't exist. +// Ensure that the QueueUrl is correct and that the queue has not been deleted. type QueueDoesNotExist struct { Message *string @@ -649,17 +649,13 @@ func (e *ReceiptHandleIsInvalid) ErrorFault() smithy.ErrorFault { return smithy. // The request was denied due to request throttling. // -// - The rate of requests per second exceeds the Amazon Web Services KMS request -// quota for an account and Region. +// - Exceeds the permitted request rate for the queue or for the recipient of +// the request. // -// - A burst or sustained high rate of requests to change the state of the same -// KMS key. This condition is often known as a "hot key." +// - Ensure that the request rate is within the Amazon SQS limits for sending +// messages. For more information, see [Amazon SQS quotas]in the Amazon SQS Developer Guide. // -// - Requests for operations on KMS keys in a Amazon Web Services CloudHSM key -// store might be throttled at a lower-than-expected rate when the Amazon Web -// Services CloudHSM cluster associated with the Amazon Web Services CloudHSM key -// store is processing numerous commands, including those unrelated to the Amazon -// Web Services CloudHSM key store. +// [Amazon SQS quotas]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-quotas.html#quotas-requests type RequestThrottled struct { Message *string @@ -711,7 +707,12 @@ func (e *ResourceNotFoundException) ErrorCode() string { } func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The batch request contains more entries than permissible. +// The batch request contains more entries than permissible. For Amazon SQS, the +// maximum number of entries you can include in a single [SendMessageBatch], [DeleteMessageBatch], or [ChangeMessageVisibilityBatch] request is 10. +// +// [SendMessageBatch]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html +// [ChangeMessageVisibilityBatch]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ChangeMessageVisibilityBatch.html +// [DeleteMessageBatch]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessageBatch.html type TooManyEntriesInBatchRequest struct { Message *string diff --git a/service/ssmsap/internal/endpoints/endpoints.go b/service/ssmsap/internal/endpoints/endpoints.go index 3f36dc3f5ac..20cad28b2be 100644 --- a/service/ssmsap/internal/endpoints/endpoints.go +++ b/service/ssmsap/internal/endpoints/endpoints.go @@ -142,36 +142,102 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "af-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "af-south-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.af-south-1.api.aws", + }, endpoints.EndpointKey{ Region: "ap-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-east-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-east-1.api.aws", + }, endpoints.EndpointKey{ Region: "ap-northeast-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-northeast-1.api.aws", + }, endpoints.EndpointKey{ Region: "ap-northeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-northeast-2.api.aws", + }, endpoints.EndpointKey{ Region: "ap-northeast-3", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-3", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-northeast-3.api.aws", + }, endpoints.EndpointKey{ Region: "ap-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-south-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-south-1.api.aws", + }, endpoints.EndpointKey{ Region: "ap-south-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-south-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-south-2.api.aws", + }, endpoints.EndpointKey{ Region: "ap-southeast-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-southeast-1.api.aws", + }, endpoints.EndpointKey{ Region: "ap-southeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-southeast-2.api.aws", + }, endpoints.EndpointKey{ Region: "ap-southeast-3", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-southeast-3.api.aws", + }, endpoints.EndpointKey{ Region: "ap-southeast-4", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-4", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ap-southeast-4.api.aws", + }, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, @@ -181,30 +247,90 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "ssm-sap-fips.ca-central-1.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "ca-central-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap-fips.ca-central-1.api.aws", + }, + endpoints.EndpointKey{ + Region: "ca-central-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.ca-central-1.api.aws", + }, endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.eu-central-1.api.aws", + }, endpoints.EndpointKey{ Region: "eu-central-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.eu-central-2.api.aws", + }, endpoints.EndpointKey{ Region: "eu-north-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-north-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.eu-north-1.api.aws", + }, endpoints.EndpointKey{ Region: "eu-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-south-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.eu-south-1.api.aws", + }, endpoints.EndpointKey{ Region: "eu-south-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-south-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.eu-south-2.api.aws", + }, endpoints.EndpointKey{ Region: "eu-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.eu-west-1.api.aws", + }, endpoints.EndpointKey{ Region: "eu-west-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.eu-west-2.api.aws", + }, endpoints.EndpointKey{ Region: "eu-west-3", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-west-3", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.eu-west-3.api.aws", + }, endpoints.EndpointKey{ Region: "fips-ca-central-1", }: endpoints.Endpoint{ @@ -253,15 +379,39 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "il-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "il-central-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.il-central-1.api.aws", + }, endpoints.EndpointKey{ Region: "me-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "me-central-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.me-central-1.api.aws", + }, endpoints.EndpointKey{ Region: "me-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "me-south-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.me-south-1.api.aws", + }, endpoints.EndpointKey{ Region: "sa-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "sa-east-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.sa-east-1.api.aws", + }, endpoints.EndpointKey{ Region: "us-east-1", }: endpoints.Endpoint{}, @@ -271,6 +421,18 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "ssm-sap-fips.us-east-1.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "us-east-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap-fips.us-east-1.api.aws", + }, + endpoints.EndpointKey{ + Region: "us-east-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.us-east-1.api.aws", + }, endpoints.EndpointKey{ Region: "us-east-2", }: endpoints.Endpoint{}, @@ -280,6 +442,18 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "ssm-sap-fips.us-east-2.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "us-east-2", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap-fips.us-east-2.api.aws", + }, + endpoints.EndpointKey{ + Region: "us-east-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.us-east-2.api.aws", + }, endpoints.EndpointKey{ Region: "us-west-1", }: endpoints.Endpoint{}, @@ -289,6 +463,18 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "ssm-sap-fips.us-west-1.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "us-west-1", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap-fips.us-west-1.api.aws", + }, + endpoints.EndpointKey{ + Region: "us-west-1", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.us-west-1.api.aws", + }, endpoints.EndpointKey{ Region: "us-west-2", }: endpoints.Endpoint{}, @@ -298,6 +484,18 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "ssm-sap-fips.us-west-2.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "us-west-2", + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap-fips.us-west-2.api.aws", + }, + endpoints.EndpointKey{ + Region: "us-west-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "ssm-sap.us-west-2.api.aws", + }, }, }, {