diff --git a/.changelog/0c6e2268ec2f4337b4337f466e9366bd.json b/.changelog/0c6e2268ec2f4337b4337f466e9366bd.json new file mode 100644 index 00000000000..0a9c703f421 --- /dev/null +++ b/.changelog/0c6e2268ec2f4337b4337f466e9366bd.json @@ -0,0 +1,8 @@ +{ + "id": "0c6e2268-ec2f-4337-b433-7f466e9366bd", + "type": "feature", + "description": "Amazon SageMaker Autopilot adds support for new objective metrics in CreateAutoMLJob API.", + "modules": [ + "service/sagemaker" + ] +} \ No newline at end of file diff --git a/.changelog/0d9c2367d8e74d33a6f235c46d4de325.json b/.changelog/0d9c2367d8e74d33a6f235c46d4de325.json new file mode 100644 index 00000000000..534e5bf46ab --- /dev/null +++ b/.changelog/0d9c2367d8e74d33a6f235c46d4de325.json @@ -0,0 +1,8 @@ +{ + "id": "0d9c2367-d8e7-4d33-a6f2-35c46d4de325", + "type": "feature", + "description": "Documentation updates for AWS Resource Explorer.", + "modules": [ + "service/resourceexplorer2" + ] +} \ No newline at end of file diff --git a/.changelog/2bcc056c89db44b0adc4ded51dc2d378.json b/.changelog/2bcc056c89db44b0adc4ded51dc2d378.json new file mode 100644 index 00000000000..66bc7429082 --- /dev/null +++ b/.changelog/2bcc056c89db44b0adc4ded51dc2d378.json @@ -0,0 +1,8 @@ +{ + "id": "2bcc056c-89db-44b0-adc4-ded51dc2d378", + "type": "feature", + "description": "Adds support for pagination in the EC2 DescribeImages API.", + "modules": [ + "service/ec2" + ] +} \ No newline at end of file diff --git a/.changelog/2e0ba390d7734fc99ed854a355fbc964.json b/.changelog/2e0ba390d7734fc99ed854a355fbc964.json new file mode 100644 index 00000000000..7e81ebb6d97 --- /dev/null +++ b/.changelog/2e0ba390d7734fc99ed854a355fbc964.json @@ -0,0 +1,8 @@ +{ + "id": "2e0ba390-d773-4fc9-9ed8-54a355fbc964", + "type": "feature", + "description": "Use Route 53 domain APIs to change owner, create/delete DS record, modify IPS tag, resend authorization. New: AssociateDelegationSignerToDomain, DisassociateDelegationSignerFromDomain, PushDomain, ResendOperationAuthorization. Updated: UpdateDomainContact, ListOperations, CheckDomainTransferability.", + "modules": [ + "service/route53domains" + ] +} \ No newline at end of file diff --git a/.changelog/46aa26155ad1499eb66ff8a656ec272e.json b/.changelog/46aa26155ad1499eb66ff8a656ec272e.json new file mode 100644 index 00000000000..9f3c02f4aeb --- /dev/null +++ b/.changelog/46aa26155ad1499eb66ff8a656ec272e.json @@ -0,0 +1,8 @@ +{ + "id": "46aa2615-5ad1-499e-b66f-f8a656ec272e", + "type": "feature", + "description": "Amazon Nimble Studio now supports configuring session storage volumes and persistence, as well as backup and restore sessions through launch profiles.", + "modules": [ + "service/nimble" + ] +} \ No newline at end of file diff --git a/.changelog/67dc8d05d19543719c98c7070fdf6834.json b/.changelog/67dc8d05d19543719c98c7070fdf6834.json new file mode 100644 index 00000000000..a34d3b57df7 --- /dev/null +++ b/.changelog/67dc8d05d19543719c98c7070fdf6834.json @@ -0,0 +1,8 @@ +{ + "id": "67dc8d05-d195-4371-9c98-c7070fdf6834", + "type": "feature", + "description": "Enable our batch transcription jobs for Swedish and Vietnamese.", + "modules": [ + "service/transcribe" + ] +} \ No newline at end of file diff --git a/.changelog/982bf10c446648db979f737b52af9337.json b/.changelog/982bf10c446648db979f737b52af9337.json new file mode 100644 index 00000000000..e921c94ca93 --- /dev/null +++ b/.changelog/982bf10c446648db979f737b52af9337.json @@ -0,0 +1,8 @@ +{ + "id": "982bf10c-4466-48db-979f-737b52af9337", + "type": "feature", + "description": "This release adds support for listing inference schedulers by status.", + "modules": [ + "service/lookoutequipment" + ] +} \ No newline at end of file diff --git a/.changelog/ac069c2530fd4fa0b4bfe16f50cc33d1.json b/.changelog/ac069c2530fd4fa0b4bfe16f50cc33d1.json new file mode 100644 index 00000000000..0c7353bdd7a --- /dev/null +++ b/.changelog/ac069c2530fd4fa0b4bfe16f50cc33d1.json @@ -0,0 +1,8 @@ +{ + "id": "ac069c25-30fd-4fa0-b4bf-e16f50cc33d1", + "type": "feature", + "description": "Adds isCancelled and isTerminated to DescribeJobs response.", + "modules": [ + "service/batch" + ] +} \ No newline at end of file diff --git a/.changelog/fdd19012409c464fa8f42b14983d9c3b.json b/.changelog/fdd19012409c464fa8f42b14983d9c3b.json new file mode 100644 index 00000000000..4af8a37715d --- /dev/null +++ b/.changelog/fdd19012409c464fa8f42b14983d9c3b.json @@ -0,0 +1,8 @@ +{ + "id": "fdd19012-409c-464f-a8f4-2b14983d9c3b", + "type": "feature", + "description": "This release adds support for two new features to AWS Elemental MediaLive. First, you can now burn-in timecodes to your MediaLive outputs. Second, we now now support the ability to decode Dolby E audio when it comes in on an input.", + "modules": [ + "service/medialive" + ] +} \ No newline at end of file diff --git a/service/batch/deserializers.go b/service/batch/deserializers.go index 2edcbc6ff19..9050a9c1c21 100644 --- a/service/batch/deserializers.go +++ b/service/batch/deserializers.go @@ -6871,6 +6871,24 @@ func awsRestjson1_deserializeDocumentJobDetail(v **types.JobDetail, value interf return err } + case "isCancelled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsCancelled = ptr.Bool(jtv) + } + + case "isTerminated": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsTerminated = ptr.Bool(jtv) + } + case "jobArn": if value != nil { jtv, ok := value.(string) diff --git a/service/batch/types/types.go b/service/batch/types/types.go index 4585257c11f..016ac1531a6 100644 --- a/service/batch/types/types.go +++ b/service/batch/types/types.go @@ -231,7 +231,17 @@ type ComputeResource struct { // within the same VPC. Fargate compute resources can contain up to 16 subnets. For // more information, see VPCs and subnets // (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the - // Amazon VPC User Guide. + // Amazon VPC User Guide. Batch on Amazon EC2 and Batch on Amazon EKS support Local + // Zones. For more information, see Local Zones + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-local-zones) + // in the Amazon EC2 User Guide for Linux Instances, Amazon EKS and Amazon Web + // Services Local Zones + // (https://docs.aws.amazon.com/eks/latest/userguide/local-zones.html) in the + // Amazon EKS User Guide and Amazon ECS clusters in Local Zones, Wavelength Zones, + // and Amazon Web Services Outposts + // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-regions-zones.html#clusters-local-zones) + // in the Amazon ECS Developer Guide. Batch on Fargate doesn't currently support + // Local Zones. // // This member is required. Subnets []string @@ -290,8 +300,8 @@ type ComputeResource struct { // than 20% of the current On-Demand price for that Amazon EC2 instance. You always // pay the lowest (market) price and never more than your maximum percentage. If // you leave this field empty, the default value is 100% of the On-Demand price. - // This parameter isn't applicable to jobs that are running on Fargate resources. - // Don't specify it. + // For most use cases, we recommend leaving this field empty. This parameter isn't + // applicable to jobs that are running on Fargate resources. Don't specify it. BidPercentage *int32 // The desired number of Amazon EC2 vCPUS in the compute environment. Batch @@ -458,10 +468,10 @@ type ComputeResourceUpdate struct { // On-Demand price for that instance type before instances are launched. For // example, if your maximum percentage is 20%, the Spot price must be less than 20% // of the current On-Demand price for that Amazon EC2 instance. You always pay the - // lowest (market) price and never more than your maximum percentage. When updating - // a compute environment, changing the bid percentage requires an infrastructure - // update of the compute environment. For more information, see Updating compute - // environments + // lowest (market) price and never more than your maximum percentage. For most use + // cases, we recommend leaving this field empty. When updating a compute + // environment, changing the bid percentage requires an infrastructure update of + // the compute environment. For more information, see Updating compute environments // (https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) // in the Batch User Guide. This parameter isn't applicable to jobs that are // running on Fargate resources. Don't specify it. @@ -619,7 +629,17 @@ type ComputeResourceUpdate struct { // subnets requires an infrastructure update of the compute environment. For more // information, see Updating compute environments // (https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) - // in the Batch User Guide. + // in the Batch User Guide. Batch on Amazon EC2 and Batch on Amazon EKS support + // Local Zones. For more information, see Local Zones + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-local-zones) + // in the Amazon EC2 User Guide for Linux Instances, Amazon EKS and Amazon Web + // Services Local Zones + // (https://docs.aws.amazon.com/eks/latest/userguide/local-zones.html) in the + // Amazon EKS User Guide and Amazon ECS clusters in Local Zones, Wavelength Zones, + // and Amazon Web Services Outposts + // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-regions-zones.html#clusters-local-zones) + // in the Amazon ECS Developer Guide. Batch on Fargate doesn't currently support + // Local Zones. Subnets []string // Key-value pair tags to be applied to EC2 resources that are launched in the @@ -2143,6 +2163,12 @@ type JobDetail struct { // Only one of container, eksProperties, or nodeDetails is specified. EksProperties *EksPropertiesDetail + // Indicates whether the job is canceled. + IsCancelled *bool + + // Indicates whether the job is terminated. + IsTerminated *bool + // The Amazon Resource Name (ARN) of the job. JobArn *string @@ -2319,7 +2345,10 @@ type JobTimeout struct { // The job timeout time (in seconds) that's measured from the job attempt's // startedAt timestamp. After this time passes, Batch terminates your jobs if they - // aren't finished. The minimum value for the timeout is 60 seconds. + // aren't finished. The minimum value for the timeout is 60 seconds. For array + // jobs, the timeout applies to the child jobs, not to the parent array job. For + // multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the + // individual nodes. AttemptDurationSeconds *int32 noSmithyDocumentSerde diff --git a/service/cloudhsmv2/internal/endpoints/endpoints.go b/service/cloudhsmv2/internal/endpoints/endpoints.go index dba4658aa81..c995b22b3e7 100644 --- a/service/cloudhsmv2/internal/endpoints/endpoints.go +++ b/service/cloudhsmv2/internal/endpoints/endpoints.go @@ -180,6 +180,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-2", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "eu-north-1", }: endpoints.Endpoint{}, diff --git a/service/ec2/api_op_CancelImageLaunchPermission.go b/service/ec2/api_op_CancelImageLaunchPermission.go index f7b3ae08ad8..f22c317e799 100644 --- a/service/ec2/api_op_CancelImageLaunchPermission.go +++ b/service/ec2/api_op_CancelImageLaunchPermission.go @@ -12,8 +12,8 @@ import ( // Removes your Amazon Web Services account from the launch permissions for the // specified AMI. For more information, see Cancel having an AMI shared with your -// Amazon Web Services account (https://docs.aws.amazon.com/) in the Amazon Elastic -// Compute Cloud User Guide. +// Amazon Web Services account (https://docs.aws.amazon.com/) in the Amazon EC2 +// User Guide. func (c *Client) CancelImageLaunchPermission(ctx context.Context, params *CancelImageLaunchPermissionInput, optFns ...func(*Options)) (*CancelImageLaunchPermissionOutput, error) { if params == nil { params = &CancelImageLaunchPermissionInput{} diff --git a/service/ec2/api_op_CopyImage.go b/service/ec2/api_op_CopyImage.go index 57abe11abaa..006183d791c 100644 --- a/service/ec2/api_op_CopyImage.go +++ b/service/ec2/api_op_CopyImage.go @@ -28,10 +28,10 @@ import ( // support unencrypted snapshots. For more information, Amazon EBS local snapshots // on Outposts // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami) -// in the Amazon Elastic Compute Cloud User Guide. For more information about the -// prerequisites and limits when copying an AMI, see Copy an AMI +// in the Amazon EC2 User Guide. For more information about the prerequisites and +// limits when copying an AMI, see Copy an AMI // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html) in the -// Amazon Elastic Compute Cloud User Guide. +// Amazon EC2 User Guide. func (c *Client) CopyImage(ctx context.Context, params *CopyImageInput, optFns ...func(*Options)) (*CopyImageOutput, error) { if params == nil { params = &CopyImageInput{} @@ -93,7 +93,7 @@ type CopyImageInput struct { // the same Outpost. For more information, see Copy AMIs from an Amazon Web // Services Region to an Outpost // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#copy-amis) - // in the Amazon Elastic Compute Cloud User Guide. + // in the Amazon EC2 User Guide. DestinationOutpostArn *string // Checks whether you have the required permissions for the action, without @@ -108,7 +108,7 @@ type CopyImageInput struct { // Amazon EBS is used unless you specify a non-default Key Management Service (KMS) // KMS key using KmsKeyId. For more information, see Amazon EBS encryption // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) in the - // Amazon Elastic Compute Cloud User Guide. + // Amazon EC2 User Guide. Encrypted *bool // The identifier of the symmetric Key Management Service (KMS) KMS key to use when diff --git a/service/ec2/api_op_CreateRestoreImageTask.go b/service/ec2/api_op_CreateRestoreImageTask.go index 711f9ca1670..d8f658ea3cb 100644 --- a/service/ec2/api_op_CreateRestoreImageTask.go +++ b/service/ec2/api_op_CreateRestoreImageTask.go @@ -17,10 +17,10 @@ import ( // To use this API, you must have the required permissions. For more information, // see Permissions for storing and restoring AMIs using Amazon S3 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions) -// in the Amazon Elastic Compute Cloud User Guide. For more information, see Store -// and restore an AMI using Amazon S3 +// in the Amazon EC2 User Guide. For more information, see Store and restore an AMI +// using Amazon S3 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) in -// the Amazon Elastic Compute Cloud User Guide. +// the Amazon EC2 User Guide. func (c *Client) CreateRestoreImageTask(ctx context.Context, params *CreateRestoreImageTaskInput, optFns ...func(*Options)) (*CreateRestoreImageTaskOutput, error) { if params == nil { params = &CreateRestoreImageTaskInput{} diff --git a/service/ec2/api_op_CreateStoreImageTask.go b/service/ec2/api_op_CreateStoreImageTask.go index 3b1b1e17949..de796a8ee58 100644 --- a/service/ec2/api_op_CreateStoreImageTask.go +++ b/service/ec2/api_op_CreateStoreImageTask.go @@ -15,10 +15,10 @@ import ( // must have the required permissions. For more information, see Permissions for // storing and restoring AMIs using Amazon S3 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions) -// in the Amazon Elastic Compute Cloud User Guide. For more information, see Store -// and restore an AMI using Amazon S3 +// in the Amazon EC2 User Guide. For more information, see Store and restore an AMI +// using Amazon S3 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) in -// the Amazon Elastic Compute Cloud User Guide. +// the Amazon EC2 User Guide. func (c *Client) CreateStoreImageTask(ctx context.Context, params *CreateStoreImageTaskInput, optFns ...func(*Options)) (*CreateStoreImageTaskOutput, error) { if params == nil { params = &CreateStoreImageTaskInput{} diff --git a/service/ec2/api_op_DeregisterImage.go b/service/ec2/api_op_DeregisterImage.go index 456cacffe2f..819356386ed 100644 --- a/service/ec2/api_op_DeregisterImage.go +++ b/service/ec2/api_op_DeregisterImage.go @@ -15,13 +15,13 @@ import ( // retention rule, the AMI is retained in the Recycle Bin for the specified // retention period. For more information, see Recycle Bin // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) in the -// Amazon Elastic Compute Cloud User Guide. When you deregister an AMI, it doesn't -// affect any instances that you've already launched from the AMI. You'll continue -// to incur usage costs for those instances until you terminate them. When you -// deregister an Amazon EBS-backed AMI, it doesn't affect the snapshot that was -// created for the root volume of the instance during the AMI creation process. -// When you deregister an instance store-backed AMI, it doesn't affect the files -// that you uploaded to Amazon S3 when you created the AMI. +// Amazon EC2 User Guide. When you deregister an AMI, it doesn't affect any +// instances that you've already launched from the AMI. You'll continue to incur +// usage costs for those instances until you terminate them. When you deregister an +// Amazon EBS-backed AMI, it doesn't affect the snapshot that was created for the +// root volume of the instance during the AMI creation process. When you deregister +// an instance store-backed AMI, it doesn't affect the files that you uploaded to +// Amazon S3 when you created the AMI. func (c *Client) DeregisterImage(ctx context.Context, params *DeregisterImageInput, optFns ...func(*Options)) (*DeregisterImageOutput, error) { if params == nil { params = &DeregisterImageInput{} diff --git a/service/ec2/api_op_DescribeImageAttribute.go b/service/ec2/api_op_DescribeImageAttribute.go index 50ba6a02955..9dcb04185c6 100644 --- a/service/ec2/api_op_DescribeImageAttribute.go +++ b/service/ec2/api_op_DescribeImageAttribute.go @@ -73,7 +73,7 @@ type DescribeImageAttributeOutput struct { // metadata. In addition, HttpPutResponseHopLimit is set to 2. For more // information, see Configure the AMI // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) - // in the Amazon Elastic Compute Cloud User Guide. + // in the Amazon EC2 User Guide. ImdsSupport *types.AttributeValue // The kernel ID. @@ -109,7 +109,7 @@ type DescribeImageAttributeOutput struct { // tool (https://github.com/awslabs/python-uefivars) on GitHub. For more // information, see UEFI Secure Boot // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html) in - // the Amazon Elastic Compute Cloud User Guide. + // the Amazon EC2 User Guide. UefiData *types.AttributeValue // Metadata pertaining to the operation's result. diff --git a/service/ec2/api_op_DescribeImages.go b/service/ec2/api_op_DescribeImages.go index d5ee41248db..28a5a22e540 100644 --- a/service/ec2/api_op_DescribeImages.go +++ b/service/ec2/api_op_DescribeImages.go @@ -183,6 +183,13 @@ type DescribeImagesInput struct { // in the response regardless of what you specify for this parameter. IncludeDeprecated *bool + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int32 + + // The token for the next page of results. + NextToken *string + // Scopes the results to images with the specified owners. You can specify a // combination of Amazon Web Services account IDs, self, amazon, and // aws-marketplace. If you omit this parameter, the results include all images for @@ -197,6 +204,10 @@ type DescribeImagesOutput struct { // Information about the images. Images []types.Image + // The token to use to retrieve the next page of results. This value is null when + // there are no more results to return. + NextToken *string + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata @@ -271,6 +282,89 @@ type DescribeImagesAPIClient interface { var _ DescribeImagesAPIClient = (*Client)(nil) +// DescribeImagesPaginatorOptions is the paginator options for DescribeImages +type DescribeImagesPaginatorOptions struct { + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// DescribeImagesPaginator is a paginator for DescribeImages +type DescribeImagesPaginator struct { + options DescribeImagesPaginatorOptions + client DescribeImagesAPIClient + params *DescribeImagesInput + nextToken *string + firstPage bool +} + +// NewDescribeImagesPaginator returns a new DescribeImagesPaginator +func NewDescribeImagesPaginator(client DescribeImagesAPIClient, params *DescribeImagesInput, optFns ...func(*DescribeImagesPaginatorOptions)) *DescribeImagesPaginator { + if params == nil { + params = &DescribeImagesInput{} + } + + options := DescribeImagesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &DescribeImagesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *DescribeImagesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next DescribeImages page. +func (p *DescribeImagesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*DescribeImagesOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit + + result, err := p.client.DescribeImages(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + // ImageAvailableWaiterOptions are waiter options for ImageAvailableWaiter type ImageAvailableWaiterOptions struct { diff --git a/service/ec2/api_op_DescribeStoreImageTasks.go b/service/ec2/api_op_DescribeStoreImageTasks.go index 38689f8217a..5590b71637a 100644 --- a/service/ec2/api_op_DescribeStoreImageTasks.go +++ b/service/ec2/api_op_DescribeStoreImageTasks.go @@ -21,10 +21,10 @@ import ( // To use this API, you must have the required permissions. For more information, // see Permissions for storing and restoring AMIs using Amazon S3 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions) -// in the Amazon Elastic Compute Cloud User Guide. For more information, see Store -// and restore an AMI using Amazon S3 +// in the Amazon EC2 User Guide. For more information, see Store and restore an AMI +// using Amazon S3 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) in -// the Amazon Elastic Compute Cloud User Guide. +// the Amazon EC2 User Guide. func (c *Client) DescribeStoreImageTasks(ctx context.Context, params *DescribeStoreImageTasksInput, optFns ...func(*Options)) (*DescribeStoreImageTasksOutput, error) { if params == nil { params = &DescribeStoreImageTasksInput{} diff --git a/service/ec2/api_op_DisableImageDeprecation.go b/service/ec2/api_op_DisableImageDeprecation.go index 465a606eec1..b4908320980 100644 --- a/service/ec2/api_op_DisableImageDeprecation.go +++ b/service/ec2/api_op_DisableImageDeprecation.go @@ -13,7 +13,7 @@ import ( // Cancels the deprecation of the specified AMI. For more information, see // Deprecate an AMI // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) in the -// Amazon Elastic Compute Cloud User Guide. +// Amazon EC2 User Guide. func (c *Client) DisableImageDeprecation(ctx context.Context, params *DisableImageDeprecationInput, optFns ...func(*Options)) (*DisableImageDeprecationOutput, error) { if params == nil { params = &DisableImageDeprecationInput{} diff --git a/service/ec2/api_op_EnableImageDeprecation.go b/service/ec2/api_op_EnableImageDeprecation.go index f7eb728fd1e..8ca887367de 100644 --- a/service/ec2/api_op_EnableImageDeprecation.go +++ b/service/ec2/api_op_EnableImageDeprecation.go @@ -14,7 +14,7 @@ import ( // Enables deprecation of the specified AMI at the specified date and time. For // more information, see Deprecate an AMI // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) in the -// Amazon Elastic Compute Cloud User Guide. +// Amazon EC2 User Guide. func (c *Client) EnableImageDeprecation(ctx context.Context, params *EnableImageDeprecationInput, optFns ...func(*Options)) (*EnableImageDeprecationOutput, error) { if params == nil { params = &EnableImageDeprecationInput{} diff --git a/service/ec2/api_op_ListImagesInRecycleBin.go b/service/ec2/api_op_ListImagesInRecycleBin.go index 1b5d6b16ef6..a17402db950 100644 --- a/service/ec2/api_op_ListImagesInRecycleBin.go +++ b/service/ec2/api_op_ListImagesInRecycleBin.go @@ -15,7 +15,7 @@ import ( // Lists one or more AMIs that are currently in the Recycle Bin. For more // information, see Recycle Bin // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) in the -// Amazon Elastic Compute Cloud User Guide. +// Amazon EC2 User Guide. func (c *Client) ListImagesInRecycleBin(ctx context.Context, params *ListImagesInRecycleBinInput, optFns ...func(*Options)) (*ListImagesInRecycleBinOutput, error) { if params == nil { params = &ListImagesInRecycleBinInput{} diff --git a/service/ec2/api_op_RegisterImage.go b/service/ec2/api_op_RegisterImage.go index 9bc103d7649..2ba4b4245d4 100644 --- a/service/ec2/api_op_RegisterImage.go +++ b/service/ec2/api_op_RegisterImage.go @@ -57,7 +57,7 @@ import ( // Instance. For information about how to obtain the platform details and billing // information of an AMI, see Understand AMI billing information // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html) in -// the Amazon Elastic Compute Cloud User Guide. +// the Amazon EC2 User Guide. func (c *Client) RegisterImage(ctx context.Context, params *RegisterImageInput, optFns ...func(*Options)) (*RegisterImageOutput, error) { if params == nil { params = &RegisterImageInput{} @@ -88,8 +88,15 @@ type RegisterImageInput struct { Architecture types.ArchitectureValues // The billing product codes. Your account must be authorized to specify billing - // product codes. Otherwise, you can use the Amazon Web Services Marketplace to - // bill for the use of an AMI. + // product codes. If your account is not authorized to specify billing product + // codes, you can publish AMIs that include billable software and list them on the + // Amazon Web Services Marketplace. You must first register as a seller on the + // Amazon Web Services Marketplace. For more information, see Getting started as a + // seller + // (https://docs.aws.amazon.com/marketplace/latest/userguide/user-guide-for-sellers.html) + // and AMI-based products + // (https://docs.aws.amazon.com/marketplace/latest/userguide/ami-products.html) in + // the Amazon Web Services Marketplace Seller Guide. BillingProducts []string // The block device mapping entries. If you specify an Amazon EBS volume using the @@ -97,14 +104,14 @@ type RegisterImageInput struct { // volume. If you create an AMI on an Outpost, then all backing snapshots must be // on the same Outpost or in the Region of that Outpost. AMIs on an Outpost that // include local snapshots can be used to launch instances on the same Outpost - // only. For more information, Amazon EBS local snapshots on Outposts + // only. For more information, Amazon EBS local snapshots on Outposts // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami) - // in the Amazon Elastic Compute Cloud User Guide. + // in the Amazon EC2 User Guide. BlockDeviceMappings []types.BlockDeviceMapping // The boot mode of the AMI. For more information, see Boot modes // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) in the - // Amazon Elastic Compute Cloud User Guide. + // Amazon EC2 User Guide. BootMode types.BootModeValues // A description for your AMI. @@ -135,8 +142,8 @@ type RegisterImageInput struct { // metadata. In addition, HttpPutResponseHopLimit is set to 2. For more // information, see Configure the AMI // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) - // in the Amazon Elastic Compute Cloud User Guide. If you set the value to v2.0, - // make sure that your AMI software can support IMDSv2. + // in the Amazon EC2 User Guide. If you set the value to v2.0, make sure that your + // AMI software can support IMDSv2. ImdsSupport types.ImdsSupportValues // The ID of the kernel. @@ -158,7 +165,7 @@ type RegisterImageInput struct { // Set to v2.0 to enable Trusted Platform Module (TPM) support. For more // information, see NitroTPM // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html) in the - // Amazon Elastic Compute Cloud User Guide. + // Amazon EC2 User Guide. TpmSupport types.TpmSupportValues // Base64 representation of the non-volatile UEFI variable store. To retrieve the @@ -168,7 +175,7 @@ type RegisterImageInput struct { // tool (https://github.com/awslabs/python-uefivars) on GitHub. For more // information, see UEFI Secure Boot // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html) in - // the Amazon Elastic Compute Cloud User Guide. + // the Amazon EC2 User Guide. UefiData *string // The type of virtualization (hvm | paravirtual). Default: paravirtual diff --git a/service/ec2/api_op_RestoreImageFromRecycleBin.go b/service/ec2/api_op_RestoreImageFromRecycleBin.go index ea293ea356f..405a6f120f9 100644 --- a/service/ec2/api_op_RestoreImageFromRecycleBin.go +++ b/service/ec2/api_op_RestoreImageFromRecycleBin.go @@ -12,7 +12,7 @@ import ( // Restores an AMI from the Recycle Bin. For more information, see Recycle Bin // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) in the -// Amazon Elastic Compute Cloud User Guide. +// Amazon EC2 User Guide. func (c *Client) RestoreImageFromRecycleBin(ctx context.Context, params *RestoreImageFromRecycleBinInput, optFns ...func(*Options)) (*RestoreImageFromRecycleBinOutput, error) { if params == nil { params = &RestoreImageFromRecycleBinInput{} diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index c9b47678161..03b2f69bfbc 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -140145,6 +140145,19 @@ func awsEc2query_deserializeOpDocumentDescribeImagesOutput(v **DescribeImagesOut return err } + case strings.EqualFold("nextToken", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.NextToken = ptr.String(xtv) + } + default: // Do nothing and ignore the unexpected tag element err = decoder.Decoder.Skip() diff --git a/service/ec2/serializers.go b/service/ec2/serializers.go index a807f5d7c37..74be8722a32 100644 --- a/service/ec2/serializers.go +++ b/service/ec2/serializers.go @@ -54072,6 +54072,16 @@ func awsEc2query_serializeOpDocumentDescribeImagesInput(v *DescribeImagesInput, objectKey.Boolean(*v.IncludeDeprecated) } + if v.MaxResults != nil { + objectKey := object.Key("MaxResults") + objectKey.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + objectKey := object.Key("NextToken") + objectKey.String(*v.NextToken) + } + if v.Owners != nil { objectKey := object.FlatKey("Owner") if err := awsEc2query_serializeDocumentOwnerStringList(v.Owners, objectKey); err != nil { diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index b57a382a52a..9a7cc5288dd 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -4948,7 +4948,7 @@ type Image struct { // The boot mode of the image. For more information, see Boot modes // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) in the - // Amazon Elastic Compute Cloud User Guide. + // Amazon EC2 User Guide. BootMode BootModeValues // The date and time the image was created. @@ -4987,7 +4987,7 @@ type Image struct { // metadata. In addition, HttpPutResponseHopLimit is set to 2. For more // information, see Configure the AMI // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) - // in the Amazon Elastic Compute Cloud User Guide. + // in the Amazon EC2 User Guide. ImdsSupport ImdsSupportValues // The kernel associated with the image, if any. Only applicable for machine @@ -5006,7 +5006,7 @@ type Image struct { // The platform details associated with the billing code of the AMI. For more // information, see Understand AMI billing information // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html) in - // the Amazon Elastic Compute Cloud User Guide. + // the Amazon EC2 User Guide. PlatformDetails *string // Any product codes associated with the AMI. @@ -5045,7 +5045,7 @@ type Image struct { // If the image is configured for NitroTPM support, the value is v2.0. For more // information, see NitroTPM // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html) in the - // Amazon Elastic Compute Cloud User Guide. + // Amazon EC2 User Guide. TpmSupport TpmSupportValues // The operation of the Amazon EC2 instance and the billing code that is associated diff --git a/service/lookoutequipment/api_op_ListInferenceSchedulers.go b/service/lookoutequipment/api_op_ListInferenceSchedulers.go index b38e62bc0e9..199dd127d9e 100644 --- a/service/lookoutequipment/api_op_ListInferenceSchedulers.go +++ b/service/lookoutequipment/api_op_ListInferenceSchedulers.go @@ -44,6 +44,9 @@ type ListInferenceSchedulersInput struct { // schedulers. NextToken *string + // Specifies the current status of the inference schedulers to list. + Status types.InferenceSchedulerStatus + noSmithyDocumentSerde } diff --git a/service/lookoutequipment/deserializers.go b/service/lookoutequipment/deserializers.go index 0fe9cfcf043..2bd97da55a3 100644 --- a/service/lookoutequipment/deserializers.go +++ b/service/lookoutequipment/deserializers.go @@ -751,6 +751,9 @@ func awsAwsjson10_deserializeOpErrorDeleteDataset(response *smithyhttp.Response, case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson10_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -956,6 +959,9 @@ func awsAwsjson10_deserializeOpErrorDeleteLabel(response *smithyhttp.Response, m case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson10_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1057,6 +1063,9 @@ func awsAwsjson10_deserializeOpErrorDeleteLabelGroup(response *smithyhttp.Respon case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson10_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1158,6 +1167,9 @@ func awsAwsjson10_deserializeOpErrorDeleteModel(response *smithyhttp.Response, m case strings.EqualFold("ThrottlingException", errorCode): return awsAwsjson10_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, diff --git a/service/lookoutequipment/serializers.go b/service/lookoutequipment/serializers.go index b1c6c75d214..1d57247e161 100644 --- a/service/lookoutequipment/serializers.go +++ b/service/lookoutequipment/serializers.go @@ -2620,6 +2620,11 @@ func awsAwsjson10_serializeOpDocumentListInferenceSchedulersInput(v *ListInferen ok.String(*v.NextToken) } + if len(v.Status) > 0 { + ok := object.Key("Status") + ok.String(string(v.Status)) + } + return nil } diff --git a/service/medialive/deserializers.go b/service/medialive/deserializers.go index b4663b07089..88aed7f37a8 100644 --- a/service/medialive/deserializers.go +++ b/service/medialive/deserializers.go @@ -13565,6 +13565,46 @@ func awsRestjson1_deserializeDocumentAudioDescription(v **types.AudioDescription return nil } +func awsRestjson1_deserializeDocumentAudioDolbyEDecode(v **types.AudioDolbyEDecode, 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.AudioDolbyEDecode + if *v == nil { + sv = &types.AudioDolbyEDecode{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "programSelection": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DolbyEProgramSelection to be of type string, got %T instead", value) + } + sv.ProgramSelection = types.DolbyEProgramSelection(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentAudioHlsRenditionSelection(v **types.AudioHlsRenditionSelection, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14068,6 +14108,11 @@ func awsRestjson1_deserializeDocumentAudioTrackSelection(v **types.AudioTrackSel for key, value := range shape { switch key { + case "dolbyEDecode": + if err := awsRestjson1_deserializeDocumentAudioDolbyEDecode(&sv.DolbyEDecode, value); err != nil { + return err + } + case "tracks": if err := awsRestjson1_deserializeDocument__listOfAudioTrack(&sv.Tracks, value); err != nil { return err @@ -17839,6 +17884,11 @@ func awsRestjson1_deserializeDocumentFrameCaptureSettings(v **types.FrameCapture sv.CaptureIntervalUnits = types.FrameCaptureIntervalUnit(jtv) } + case "timecodeBurninSettings": + if err := awsRestjson1_deserializeDocumentTimecodeBurninSettings(&sv.TimecodeBurninSettings, value); err != nil { + return err + } + default: _, _ = key, value @@ -18514,6 +18564,11 @@ func awsRestjson1_deserializeDocumentH264Settings(v **types.H264Settings, value sv.TemporalAq = types.H264TemporalAq(jtv) } + case "timecodeBurninSettings": + if err := awsRestjson1_deserializeDocumentTimecodeBurninSettings(&sv.TimecodeBurninSettings, value); err != nil { + return err + } + case "timecodeInsertion": if value != nil { jtv, ok := value.(string) @@ -18959,6 +19014,11 @@ func awsRestjson1_deserializeDocumentH265Settings(v **types.H265Settings, value sv.Tier = types.H265Tier(jtv) } + case "timecodeBurninSettings": + if err := awsRestjson1_deserializeDocumentTimecodeBurninSettings(&sv.TimecodeBurninSettings, value); err != nil { + return err + } + case "timecodeInsertion": if value != nil { jtv, ok := value.(string) @@ -23452,6 +23512,11 @@ func awsRestjson1_deserializeDocumentMpeg2Settings(v **types.Mpeg2Settings, valu sv.SubgopLength = types.Mpeg2SubGopLength(jtv) } + case "timecodeBurninSettings": + if err := awsRestjson1_deserializeDocumentTimecodeBurninSettings(&sv.TimecodeBurninSettings, value); err != nil { + return err + } + case "timecodeInsertion": if value != nil { jtv, ok := value.(string) @@ -28246,6 +28311,64 @@ func awsRestjson1_deserializeDocumentTemporalFilterSettings(v **types.TemporalFi return nil } +func awsRestjson1_deserializeDocumentTimecodeBurninSettings(v **types.TimecodeBurninSettings, 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.TimecodeBurninSettings + if *v == nil { + sv = &types.TimecodeBurninSettings{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "fontSize": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TimecodeBurninFontSize to be of type string, got %T instead", value) + } + sv.FontSize = types.TimecodeBurninFontSize(jtv) + } + + case "position": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TimecodeBurninPosition to be of type string, got %T instead", value) + } + sv.Position = types.TimecodeBurninPosition(jtv) + } + + case "prefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __stringMax255 to be of type string, got %T instead", value) + } + sv.Prefix = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentTimecodeConfig(v **types.TimecodeConfig, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/medialive/serializers.go b/service/medialive/serializers.go index 4a9c038b6c8..466e78e9bf4 100644 --- a/service/medialive/serializers.go +++ b/service/medialive/serializers.go @@ -5171,6 +5171,18 @@ func awsRestjson1_serializeDocumentAudioDescription(v *types.AudioDescription, v return nil } +func awsRestjson1_serializeDocumentAudioDolbyEDecode(v *types.AudioDolbyEDecode, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ProgramSelection) > 0 { + ok := object.Key("programSelection") + ok.String(string(v.ProgramSelection)) + } + + return nil +} + func awsRestjson1_serializeDocumentAudioHlsRenditionSelection(v *types.AudioHlsRenditionSelection, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5368,6 +5380,13 @@ func awsRestjson1_serializeDocumentAudioTrackSelection(v *types.AudioTrackSelect object := value.Object() defer object.Close() + if v.DolbyEDecode != nil { + ok := object.Key("dolbyEDecode") + if err := awsRestjson1_serializeDocumentAudioDolbyEDecode(v.DolbyEDecode, ok); err != nil { + return err + } + } + if v.Tracks != nil { ok := object.Key("tracks") if err := awsRestjson1_serializeDocument__listOfAudioTrack(v.Tracks, ok); err != nil { @@ -6812,6 +6831,13 @@ func awsRestjson1_serializeDocumentFrameCaptureSettings(v *types.FrameCaptureSet ok.String(string(v.CaptureIntervalUnits)) } + if v.TimecodeBurninSettings != nil { + ok := object.Key("timecodeBurninSettings") + if err := awsRestjson1_serializeDocumentTimecodeBurninSettings(v.TimecodeBurninSettings, ok); err != nil { + return err + } + } + return nil } @@ -7117,6 +7143,13 @@ func awsRestjson1_serializeDocumentH264Settings(v *types.H264Settings, value smi ok.String(string(v.TemporalAq)) } + if v.TimecodeBurninSettings != nil { + ok := object.Key("timecodeBurninSettings") + if err := awsRestjson1_serializeDocumentTimecodeBurninSettings(v.TimecodeBurninSettings, ok); err != nil { + return err + } + } + if len(v.TimecodeInsertion) > 0 { ok := object.Key("timecodeInsertion") ok.String(string(v.TimecodeInsertion)) @@ -7342,6 +7375,13 @@ func awsRestjson1_serializeDocumentH265Settings(v *types.H265Settings, value smi ok.String(string(v.Tier)) } + if v.TimecodeBurninSettings != nil { + ok := object.Key("timecodeBurninSettings") + if err := awsRestjson1_serializeDocumentTimecodeBurninSettings(v.TimecodeBurninSettings, ok); err != nil { + return err + } + } + if len(v.TimecodeInsertion) > 0 { ok := object.Key("timecodeInsertion") ok.String(string(v.TimecodeInsertion)) @@ -9019,6 +9059,13 @@ func awsRestjson1_serializeDocumentMpeg2Settings(v *types.Mpeg2Settings, value s ok.String(string(v.SubgopLength)) } + if v.TimecodeBurninSettings != nil { + ok := object.Key("timecodeBurninSettings") + if err := awsRestjson1_serializeDocumentTimecodeBurninSettings(v.TimecodeBurninSettings, ok); err != nil { + return err + } + } + if len(v.TimecodeInsertion) > 0 { ok := object.Key("timecodeInsertion") ok.String(string(v.TimecodeInsertion)) @@ -10480,6 +10527,28 @@ func awsRestjson1_serializeDocumentTemporalFilterSettings(v *types.TemporalFilte return nil } +func awsRestjson1_serializeDocumentTimecodeBurninSettings(v *types.TimecodeBurninSettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.FontSize) > 0 { + ok := object.Key("fontSize") + ok.String(string(v.FontSize)) + } + + if len(v.Position) > 0 { + ok := object.Key("position") + ok.String(string(v.Position)) + } + + if v.Prefix != nil { + ok := object.Key("prefix") + ok.String(*v.Prefix) + } + + return nil +} + func awsRestjson1_serializeDocumentTimecodeConfig(v *types.TimecodeConfig, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/medialive/types/enums.go b/service/medialive/types/enums.go index 5babcea99ec..6f3a687c698 100644 --- a/service/medialive/types/enums.go +++ b/service/medialive/types/enums.go @@ -786,6 +786,38 @@ func (DeviceUpdateStatus) Values() []DeviceUpdateStatus { } } +type DolbyEProgramSelection string + +// Enum values for DolbyEProgramSelection +const ( + DolbyEProgramSelectionAllChannels DolbyEProgramSelection = "ALL_CHANNELS" + DolbyEProgramSelectionProgram1 DolbyEProgramSelection = "PROGRAM_1" + DolbyEProgramSelectionProgram2 DolbyEProgramSelection = "PROGRAM_2" + DolbyEProgramSelectionProgram3 DolbyEProgramSelection = "PROGRAM_3" + DolbyEProgramSelectionProgram4 DolbyEProgramSelection = "PROGRAM_4" + DolbyEProgramSelectionProgram5 DolbyEProgramSelection = "PROGRAM_5" + DolbyEProgramSelectionProgram6 DolbyEProgramSelection = "PROGRAM_6" + DolbyEProgramSelectionProgram7 DolbyEProgramSelection = "PROGRAM_7" + DolbyEProgramSelectionProgram8 DolbyEProgramSelection = "PROGRAM_8" +) + +// Values returns all known values for DolbyEProgramSelection. 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 (DolbyEProgramSelection) Values() []DolbyEProgramSelection { + return []DolbyEProgramSelection{ + "ALL_CHANNELS", + "PROGRAM_1", + "PROGRAM_2", + "PROGRAM_3", + "PROGRAM_4", + "PROGRAM_5", + "PROGRAM_6", + "PROGRAM_7", + "PROGRAM_8", + } +} + type DvbSdtOutputSdt string // Enum values for DvbSdtOutputSdt @@ -5005,6 +5037,60 @@ func (TemporalFilterStrength) Values() []TemporalFilterStrength { } } +type TimecodeBurninFontSize string + +// Enum values for TimecodeBurninFontSize +const ( + TimecodeBurninFontSizeExtraSmall10 TimecodeBurninFontSize = "EXTRA_SMALL_10" + TimecodeBurninFontSizeLarge48 TimecodeBurninFontSize = "LARGE_48" + TimecodeBurninFontSizeMedium32 TimecodeBurninFontSize = "MEDIUM_32" + TimecodeBurninFontSizeSmall16 TimecodeBurninFontSize = "SMALL_16" +) + +// Values returns all known values for TimecodeBurninFontSize. 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 (TimecodeBurninFontSize) Values() []TimecodeBurninFontSize { + return []TimecodeBurninFontSize{ + "EXTRA_SMALL_10", + "LARGE_48", + "MEDIUM_32", + "SMALL_16", + } +} + +type TimecodeBurninPosition string + +// Enum values for TimecodeBurninPosition +const ( + TimecodeBurninPositionBottomCenter TimecodeBurninPosition = "BOTTOM_CENTER" + TimecodeBurninPositionBottomLeft TimecodeBurninPosition = "BOTTOM_LEFT" + TimecodeBurninPositionBottomRight TimecodeBurninPosition = "BOTTOM_RIGHT" + TimecodeBurninPositionMiddleCenter TimecodeBurninPosition = "MIDDLE_CENTER" + TimecodeBurninPositionMiddleLeft TimecodeBurninPosition = "MIDDLE_LEFT" + TimecodeBurninPositionMiddleRight TimecodeBurninPosition = "MIDDLE_RIGHT" + TimecodeBurninPositionTopCenter TimecodeBurninPosition = "TOP_CENTER" + TimecodeBurninPositionTopLeft TimecodeBurninPosition = "TOP_LEFT" + TimecodeBurninPositionTopRight TimecodeBurninPosition = "TOP_RIGHT" +) + +// Values returns all known values for TimecodeBurninPosition. 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 (TimecodeBurninPosition) Values() []TimecodeBurninPosition { + return []TimecodeBurninPosition{ + "BOTTOM_CENTER", + "BOTTOM_LEFT", + "BOTTOM_RIGHT", + "MIDDLE_CENTER", + "MIDDLE_LEFT", + "MIDDLE_RIGHT", + "TOP_CENTER", + "TOP_LEFT", + "TOP_RIGHT", + } +} + type TimecodeConfigSource string // Enum values for TimecodeConfigSource diff --git a/service/medialive/types/types.go b/service/medialive/types/types.go index 2faa8082bf4..e77008b2a38 100644 --- a/service/medialive/types/types.go +++ b/service/medialive/types/types.go @@ -276,6 +276,22 @@ type AudioDescription struct { noSmithyDocumentSerde } +// Audio Dolby EDecode +type AudioDolbyEDecode struct { + + // Applies only to Dolby E. Enter the program ID (according to the metadata in the + // audio) of the Dolby E program to extract from the specified track. One program + // extracted per audio selector. To select multiple programs, create multiple + // selectors with the same Track and different Program numbers. “All channels” + // means to ignore the program IDs and include all the channels in this selector; + // useful if metadata is known to be incorrect. + // + // This member is required. + ProgramSelection DolbyEProgramSelection + + noSmithyDocumentSerde +} + // Audio Hls Rendition Selection type AudioHlsRenditionSelection struct { @@ -445,6 +461,10 @@ type AudioTrackSelection struct { // This member is required. Tracks []AudioTrack + // Configure decoding options for Dolby E streams - these should be Dolby E frames + // carried in PCM streams tagged with SMPTE-337 + DolbyEDecode *AudioDolbyEDecode + noSmithyDocumentSerde } @@ -509,7 +529,7 @@ type AvailConfiguration struct { // Avail Settings type AvailSettings struct { - // Settings for the Esam + // Esam Esam *Esam // Scte35 Splice Insert @@ -1072,7 +1092,7 @@ type ColorSpacePassthroughSettings struct { noSmithyDocumentSerde } -// Dolby Vision Profile 8.1 Settings +// Dolby Vision81 Settings type DolbyVision81Settings struct { noSmithyDocumentSerde } @@ -1499,7 +1519,7 @@ type EncoderSettings struct { noSmithyDocumentSerde } -// Settings for the Esam +// Esam type Esam struct { // Sent as acquisitionPointIdentity to identify the MediaLive channel to the POIS. @@ -1519,14 +1539,10 @@ type Esam struct { // OOB messages. AdAvailOffset int32 - // Password if credentials are required to access the POIS endpoint. This is a - // reference to an AWS parameter store name from which the password can be - // retrieved. AWS Parameter store format: "ssm://" + // Documentation update needed PasswordParam *string - // Username if credentials are required to access the POIS endpoint. This can be - // either a plaintext username, or a reference to an AWS parameter store name from - // which the username can be retrieved. AWS Parameter store format: "ssm://" + // Documentation update needed Username *string // Optional data sent as zoneIdentity to identify the MediaLive channel to the @@ -1713,6 +1729,9 @@ type FrameCaptureSettings struct { // Unit for the frame capture interval. CaptureIntervalUnits FrameCaptureIntervalUnit + // Timecode burn-in settings + TimecodeBurninSettings *TimecodeBurninSettings + noSmithyDocumentSerde } @@ -2013,6 +2032,9 @@ type H264Settings struct { // and doesn't apply temporal AQ. TemporalAq H264TemporalAq + // Timecode burn-in settings + TimecodeBurninSettings *TimecodeBurninSettings + // Determines how timecodes should be inserted into the video elementary stream. // // * @@ -2031,7 +2053,7 @@ type H265ColorSpaceSettings struct { // Passthrough applies no color space conversion to the output ColorSpacePassthroughSettings *ColorSpacePassthroughSettings - // Dolby Vision Profile 8.1 Settings + // Dolby Vision81 Settings DolbyVision81Settings *DolbyVision81Settings // Hdr10 Settings @@ -2190,6 +2212,9 @@ type H265Settings struct { // H.265 Tier. Tier H265Tier + // Timecode burn-in settings + TimecodeBurninSettings *TimecodeBurninSettings + // Determines how timecodes should be inserted into the video elementary stream. // // * @@ -2440,8 +2465,9 @@ type HlsGroupSettings struct { // values for segment duration. ManifestDurationFormat HlsManifestDurationFormat - // When set, minimumSegmentLength is enforced by looking ahead and back within the - // specified range for a nearby avail and extending the segment size if needed. + // Minimum length of MPEG-2 Transport Stream segments in seconds. When set, minimum + // segment length is enforced by looking ahead and back within the specified range + // for a nearby avail and extending the segment size if needed. MinSegmentLength int32 // If "vod", all segments are indexed and kept permanently in the destination and @@ -2487,9 +2513,9 @@ type HlsGroupSettings struct { // manifest from MediaLive is irrelevant. RedundantManifest HlsRedundantManifest - // Length of MPEG-2 Transport Stream segments to create (in seconds). Note that - // segments will end on the next keyframe after this number of seconds, so actual - // segment length may be longer. + // Length of MPEG-2 Transport Stream segments to create in seconds. Note that + // segments will end on the next keyframe after this duration, so actual segment + // length may be longer. SegmentLength int32 // useInputSegmentation has been deprecated. The configured segment size is always @@ -3873,6 +3899,9 @@ type Mpeg2Settings struct { // improve visual quality. SubgopLength Mpeg2SubGopLength + // Timecode burn-in settings + TimecodeBurninSettings *TimecodeBurninSettings + // Determines how MediaLive inserts timecodes in the output video. For detailed // information about setting up the input and the output for a timecode, see the // section on "MediaLive Features - Timecode configuration" in the MediaLive User @@ -5051,7 +5080,7 @@ type Scte35DescriptorSettings struct { noSmithyDocumentSerde } -// Settings for the "scte35 input" action +// Scte35Input Schedule Action Settings type Scte35InputScheduleActionSettings struct { // Whether the SCTE-35 input should be the active input or a fixed input. @@ -5376,6 +5405,25 @@ type TemporalFilterSettings struct { noSmithyDocumentSerde } +// Timecode Burnin Settings +type TimecodeBurninSettings struct { + + // Choose a timecode burn-in font size + // + // This member is required. + FontSize TimecodeBurninFontSize + + // Choose a timecode burn-in output position + // + // This member is required. + Position TimecodeBurninPosition + + // Create a timecode burn-in prefix (optional) + Prefix *string + + noSmithyDocumentSerde +} + // Timecode Config type TimecodeConfig struct { diff --git a/service/medialive/validators.go b/service/medialive/validators.go index db8615ff67f..f0fd84a4172 100644 --- a/service/medialive/validators.go +++ b/service/medialive/validators.go @@ -1508,6 +1508,21 @@ func validateAudioDescription(v *types.AudioDescription) error { } } +func validateAudioDolbyEDecode(v *types.AudioDolbyEDecode) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AudioDolbyEDecode"} + if len(v.ProgramSelection) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ProgramSelection")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateAudioHlsRenditionSelection(v *types.AudioHlsRenditionSelection) error { if v == nil { return nil @@ -1661,6 +1676,11 @@ func validateAudioTrackSelection(v *types.AudioTrackSelection) error { invalidParams.AddNested("Tracks", err.(smithy.InvalidParamsError)) } } + if v.DolbyEDecode != nil { + if err := validateAudioDolbyEDecode(v.DolbyEDecode); err != nil { + invalidParams.AddNested("DolbyEDecode", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -2143,6 +2163,23 @@ func validateFrameCaptureGroupSettings(v *types.FrameCaptureGroupSettings) error } } +func validateFrameCaptureSettings(v *types.FrameCaptureSettings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FrameCaptureSettings"} + if v.TimecodeBurninSettings != nil { + if err := validateTimecodeBurninSettings(v.TimecodeBurninSettings); err != nil { + invalidParams.AddNested("TimecodeBurninSettings", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateGlobalConfiguration(v *types.GlobalConfiguration) error { if v == nil { return nil @@ -2160,11 +2197,33 @@ func validateGlobalConfiguration(v *types.GlobalConfiguration) error { } } +func validateH264Settings(v *types.H264Settings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "H264Settings"} + if v.TimecodeBurninSettings != nil { + if err := validateTimecodeBurninSettings(v.TimecodeBurninSettings); err != nil { + invalidParams.AddNested("TimecodeBurninSettings", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateH265Settings(v *types.H265Settings) error { if v == nil { return nil } invalidParams := smithy.InvalidParamsError{Context: "H265Settings"} + if v.TimecodeBurninSettings != nil { + if err := validateTimecodeBurninSettings(v.TimecodeBurninSettings); err != nil { + invalidParams.AddNested("TimecodeBurninSettings", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -2492,6 +2551,11 @@ func validateMpeg2Settings(v *types.Mpeg2Settings) error { return nil } invalidParams := smithy.InvalidParamsError{Context: "Mpeg2Settings"} + if v.TimecodeBurninSettings != nil { + if err := validateTimecodeBurninSettings(v.TimecodeBurninSettings); err != nil { + invalidParams.AddNested("TimecodeBurninSettings", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -3143,6 +3207,24 @@ func validateTeletextSourceSettings(v *types.TeletextSourceSettings) error { } } +func validateTimecodeBurninSettings(v *types.TimecodeBurninSettings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TimecodeBurninSettings"} + if len(v.FontSize) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("FontSize")) + } + if len(v.Position) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Position")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTimecodeConfig(v *types.TimecodeConfig) error { if v == nil { return nil @@ -3202,6 +3284,16 @@ func validateVideoCodecSettings(v *types.VideoCodecSettings) error { return nil } invalidParams := smithy.InvalidParamsError{Context: "VideoCodecSettings"} + if v.FrameCaptureSettings != nil { + if err := validateFrameCaptureSettings(v.FrameCaptureSettings); err != nil { + invalidParams.AddNested("FrameCaptureSettings", err.(smithy.InvalidParamsError)) + } + } + if v.H264Settings != nil { + if err := validateH264Settings(v.H264Settings); err != nil { + invalidParams.AddNested("H264Settings", err.(smithy.InvalidParamsError)) + } + } if v.H265Settings != nil { if err := validateH265Settings(v.H265Settings); err != nil { invalidParams.AddNested("H265Settings", err.(smithy.InvalidParamsError)) diff --git a/service/nimble/api_op_AcceptEulas.go b/service/nimble/api_op_AcceptEulas.go index 41856bf438e..6aace8e1fb5 100644 --- a/service/nimble/api_op_AcceptEulas.go +++ b/service/nimble/api_op_AcceptEulas.go @@ -36,8 +36,9 @@ type AcceptEulasInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // The EULA ID. diff --git a/service/nimble/api_op_CreateLaunchProfile.go b/service/nimble/api_op_CreateLaunchProfile.go index 814aa0a6f82..01628c2a8ec 100644 --- a/service/nimble/api_op_CreateLaunchProfile.go +++ b/service/nimble/api_op_CreateLaunchProfile.go @@ -64,14 +64,15 @@ type CreateLaunchProfileInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // The description. Description *string - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string diff --git a/service/nimble/api_op_CreateStreamingImage.go b/service/nimble/api_op_CreateStreamingImage.go index 7832a5f3be8..47c23fce9d5 100644 --- a/service/nimble/api_op_CreateStreamingImage.go +++ b/service/nimble/api_op_CreateStreamingImage.go @@ -46,14 +46,15 @@ type CreateStreamingImageInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // A human-readable description of the streaming image. Description *string - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string diff --git a/service/nimble/api_op_CreateStreamingSession.go b/service/nimble/api_op_CreateStreamingSession.go index 04dd45aaf52..7fa87968d6c 100644 --- a/service/nimble/api_op_CreateStreamingSession.go +++ b/service/nimble/api_op_CreateStreamingSession.go @@ -13,7 +13,7 @@ import ( ) // Creates a streaming session in a studio. After invoking this operation, you must -// poll GetStreamingSession until the streaming session is in state READY. +// poll GetStreamingSession until the streaming session is in the READY state. func (c *Client) CreateStreamingSession(ctx context.Context, params *CreateStreamingSessionInput, optFns ...func(*Options)) (*CreateStreamingSessionOutput, error) { if params == nil { params = &CreateStreamingSessionInput{} @@ -31,22 +31,25 @@ func (c *Client) CreateStreamingSession(ctx context.Context, params *CreateStrea type CreateStreamingSessionInput struct { + // The ID of the launch profile used to control access from the streaming session. + // + // This member is required. + LaunchProfileId *string + // The studio ID. // // This member is required. StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // The EC2 Instance type used for the streaming session. Ec2InstanceType types.StreamingInstanceType - // The launch profile ID. - LaunchProfileId *string - // The user ID of the user that owns the streaming session. The user that owns the // session will be logging into the session and interacting with the virtual // workstation. @@ -55,7 +58,7 @@ type CreateStreamingSessionInput struct { // The ID of the streaming image. StreamingImageId *string - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string diff --git a/service/nimble/api_op_CreateStreamingSessionStream.go b/service/nimble/api_op_CreateStreamingSessionStream.go index 8197db55172..18c6f26c1ec 100644 --- a/service/nimble/api_op_CreateStreamingSessionStream.go +++ b/service/nimble/api_op_CreateStreamingSessionStream.go @@ -14,7 +14,7 @@ import ( // Creates a streaming session stream for a streaming session. After invoking this // API, invoke GetStreamingSessionStream with the returned streamId to poll the -// resource until it is in state READY. +// resource until it is in the READY state. func (c *Client) CreateStreamingSessionStream(ctx context.Context, params *CreateStreamingSessionStreamInput, optFns ...func(*Options)) (*CreateStreamingSessionStreamOutput, error) { if params == nil { params = &CreateStreamingSessionStreamInput{} @@ -43,12 +43,13 @@ type CreateStreamingSessionStreamInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // The expiration time in seconds. - ExpirationInSeconds int32 + ExpirationInSeconds *int32 noSmithyDocumentSerde } diff --git a/service/nimble/api_op_CreateStudio.go b/service/nimble/api_op_CreateStudio.go index 726e18a9e20..87149cf8d5e 100644 --- a/service/nimble/api_op_CreateStudio.go +++ b/service/nimble/api_op_CreateStudio.go @@ -12,11 +12,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Create a new Studio. When creating a Studio, two IAM roles must be provided: the -// admin role and the user Role. These roles are assumed by your users when they +// Create a new studio. When creating a studio, two IAM roles must be provided: the +// admin role and the user role. These roles are assumed by your users when they // log in to the Nimble Studio portal. The user role must have the // AmazonNimbleStudio-StudioUser managed policy attached for the portal to function -// properly. The Admin Role must have the AmazonNimbleStudio-StudioAdmin managed +// properly. The admin role must have the AmazonNimbleStudio-StudioAdmin managed // policy attached for the portal to function properly. You may optionally specify // a KMS key in the StudioEncryptionConfiguration. In Nimble Studio, resource // names, descriptions, initialization scripts, and other data you provide are @@ -45,7 +45,7 @@ func (c *Client) CreateStudio(ctx context.Context, params *CreateStudioInput, op type CreateStudioInput struct { - // The IAM role that Studio Admins will assume when logging in to the Nimble Studio + // The IAM role that studio admins will assume when logging in to the Nimble Studio // portal. // // This member is required. @@ -62,21 +62,22 @@ type CreateStudioInput struct { // This member is required. StudioName *string - // The IAM role that Studio Users will assume when logging in to the Nimble Studio + // The IAM role that studio users will assume when logging in to the Nimble Studio // portal. // // This member is required. UserRoleArn *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // The studio encryption configuration. StudioEncryptionConfiguration *types.StudioEncryptionConfiguration - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string diff --git a/service/nimble/api_op_CreateStudioComponent.go b/service/nimble/api_op_CreateStudioComponent.go index 803b6478f92..4b67c2082b4 100644 --- a/service/nimble/api_op_CreateStudioComponent.go +++ b/service/nimble/api_op_CreateStudioComponent.go @@ -46,8 +46,9 @@ type CreateStudioComponentInput struct { Type types.StudioComponentType // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // The configuration of the studio component, based on component type. @@ -63,21 +64,22 @@ type CreateStudioComponentInput struct { InitializationScripts []types.StudioComponentInitializationScript // An IAM role attached to a Studio Component that gives the studio component - // access to AWS resources at anytime while the instance is running. + // access to Amazon Web Services resources at anytime while the instance is + // running. RuntimeRoleArn *string // Parameters for the studio component scripts. ScriptParameters []types.ScriptParameterKeyValue // An IAM role attached to Studio Component when the system initialization script - // runs which give the studio component access to AWS resources when the system - // initialization script runs. + // runs which give the studio component access to Amazon Web Services resources + // when the system initialization script runs. SecureInitializationRoleArn *string // The specific subtype of a studio component. Subtype types.StudioComponentSubtype - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string diff --git a/service/nimble/api_op_DeleteLaunchProfile.go b/service/nimble/api_op_DeleteLaunchProfile.go index 258c8d44ed2..eeff9fd4093 100644 --- a/service/nimble/api_op_DeleteLaunchProfile.go +++ b/service/nimble/api_op_DeleteLaunchProfile.go @@ -30,7 +30,7 @@ func (c *Client) DeleteLaunchProfile(ctx context.Context, params *DeleteLaunchPr type DeleteLaunchProfileInput struct { - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string @@ -41,8 +41,9 @@ type DeleteLaunchProfileInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_DeleteLaunchProfileMember.go b/service/nimble/api_op_DeleteLaunchProfileMember.go index f3687c928a7..e70ef98baf6 100644 --- a/service/nimble/api_op_DeleteLaunchProfileMember.go +++ b/service/nimble/api_op_DeleteLaunchProfileMember.go @@ -29,7 +29,7 @@ func (c *Client) DeleteLaunchProfileMember(ctx context.Context, params *DeleteLa type DeleteLaunchProfileMemberInput struct { - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string @@ -45,8 +45,9 @@ type DeleteLaunchProfileMemberInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_DeleteStreamingImage.go b/service/nimble/api_op_DeleteStreamingImage.go index f9bc0f04492..2199bcc672b 100644 --- a/service/nimble/api_op_DeleteStreamingImage.go +++ b/service/nimble/api_op_DeleteStreamingImage.go @@ -41,8 +41,9 @@ type DeleteStreamingImageInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_DeleteStreamingSession.go b/service/nimble/api_op_DeleteStreamingSession.go index c5be33b9725..25f7fb2669e 100644 --- a/service/nimble/api_op_DeleteStreamingSession.go +++ b/service/nimble/api_op_DeleteStreamingSession.go @@ -44,8 +44,9 @@ type DeleteStreamingSessionInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_DeleteStudio.go b/service/nimble/api_op_DeleteStudio.go index 4ded93d5c62..04abff970bd 100644 --- a/service/nimble/api_op_DeleteStudio.go +++ b/service/nimble/api_op_DeleteStudio.go @@ -36,8 +36,9 @@ type DeleteStudioInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_DeleteStudioComponent.go b/service/nimble/api_op_DeleteStudioComponent.go index 52218f434a1..7318e12eeb8 100644 --- a/service/nimble/api_op_DeleteStudioComponent.go +++ b/service/nimble/api_op_DeleteStudioComponent.go @@ -41,8 +41,9 @@ type DeleteStudioComponentInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_DeleteStudioMember.go b/service/nimble/api_op_DeleteStudioMember.go index 9cebbb7c4ff..896a742748b 100644 --- a/service/nimble/api_op_DeleteStudioMember.go +++ b/service/nimble/api_op_DeleteStudioMember.go @@ -40,8 +40,9 @@ type DeleteStudioMemberInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_GetEula.go b/service/nimble/api_op_GetEula.go index 5f23f0bc89f..80681ff7a85 100644 --- a/service/nimble/api_op_GetEula.go +++ b/service/nimble/api_op_GetEula.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Get Eula. +// Get EULA. func (c *Client) GetEula(ctx context.Context, params *GetEulaInput, optFns ...func(*Options)) (*GetEulaOutput, error) { if params == nil { params = &GetEulaInput{} diff --git a/service/nimble/api_op_GetLaunchProfile.go b/service/nimble/api_op_GetLaunchProfile.go index c274e46111a..239cfe298c1 100644 --- a/service/nimble/api_op_GetLaunchProfile.go +++ b/service/nimble/api_op_GetLaunchProfile.go @@ -34,7 +34,7 @@ func (c *Client) GetLaunchProfile(ctx context.Context, params *GetLaunchProfileI type GetLaunchProfileInput struct { - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string diff --git a/service/nimble/api_op_GetLaunchProfileDetails.go b/service/nimble/api_op_GetLaunchProfileDetails.go index 592ca51b2f5..890ac8529a0 100644 --- a/service/nimble/api_op_GetLaunchProfileDetails.go +++ b/service/nimble/api_op_GetLaunchProfileDetails.go @@ -33,7 +33,7 @@ func (c *Client) GetLaunchProfileDetails(ctx context.Context, params *GetLaunchP type GetLaunchProfileDetailsInput struct { - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string diff --git a/service/nimble/api_op_GetLaunchProfileInitialization.go b/service/nimble/api_op_GetLaunchProfileInitialization.go index a8785fa2677..7f3902ae04b 100644 --- a/service/nimble/api_op_GetLaunchProfileInitialization.go +++ b/service/nimble/api_op_GetLaunchProfileInitialization.go @@ -29,7 +29,7 @@ func (c *Client) GetLaunchProfileInitialization(ctx context.Context, params *Get type GetLaunchProfileInitializationInput struct { - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string @@ -44,7 +44,7 @@ type GetLaunchProfileInitializationInput struct { // This member is required. LaunchPurpose *string - // The platform where this Launch Profile will be used, either WINDOWS or LINUX. + // The platform where this Launch Profile will be used, either Windows or Linux. // // This member is required. Platform *string diff --git a/service/nimble/api_op_GetLaunchProfileMember.go b/service/nimble/api_op_GetLaunchProfileMember.go index a8be0a04d71..03dd302abe5 100644 --- a/service/nimble/api_op_GetLaunchProfileMember.go +++ b/service/nimble/api_op_GetLaunchProfileMember.go @@ -29,7 +29,7 @@ func (c *Client) GetLaunchProfileMember(ctx context.Context, params *GetLaunchPr type GetLaunchProfileMemberInput struct { - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string diff --git a/service/nimble/api_op_GetStreamingSessionBackup.go b/service/nimble/api_op_GetStreamingSessionBackup.go new file mode 100644 index 00000000000..32feb9fc204 --- /dev/null +++ b/service/nimble/api_op_GetStreamingSessionBackup.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package nimble + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/nimble/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets StreamingSessionBackup resource. Invoke this operation to poll for a +// streaming session backup while stopping a streaming session. +func (c *Client) GetStreamingSessionBackup(ctx context.Context, params *GetStreamingSessionBackupInput, optFns ...func(*Options)) (*GetStreamingSessionBackupOutput, error) { + if params == nil { + params = &GetStreamingSessionBackupInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetStreamingSessionBackup", params, optFns, c.addOperationGetStreamingSessionBackupMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetStreamingSessionBackupOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetStreamingSessionBackupInput struct { + + // The ID of the backup. + // + // This member is required. + BackupId *string + + // The studio ID. + // + // This member is required. + StudioId *string + + noSmithyDocumentSerde +} + +type GetStreamingSessionBackupOutput struct { + + // Information about the streaming session backup. + StreamingSessionBackup *types.StreamingSessionBackup + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetStreamingSessionBackupMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetStreamingSessionBackup{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetStreamingSessionBackup{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpGetStreamingSessionBackupValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetStreamingSessionBackup(options.Region), middleware.Before); 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 + } + return nil +} + +func newServiceMetadataMiddleware_opGetStreamingSessionBackup(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "nimble", + OperationName: "GetStreamingSessionBackup", + } +} diff --git a/service/nimble/api_op_GetStreamingSessionStream.go b/service/nimble/api_op_GetStreamingSessionStream.go index f678cf0c323..f601e2829cc 100644 --- a/service/nimble/api_op_GetStreamingSessionStream.go +++ b/service/nimble/api_op_GetStreamingSessionStream.go @@ -18,7 +18,7 @@ import ( // Gets a StreamingSessionStream for a streaming session. Invoke this operation to // poll the resource after invoking CreateStreamingSessionStream. After the -// StreamingSessionStream changes to the state READY, the url property will contain +// StreamingSessionStream changes to the READY state, the url property will contain // a stream to be used with the DCV streaming client. func (c *Client) GetStreamingSessionStream(ctx context.Context, params *GetStreamingSessionStreamInput, optFns ...func(*Options)) (*GetStreamingSessionStreamOutput, error) { if params == nil { diff --git a/service/nimble/api_op_GetStudio.go b/service/nimble/api_op_GetStudio.go index 4d74cfb20dc..4fbff1a8eb9 100644 --- a/service/nimble/api_op_GetStudio.go +++ b/service/nimble/api_op_GetStudio.go @@ -16,7 +16,7 @@ import ( "time" ) -// Get a Studio resource. +// Get a studio resource. func (c *Client) GetStudio(ctx context.Context, params *GetStudioInput, optFns ...func(*Options)) (*GetStudioOutput, error) { if params == nil { params = &GetStudioInput{} diff --git a/service/nimble/api_op_ListEulaAcceptances.go b/service/nimble/api_op_ListEulaAcceptances.go index 58b3af9844e..96e6c39725a 100644 --- a/service/nimble/api_op_ListEulaAcceptances.go +++ b/service/nimble/api_op_ListEulaAcceptances.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List Eula Acceptances. +// List EULA acceptances. func (c *Client) ListEulaAcceptances(ctx context.Context, params *ListEulaAcceptancesInput, optFns ...func(*Options)) (*ListEulaAcceptancesOutput, error) { if params == nil { params = &ListEulaAcceptancesInput{} @@ -38,7 +38,7 @@ type ListEulaAcceptancesInput struct { // The list of EULA IDs that have been previously accepted. EulaIds []string - // The token to request the next page of results. + // The token for the next set of results, or null if there are no more results. NextToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_ListEulas.go b/service/nimble/api_op_ListEulas.go index 5a837e9160d..bc6341bce07 100644 --- a/service/nimble/api_op_ListEulas.go +++ b/service/nimble/api_op_ListEulas.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List Eulas. +// List EULAs. func (c *Client) ListEulas(ctx context.Context, params *ListEulasInput, optFns ...func(*Options)) (*ListEulasOutput, error) { if params == nil { params = &ListEulasInput{} @@ -33,7 +33,7 @@ type ListEulasInput struct { // The list of EULA IDs that should be returned EulaIds []string - // The token to request the next page of results. + // The token for the next set of results, or null if there are no more results. NextToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_ListLaunchProfileMembers.go b/service/nimble/api_op_ListLaunchProfileMembers.go index 15231d37e4b..778afafb48a 100644 --- a/service/nimble/api_op_ListLaunchProfileMembers.go +++ b/service/nimble/api_op_ListLaunchProfileMembers.go @@ -30,7 +30,7 @@ func (c *Client) ListLaunchProfileMembers(ctx context.Context, params *ListLaunc type ListLaunchProfileMembersInput struct { - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string @@ -41,9 +41,9 @@ type ListLaunchProfileMembersInput struct { StudioId *string // The max number of results to return in the response. - MaxResults int32 + MaxResults *int32 - // The token to request the next page of results. + // The token for the next set of results, or null if there are no more results. NextToken *string noSmithyDocumentSerde @@ -162,8 +162,8 @@ func NewListLaunchProfileMembersPaginator(client ListLaunchProfileMembersAPIClie } options := ListLaunchProfileMembersPaginatorOptions{} - if params.MaxResults != 0 { - options.Limit = params.MaxResults + if params.MaxResults != nil { + options.Limit = *params.MaxResults } for _, fn := range optFns { @@ -193,7 +193,11 @@ func (p *ListLaunchProfileMembersPaginator) NextPage(ctx context.Context, optFns params := *p.params params.NextToken = p.nextToken - params.MaxResults = p.options.Limit + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit result, err := p.client.ListLaunchProfileMembers(ctx, ¶ms, optFns...) if err != nil { diff --git a/service/nimble/api_op_ListLaunchProfiles.go b/service/nimble/api_op_ListLaunchProfiles.go index 552c35282c9..24e28ff0b32 100644 --- a/service/nimble/api_op_ListLaunchProfiles.go +++ b/service/nimble/api_op_ListLaunchProfiles.go @@ -36,9 +36,9 @@ type ListLaunchProfilesInput struct { StudioId *string // The max number of results to return in the response. - MaxResults int32 + MaxResults *int32 - // The token to request the next page of results. + // The token for the next set of results, or null if there are no more results. NextToken *string // The principal ID. This currently supports a IAM Identity Center UserId. @@ -162,8 +162,8 @@ func NewListLaunchProfilesPaginator(client ListLaunchProfilesAPIClient, params * } options := ListLaunchProfilesPaginatorOptions{} - if params.MaxResults != 0 { - options.Limit = params.MaxResults + if params.MaxResults != nil { + options.Limit = *params.MaxResults } for _, fn := range optFns { @@ -193,7 +193,11 @@ func (p *ListLaunchProfilesPaginator) NextPage(ctx context.Context, optFns ...fu params := *p.params params.NextToken = p.nextToken - params.MaxResults = p.options.Limit + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit result, err := p.client.ListLaunchProfiles(ctx, ¶ms, optFns...) if err != nil { diff --git a/service/nimble/api_op_ListStreamingImages.go b/service/nimble/api_op_ListStreamingImages.go index 1574ce3b0fc..7a79595dedf 100644 --- a/service/nimble/api_op_ListStreamingImages.go +++ b/service/nimble/api_op_ListStreamingImages.go @@ -37,7 +37,7 @@ type ListStreamingImagesInput struct { // This member is required. StudioId *string - // The token to request the next page of results. + // The token for the next set of results, or null if there are no more results. NextToken *string // Filter this request to streaming images with the given owner diff --git a/service/nimble/api_op_ListStreamingSessionBackups.go b/service/nimble/api_op_ListStreamingSessionBackups.go new file mode 100644 index 00000000000..b74b6466ad5 --- /dev/null +++ b/service/nimble/api_op_ListStreamingSessionBackups.go @@ -0,0 +1,212 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package nimble + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/nimble/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the backups of a streaming session in a studio. +func (c *Client) ListStreamingSessionBackups(ctx context.Context, params *ListStreamingSessionBackupsInput, optFns ...func(*Options)) (*ListStreamingSessionBackupsOutput, error) { + if params == nil { + params = &ListStreamingSessionBackupsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListStreamingSessionBackups", params, optFns, c.addOperationListStreamingSessionBackupsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListStreamingSessionBackupsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListStreamingSessionBackupsInput struct { + + // The studio ID. + // + // This member is required. + StudioId *string + + // The token for the next set of results, or null if there are no more results. + NextToken *string + + // The user ID of the user that owns the streaming session. + OwnedBy *string + + noSmithyDocumentSerde +} + +type ListStreamingSessionBackupsOutput struct { + + // The token for the next set of results, or null if there are no more results. + NextToken *string + + // Information about the streaming session backups. + StreamingSessionBackups []types.StreamingSessionBackup + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListStreamingSessionBackupsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListStreamingSessionBackups{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListStreamingSessionBackups{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpListStreamingSessionBackupsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListStreamingSessionBackups(options.Region), middleware.Before); 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 + } + return nil +} + +// ListStreamingSessionBackupsAPIClient is a client that implements the +// ListStreamingSessionBackups operation. +type ListStreamingSessionBackupsAPIClient interface { + ListStreamingSessionBackups(context.Context, *ListStreamingSessionBackupsInput, ...func(*Options)) (*ListStreamingSessionBackupsOutput, error) +} + +var _ ListStreamingSessionBackupsAPIClient = (*Client)(nil) + +// ListStreamingSessionBackupsPaginatorOptions is the paginator options for +// ListStreamingSessionBackups +type ListStreamingSessionBackupsPaginatorOptions struct { + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListStreamingSessionBackupsPaginator is a paginator for +// ListStreamingSessionBackups +type ListStreamingSessionBackupsPaginator struct { + options ListStreamingSessionBackupsPaginatorOptions + client ListStreamingSessionBackupsAPIClient + params *ListStreamingSessionBackupsInput + nextToken *string + firstPage bool +} + +// NewListStreamingSessionBackupsPaginator returns a new +// ListStreamingSessionBackupsPaginator +func NewListStreamingSessionBackupsPaginator(client ListStreamingSessionBackupsAPIClient, params *ListStreamingSessionBackupsInput, optFns ...func(*ListStreamingSessionBackupsPaginatorOptions)) *ListStreamingSessionBackupsPaginator { + if params == nil { + params = &ListStreamingSessionBackupsInput{} + } + + options := ListStreamingSessionBackupsPaginatorOptions{} + + for _, fn := range optFns { + fn(&options) + } + + return &ListStreamingSessionBackupsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListStreamingSessionBackupsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListStreamingSessionBackups page. +func (p *ListStreamingSessionBackupsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListStreamingSessionBackupsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + result, err := p.client.ListStreamingSessionBackups(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opListStreamingSessionBackups(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "nimble", + OperationName: "ListStreamingSessionBackups", + } +} diff --git a/service/nimble/api_op_ListStreamingSessions.go b/service/nimble/api_op_ListStreamingSessions.go index e3176bb0578..c39c6ff80f7 100644 --- a/service/nimble/api_op_ListStreamingSessions.go +++ b/service/nimble/api_op_ListStreamingSessions.go @@ -38,7 +38,7 @@ type ListStreamingSessionsInput struct { // Filters the request to streaming sessions created by the given user. CreatedBy *string - // The token to request the next page of results. + // The token for the next set of results, or null if there are no more results. NextToken *string // Filters the request to streaming session owned by the given user diff --git a/service/nimble/api_op_ListStudioComponents.go b/service/nimble/api_op_ListStudioComponents.go index c068fb9bf50..f2d2d576858 100644 --- a/service/nimble/api_op_ListStudioComponents.go +++ b/service/nimble/api_op_ListStudioComponents.go @@ -36,9 +36,9 @@ type ListStudioComponentsInput struct { StudioId *string // The max number of results to return in the response. - MaxResults int32 + MaxResults *int32 - // The token to request the next page of results. + // The token for the next set of results, or null if there are no more results. NextToken *string // Filters the request to studio components that are in one of the given states. @@ -162,8 +162,8 @@ func NewListStudioComponentsPaginator(client ListStudioComponentsAPIClient, para } options := ListStudioComponentsPaginatorOptions{} - if params.MaxResults != 0 { - options.Limit = params.MaxResults + if params.MaxResults != nil { + options.Limit = *params.MaxResults } for _, fn := range optFns { @@ -193,7 +193,11 @@ func (p *ListStudioComponentsPaginator) NextPage(ctx context.Context, optFns ... params := *p.params params.NextToken = p.nextToken - params.MaxResults = p.options.Limit + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit result, err := p.client.ListStudioComponents(ctx, ¶ms, optFns...) if err != nil { diff --git a/service/nimble/api_op_ListStudioMembers.go b/service/nimble/api_op_ListStudioMembers.go index ba0c901e0d1..a79bc3e909b 100644 --- a/service/nimble/api_op_ListStudioMembers.go +++ b/service/nimble/api_op_ListStudioMembers.go @@ -37,9 +37,9 @@ type ListStudioMembersInput struct { StudioId *string // The max number of results to return in the response. - MaxResults int32 + MaxResults *int32 - // The token to request the next page of results. + // The token for the next set of results, or null if there are no more results. NextToken *string noSmithyDocumentSerde @@ -156,8 +156,8 @@ func NewListStudioMembersPaginator(client ListStudioMembersAPIClient, params *Li } options := ListStudioMembersPaginatorOptions{} - if params.MaxResults != 0 { - options.Limit = params.MaxResults + if params.MaxResults != nil { + options.Limit = *params.MaxResults } for _, fn := range optFns { @@ -187,7 +187,11 @@ func (p *ListStudioMembersPaginator) NextPage(ctx context.Context, optFns ...fun params := *p.params params.NextToken = p.nextToken - params.MaxResults = p.options.Limit + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxResults = limit result, err := p.client.ListStudioMembers(ctx, ¶ms, optFns...) if err != nil { diff --git a/service/nimble/api_op_ListStudios.go b/service/nimble/api_op_ListStudios.go index 07fa5b7adac..d58b48b7600 100644 --- a/service/nimble/api_op_ListStudios.go +++ b/service/nimble/api_op_ListStudios.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List studios in your Amazon Web Services account in the requested Amazon Web +// List studios in your Amazon Web Services accounts in the requested Amazon Web // Services Region. func (c *Client) ListStudios(ctx context.Context, params *ListStudiosInput, optFns ...func(*Options)) (*ListStudiosOutput, error) { if params == nil { @@ -31,7 +31,7 @@ func (c *Client) ListStudios(ctx context.Context, params *ListStudiosInput, optF type ListStudiosInput struct { - // The token to request the next page of results. + // The token for the next set of results, or null if there are no more results. NextToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_ListTagsForResource.go b/service/nimble/api_op_ListTagsForResource.go index ae3ea873e3e..8a2a521d9af 100644 --- a/service/nimble/api_op_ListTagsForResource.go +++ b/service/nimble/api_op_ListTagsForResource.go @@ -42,7 +42,7 @@ type ListTagsForResourceInput struct { type ListTagsForResourceOutput struct { - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string diff --git a/service/nimble/api_op_PutLaunchProfileMembers.go b/service/nimble/api_op_PutLaunchProfileMembers.go index 61c0684257f..65569c4a827 100644 --- a/service/nimble/api_op_PutLaunchProfileMembers.go +++ b/service/nimble/api_op_PutLaunchProfileMembers.go @@ -35,7 +35,7 @@ type PutLaunchProfileMembersInput struct { // This member is required. IdentityStoreId *string - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string @@ -51,8 +51,9 @@ type PutLaunchProfileMembersInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_PutStudioMembers.go b/service/nimble/api_op_PutStudioMembers.go index 34befaaaf4d..314fe2e6a05 100644 --- a/service/nimble/api_op_PutStudioMembers.go +++ b/service/nimble/api_op_PutStudioMembers.go @@ -46,8 +46,9 @@ type PutStudioMembersInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_StartStreamingSession.go b/service/nimble/api_op_StartStreamingSession.go index 76635dfeb99..7ce64c72451 100644 --- a/service/nimble/api_op_StartStreamingSession.go +++ b/service/nimble/api_op_StartStreamingSession.go @@ -42,9 +42,13 @@ type StartStreamingSessionInput struct { // This member is required. StudioId *string + // The ID of the backup. + BackupId *string + // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_StartStudioSSOConfigurationRepair.go b/service/nimble/api_op_StartStudioSSOConfigurationRepair.go index 88faf0bf97e..95c474b4311 100644 --- a/service/nimble/api_op_StartStudioSSOConfigurationRepair.go +++ b/service/nimble/api_op_StartStudioSSOConfigurationRepair.go @@ -43,8 +43,9 @@ type StartStudioSSOConfigurationRepairInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_StopStreamingSession.go b/service/nimble/api_op_StopStreamingSession.go index 69807b7c1ba..bfea570c50e 100644 --- a/service/nimble/api_op_StopStreamingSession.go +++ b/service/nimble/api_op_StopStreamingSession.go @@ -43,10 +43,15 @@ type StopStreamingSessionInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string + // Adds additional instructions to a streaming session stop action to either retain + // the EBS volumes or delete the EBS volumes. + VolumeRetentionMode types.VolumeRetentionMode + noSmithyDocumentSerde } diff --git a/service/nimble/api_op_TagResource.go b/service/nimble/api_op_TagResource.go index 1e155ba35ea..97f0397c167 100644 --- a/service/nimble/api_op_TagResource.go +++ b/service/nimble/api_op_TagResource.go @@ -33,7 +33,7 @@ type TagResourceInput struct { // This member is required. ResourceArn *string - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string diff --git a/service/nimble/api_op_UpdateLaunchProfile.go b/service/nimble/api_op_UpdateLaunchProfile.go index 1a32013cb65..8f2f99e23c5 100644 --- a/service/nimble/api_op_UpdateLaunchProfile.go +++ b/service/nimble/api_op_UpdateLaunchProfile.go @@ -30,7 +30,7 @@ func (c *Client) UpdateLaunchProfile(ctx context.Context, params *UpdateLaunchPr type UpdateLaunchProfileInput struct { - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string @@ -41,8 +41,9 @@ type UpdateLaunchProfileInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // The description. diff --git a/service/nimble/api_op_UpdateLaunchProfileMember.go b/service/nimble/api_op_UpdateLaunchProfileMember.go index b3bc042e09f..830361217c2 100644 --- a/service/nimble/api_op_UpdateLaunchProfileMember.go +++ b/service/nimble/api_op_UpdateLaunchProfileMember.go @@ -30,7 +30,7 @@ func (c *Client) UpdateLaunchProfileMember(ctx context.Context, params *UpdateLa type UpdateLaunchProfileMemberInput struct { - // The Launch Profile ID. + // The ID of the launch profile used to control access from the streaming session. // // This member is required. LaunchProfileId *string @@ -51,8 +51,9 @@ type UpdateLaunchProfileMemberInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string noSmithyDocumentSerde diff --git a/service/nimble/api_op_UpdateStreamingImage.go b/service/nimble/api_op_UpdateStreamingImage.go index 645a7a7788b..d299554008b 100644 --- a/service/nimble/api_op_UpdateStreamingImage.go +++ b/service/nimble/api_op_UpdateStreamingImage.go @@ -41,8 +41,9 @@ type UpdateStreamingImageInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // The description. @@ -60,8 +61,8 @@ type UpdateStreamingImageOutput struct { // to select which operating system and software they want to use in a Nimble // Studio streaming session. Amazon provides a number of streaming images that // include popular 3rd-party software. You can create your own streaming images - // using an Amazon Elastic Compute Cloud (Amazon EC2) machine image that you create - // for this purpose. You can also include software that your users require. + // using an Amazon EC2 machine image that you create for this purpose. You can also + // include software that your users require. StreamingImage *types.StreamingImage // Metadata pertaining to the operation's result. diff --git a/service/nimble/api_op_UpdateStudio.go b/service/nimble/api_op_UpdateStudio.go index 1da0062716e..d9c8c9ea952 100644 --- a/service/nimble/api_op_UpdateStudio.go +++ b/service/nimble/api_op_UpdateStudio.go @@ -41,8 +41,9 @@ type UpdateStudioInput struct { AdminRoleArn *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // A friendly name for the studio. diff --git a/service/nimble/api_op_UpdateStudioComponent.go b/service/nimble/api_op_UpdateStudioComponent.go index e7c914a1ebb..bfd53f4bab8 100644 --- a/service/nimble/api_op_UpdateStudioComponent.go +++ b/service/nimble/api_op_UpdateStudioComponent.go @@ -41,8 +41,9 @@ type UpdateStudioComponentInput struct { StudioId *string // Unique, case-sensitive identifier that you provide to ensure the idempotency of - // the request. If you don’t specify a client token, the AWS SDK automatically - // generates a client token and uses it for the request to ensure idempotency. + // the request. If you don’t specify a client token, the Amazon Web Services SDK + // automatically generates a client token and uses it for the request to ensure + // idempotency. ClientToken *string // The configuration of the studio component, based on component type. @@ -61,15 +62,16 @@ type UpdateStudioComponentInput struct { Name *string // An IAM role attached to a Studio Component that gives the studio component - // access to AWS resources at anytime while the instance is running. + // access to Amazon Web Services resources at anytime while the instance is + // running. RuntimeRoleArn *string // Parameters for the studio component scripts. ScriptParameters []types.ScriptParameterKeyValue // An IAM role attached to Studio Component when the system initialization script - // runs which give the studio component access to AWS resources when the system - // initialization script runs. + // runs which give the studio component access to Amazon Web Services resources + // when the system initialization script runs. SecureInitializationRoleArn *string // The specific subtype of a studio component. diff --git a/service/nimble/deserializers.go b/service/nimble/deserializers.go index ee2ec74e143..b07ef053ab1 100644 --- a/service/nimble/deserializers.go +++ b/service/nimble/deserializers.go @@ -3366,6 +3366,168 @@ func awsRestjson1_deserializeOpDocumentGetStreamingSessionOutput(v **GetStreamin return nil } +type awsRestjson1_deserializeOpGetStreamingSessionBackup struct { +} + +func (*awsRestjson1_deserializeOpGetStreamingSessionBackup) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetStreamingSessionBackup) 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 + } + + 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, awsRestjson1_deserializeOpErrorGetStreamingSessionBackup(response, &metadata) + } + output := &GetStreamingSessionBackupOutput{} + 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 = awsRestjson1_deserializeOpDocumentGetStreamingSessionBackupOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorGetStreamingSessionBackup(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 + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(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 len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerErrorException", errorCode): + return awsRestjson1_deserializeErrorInternalServerErrorException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentGetStreamingSessionBackupOutput(v **GetStreamingSessionBackupOutput, 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 *GetStreamingSessionBackupOutput + if *v == nil { + sv = &GetStreamingSessionBackupOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "streamingSessionBackup": + if err := awsRestjson1_deserializeDocumentStreamingSessionBackup(&sv.StreamingSessionBackup, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpGetStreamingSessionStream struct { } @@ -4896,14 +5058,14 @@ func awsRestjson1_deserializeOpDocumentListStreamingImagesOutput(v **ListStreami return nil } -type awsRestjson1_deserializeOpListStreamingSessions struct { +type awsRestjson1_deserializeOpListStreamingSessionBackups struct { } -func (*awsRestjson1_deserializeOpListStreamingSessions) ID() string { +func (*awsRestjson1_deserializeOpListStreamingSessionBackups) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListStreamingSessions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListStreamingSessionBackups) 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) @@ -4917,9 +5079,9 @@ func (m *awsRestjson1_deserializeOpListStreamingSessions) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListStreamingSessions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListStreamingSessionBackups(response, &metadata) } - output := &ListStreamingSessionsOutput{} + output := &ListStreamingSessionBackupsOutput{} out.Result = output var buff [1024]byte @@ -4940,7 +5102,7 @@ func (m *awsRestjson1_deserializeOpListStreamingSessions) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListStreamingSessionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListStreamingSessionBackupsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4953,7 +5115,7 @@ func (m *awsRestjson1_deserializeOpListStreamingSessions) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorListStreamingSessions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListStreamingSessionBackups(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)} @@ -5006,9 +5168,6 @@ func awsRestjson1_deserializeOpErrorListStreamingSessions(response *smithyhttp.R case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceQuotaExceededException", errorCode): - return awsRestjson1_deserializeErrorServiceQuotaExceededException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -5025,7 +5184,7 @@ func awsRestjson1_deserializeOpErrorListStreamingSessions(response *smithyhttp.R } } -func awsRestjson1_deserializeOpDocumentListStreamingSessionsOutput(v **ListStreamingSessionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListStreamingSessionBackupsOutput(v **ListStreamingSessionBackupsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5038,9 +5197,9 @@ func awsRestjson1_deserializeOpDocumentListStreamingSessionsOutput(v **ListStrea return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListStreamingSessionsOutput + var sv *ListStreamingSessionBackupsOutput if *v == nil { - sv = &ListStreamingSessionsOutput{} + sv = &ListStreamingSessionBackupsOutput{} } else { sv = *v } @@ -5056,8 +5215,8 @@ func awsRestjson1_deserializeOpDocumentListStreamingSessionsOutput(v **ListStrea sv.NextToken = ptr.String(jtv) } - case "sessions": - if err := awsRestjson1_deserializeDocumentStreamingSessionList(&sv.Sessions, value); err != nil { + case "streamingSessionBackups": + if err := awsRestjson1_deserializeDocumentStreamingSessionBackupList(&sv.StreamingSessionBackups, value); err != nil { return err } @@ -5070,14 +5229,14 @@ func awsRestjson1_deserializeOpDocumentListStreamingSessionsOutput(v **ListStrea return nil } -type awsRestjson1_deserializeOpListStudioComponents struct { +type awsRestjson1_deserializeOpListStreamingSessions struct { } -func (*awsRestjson1_deserializeOpListStudioComponents) ID() string { +func (*awsRestjson1_deserializeOpListStreamingSessions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListStudioComponents) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListStreamingSessions) 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) @@ -5091,9 +5250,9 @@ func (m *awsRestjson1_deserializeOpListStudioComponents) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListStudioComponents(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListStreamingSessions(response, &metadata) } - output := &ListStudioComponentsOutput{} + output := &ListStreamingSessionsOutput{} out.Result = output var buff [1024]byte @@ -5114,7 +5273,7 @@ func (m *awsRestjson1_deserializeOpListStudioComponents) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListStudioComponentsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListStreamingSessionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5127,7 +5286,7 @@ func (m *awsRestjson1_deserializeOpListStudioComponents) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorListStudioComponents(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListStreamingSessions(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)} @@ -5199,7 +5358,7 @@ func awsRestjson1_deserializeOpErrorListStudioComponents(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpDocumentListStudioComponentsOutput(v **ListStudioComponentsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListStreamingSessionsOutput(v **ListStreamingSessionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5212,9 +5371,9 @@ func awsRestjson1_deserializeOpDocumentListStudioComponentsOutput(v **ListStudio return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListStudioComponentsOutput + var sv *ListStreamingSessionsOutput if *v == nil { - sv = &ListStudioComponentsOutput{} + sv = &ListStreamingSessionsOutput{} } else { sv = *v } @@ -5230,8 +5389,8 @@ func awsRestjson1_deserializeOpDocumentListStudioComponentsOutput(v **ListStudio sv.NextToken = ptr.String(jtv) } - case "studioComponents": - if err := awsRestjson1_deserializeDocumentStudioComponentList(&sv.StudioComponents, value); err != nil { + case "sessions": + if err := awsRestjson1_deserializeDocumentStreamingSessionList(&sv.Sessions, value); err != nil { return err } @@ -5244,14 +5403,14 @@ func awsRestjson1_deserializeOpDocumentListStudioComponentsOutput(v **ListStudio return nil } -type awsRestjson1_deserializeOpListStudioMembers struct { +type awsRestjson1_deserializeOpListStudioComponents struct { } -func (*awsRestjson1_deserializeOpListStudioMembers) ID() string { +func (*awsRestjson1_deserializeOpListStudioComponents) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListStudioMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListStudioComponents) 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) @@ -5265,9 +5424,9 @@ func (m *awsRestjson1_deserializeOpListStudioMembers) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListStudioMembers(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListStudioComponents(response, &metadata) } - output := &ListStudioMembersOutput{} + output := &ListStudioComponentsOutput{} out.Result = output var buff [1024]byte @@ -5288,7 +5447,7 @@ func (m *awsRestjson1_deserializeOpListStudioMembers) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListStudioMembersOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListStudioComponentsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5301,7 +5460,7 @@ func (m *awsRestjson1_deserializeOpListStudioMembers) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorListStudioMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListStudioComponents(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)} @@ -5373,7 +5532,7 @@ func awsRestjson1_deserializeOpErrorListStudioMembers(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpDocumentListStudioMembersOutput(v **ListStudioMembersOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListStudioComponentsOutput(v **ListStudioComponentsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5386,20 +5545,15 @@ func awsRestjson1_deserializeOpDocumentListStudioMembersOutput(v **ListStudioMem return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListStudioMembersOutput + var sv *ListStudioComponentsOutput if *v == nil { - sv = &ListStudioMembersOutput{} + sv = &ListStudioComponentsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "members": - if err := awsRestjson1_deserializeDocumentStudioMembershipList(&sv.Members, value); err != nil { - return err - } - case "nextToken": if value != nil { jtv, ok := value.(string) @@ -5409,6 +5563,11 @@ func awsRestjson1_deserializeOpDocumentListStudioMembersOutput(v **ListStudioMem sv.NextToken = ptr.String(jtv) } + case "studioComponents": + if err := awsRestjson1_deserializeDocumentStudioComponentList(&sv.StudioComponents, value); err != nil { + return err + } + default: _, _ = key, value @@ -5418,14 +5577,14 @@ func awsRestjson1_deserializeOpDocumentListStudioMembersOutput(v **ListStudioMem return nil } -type awsRestjson1_deserializeOpListStudios struct { +type awsRestjson1_deserializeOpListStudioMembers struct { } -func (*awsRestjson1_deserializeOpListStudios) ID() string { +func (*awsRestjson1_deserializeOpListStudioMembers) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListStudios) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListStudioMembers) 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) @@ -5439,9 +5598,9 @@ func (m *awsRestjson1_deserializeOpListStudios) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListStudios(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListStudioMembers(response, &metadata) } - output := &ListStudiosOutput{} + output := &ListStudioMembersOutput{} out.Result = output var buff [1024]byte @@ -5462,7 +5621,7 @@ func (m *awsRestjson1_deserializeOpListStudios) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListStudiosOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListStudioMembersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5475,7 +5634,7 @@ func (m *awsRestjson1_deserializeOpListStudios) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorListStudios(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListStudioMembers(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)} @@ -5547,7 +5706,7 @@ func awsRestjson1_deserializeOpErrorListStudios(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpDocumentListStudiosOutput(v **ListStudiosOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListStudioMembersOutput(v **ListStudioMembersOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5560,15 +5719,20 @@ func awsRestjson1_deserializeOpDocumentListStudiosOutput(v **ListStudiosOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListStudiosOutput + var sv *ListStudioMembersOutput if *v == nil { - sv = &ListStudiosOutput{} + sv = &ListStudioMembersOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "members": + if err := awsRestjson1_deserializeDocumentStudioMembershipList(&sv.Members, value); err != nil { + return err + } + case "nextToken": if value != nil { jtv, ok := value.(string) @@ -5578,11 +5742,6 @@ func awsRestjson1_deserializeOpDocumentListStudiosOutput(v **ListStudiosOutput, sv.NextToken = ptr.String(jtv) } - case "studios": - if err := awsRestjson1_deserializeDocumentStudioList(&sv.Studios, value); err != nil { - return err - } - default: _, _ = key, value @@ -5592,14 +5751,14 @@ func awsRestjson1_deserializeOpDocumentListStudiosOutput(v **ListStudiosOutput, return nil } -type awsRestjson1_deserializeOpListTagsForResource struct { +type awsRestjson1_deserializeOpListStudios struct { } -func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { +func (*awsRestjson1_deserializeOpListStudios) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListStudios) 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) @@ -5613,7 +5772,181 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListStudios(response, &metadata) + } + output := &ListStudiosOutput{} + 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 = awsRestjson1_deserializeOpDocumentListStudiosOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorListStudios(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 + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(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 len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerErrorException", errorCode): + return awsRestjson1_deserializeErrorInternalServerErrorException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsRestjson1_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentListStudiosOutput(v **ListStudiosOutput, 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 *ListStudiosOutput + if *v == nil { + sv = &ListStudiosOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "studios": + if err := awsRestjson1_deserializeDocumentStudioList(&sv.Studios, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListTagsForResource struct { +} + +func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListTagsForResource) 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 + } + + 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, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata) } output := &ListTagsForResourceOutput{} out.Result = output @@ -9455,6 +9788,15 @@ func awsRestjson1_deserializeDocumentStreamConfiguration(v **types.StreamConfigu for key, value := range shape { switch key { + case "automaticTerminationMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AutomaticTerminationMode to be of type string, got %T instead", value) + } + sv.AutomaticTerminationMode = types.AutomaticTerminationMode(jtv) + } + case "clipboardMode": if value != nil { jtv, ok := value.(string) @@ -9479,7 +9821,7 @@ func awsRestjson1_deserializeDocumentStreamConfiguration(v **types.StreamConfigu if err != nil { return err } - sv.MaxSessionLengthInMinutes = int32(i64) + sv.MaxSessionLengthInMinutes = ptr.Int32(int32(i64)) } case "maxStoppedSessionLengthInMinutes": @@ -9495,6 +9837,20 @@ func awsRestjson1_deserializeDocumentStreamConfiguration(v **types.StreamConfigu sv.MaxStoppedSessionLengthInMinutes = int32(i64) } + case "sessionBackup": + if err := awsRestjson1_deserializeDocumentStreamConfigurationSessionBackup(&sv.SessionBackup, value); err != nil { + return err + } + + case "sessionPersistenceMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SessionPersistenceMode to be of type string, got %T instead", value) + } + sv.SessionPersistenceMode = types.SessionPersistenceMode(jtv) + } + case "sessionStorage": if err := awsRestjson1_deserializeDocumentStreamConfigurationSessionStorage(&sv.SessionStorage, value); err != nil { return err @@ -9505,6 +9861,64 @@ func awsRestjson1_deserializeDocumentStreamConfiguration(v **types.StreamConfigu return err } + case "volumeConfiguration": + if err := awsRestjson1_deserializeDocumentVolumeConfiguration(&sv.VolumeConfiguration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentStreamConfigurationSessionBackup(v **types.StreamConfigurationSessionBackup, 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.StreamConfigurationSessionBackup + if *v == nil { + sv = &types.StreamConfigurationSessionBackup{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "maxBackupsToRetain": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected StreamConfigurationMaxBackupsToRetain to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaxBackupsToRetain = int32(i64) + } + + case "mode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SessionBackupMode to be of type string, got %T instead", value) + } + sv.Mode = types.SessionBackupMode(jtv) + } + default: _, _ = key, value @@ -9877,6 +10291,24 @@ func awsRestjson1_deserializeDocumentStreamingSession(v **types.StreamingSession sv.Arn = ptr.String(jtv) } + case "automaticTerminationMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AutomaticTerminationMode to be of type string, got %T instead", value) + } + sv.AutomaticTerminationMode = types.AutomaticTerminationMode(jtv) + } + + case "backupMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SessionBackupMode to be of type string, got %T instead", value) + } + sv.BackupMode = types.SessionBackupMode(jtv) + } + case "createdAt": if value != nil { jtv, ok := value.(string) @@ -9917,6 +10349,19 @@ func awsRestjson1_deserializeDocumentStreamingSession(v **types.StreamingSession sv.LaunchProfileId = ptr.String(jtv) } + case "maxBackupsToRetain": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected StreamConfigurationMaxBackupsToRetain to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaxBackupsToRetain = int32(i64) + } + case "ownedBy": if value != nil { jtv, ok := value.(string) @@ -9935,6 +10380,15 @@ func awsRestjson1_deserializeDocumentStreamingSession(v **types.StreamingSession sv.SessionId = ptr.String(jtv) } + case "sessionPersistenceMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SessionPersistenceMode to be of type string, got %T instead", value) + } + sv.SessionPersistenceMode = types.SessionPersistenceMode(jtv) + } + case "startedAt": if value != nil { jtv, ok := value.(string) @@ -9957,6 +10411,15 @@ func awsRestjson1_deserializeDocumentStreamingSession(v **types.StreamingSession sv.StartedBy = ptr.String(jtv) } + case "startedFromBackupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.StartedFromBackupId = ptr.String(jtv) + } + case "state": if value != nil { jtv, ok := value.(string) @@ -10068,6 +10531,141 @@ func awsRestjson1_deserializeDocumentStreamingSession(v **types.StreamingSession sv.UpdatedBy = ptr.String(jtv) } + case "volumeConfiguration": + if err := awsRestjson1_deserializeDocumentVolumeConfiguration(&sv.VolumeConfiguration, value); err != nil { + return err + } + + case "volumeRetentionMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VolumeRetentionMode to be of type string, got %T instead", value) + } + sv.VolumeRetentionMode = types.VolumeRetentionMode(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentStreamingSessionBackup(v **types.StreamingSessionBackup, 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.StreamingSessionBackup + if *v == nil { + sv = &types.StreamingSessionBackup{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "backupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.BackupId = ptr.String(jtv) + } + + case "createdAt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Timestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedAt = ptr.Time(t) + } + + case "launchProfileId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.LaunchProfileId = ptr.String(jtv) + } + + case "ownedBy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.OwnedBy = ptr.String(jtv) + } + + case "sessionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StreamingSessionId to be of type string, got %T instead", value) + } + sv.SessionId = ptr.String(jtv) + } + + case "state": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StreamingSessionState to be of type string, got %T instead", value) + } + sv.State = types.StreamingSessionState(jtv) + } + + case "statusCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StreamingSessionStatusCode to be of type string, got %T instead", value) + } + sv.StatusCode = types.StreamingSessionStatusCode(jtv) + } + + case "statusMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.StatusMessage = ptr.String(jtv) + } + + case "tags": + if err := awsRestjson1_deserializeDocumentTags(&sv.Tags, value); err != nil { + return err + } + default: _, _ = key, value @@ -10077,6 +10675,40 @@ func awsRestjson1_deserializeDocumentStreamingSession(v **types.StreamingSession return nil } +func awsRestjson1_deserializeDocumentStreamingSessionBackupList(v *[]types.StreamingSessionBackup, 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.StreamingSessionBackup + if *v == nil { + cv = []types.StreamingSessionBackup{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.StreamingSessionBackup + destAddr := &col + if err := awsRestjson1_deserializeDocumentStreamingSessionBackup(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentStreamingSessionList(v *[]types.StreamingSession, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11519,3 +12151,73 @@ func awsRestjson1_deserializeDocumentValidationResults(v *[]types.ValidationResu *v = cv return nil } + +func awsRestjson1_deserializeDocumentVolumeConfiguration(v **types.VolumeConfiguration, 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.VolumeConfiguration + if *v == nil { + sv = &types.VolumeConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "iops": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected VolumeIops to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Iops = ptr.Int32(int32(i64)) + } + + case "size": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected VolumeSizeInGiB to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Size = ptr.Int32(int32(i64)) + } + + case "throughput": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected VolumeThroughputInMiBs to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Throughput = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} diff --git a/service/nimble/generated.json b/service/nimble/generated.json index 31ce96f1748..8b4e8b34d80 100644 --- a/service/nimble/generated.json +++ b/service/nimble/generated.json @@ -30,6 +30,7 @@ "api_op_GetLaunchProfileMember.go", "api_op_GetStreamingImage.go", "api_op_GetStreamingSession.go", + "api_op_GetStreamingSessionBackup.go", "api_op_GetStreamingSessionStream.go", "api_op_GetStudio.go", "api_op_GetStudioComponent.go", @@ -39,6 +40,7 @@ "api_op_ListLaunchProfileMembers.go", "api_op_ListLaunchProfiles.go", "api_op_ListStreamingImages.go", + "api_op_ListStreamingSessionBackups.go", "api_op_ListStreamingSessions.go", "api_op_ListStudioComponents.go", "api_op_ListStudioMembers.go", diff --git a/service/nimble/serializers.go b/service/nimble/serializers.go index ce57eee790a..f5da3bbc08a 100644 --- a/service/nimble/serializers.go +++ b/service/nimble/serializers.go @@ -526,9 +526,9 @@ func awsRestjson1_serializeOpDocumentCreateStreamingSessionStreamInput(v *Create object := value.Object() defer object.Close() - if v.ExpirationInSeconds != 0 { + if v.ExpirationInSeconds != nil { ok := object.Key("expirationInSeconds") - ok.Integer(v.ExpirationInSeconds) + ok.Integer(*v.ExpirationInSeconds) } return nil @@ -1773,6 +1773,73 @@ func awsRestjson1_serializeOpHttpBindingsGetStreamingSessionInput(v *GetStreamin return nil } +type awsRestjson1_serializeOpGetStreamingSessionBackup struct { +} + +func (*awsRestjson1_serializeOpGetStreamingSessionBackup) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetStreamingSessionBackup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + 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.(*GetStreamingSessionBackupInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2020-08-01/studios/{studioId}/streaming-session-backups/{backupId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsGetStreamingSessionBackupInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsGetStreamingSessionBackupInput(v *GetStreamingSessionBackupInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.BackupId == nil || len(*v.BackupId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member backupId must not be empty")} + } + if v.BackupId != nil { + if err := encoder.SetURI("backupId").String(*v.BackupId); err != nil { + return err + } + } + + if v.StudioId == nil || len(*v.StudioId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member studioId must not be empty")} + } + if v.StudioId != nil { + if err := encoder.SetURI("studioId").String(*v.StudioId); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetStreamingSessionStream struct { } @@ -2223,8 +2290,8 @@ func awsRestjson1_serializeOpHttpBindingsListLaunchProfileMembersInput(v *ListLa } } - if v.MaxResults != 0 { - encoder.SetQuery("maxResults").Integer(v.MaxResults) + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) } if v.NextToken != nil { @@ -2289,8 +2356,8 @@ func awsRestjson1_serializeOpHttpBindingsListLaunchProfilesInput(v *ListLaunchPr return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.MaxResults != 0 { - encoder.SetQuery("maxResults").Integer(v.MaxResults) + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) } if v.NextToken != nil { @@ -2385,6 +2452,72 @@ func awsRestjson1_serializeOpHttpBindingsListStreamingImagesInput(v *ListStreami return nil } +type awsRestjson1_serializeOpListStreamingSessionBackups struct { +} + +func (*awsRestjson1_serializeOpListStreamingSessionBackups) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListStreamingSessionBackups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + 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.(*ListStreamingSessionBackupsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2020-08-01/studios/{studioId}/streaming-session-backups") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsListStreamingSessionBackupsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListStreamingSessionBackupsInput(v *ListStreamingSessionBackupsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + if v.OwnedBy != nil { + encoder.SetQuery("ownedBy").String(*v.OwnedBy) + } + + if v.StudioId == nil || len(*v.StudioId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member studioId must not be empty")} + } + if v.StudioId != nil { + if err := encoder.SetURI("studioId").String(*v.StudioId); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpListStreamingSessions struct { } @@ -2505,8 +2638,8 @@ func awsRestjson1_serializeOpHttpBindingsListStudioComponentsInput(v *ListStudio return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.MaxResults != 0 { - encoder.SetQuery("maxResults").Integer(v.MaxResults) + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) } if v.NextToken != nil { @@ -2583,8 +2716,8 @@ func awsRestjson1_serializeOpHttpBindingsListStudioMembersInput(v *ListStudioMem return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.MaxResults != 0 { - encoder.SetQuery("maxResults").Integer(v.MaxResults) + if v.MaxResults != nil { + encoder.SetQuery("maxResults").Integer(*v.MaxResults) } if v.NextToken != nil { @@ -2943,6 +3076,17 @@ func (m *awsRestjson1_serializeOpStartStreamingSession) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: err} } + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentStartStreamingSessionInput(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 = restEncoder.Encode(request.Request); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -2981,6 +3125,18 @@ func awsRestjson1_serializeOpHttpBindingsStartStreamingSessionInput(v *StartStre return nil } +func awsRestjson1_serializeOpDocumentStartStreamingSessionInput(v *StartStreamingSessionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BackupId != nil { + ok := object.Key("backupId") + ok.String(*v.BackupId) + } + + return nil +} + type awsRestjson1_serializeOpStartStudioSSOConfigurationRepair struct { } @@ -3078,6 +3234,17 @@ func (m *awsRestjson1_serializeOpStopStreamingSession) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: err} } + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentStopStreamingSessionInput(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 = restEncoder.Encode(request.Request); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -3116,6 +3283,18 @@ func awsRestjson1_serializeOpHttpBindingsStopStreamingSessionInput(v *StopStream return nil } +func awsRestjson1_serializeOpDocumentStopStreamingSessionInput(v *StopStreamingSessionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.VolumeRetentionMode) > 0 { + ok := object.Key("volumeRetentionMode") + ok.String(string(v.VolumeRetentionMode)) + } + + return nil +} + type awsRestjson1_serializeOpTagResource struct { } @@ -4072,6 +4251,11 @@ func awsRestjson1_serializeDocumentStreamConfigurationCreate(v *types.StreamConf object := value.Object() defer object.Close() + if len(v.AutomaticTerminationMode) > 0 { + ok := object.Key("automaticTerminationMode") + ok.String(string(v.AutomaticTerminationMode)) + } + if len(v.ClipboardMode) > 0 { ok := object.Key("clipboardMode") ok.String(string(v.ClipboardMode)) @@ -4084,9 +4268,9 @@ func awsRestjson1_serializeDocumentStreamConfigurationCreate(v *types.StreamConf } } - if v.MaxSessionLengthInMinutes != 0 { + if v.MaxSessionLengthInMinutes != nil { ok := object.Key("maxSessionLengthInMinutes") - ok.Integer(v.MaxSessionLengthInMinutes) + ok.Integer(*v.MaxSessionLengthInMinutes) } if v.MaxStoppedSessionLengthInMinutes != 0 { @@ -4094,6 +4278,18 @@ func awsRestjson1_serializeDocumentStreamConfigurationCreate(v *types.StreamConf ok.Integer(v.MaxStoppedSessionLengthInMinutes) } + if v.SessionBackup != nil { + ok := object.Key("sessionBackup") + if err := awsRestjson1_serializeDocumentStreamConfigurationSessionBackup(v.SessionBackup, ok); err != nil { + return err + } + } + + if len(v.SessionPersistenceMode) > 0 { + ok := object.Key("sessionPersistenceMode") + ok.String(string(v.SessionPersistenceMode)) + } + if v.SessionStorage != nil { ok := object.Key("sessionStorage") if err := awsRestjson1_serializeDocumentStreamConfigurationSessionStorage(v.SessionStorage, ok); err != nil { @@ -4108,6 +4304,30 @@ func awsRestjson1_serializeDocumentStreamConfigurationCreate(v *types.StreamConf } } + if v.VolumeConfiguration != nil { + ok := object.Key("volumeConfiguration") + if err := awsRestjson1_serializeDocumentVolumeConfiguration(v.VolumeConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentStreamConfigurationSessionBackup(v *types.StreamConfigurationSessionBackup, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaxBackupsToRetain != 0 { + ok := object.Key("maxBackupsToRetain") + ok.Integer(v.MaxBackupsToRetain) + } + + if len(v.Mode) > 0 { + ok := object.Key("mode") + ok.String(string(v.Mode)) + } + return nil } @@ -4308,3 +4528,25 @@ func awsRestjson1_serializeDocumentTags(v map[string]string, value smithyjson.Va } return nil } + +func awsRestjson1_serializeDocumentVolumeConfiguration(v *types.VolumeConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Iops != nil { + ok := object.Key("iops") + ok.Integer(*v.Iops) + } + + if v.Size != nil { + ok := object.Key("size") + ok.Integer(*v.Size) + } + + if v.Throughput != nil { + ok := object.Key("throughput") + ok.Integer(*v.Throughput) + } + + return nil +} diff --git a/service/nimble/types/enums.go b/service/nimble/types/enums.go index 1baf928a608..0154fef9621 100644 --- a/service/nimble/types/enums.go +++ b/service/nimble/types/enums.go @@ -2,6 +2,24 @@ package types +type AutomaticTerminationMode string + +// Enum values for AutomaticTerminationMode +const ( + AutomaticTerminationModeDeactivated AutomaticTerminationMode = "DEACTIVATED" + AutomaticTerminationModeActivated AutomaticTerminationMode = "ACTIVATED" +) + +// Values returns all known values for AutomaticTerminationMode. 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 (AutomaticTerminationMode) Values() []AutomaticTerminationMode { + return []AutomaticTerminationMode{ + "DEACTIVATED", + "ACTIVATED", + } +} + type LaunchProfilePersona string // Enum values for LaunchProfilePersona @@ -189,6 +207,42 @@ func (LaunchProfileValidationType) Values() []LaunchProfileValidationType { } } +type SessionBackupMode string + +// Enum values for SessionBackupMode +const ( + SessionBackupModeAutomatic SessionBackupMode = "AUTOMATIC" + SessionBackupModeDeactivated SessionBackupMode = "DEACTIVATED" +) + +// Values returns all known values for SessionBackupMode. 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 (SessionBackupMode) Values() []SessionBackupMode { + return []SessionBackupMode{ + "AUTOMATIC", + "DEACTIVATED", + } +} + +type SessionPersistenceMode string + +// Enum values for SessionPersistenceMode +const ( + SessionPersistenceModeDeactivated SessionPersistenceMode = "DEACTIVATED" + SessionPersistenceModeActivated SessionPersistenceMode = "ACTIVATED" +) + +// Values returns all known values for SessionPersistenceMode. 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 (SessionPersistenceMode) Values() []SessionPersistenceMode { + return []SessionPersistenceMode{ + "DEACTIVATED", + "ACTIVATED", + } +} + type StreamingClipboardMode string // Enum values for StreamingClipboardMode @@ -689,6 +743,7 @@ const ( StudioStatusCodeEncryptionKeyAccessDenied StudioStatusCode = "ENCRYPTION_KEY_ACCESS_DENIED" StudioStatusCodeAwsSsoConfigurationRepaired StudioStatusCode = "AWS_SSO_CONFIGURATION_REPAIRED" StudioStatusCodeAwsSsoConfigurationRepairInProgress StudioStatusCode = "AWS_SSO_CONFIGURATION_REPAIR_IN_PROGRESS" + StudioStatusCodeAwsStsRegionDisabled StudioStatusCode = "AWS_STS_REGION_DISABLED" ) // Values returns all known values for StudioStatusCode. Note that this can be @@ -714,5 +769,24 @@ func (StudioStatusCode) Values() []StudioStatusCode { "ENCRYPTION_KEY_ACCESS_DENIED", "AWS_SSO_CONFIGURATION_REPAIRED", "AWS_SSO_CONFIGURATION_REPAIR_IN_PROGRESS", + "AWS_STS_REGION_DISABLED", + } +} + +type VolumeRetentionMode string + +// Enum values for VolumeRetentionMode +const ( + VolumeRetentionModeRetain VolumeRetentionMode = "RETAIN" + VolumeRetentionModeDelete VolumeRetentionMode = "DELETE" +) + +// Values returns all known values for VolumeRetentionMode. 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 (VolumeRetentionMode) Values() []VolumeRetentionMode { + return []VolumeRetentionMode{ + "RETAIN", + "DELETE", } } diff --git a/service/nimble/types/errors.go b/service/nimble/types/errors.go index 6e408bb95b1..77907d0ba3f 100644 --- a/service/nimble/types/errors.go +++ b/service/nimble/types/errors.go @@ -98,7 +98,7 @@ func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smit // Your current quota does not allow you to perform the request action. You can // request increases for some quotas, and other quotas cannot be increased. Please -// use AWS Service Quotas to request an increase. +// use Amazon Web Services Service Quotas to request an increase. type ServiceQuotaExceededException struct { Message *string diff --git a/service/nimble/types/types.go b/service/nimble/types/types.go index ca7b8a29306..a6bf60fc1ca 100644 --- a/service/nimble/types/types.go +++ b/service/nimble/types/types.go @@ -20,7 +20,7 @@ type ActiveDirectoryComputerAttribute struct { noSmithyDocumentSerde } -// The configuration for a Microsoft Active Directory (Microsoft AD) studio +// The configuration for a Directory Service for Microsoft Active Directory studio // resource. type ActiveDirectoryConfiguration struct { @@ -58,7 +58,7 @@ type Eula struct { // The EULA content. Content *string - // The Unix epoch timestamp in seconds for when the resource was created. + // The ISO timestamp in seconds for when the resource was created. CreatedAt *time.Time // The EULA ID. @@ -67,7 +67,7 @@ type Eula struct { // The name for the EULA. Name *string - // The Unix epoch timestamp in seconds for when the resource was updated. + // The ISO timestamp in seconds for when the resource was updated. UpdatedAt *time.Time noSmithyDocumentSerde @@ -76,7 +76,7 @@ type Eula struct { // The acceptance of a EULA, required to use Amazon-provided streaming images. type EulaAcceptance struct { - // The Unix epoch timestamp in seconds for when the EULA was accepted. + // The ISO timestamp in seconds for when the EULA was accepted. AcceptedAt *time.Time // The ID of the person who accepted the EULA. @@ -103,10 +103,11 @@ type EulaAcceptance struct { // streaming session. By default, studio admins can use all launch profiles. type LaunchProfile struct { - // The ARN of the resource. + // The Amazon Resource Name (ARN) that is assigned to a studio resource and + // uniquely identifies it. ARNs are unique across all Regions. Arn *string - // The Unix epoch timestamp in seconds for when the resource was created. + // The ISO timestamp in seconds for when the resource was created. CreatedAt *time.Time // The user ID of the user that created the launch profile. @@ -118,7 +119,7 @@ type LaunchProfile struct { // Unique identifiers for a collection of EC2 subnets. Ec2SubnetIds []string - // The launch profile ID. + // The ID of the launch profile used to control access from the streaming session. LaunchProfileId *string // The version number of the protocol that is used by the launch profile. The only @@ -144,11 +145,11 @@ type LaunchProfile struct { // this launch profile. StudioComponentIds []string - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string - // The Unix epoch timestamp in seconds for when the resource was updated. + // The ISO timestamp in seconds for when the resource was updated. UpdatedAt *time.Time // The user ID of the user that most recently updated the resource. @@ -160,7 +161,7 @@ type LaunchProfile struct { noSmithyDocumentSerde } -// A Launch Profile Initialization contains information required for a workstation +// A launch profile initialization contains information required for a workstation // or server to connect to a launch profile. This includes scripts, endpoints, // security groups, subnets, and other configuration. type LaunchProfileInitialization struct { @@ -171,7 +172,7 @@ type LaunchProfileInitialization struct { // The EC2 security groups that control access to the studio component. Ec2SecurityGroupIds []string - // The launch profile ID. + // The ID of the launch profile used to control access from the streaming session. LaunchProfileId *string // The version number of the protocol that is used by the launch profile. The only @@ -184,7 +185,7 @@ type LaunchProfileInitialization struct { // The name for the launch profile. Name *string - // The platform of the launch platform, either WINDOWS or LINUX. + // The platform of the launch platform, either Windows or Linux. Platform LaunchProfilePlatform // The system initializtion scripts. @@ -196,7 +197,7 @@ type LaunchProfileInitialization struct { noSmithyDocumentSerde } -// The Launch Profile Initialization Active Directory contains information required +// The launch profile initialization Active Directory contains information required // for the launch profile to connect to the Active Directory. type LaunchProfileInitializationActiveDirectory struct { @@ -225,20 +226,21 @@ type LaunchProfileInitializationActiveDirectory struct { noSmithyDocumentSerde } -// The Launch Profile Initialization Script is used when start streaming session +// The launch profile initialization script is used when start streaming session // runs. type LaunchProfileInitializationScript struct { // An IAM role attached to a Studio Component that gives the studio component - // access to AWS resources at anytime while the instance is running. + // access to Amazon Web Services resources at anytime while the instance is + // running. RuntimeRoleArn *string // The initialization script. Script *string // An IAM role attached to Studio Component when the system initialization script - // runs which give the studio component access to AWS resources when the system - // initialization script runs. + // runs which give the studio component access to Amazon Web Services resources + // when the system initialization script runs. SecureInitializationRoleArn *string // The unique identifier for a studio component resource. @@ -250,26 +252,26 @@ type LaunchProfileInitializationScript struct { noSmithyDocumentSerde } -// Launch profile membership enables your studio admins to delegate launch profile -// access to other studio users in the Nimble Studio portal without needing to -// write or maintain complex IAM policies. A launch profile member is a user -// association from your studio identity source who is granted permissions to a -// launch profile. A launch profile member (type USER) provides the following -// permissions to that launch profile: +// Studio admins can use launch profile membership to delegate launch profile +// access to studio users in the Nimble Studio portal without writing or +// maintaining complex IAM policies. A launch profile member is a user association +// from your studio identity source who is granted permissions to a launch profile. +// A launch profile member (type USER) provides the following permissions to that +// launch profile: // // * GetLaunchProfile // -// * -// GetLaunchProfileInitialization -// -// * GetLaunchProfileMembers +// * GetLaunchProfileInitialization // // * -// GetLaunchProfileMember +// GetLaunchProfileMembers +// +// * GetLaunchProfileMember // // * CreateStreamingSession // -// * GetLaunchProfileDetails +// * +// GetLaunchProfileDetails type LaunchProfileMembership struct { // The ID of the identity store. @@ -330,7 +332,7 @@ type NewStudioMember struct { noSmithyDocumentSerde } -// A parameter for a studio component script, in the form of a key:value pair. +// A parameter for a studio component script, in the form of a key-value pair. type ScriptParameterKeyValue struct { // A script parameter key. @@ -368,8 +370,8 @@ type SharedFileSystemConfiguration struct { // A configuration for a streaming session. type StreamConfiguration struct { - // Enable or disable the use of the system clipboard to copy and paste between the - // streaming session and streaming client. + // Allows or deactivates the use of the system clipboard to copy and paste between + // the streaming session and streaming client. // // This member is required. ClipboardMode StreamingClipboardMode @@ -386,35 +388,66 @@ type StreamConfiguration struct { // This member is required. StreamingImageIds []string + // Indicates if a streaming session created from this launch profile should be + // terminated automatically or retained without termination after being in a + // STOPPED state. + // + // * When ACTIVATED, the streaming session is scheduled for + // termination after being in the STOPPED state for the time specified in + // maxStoppedSessionLengthInMinutes. + // + // * When DEACTIVATED, the streaming session can + // remain in the STOPPED state indefinitely. + // + // This parameter is only allowed when + // sessionPersistenceMode is ACTIVATED. When allowed, the default value for this + // parameter is DEACTIVATED. + AutomaticTerminationMode AutomaticTerminationMode + // The length of time, in minutes, that a streaming session can be active before it // is stopped or terminated. After this point, Nimble Studio automatically // terminates or stops the session. The default length of time is 690 minutes, and // the maximum length of time is 30 days. - MaxSessionLengthInMinutes int32 + MaxSessionLengthInMinutes *int32 // Integer that determines if you can start and stop your sessions and how long a // session can stay in the STOPPED state. The default value is 0. The maximum value - // is 5760. If the value is missing or set to 0, your sessions can’t be stopped. If - // you then call StopStreamingSession, the session fails. If the time that a - // session stays in the READY state exceeds the maxSessionLengthInMinutes value, - // the session will automatically be terminated (instead of stopped). If the value - // is set to a positive number, the session can be stopped. You can call - // StopStreamingSession to stop sessions in the READY state. If the time that a - // session stays in the READY state exceeds the maxSessionLengthInMinutes value, - // the session will automatically be stopped (instead of terminated). + // is 5760. This field is allowed only when sessionPersistenceMode is ACTIVATED and + // automaticTerminationMode is ACTIVATED. If the value is set to 0, your sessions + // can’t be STOPPED. If you then call StopStreamingSession, the session fails. If + // the time that a session stays in the READY state exceeds the + // maxSessionLengthInMinutes value, the session will automatically be terminated + // (instead of STOPPED). If the value is set to a positive number, the session can + // be stopped. You can call StopStreamingSession to stop sessions in the READY + // state. If the time that a session stays in the READY state exceeds the + // maxSessionLengthInMinutes value, the session will automatically be stopped + // (instead of terminated). MaxStoppedSessionLengthInMinutes int32 - // (Optional) The upload storage for a streaming session. + // Information about the streaming session backup. + SessionBackup *StreamConfigurationSessionBackup + + // Determine if a streaming session created from this launch profile can configure + // persistent storage. This means that volumeConfiguration and + // automaticTerminationMode are configured. + SessionPersistenceMode SessionPersistenceMode + + // The upload storage for a streaming session. SessionStorage *StreamConfigurationSessionStorage + // Custom volume configuration for the root volumes that are attached to streaming + // sessions. This parameter is only allowed when sessionPersistenceMode is + // ACTIVATED. + VolumeConfiguration *VolumeConfiguration + noSmithyDocumentSerde } // Configuration for streaming workstations created using this launch profile. type StreamConfigurationCreate struct { - // Enable or disable the use of the system clipboard to copy and paste between the - // streaming session and streaming client. + // Allows or deactivates the use of the system clipboard to copy and paste between + // the streaming session and streaming client. // // This member is required. ClipboardMode StreamingClipboardMode @@ -431,28 +464,77 @@ type StreamConfigurationCreate struct { // This member is required. StreamingImageIds []string + // Indicates if a streaming session created from this launch profile should be + // terminated automatically or retained without termination after being in a + // STOPPED state. + // + // * When ACTIVATED, the streaming session is scheduled for + // termination after being in the STOPPED state for the time specified in + // maxStoppedSessionLengthInMinutes. + // + // * When DEACTIVATED, the streaming session can + // remain in the STOPPED state indefinitely. + // + // This parameter is only allowed when + // sessionPersistenceMode is ACTIVATED. When allowed, the default value for this + // parameter is DEACTIVATED. + AutomaticTerminationMode AutomaticTerminationMode + // The length of time, in minutes, that a streaming session can be active before it // is stopped or terminated. After this point, Nimble Studio automatically // terminates or stops the session. The default length of time is 690 minutes, and // the maximum length of time is 30 days. - MaxSessionLengthInMinutes int32 + MaxSessionLengthInMinutes *int32 // Integer that determines if you can start and stop your sessions and how long a // session can stay in the STOPPED state. The default value is 0. The maximum value - // is 5760. If the value is missing or set to 0, your sessions can’t be stopped. If - // you then call StopStreamingSession, the session fails. If the time that a - // session stays in the READY state exceeds the maxSessionLengthInMinutes value, - // the session will automatically be terminated (instead of stopped). If the value - // is set to a positive number, the session can be stopped. You can call - // StopStreamingSession to stop sessions in the READY state. If the time that a - // session stays in the READY state exceeds the maxSessionLengthInMinutes value, - // the session will automatically be stopped (instead of terminated). + // is 5760. This field is allowed only when sessionPersistenceMode is ACTIVATED and + // automaticTerminationMode is ACTIVATED. If the value is set to 0, your sessions + // can’t be STOPPED. If you then call StopStreamingSession, the session fails. If + // the time that a session stays in the READY state exceeds the + // maxSessionLengthInMinutes value, the session will automatically be terminated + // (instead of STOPPED). If the value is set to a positive number, the session can + // be stopped. You can call StopStreamingSession to stop sessions in the READY + // state. If the time that a session stays in the READY state exceeds the + // maxSessionLengthInMinutes value, the session will automatically be stopped + // (instead of terminated). MaxStoppedSessionLengthInMinutes int32 - // (Optional) The upload storage for a streaming workstation that is created using - // this launch profile. + // Configures how streaming sessions are backed up when launched from this launch + // profile. + SessionBackup *StreamConfigurationSessionBackup + + // Determine if a streaming session created from this launch profile can configure + // persistent storage. This means that volumeConfiguration and + // automaticTerminationMode are configured. + SessionPersistenceMode SessionPersistenceMode + + // The upload storage for a streaming workstation that is created using this launch + // profile. SessionStorage *StreamConfigurationSessionStorage + // Custom volume configuration for the root volumes that are attached to streaming + // sessions. This parameter is only allowed when sessionPersistenceMode is + // ACTIVATED. + VolumeConfiguration *VolumeConfiguration + + noSmithyDocumentSerde +} + +// Configures how streaming sessions are backed up when launched from this launch +// profile. +type StreamConfigurationSessionBackup struct { + + // The maximum number of backups that each streaming session created from this + // launch profile can have. + MaxBackupsToRetain int32 + + // Specifies how artists sessions are backed up. Configures backups for streaming + // sessions launched with this launch profile. The default value is DEACTIVATED, + // which means that backups are deactivated. To allow backups, set this value to + // AUTOMATIC. + Mode SessionBackupMode + noSmithyDocumentSerde } @@ -475,11 +557,12 @@ type StreamConfigurationSessionStorage struct { // to select which operating system and software they want to use in a Nimble // Studio streaming session. Amazon provides a number of streaming images that // include popular 3rd-party software. You can create your own streaming images -// using an Amazon Elastic Compute Cloud (Amazon EC2) machine image that you create -// for this purpose. You can also include software that your users require. +// using an Amazon EC2 machine image that you create for this purpose. You can also +// include software that your users require. type StreamingImage struct { - // The ARN of the resource. + // The Amazon Resource Name (ARN) that is assigned to a studio resource and + // uniquely identifies it. ARNs are unique across all Regions. Arn *string // A human-readable description of the streaming image. @@ -499,11 +582,10 @@ type StreamingImage struct { Name *string // The owner of the streaming image, either the studioId that contains the - // streaming image, or 'amazon' for images that are provided by Amazon Nimble - // Studio. + // streaming image, or amazon for images that are provided by Amazon Nimble Studio. Owner *string - // The platform of the streaming image, either WINDOWS or LINUX. + // The platform of the streaming image, either Windows or Linux. Platform *string // The current state. @@ -518,7 +600,7 @@ type StreamingImage struct { // The ID of the streaming image. StreamingImageId *string - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string @@ -543,10 +625,30 @@ type StreamingImageEncryptionConfiguration struct { // profile. type StreamingSession struct { - // The ARN of the resource. + // The Amazon Resource Name (ARN) that is assigned to a studio resource and + // uniquely identifies it. ARNs are unique across all Regions. Arn *string - // The Unix epoch timestamp in seconds for when the resource was created. + // Indicates if a streaming session created from this launch profile should be + // terminated automatically or retained without termination after being in a + // STOPPED state. + // + // * When ACTIVATED, the streaming session is scheduled for + // termination after being in the STOPPED state for the time specified in + // maxStoppedSessionLengthInMinutes. + // + // * When DEACTIVATED, the streaming session can + // remain in the STOPPED state indefinitely. + // + // This parameter is only allowed when + // sessionPersistenceMode is ACTIVATED. When allowed, the default value for this + // parameter is DEACTIVATED. + AutomaticTerminationMode AutomaticTerminationMode + + // Shows the current backup setting of the session. + BackupMode SessionBackupMode + + // The ISO timestamp in seconds for when the resource was created. CreatedAt *time.Time // The user ID of the user that created the streaming session. @@ -558,6 +660,10 @@ type StreamingSession struct { // The ID of the launch profile used to control access from the streaming session. LaunchProfileId *string + // The maximum number of backups of a streaming session that you can have. When the + // maximum number of backups is reached, the oldest backup is deleted. + MaxBackupsToRetain int32 + // The user ID of the user that owns the streaming session. The user that owns the // session will be logging into the session and interacting with the virtual // workstation. @@ -566,12 +672,20 @@ type StreamingSession struct { // The session ID. SessionId *string + // Determine if a streaming session created from this launch profile can configure + // persistent storage. This means that volumeConfiguration and + // automaticTerminationMode are configured. + SessionPersistenceMode SessionPersistenceMode + // The time the session entered START_IN_PROGRESS state. StartedAt *time.Time // The user ID of the user that started the streaming session. StartedBy *string + // The backup ID used to restore a streaming session. + StartedFromBackupId *string + // The current state. State StreamingSessionState @@ -594,7 +708,7 @@ type StreamingSession struct { // The ID of the streaming image. StreamingImageId *string - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string @@ -602,12 +716,60 @@ type StreamingSession struct { // the user. TerminateAt *time.Time - // The Unix epoch timestamp in seconds for when the resource was updated. + // The ISO timestamp in seconds for when the resource was updated. UpdatedAt *time.Time // The user ID of the user that most recently updated the resource. UpdatedBy *string + // Custom volume configuration for the root volumes that are attached to streaming + // sessions. This parameter is only allowed when sessionPersistenceMode is + // ACTIVATED. + VolumeConfiguration *VolumeConfiguration + + // Determine if an EBS volume created from this streaming session will be backed + // up. + VolumeRetentionMode VolumeRetentionMode + + noSmithyDocumentSerde +} + +// Information about the streaming session backup. +type StreamingSessionBackup struct { + + // The Amazon Resource Name (ARN) that is assigned to a studio resource and + // uniquely identifies it. ARNs are unique across all Regions. + Arn *string + + // The ID of the backup. + BackupId *string + + // The ISO timestamp in for when the resource was created. + CreatedAt *time.Time + + // The ID of the launch profile which allowed the backups for the streaming + // session. + LaunchProfileId *string + + // The user ID of the user that owns the streaming session. + OwnedBy *string + + // The streaming session ID for the StreamingSessionBackup. + SessionId *string + + // The streaming session state. + State StreamingSessionState + + // The status code. + StatusCode StreamingSessionStatusCode + + // The status message for the streaming session backup. + StatusMessage *string + + // A collection of labels, in the form of key-value pairs, that apply to this + // resource. + Tags map[string]string + noSmithyDocumentSerde } @@ -630,13 +792,13 @@ type StreamingSessionStorageRoot struct { // Studio portal, or the NICE DCV desktop client. type StreamingSessionStream struct { - // The Unix epoch timestamp in seconds for when the resource was created. + // The ISO timestamp in seconds for when the resource was created. CreatedAt *time.Time // The user ID of the user that created the streaming session stream. CreatedBy *string - // The Unix epoch timestamp in seconds for when the resource expires. + // The ISO timestamp in seconds for when the resource expires. ExpiresAt *time.Time // The user ID of the user that owns the streaming session. The user that owns the @@ -680,7 +842,7 @@ type Studio struct { // uniquely identifies it. ARNs are unique across all Regions. Arn *string - // The Unix epoch timestamp in seconds for when the resource was created. + // The ISO timestamp in seconds for when the resource was created. CreatedAt *time.Time // A friendly name for the studio. @@ -690,8 +852,8 @@ type Studio struct { HomeRegion *string // The IAM Identity Center application client ID used to integrate with IAM - // Identity Center to enable IAM Identity Center users to log in to Nimble Studio - // portal. + // Identity Center. This ID allows IAM Identity Center users to log in to Nimble + // Studio portal. SsoClientId *string // The current state of the studio resource. @@ -717,11 +879,11 @@ type Studio struct { // The address of the web page for the studio. StudioUrl *string - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string - // The Unix epoch timestamp in seconds for when the resource was updated. + // The ISO timestamp in seconds for when the resource was updated. UpdatedAt *time.Time // The IAM role that studio users assume when logging in to the Nimble Studio @@ -742,13 +904,14 @@ type Studio struct { // a streaming session. type StudioComponent struct { - // The ARN of the resource. + // The Amazon Resource Name (ARN) that is assigned to a studio resource and + // uniquely identifies it. ARNs are unique across all Regions. Arn *string // The configuration of the studio component, based on component type. Configuration *StudioComponentConfiguration - // The Unix epoch timestamp in seconds for when the resource was created. + // The ISO timestamp in seconds for when the resource was created. CreatedAt *time.Time // The user ID of the user that created the studio component. @@ -767,15 +930,16 @@ type StudioComponent struct { Name *string // An IAM role attached to a Studio Component that gives the studio component - // access to AWS resources at anytime while the instance is running. + // access to Amazon Web Services resources at anytime while the instance is + // running. RuntimeRoleArn *string // Parameters for the studio component scripts. ScriptParameters []ScriptParameterKeyValue // An IAM role attached to Studio Component when the system initialization script - // runs which give the studio component access to AWS resources when the system - // initialization script runs. + // runs which give the studio component access to Amazon Web Services resources + // when the system initialization script runs. SecureInitializationRoleArn *string // The current state. @@ -793,14 +957,14 @@ type StudioComponent struct { // The specific subtype of a studio component. Subtype StudioComponentSubtype - // A collection of labels, in the form of key:value pairs, that apply to this + // A collection of labels, in the form of key-value pairs, that apply to this // resource. Tags map[string]string // The type of the studio component. Type StudioComponentType - // The Unix epoch timestamp in seconds for when the resource was updated. + // The ISO timestamp in seconds for when the resource was updated. UpdatedAt *time.Time // The user ID of the user that most recently updated the resource. @@ -812,7 +976,7 @@ type StudioComponent struct { // The configuration of the studio component, based on component type. type StudioComponentConfiguration struct { - // The configuration for a Microsoft Active Directory (Microsoft AD) studio + // The configuration for a Directory Service for Microsoft Active Directory studio // resource. ActiveDirectoryConfiguration *ActiveDirectoryConfiguration @@ -837,7 +1001,7 @@ type StudioComponentInitializationScript struct { // valid version is "2021-03-31". LaunchProfileProtocolVersion *string - // The platform of the initialization script, either WINDOWS or LINUX. + // The platform of the initialization script, either Windows or Linux. Platform LaunchProfilePlatform // The method to use when running the initialization script. @@ -852,7 +1016,7 @@ type StudioComponentInitializationScript struct { // The studio component's summary. type StudioComponentSummary struct { - // The Unix epoch timestamp in seconds for when the resource was created. + // The ISO timestamp in seconds for when the resource was created. CreatedAt *time.Time // The user ID of the user that created the studio component. @@ -873,7 +1037,7 @@ type StudioComponentSummary struct { // The type of the studio component. Type StudioComponentType - // The Unix epoch timestamp in seconds for when the resource was updated. + // The ISO timestamp in seconds for when the resource was updated. UpdatedAt *time.Time // The user ID of the user that most recently updated the resource. @@ -903,7 +1067,7 @@ type StudioEncryptionConfiguration struct { // Nimble Studio portal. These users have the permissions provided by the studio's // user IAM role and do not appear in the studio membership collection. Only studio // admins appear in studio membership. When you add a user to studio membership -// with the persona ADMIN, upon logging in to the Nimble Studio portal, they are +// with the ADMIN persona, upon logging in to the Nimble Studio portal, they are // granted permissions specified by the Studio's Admin IAM role. type StudioMembership struct { @@ -949,4 +1113,24 @@ type ValidationResult struct { noSmithyDocumentSerde } +// Custom volume configuration for the root volumes that are attached to streaming +// sessions. This parameter is only allowed when sessionPersistenceMode is +// ACTIVATED. +type VolumeConfiguration struct { + + // The number of I/O operations per second for the root volume that is attached to + // streaming session. + Iops *int32 + + // The size of the root volume that is attached to the streaming session. The root + // volume size is measured in GiBs. + Size *int32 + + // The throughput to provision for the root volume that is attached to the + // streaming session. The throughput is measured in MiB/s. + Throughput *int32 + + noSmithyDocumentSerde +} + type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/nimble/validators.go b/service/nimble/validators.go index 66ff7cab948..0c08895d671 100644 --- a/service/nimble/validators.go +++ b/service/nimble/validators.go @@ -410,6 +410,26 @@ func (m *validateOpGetStreamingImage) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpGetStreamingSessionBackup struct { +} + +func (*validateOpGetStreamingSessionBackup) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetStreamingSessionBackup) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetStreamingSessionBackupInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetStreamingSessionBackupInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetStreamingSession struct { } @@ -590,6 +610,26 @@ func (m *validateOpListStreamingImages) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } +type validateOpListStreamingSessionBackups struct { +} + +func (*validateOpListStreamingSessionBackups) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListStreamingSessionBackups) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListStreamingSessionBackupsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListStreamingSessionBackupsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListStreamingSessions struct { } @@ -990,6 +1030,10 @@ func addOpGetStreamingImageValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetStreamingImage{}, middleware.After) } +func addOpGetStreamingSessionBackupValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetStreamingSessionBackup{}, middleware.After) +} + func addOpGetStreamingSessionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetStreamingSession{}, middleware.After) } @@ -1026,6 +1070,10 @@ func addOpListStreamingImagesValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpListStreamingImages{}, middleware.After) } +func addOpListStreamingSessionBackupsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListStreamingSessionBackups{}, middleware.After) +} + func addOpListStreamingSessionsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListStreamingSessions{}, middleware.After) } @@ -1291,6 +1339,9 @@ func validateOpCreateStreamingSessionInput(v *CreateStreamingSessionInput) error return nil } invalidParams := smithy.InvalidParamsError{Context: "CreateStreamingSessionInput"} + if v.LaunchProfileId == nil { + invalidParams.Add(smithy.NewErrParamRequired("LaunchProfileId")) + } if v.StudioId == nil { invalidParams.Add(smithy.NewErrParamRequired("StudioId")) } @@ -1612,6 +1663,24 @@ func validateOpGetStreamingImageInput(v *GetStreamingImageInput) error { } } +func validateOpGetStreamingSessionBackupInput(v *GetStreamingSessionBackupInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetStreamingSessionBackupInput"} + if v.BackupId == nil { + invalidParams.Add(smithy.NewErrParamRequired("BackupId")) + } + if v.StudioId == nil { + invalidParams.Add(smithy.NewErrParamRequired("StudioId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetStreamingSessionInput(v *GetStreamingSessionInput) error { if v == nil { return nil @@ -1765,6 +1834,21 @@ func validateOpListStreamingImagesInput(v *ListStreamingImagesInput) error { } } +func validateOpListStreamingSessionBackupsInput(v *ListStreamingSessionBackupsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListStreamingSessionBackupsInput"} + if v.StudioId == nil { + invalidParams.Add(smithy.NewErrParamRequired("StudioId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListStreamingSessionsInput(v *ListStreamingSessionsInput) error { if v == nil { return nil diff --git a/service/resourceexplorer2/api_op_CreateIndex.go b/service/resourceexplorer2/api_op_CreateIndex.go index d84a0f8f46a..15eaaabf2cd 100644 --- a/service/resourceexplorer2/api_op_CreateIndex.go +++ b/service/resourceexplorer2/api_op_CreateIndex.go @@ -31,7 +31,7 @@ import ( // in the Amazon Web Services Resource Explorer User Guide. If this is the first // Amazon Web Services Region in which you've created an index for Resource // Explorer, then this operation also creates a service-linked role -// (https://docs.aws.amazon.com/arexug/mainline/security_iam_service-linked-roles.html) +// (https://docs.aws.amazon.com/resource-explorer/latest/userguide/security_iam_service-linked-roles.html) // in your Amazon Web Services account that allows Resource Explorer to enumerate // your resources to populate the index. // diff --git a/service/resourceexplorer2/api_op_CreateView.go b/service/resourceexplorer2/api_op_CreateView.go index c6d3335be66..23ab08b63e7 100644 --- a/service/resourceexplorer2/api_op_CreateView.go +++ b/service/resourceexplorer2/api_op_CreateView.go @@ -16,10 +16,10 @@ import ( // queries that you make using this view include only resources that match the // view's Filters. For more information about Amazon Web Services Resource Explorer // views, see Managing views -// (https://docs.aws.amazon.com/arexug/mainline/manage-views.html) in the Amazon -// Web Services Resource Explorer User Guide. Only the principals with an IAM -// identity-based policy that grants Allow to the Search action on a Resource with -// the Amazon resource name (ARN) +// (https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-views.html) +// in the Amazon Web Services Resource Explorer User Guide. Only the principals +// with an IAM identity-based policy that grants Allow to the Search action on a +// Resource with the Amazon resource name (ARN) // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of // this view can Search using views you create with this operation. func (c *Client) CreateView(ctx context.Context, params *CreateViewInput, optFns ...func(*Options)) (*CreateViewOutput, error) { diff --git a/service/resourceexplorer2/api_op_DeleteIndex.go b/service/resourceexplorer2/api_op_DeleteIndex.go index 1aef571b075..cee6220792c 100644 --- a/service/resourceexplorer2/api_op_DeleteIndex.go +++ b/service/resourceexplorer2/api_op_DeleteIndex.go @@ -18,6 +18,10 @@ import ( // Explorer also deletes all views in that Region. These actions occur as // asynchronous background tasks. You can check to see when the actions are // complete by using the GetIndex operation and checking the Status response value. +// If the index you delete is the aggregator index for the Amazon Web Services +// account, you must wait 24 hours before you can promote another local index to be +// the aggregator index for the account. Users can't perform account-wide searches +// using Resource Explorer until another aggregator index is configured. func (c *Client) DeleteIndex(ctx context.Context, params *DeleteIndexInput, optFns ...func(*Options)) (*DeleteIndexOutput, error) { if params == nil { params = &DeleteIndexInput{} diff --git a/service/resourceexplorer2/api_op_GetIndex.go b/service/resourceexplorer2/api_op_GetIndex.go index 6690682972b..be0c2e158e8 100644 --- a/service/resourceexplorer2/api_op_GetIndex.go +++ b/service/resourceexplorer2/api_op_GetIndex.go @@ -46,26 +46,26 @@ type GetIndexOutput struct { // The date and time when the index was last updated. LastUpdatedAt *time.Time - // If this index is Type=AGGREGATOR, then this response value contains a list of + // This response value is present only if this index is Type=AGGREGATOR. A list of // the Amazon Web Services Regions that replicate their content to the index in - // this Region. Not present for a local index. + // this Region. ReplicatingFrom []string - // Identifies the Amazon Web Services Region that has an index set to - // Type=AGGREGATOR, if one exists. If it does, then the Region you called this - // operation in replicates its index information to the Region specified in this - // response value. Not present if there isn't an aggregator index in the account. + // This response value is present only if this index is Type=LOCAL. The Amazon Web + // Services Region that contains the aggregator index, if one exists. If an + // aggregator index does exist then the Region in which you called this operation + // replicates its index information to the Region specified in this response value. ReplicatingTo []string - // Indicates the current state of the index in this Amazon Web Services Region. + // The current state of the index in this Amazon Web Services Region. State types.IndexState // Tag key and value pairs that are attached to the index. Tags map[string]string - // Specifies the type of the index in this Region. For information about the - // aggregator index and how it differs from a local index, see Turning on - // cross-Region search by creating an aggregator index + // The type of the index in this Region. For information about the aggregator index + // and how it differs from a local index, see Turning on cross-Region search by + // creating an aggregator index // (https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html). Type types.IndexType diff --git a/service/resourceexplorer2/api_op_UpdateIndexType.go b/service/resourceexplorer2/api_op_UpdateIndexType.go index 0e50e22d35e..e5b5bf30ef4 100644 --- a/service/resourceexplorer2/api_op_UpdateIndexType.go +++ b/service/resourceexplorer2/api_op_UpdateIndexType.go @@ -16,11 +16,11 @@ import ( // more information about indexes and the role they perform in Amazon Web Services // Resource Explorer, see Turning on cross-Region search by creating an aggregator // index -// (https://docs.aws.amazon.com/arexug/mainline/manage-aggregator-region.html) in -// the Amazon Web Services Resource Explorer User Guide. +// (https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html) +// in the Amazon Web Services Resource Explorer User Guide. // -// * AGGREGATOR index type -// The index contains information about resources from all Amazon Web Services +// * AGGREGATOR index +// type The index contains information about resources from all Amazon Web Services // Regions in the Amazon Web Services account in which you've created a Resource // Explorer index. Resource information from all other Regions is replicated to // this Region's index. When you change the index type to AGGREGATOR, Resource diff --git a/service/resourceexplorer2/doc.go b/service/resourceexplorer2/doc.go index d39cf2acec0..4218d7811ce 100644 --- a/service/resourceexplorer2/doc.go +++ b/service/resourceexplorer2/doc.go @@ -14,14 +14,14 @@ // Explorer scans the resources in each of the Amazon Web Services Regions in your // Amazon Web Services account in which you turn on Resource Explorer. Resource // Explorer creates and maintains an index -// (https://docs.aws.amazon.com/arexug/mainline/getting-started-terms-and-concepts.html#term-index) +// (https://docs.aws.amazon.com/resource-explorer/latest/userguide/getting-started-terms-and-concepts.html#term-index) // in each Region, with the details of that Region's resources. You can search // across all of the indexed Regions in your account -// (https://docs.aws.amazon.com/arexug/mainline/manage-aggregator-region.html) by -// designating one of your Amazon Web Services Regions to contain the aggregator +// (https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html) +// by designating one of your Amazon Web Services Regions to contain the aggregator // index for the account. When you promote a local index in a Region to become the // aggregator index for the account -// (https://docs.aws.amazon.com/arexug/mainline/manage-aggregator-region-turn-on.html), +// (https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region-turn-on.html), // Resource Explorer automatically replicates the index information from all local // indexes in the other Regions to the aggregator index. Therefore, the Region with // the aggregator index has a copy of all resource information for all Regions in diff --git a/service/route53domains/api_op_AssociateDelegationSignerToDomain.go b/service/route53domains/api_op_AssociateDelegationSignerToDomain.go new file mode 100644 index 00000000000..78fb4dde7bc --- /dev/null +++ b/service/route53domains/api_op_AssociateDelegationSignerToDomain.go @@ -0,0 +1,136 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package route53domains + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/route53domains/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a delegation signer (DS) record in the registry zone for this domain +// name. Note that creating DS record at the registry impacts DNSSEC validation of +// your DNS records. This action may render your domain name unavailable on the +// internet if the steps are completed in the wrong order, or with incorrect +// timing. For more information about DNSSEC signing, see Configuring DNSSEC +// signing +// (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec.html) +// in the Route 53 developer guide. +func (c *Client) AssociateDelegationSignerToDomain(ctx context.Context, params *AssociateDelegationSignerToDomainInput, optFns ...func(*Options)) (*AssociateDelegationSignerToDomainOutput, error) { + if params == nil { + params = &AssociateDelegationSignerToDomainInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AssociateDelegationSignerToDomain", params, optFns, c.addOperationAssociateDelegationSignerToDomainMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AssociateDelegationSignerToDomainOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AssociateDelegationSignerToDomainInput struct { + + // The name of the domain. + // + // This member is required. + DomainName *string + + // The information about a key, including the algorithm, public key-value, and + // flags. + // + // This member is required. + SigningAttributes *types.DnssecSigningAttributes + + noSmithyDocumentSerde +} + +type AssociateDelegationSignerToDomainOutput struct { + + // The identifier for tracking the progress of the request. To query the operation + // status, use GetOperationDetail + // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). + OperationId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAssociateDelegationSignerToDomainMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpAssociateDelegationSignerToDomain{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpAssociateDelegationSignerToDomain{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpAssociateDelegationSignerToDomainValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociateDelegationSignerToDomain(options.Region), middleware.Before); 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 + } + return nil +} + +func newServiceMetadataMiddleware_opAssociateDelegationSignerToDomain(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "route53domains", + OperationName: "AssociateDelegationSignerToDomain", + } +} diff --git a/service/route53domains/api_op_CheckDomainAvailability.go b/service/route53domains/api_op_CheckDomainAvailability.go index b877fb8e7d7..577cece774a 100644 --- a/service/route53domains/api_op_CheckDomainAvailability.go +++ b/service/route53domains/api_op_CheckDomainAvailability.go @@ -83,8 +83,6 @@ type CheckDomainAvailabilityOutput struct { // name has been reserved for another person or organization. UNAVAILABLE The // domain name is not available. UNAVAILABLE_PREMIUM The domain name is not // available. UNAVAILABLE_RESTRICTED The domain name is forbidden. - // - // This member is required. Availability types.DomainAvailability // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_CheckDomainTransferability.go b/service/route53domains/api_op_CheckDomainTransferability.go index b5b97810922..da37b1d2f36 100644 --- a/service/route53domains/api_op_CheckDomainTransferability.go +++ b/service/route53domains/api_op_CheckDomainTransferability.go @@ -64,8 +64,6 @@ type CheckDomainTransferabilityOutput struct { // A complex type that contains information about whether the specified domain can // be transferred to Route 53. - // - // This member is required. Transferability *types.DomainTransferability // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_DisableDomainTransferLock.go b/service/route53domains/api_op_DisableDomainTransferLock.go index 51a97b719ed..9bdbd66016b 100644 --- a/service/route53domains/api_op_DisableDomainTransferLock.go +++ b/service/route53domains/api_op_DisableDomainTransferLock.go @@ -48,8 +48,6 @@ type DisableDomainTransferLockOutput struct { // Identifier for tracking the progress of the request. To query the operation // status, use GetOperationDetail // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). - // - // This member is required. OperationId *string // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_DisassociateDelegationSignerFromDomain.go b/service/route53domains/api_op_DisassociateDelegationSignerFromDomain.go new file mode 100644 index 00000000000..6ebb1ce4835 --- /dev/null +++ b/service/route53domains/api_op_DisassociateDelegationSignerFromDomain.go @@ -0,0 +1,130 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package route53domains + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes a delegation signer (DS) record in the registry zone for this domain +// name. +func (c *Client) DisassociateDelegationSignerFromDomain(ctx context.Context, params *DisassociateDelegationSignerFromDomainInput, optFns ...func(*Options)) (*DisassociateDelegationSignerFromDomainOutput, error) { + if params == nil { + params = &DisassociateDelegationSignerFromDomainInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DisassociateDelegationSignerFromDomain", params, optFns, c.addOperationDisassociateDelegationSignerFromDomainMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DisassociateDelegationSignerFromDomainOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DisassociateDelegationSignerFromDomainInput struct { + + // Name of the domain. + // + // This member is required. + DomainName *string + + // An internal identification number assigned to each DS record after it’s created. + // You can retrieve it as part of DNSSEC information returned by GetDomainDetail + // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetDomainDetail.html). + // + // This member is required. + Id *string + + noSmithyDocumentSerde +} + +type DisassociateDelegationSignerFromDomainOutput struct { + + // Identifier for tracking the progress of the request. To query the operation + // status, use GetOperationDetail + // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). + OperationId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDisassociateDelegationSignerFromDomainMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDisassociateDelegationSignerFromDomain{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDisassociateDelegationSignerFromDomain{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpDisassociateDelegationSignerFromDomainValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDisassociateDelegationSignerFromDomain(options.Region), middleware.Before); 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 + } + return nil +} + +func newServiceMetadataMiddleware_opDisassociateDelegationSignerFromDomain(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "route53domains", + OperationName: "DisassociateDelegationSignerFromDomain", + } +} diff --git a/service/route53domains/api_op_EnableDomainTransferLock.go b/service/route53domains/api_op_EnableDomainTransferLock.go index 520e791fc77..b36931d84eb 100644 --- a/service/route53domains/api_op_EnableDomainTransferLock.go +++ b/service/route53domains/api_op_EnableDomainTransferLock.go @@ -46,8 +46,6 @@ type EnableDomainTransferLockOutput struct { // Identifier for tracking the progress of the request. To use this ID to query the // operation status, use GetOperationDetail. - // - // This member is required. OperationId *string // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_GetDomainDetail.go b/service/route53domains/api_op_GetDomainDetail.go index ccfe75b0693..b69184f93de 100644 --- a/service/route53domains/api_op_GetDomainDetail.go +++ b/service/route53domains/api_op_GetDomainDetail.go @@ -44,31 +44,6 @@ type GetDomainDetailInput struct { // The GetDomainDetail response includes the following elements. type GetDomainDetailOutput struct { - // Provides details about the domain administrative contact. - // - // This member is required. - AdminContact *types.ContactDetail - - // The name of a domain. - // - // This member is required. - DomainName *string - - // The name of the domain. - // - // This member is required. - Nameservers []types.Nameserver - - // Provides details about the domain registrant. - // - // This member is required. - RegistrantContact *types.ContactDetail - - // Provides details about the domain technical contact. - // - // This member is required. - TechContact *types.ContactDetail - // Email address to contact to report incorrect contact information for a domain, // to report that the domain is being used to send spam, to report that someone is // cybersquatting on a domain name, or report some other type of abuse. @@ -77,6 +52,9 @@ type GetDomainDetailOutput struct { // Phone number for reporting abuse. AbuseContactPhone *string + // Provides details about the domain administrative contact. + AdminContact *types.ContactDetail + // Specifies whether contact information is concealed from WHOIS queries. If the // value is true, WHOIS ("who is") queries return contact information either for // Amazon Registrar (for .com, .net, and .org domains) or for our registrar @@ -94,10 +72,22 @@ type GetDomainDetailOutput struct { // Deprecated. DnsSec *string + // A complex type that contains information about the DNSSEC configuration. + DnssecKeys []types.DnssecKey + + // The name of a domain. + DomainName *string + // The date when the registration for the domain is set to expire. The date and // time is in Unix time format and Coordinated Universal time (UTC). ExpirationDate *time.Time + // The name servers of the domain. + Nameservers []types.Nameserver + + // Provides details about the domain registrant. + RegistrantContact *types.ContactDetail + // Specifies whether contact information is concealed from WHOIS queries. If the // value is true, WHOIS ("who is") queries return contact information either for // Amazon Registrar (for .com, .net, and .org domains) or for our registrar @@ -134,6 +124,9 @@ type GetDomainDetailOutput struct { // website; web searches sometimes return an old version of the document.) StatusList []string + // Provides details about the domain technical contact. + TechContact *types.ContactDetail + // Specifies whether contact information is concealed from WHOIS queries. If the // value is true, WHOIS ("who is") queries return contact information either for // Amazon Registrar (for .com, .net, and .org domains) or for our registrar diff --git a/service/route53domains/api_op_GetOperationDetail.go b/service/route53domains/api_op_GetOperationDetail.go index 6725e92f5cf..31bddeccbca 100644 --- a/service/route53domains/api_op_GetOperationDetail.go +++ b/service/route53domains/api_op_GetOperationDetail.go @@ -48,6 +48,9 @@ type GetOperationDetailOutput struct { // The name of a domain. DomainName *string + // The date when the operation was last updated. + LastUpdatedDate *time.Time + // Detailed information on the status including possible errors. Message *string @@ -57,6 +60,28 @@ type GetOperationDetailOutput struct { // The current status of the requested operation in the system. Status types.OperationStatus + // Lists any outstanding operations that require customer action. Valid values + // are: + // + // * PENDING_ACCEPTANCE: The operation is waiting for acceptance from the + // account that is receiving the domain. + // + // * PENDING_CUSTOMER_ACTION: The operation + // is waiting for customer action, for example, returning an email. + // + // * + // PENDING_AUTHORIZATION: The operation is waiting for the form of authorization. + // For more information, see ResendOperationAuthorization + // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ResendOperationAuthorization.html). + // + // * + // PENDING_PAYMENT_VERIFICATION: The operation is waiting for the payment method to + // validate. + // + // * PENDING_SUPPORT_CASE: The operation includes a support case and is + // waiting for its resolution. + StatusFlag types.StatusFlag + // The date when the request was submitted. SubmittedDate *time.Time diff --git a/service/route53domains/api_op_ListDomains.go b/service/route53domains/api_op_ListDomains.go index b1f00a6dec9..5bb7f95f73e 100644 --- a/service/route53domains/api_op_ListDomains.go +++ b/service/route53domains/api_op_ListDomains.go @@ -60,8 +60,6 @@ type ListDomainsInput struct { type ListDomainsOutput struct { // A list of domains. - // - // This member is required. Domains []types.DomainSummary // If there are more domains than you specified for MaxItems in the request, submit diff --git a/service/route53domains/api_op_ListOperations.go b/service/route53domains/api_op_ListOperations.go index 1c193be80bd..3200e01cf21 100644 --- a/service/route53domains/api_op_ListOperations.go +++ b/service/route53domains/api_op_ListOperations.go @@ -44,27 +44,37 @@ type ListOperationsInput struct { // Number of domains to be returned. Default: 20 MaxItems *int32 + // The sort type for returned values. + SortBy types.ListOperationsSortAttributeName + + // The sort order ofr returned values, either ascending or descending. + SortOrder types.SortOrder + + // The status of the operations. + Status []types.OperationStatus + // An optional parameter that lets you get information about all the operations // that you submitted after a specified date and time. Specify the date and time in // Unix time format and Coordinated Universal time (UTC). SubmittedSince *time.Time + // An arrays of the domains operation types. + Type []types.OperationType + noSmithyDocumentSerde } // The ListOperations response includes the following elements. type ListOperationsOutput struct { - // Lists summaries of the operations. - // - // This member is required. - Operations []types.OperationSummary - // If there are more operations than you specified for MaxItems in the request, // submit another request and include the value of NextPageMarker in the value of // Marker. NextPageMarker *string + // Lists summaries of the operations. + Operations []types.OperationSummary + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/route53domains/api_op_ListPrices.go b/service/route53domains/api_op_ListPrices.go index ff5a6b68f78..872be5c77ab 100644 --- a/service/route53domains/api_op_ListPrices.go +++ b/service/route53domains/api_op_ListPrices.go @@ -64,17 +64,15 @@ type ListPricesInput struct { type ListPricesOutput struct { - // A complex type that includes all the pricing information. If you specify a TLD, - // this array contains only the pricing for that TLD. - // - // This member is required. - Prices []types.DomainPrice - // If there are more prices than you specified for MaxItems in the request, submit // another request and include the value of NextPageMarker in the value of Marker. // Used only for all TLDs. If you specify a TLD, don't specify a NextPageMarker. NextPageMarker *string + // A complex type that includes all the pricing information. If you specify a TLD, + // this array contains only the pricing for that TLD. + Prices []types.DomainPrice + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/route53domains/api_op_ListTagsForDomain.go b/service/route53domains/api_op_ListTagsForDomain.go index e23dde3c636..8404146012f 100644 --- a/service/route53domains/api_op_ListTagsForDomain.go +++ b/service/route53domains/api_op_ListTagsForDomain.go @@ -44,8 +44,6 @@ type ListTagsForDomainInput struct { type ListTagsForDomainOutput struct { // A list of the tags that are associated with the specified domain. - // - // This member is required. TagList []types.Tag // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_PushDomain.go b/service/route53domains/api_op_PushDomain.go new file mode 100644 index 00000000000..b0124475e8a --- /dev/null +++ b/service/route53domains/api_op_PushDomain.go @@ -0,0 +1,125 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package route53domains + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Moves a domain from Amazon Web Services to another registrar. Supported +// actions: +// +// * Changes the IPS tags of a .uk domain, and pushes it to transit. +// Transit means that the domain is ready to be transferred to another registrar. +func (c *Client) PushDomain(ctx context.Context, params *PushDomainInput, optFns ...func(*Options)) (*PushDomainOutput, error) { + if params == nil { + params = &PushDomainInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "PushDomain", params, optFns, c.addOperationPushDomainMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*PushDomainOutput) + out.ResultMetadata = metadata + return out, nil +} + +type PushDomainInput struct { + + // Name of the domain. + // + // This member is required. + DomainName *string + + // New IPS tag for the domain. + // + // This member is required. + Target *string + + noSmithyDocumentSerde +} + +type PushDomainOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationPushDomainMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpPushDomain{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpPushDomain{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpPushDomainValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPushDomain(options.Region), middleware.Before); 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 + } + return nil +} + +func newServiceMetadataMiddleware_opPushDomain(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "route53domains", + OperationName: "PushDomain", + } +} diff --git a/service/route53domains/api_op_RegisterDomain.go b/service/route53domains/api_op_RegisterDomain.go index aee61b80ba8..5c94b649989 100644 --- a/service/route53domains/api_op_RegisterDomain.go +++ b/service/route53domains/api_op_RegisterDomain.go @@ -22,7 +22,7 @@ import ( // updates your domain registration with the names of these name servers. // // * -// Enables autorenew, so your domain registration will renew automatically each +// Enables auto renew, so your domain registration will renew automatically each // year. We'll notify you in advance of the renewal date so you can choose whether // to renew the registration. // @@ -121,7 +121,7 @@ type RegisterDomainInput struct { TechContact *types.ContactDetail // Indicates whether the domain will be automatically renewed (true) or not - // (false). Autorenewal only takes effect after the account is charged. Default: + // (false). Auto renewal only takes effect after the account is charged. Default: // true AutoRenew *bool @@ -164,8 +164,6 @@ type RegisterDomainOutput struct { // Identifier for tracking the progress of the request. To query the operation // status, use GetOperationDetail // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). - // - // This member is required. OperationId *string // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_RenewDomain.go b/service/route53domains/api_op_RenewDomain.go index 5a1ef6e1586..e4e30bce574 100644 --- a/service/route53domains/api_op_RenewDomain.go +++ b/service/route53domains/api_op_RenewDomain.go @@ -63,8 +63,6 @@ type RenewDomainOutput struct { // Identifier for tracking the progress of the request. To query the operation // status, use GetOperationDetail // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). - // - // This member is required. OperationId *string // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_ResendOperationAuthorization.go b/service/route53domains/api_op_ResendOperationAuthorization.go new file mode 100644 index 00000000000..f0adda862ac --- /dev/null +++ b/service/route53domains/api_op_ResendOperationAuthorization.go @@ -0,0 +1,116 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package route53domains + +import ( + "context" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Resend the form of authorization email for this operation. +func (c *Client) ResendOperationAuthorization(ctx context.Context, params *ResendOperationAuthorizationInput, optFns ...func(*Options)) (*ResendOperationAuthorizationOutput, error) { + if params == nil { + params = &ResendOperationAuthorizationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ResendOperationAuthorization", params, optFns, c.addOperationResendOperationAuthorizationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ResendOperationAuthorizationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ResendOperationAuthorizationInput struct { + + // Operation ID. + // + // This member is required. + OperationId *string + + noSmithyDocumentSerde +} + +type ResendOperationAuthorizationOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationResendOperationAuthorizationMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpResendOperationAuthorization{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpResendOperationAuthorization{}, middleware.After) + if err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addOpResendOperationAuthorizationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opResendOperationAuthorization(options.Region), middleware.Before); 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 + } + return nil +} + +func newServiceMetadataMiddleware_opResendOperationAuthorization(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "route53domains", + OperationName: "ResendOperationAuthorization", + } +} diff --git a/service/route53domains/api_op_RetrieveDomainAuthCode.go b/service/route53domains/api_op_RetrieveDomainAuthCode.go index 2409d5899b7..458e7cde38f 100644 --- a/service/route53domains/api_op_RetrieveDomainAuthCode.go +++ b/service/route53domains/api_op_RetrieveDomainAuthCode.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation returns the AuthCode for the domain. To transfer a domain to -// another registrar, you provide this value to the new registrar. +// This operation returns the authorization code for the domain. To transfer a +// domain to another registrar, you provide this value to the new registrar. func (c *Client) RetrieveDomainAuthCode(ctx context.Context, params *RetrieveDomainAuthCodeInput, optFns ...func(*Options)) (*RetrieveDomainAuthCodeOutput, error) { if params == nil { params = &RetrieveDomainAuthCodeInput{} @@ -43,8 +43,6 @@ type RetrieveDomainAuthCodeInput struct { type RetrieveDomainAuthCodeOutput struct { // The authorization code for the domain. - // - // This member is required. AuthCode *string // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_TransferDomain.go b/service/route53domains/api_op_TransferDomain.go index 43467cc9935..68dd900f84c 100644 --- a/service/route53domains/api_op_TransferDomain.go +++ b/service/route53domains/api_op_TransferDomain.go @@ -113,7 +113,7 @@ type TransferDomainInput struct { AuthCode *string // Indicates whether the domain will be automatically renewed (true) or not - // (false). Autorenewal only takes effect after the account is charged. Default: + // (false). Auto renewal only takes effect after the account is charged. Default: // true AutoRenew *bool @@ -159,8 +159,6 @@ type TransferDomainOutput struct { // Identifier for tracking the progress of the request. To query the operation // status, use GetOperationDetail // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). - // - // This member is required. OperationId *string // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_UpdateDomainContact.go b/service/route53domains/api_op_UpdateDomainContact.go index 2f114aa5617..d233b3a9b38 100644 --- a/service/route53domains/api_op_UpdateDomainContact.go +++ b/service/route53domains/api_op_UpdateDomainContact.go @@ -14,8 +14,9 @@ import ( // This operation updates the contact information for a particular domain. You must // specify information for at least one contact: registrant, administrator, or // technical. If the update is successful, this method returns an operation ID that -// you can use to track the progress and completion of the action. If the request -// is not completed successfully, the domain registrant will be notified by email. +// you can use to track the progress and completion of the operation. If the +// request is not completed successfully, the domain registrant will be notified by +// email. func (c *Client) UpdateDomainContact(ctx context.Context, params *UpdateDomainContactInput, optFns ...func(*Options)) (*UpdateDomainContactOutput, error) { if params == nil { params = &UpdateDomainContactInput{} @@ -42,6 +43,9 @@ type UpdateDomainContactInput struct { // Provides detailed contact information. AdminContact *types.ContactDetail + // Customer's consent for the owner change request. + Consent *types.Consent + // Provides detailed contact information. RegistrantContact *types.ContactDetail @@ -57,8 +61,6 @@ type UpdateDomainContactOutput struct { // Identifier for tracking the progress of the request. To query the operation // status, use GetOperationDetail // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). - // - // This member is required. OperationId *string // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_UpdateDomainContactPrivacy.go b/service/route53domains/api_op_UpdateDomainContactPrivacy.go index 8d919aefd24..e6909e9d9fe 100644 --- a/service/route53domains/api_op_UpdateDomainContactPrivacy.go +++ b/service/route53domains/api_op_UpdateDomainContactPrivacy.go @@ -89,8 +89,6 @@ type UpdateDomainContactPrivacyOutput struct { // Identifier for tracking the progress of the request. To use this ID to query the // operation status, use GetOperationDetail. - // - // This member is required. OperationId *string // Metadata pertaining to the operation's result. diff --git a/service/route53domains/api_op_UpdateDomainNameservers.go b/service/route53domains/api_op_UpdateDomainNameservers.go index 2a1596c3913..d389b123714 100644 --- a/service/route53domains/api_op_UpdateDomainNameservers.go +++ b/service/route53domains/api_op_UpdateDomainNameservers.go @@ -64,8 +64,6 @@ type UpdateDomainNameserversOutput struct { // Identifier for tracking the progress of the request. To query the operation // status, use GetOperationDetail // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html). - // - // This member is required. OperationId *string // Metadata pertaining to the operation's result. diff --git a/service/route53domains/deserializers.go b/service/route53domains/deserializers.go index aeafe274d8c..6d037107dc3 100644 --- a/service/route53domains/deserializers.go +++ b/service/route53domains/deserializers.go @@ -16,6 +16,7 @@ import ( smithytime "github.com/aws/smithy-go/time" smithyhttp "github.com/aws/smithy-go/transport/http" "io" + "io/ioutil" "math" "strings" ) @@ -140,6 +141,132 @@ func awsAwsjson11_deserializeOpErrorAcceptDomainTransferFromAnotherAwsAccount(re } } +type awsAwsjson11_deserializeOpAssociateDelegationSignerToDomain struct { +} + +func (*awsAwsjson11_deserializeOpAssociateDelegationSignerToDomain) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpAssociateDelegationSignerToDomain) 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 + } + + 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_deserializeOpErrorAssociateDelegationSignerToDomain(response, &metadata) + } + output := &AssociateDelegationSignerToDomainOutput{} + 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_deserializeOpDocumentAssociateDelegationSignerToDomainOutput(&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_deserializeOpErrorAssociateDelegationSignerToDomain(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 + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(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 len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("DnssecLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorDnssecLimitExceeded(response, errorBody) + + case strings.EqualFold("DuplicateRequest", errorCode): + return awsAwsjson11_deserializeErrorDuplicateRequest(response, errorBody) + + case strings.EqualFold("InvalidInput", errorCode): + return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + + case strings.EqualFold("OperationLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorOperationLimitExceeded(response, errorBody) + + case strings.EqualFold("TLDRulesViolation", errorCode): + return awsAwsjson11_deserializeErrorTLDRulesViolation(response, errorBody) + + case strings.EqualFold("UnsupportedTLD", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedTLD(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpCancelDomainTransferToAnotherAwsAccount struct { } @@ -959,6 +1086,129 @@ func awsAwsjson11_deserializeOpErrorDisableDomainTransferLock(response *smithyht } } +type awsAwsjson11_deserializeOpDisassociateDelegationSignerFromDomain struct { +} + +func (*awsAwsjson11_deserializeOpDisassociateDelegationSignerFromDomain) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDisassociateDelegationSignerFromDomain) 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 + } + + 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_deserializeOpErrorDisassociateDelegationSignerFromDomain(response, &metadata) + } + output := &DisassociateDelegationSignerFromDomainOutput{} + 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_deserializeOpDocumentDisassociateDelegationSignerFromDomainOutput(&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_deserializeOpErrorDisassociateDelegationSignerFromDomain(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 + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(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 len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("DuplicateRequest", errorCode): + return awsAwsjson11_deserializeErrorDuplicateRequest(response, errorBody) + + case strings.EqualFold("InvalidInput", errorCode): + return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + + case strings.EqualFold("OperationLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorOperationLimitExceeded(response, errorBody) + + case strings.EqualFold("TLDRulesViolation", errorCode): + return awsAwsjson11_deserializeErrorTLDRulesViolation(response, errorBody) + + case strings.EqualFold("UnsupportedTLD", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedTLD(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpEnableDomainAutoRenew struct { } @@ -2108,14 +2358,14 @@ func awsAwsjson11_deserializeOpErrorListTagsForDomain(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpRegisterDomain struct { +type awsAwsjson11_deserializeOpPushDomain struct { } -func (*awsAwsjson11_deserializeOpRegisterDomain) ID() string { +func (*awsAwsjson11_deserializeOpPushDomain) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpRegisterDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPushDomain) 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) @@ -2129,32 +2379,127 @@ func (m *awsAwsjson11_deserializeOpRegisterDomain) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorRegisterDomain(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPushDomain(response, &metadata) } - output := &RegisterDomainOutput{} + output := &PushDomainOutput{} 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(), + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), } - return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentRegisterDomainOutput(&output, shape) - if err != nil { - var snapshot bytes.Buffer - io.Copy(&snapshot, ringBuffer) + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorPushDomain(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 + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(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 len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InvalidInput", errorCode): + return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + + case strings.EqualFold("OperationLimitExceeded", errorCode): + return awsAwsjson11_deserializeErrorOperationLimitExceeded(response, errorBody) + + case strings.EqualFold("UnsupportedTLD", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedTLD(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpRegisterDomain struct { +} + +func (*awsAwsjson11_deserializeOpRegisterDomain) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpRegisterDomain) 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 + } + + 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_deserializeOpErrorRegisterDomain(response, &metadata) + } + output := &RegisterDomainOutput{} + 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_deserializeOpDocumentRegisterDomainOutput(&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(), @@ -2591,6 +2936,95 @@ func awsAwsjson11_deserializeOpErrorResendContactReachabilityEmail(response *smi } } +type awsAwsjson11_deserializeOpResendOperationAuthorization struct { +} + +func (*awsAwsjson11_deserializeOpResendOperationAuthorization) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpResendOperationAuthorization) 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 + } + + 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_deserializeOpErrorResendOperationAuthorization(response, &metadata) + } + output := &ResendOperationAuthorizationOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsAwsjson11_deserializeOpErrorResendOperationAuthorization(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 + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(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 len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InvalidInput", errorCode): + return awsAwsjson11_deserializeErrorInvalidInput(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpRetrieveDomainAuthCode struct { } @@ -3548,6 +3982,41 @@ func awsAwsjson11_deserializeOpErrorViewBilling(response *smithyhttp.Response, m } } +func awsAwsjson11_deserializeErrorDnssecLimitExceeded(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, 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 err + } + + output := &types.DnssecLimitExceeded{} + err := awsAwsjson11_deserializeDocumentDnssecLimitExceeded(&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 err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + func awsAwsjson11_deserializeErrorDomainLimitExceeded(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -4053,6 +4522,190 @@ func awsAwsjson11_deserializeDocumentContactDetail(v **types.ContactDetail, valu return nil } +func awsAwsjson11_deserializeDocumentDnssecKey(v **types.DnssecKey, 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.DnssecKey + if *v == nil { + sv = &types.DnssecKey{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Algorithm": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected NullableInteger to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Algorithm = ptr.Int32(int32(i64)) + } + + case "Digest": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Digest = ptr.String(jtv) + } + + case "DigestType": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected NullableInteger to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DigestType = ptr.Int32(int32(i64)) + } + + case "Flags": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected NullableInteger to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Flags = ptr.Int32(int32(i64)) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "KeyTag": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected NullableInteger to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.KeyTag = ptr.Int32(int32(i64)) + } + + case "PublicKey": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DnssecPublicKey to be of type string, got %T instead", value) + } + sv.PublicKey = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDnssecKeyList(v *[]types.DnssecKey, 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.DnssecKey + if *v == nil { + cv = []types.DnssecKey{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DnssecKey + destAddr := &col + if err := awsAwsjson11_deserializeDocumentDnssecKey(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentDnssecLimitExceeded(v **types.DnssecLimitExceeded, 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.DnssecLimitExceeded + if *v == nil { + sv = &types.DnssecLimitExceeded{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentDomainLimitExceeded(v **types.DomainLimitExceeded, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4799,6 +5452,40 @@ func awsAwsjson11_deserializeDocumentOperationSummary(v **types.OperationSummary for key, value := range shape { switch key { + case "DomainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DomainName to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } + + case "LastUpdatedDate": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedDate = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + case "OperationId": if value != nil { jtv, ok := value.(string) @@ -4817,6 +5504,15 @@ func awsAwsjson11_deserializeDocumentOperationSummary(v **types.OperationSummary sv.Status = types.OperationStatus(jtv) } + case "StatusFlag": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StatusFlag to be of type string, got %T instead", value) + } + sv.StatusFlag = types.StatusFlag(jtv) + } + case "SubmittedDate": if value != nil { switch jtv := value.(type) { @@ -5162,6 +5858,46 @@ func awsAwsjson11_deserializeOpDocumentAcceptDomainTransferFromAnotherAwsAccount return nil } +func awsAwsjson11_deserializeOpDocumentAssociateDelegationSignerToDomainOutput(v **AssociateDelegationSignerToDomainOutput, 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 *AssociateDelegationSignerToDomainOutput + if *v == nil { + sv = &AssociateDelegationSignerToDomainOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "OperationId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OperationId to be of type string, got %T instead", value) + } + sv.OperationId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentCancelDomainTransferToAnotherAwsAccountOutput(v **CancelDomainTransferToAnotherAwsAccountOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5420,6 +6156,46 @@ func awsAwsjson11_deserializeOpDocumentDisableDomainTransferLockOutput(v **Disab return nil } +func awsAwsjson11_deserializeOpDocumentDisassociateDelegationSignerFromDomainOutput(v **DisassociateDelegationSignerFromDomainOutput, 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 *DisassociateDelegationSignerFromDomainOutput + if *v == nil { + sv = &DisassociateDelegationSignerFromDomainOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "OperationId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OperationId to be of type string, got %T instead", value) + } + sv.OperationId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentEnableDomainAutoRenewOutput(v **EnableDomainAutoRenewOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5628,6 +6404,11 @@ func awsAwsjson11_deserializeOpDocumentGetDomainDetailOutput(v **GetDomainDetail sv.DnsSec = ptr.String(jtv) } + case "DnssecKeys": + if err := awsAwsjson11_deserializeDocumentDnssecKeyList(&sv.DnssecKeys, value); err != nil { + return err + } + case "DomainName": if value != nil { jtv, ok := value.(string) @@ -5828,6 +6609,22 @@ func awsAwsjson11_deserializeOpDocumentGetOperationDetailOutput(v **GetOperation sv.DomainName = ptr.String(jtv) } + case "LastUpdatedDate": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedDate = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + case "Message": if value != nil { jtv, ok := value.(string) @@ -5855,6 +6652,15 @@ func awsAwsjson11_deserializeOpDocumentGetOperationDetailOutput(v **GetOperation sv.Status = types.OperationStatus(jtv) } + case "StatusFlag": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StatusFlag to be of type string, got %T instead", value) + } + sv.StatusFlag = types.StatusFlag(jtv) + } + case "SubmittedDate": if value != nil { switch jtv := value.(type) { diff --git a/service/route53domains/generated.json b/service/route53domains/generated.json index 37234e8adab..166d4951b0e 100644 --- a/service/route53domains/generated.json +++ b/service/route53domains/generated.json @@ -9,6 +9,7 @@ "api_client.go", "api_client_test.go", "api_op_AcceptDomainTransferFromAnotherAwsAccount.go", + "api_op_AssociateDelegationSignerToDomain.go", "api_op_CancelDomainTransferToAnotherAwsAccount.go", "api_op_CheckDomainAvailability.go", "api_op_CheckDomainTransferability.go", @@ -16,6 +17,7 @@ "api_op_DeleteTagsForDomain.go", "api_op_DisableDomainAutoRenew.go", "api_op_DisableDomainTransferLock.go", + "api_op_DisassociateDelegationSignerFromDomain.go", "api_op_EnableDomainAutoRenew.go", "api_op_EnableDomainTransferLock.go", "api_op_GetContactReachabilityStatus.go", @@ -26,10 +28,12 @@ "api_op_ListOperations.go", "api_op_ListPrices.go", "api_op_ListTagsForDomain.go", + "api_op_PushDomain.go", "api_op_RegisterDomain.go", "api_op_RejectDomainTransferFromAnotherAwsAccount.go", "api_op_RenewDomain.go", "api_op_ResendContactReachabilityEmail.go", + "api_op_ResendOperationAuthorization.go", "api_op_RetrieveDomainAuthCode.go", "api_op_TransferDomain.go", "api_op_TransferDomainToAnotherAwsAccount.go", diff --git a/service/route53domains/serializers.go b/service/route53domains/serializers.go index 4f8970e5c66..f810df98efd 100644 --- a/service/route53domains/serializers.go +++ b/service/route53domains/serializers.go @@ -13,6 +13,7 @@ import ( "github.com/aws/smithy-go/middleware" smithytime "github.com/aws/smithy-go/time" smithyhttp "github.com/aws/smithy-go/transport/http" + "math" "path" ) @@ -71,6 +72,61 @@ func (m *awsAwsjson11_serializeOpAcceptDomainTransferFromAnotherAwsAccount) Hand return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpAssociateDelegationSignerToDomain struct { +} + +func (*awsAwsjson11_serializeOpAssociateDelegationSignerToDomain) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpAssociateDelegationSignerToDomain) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + 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.(*AssociateDelegationSignerToDomainInput) + _ = 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("Route53Domains_v20140515.AssociateDelegationSignerToDomain") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentAssociateDelegationSignerToDomainInput(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 + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpCancelDomainTransferToAnotherAwsAccount struct { } @@ -456,6 +512,61 @@ func (m *awsAwsjson11_serializeOpDisableDomainTransferLock) HandleSerialize(ctx return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDisassociateDelegationSignerFromDomain struct { +} + +func (*awsAwsjson11_serializeOpDisassociateDelegationSignerFromDomain) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDisassociateDelegationSignerFromDomain) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + 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.(*DisassociateDelegationSignerFromDomainInput) + _ = 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("Route53Domains_v20140515.DisassociateDelegationSignerFromDomain") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDisassociateDelegationSignerFromDomainInput(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 + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpEnableDomainAutoRenew struct { } @@ -1006,6 +1117,61 @@ func (m *awsAwsjson11_serializeOpListTagsForDomain) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpPushDomain struct { +} + +func (*awsAwsjson11_serializeOpPushDomain) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpPushDomain) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + 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.(*PushDomainInput) + _ = 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("Route53Domains_v20140515.PushDomain") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentPushDomainInput(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 + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpRegisterDomain struct { } @@ -1226,6 +1392,61 @@ func (m *awsAwsjson11_serializeOpResendContactReachabilityEmail) HandleSerialize return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpResendOperationAuthorization struct { +} + +func (*awsAwsjson11_serializeOpResendOperationAuthorization) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpResendOperationAuthorization) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + 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.(*ResendOperationAuthorizationInput) + _ = 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("Route53Domains_v20140515.ResendOperationAuthorization") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentResendOperationAuthorizationInput(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 + + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpRetrieveDomainAuthCode struct { } @@ -1665,6 +1886,36 @@ func (m *awsAwsjson11_serializeOpViewBilling) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } +func awsAwsjson11_serializeDocumentConsent(v *types.Consent, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Currency != nil { + ok := object.Key("Currency") + ok.String(*v.Currency) + } + + { + ok := object.Key("MaxPrice") + switch { + case math.IsNaN(v.MaxPrice): + ok.String("NaN") + + case math.IsInf(v.MaxPrice, 1): + ok.String("Infinity") + + case math.IsInf(v.MaxPrice, -1): + ok.String("-Infinity") + + default: + ok.Double(v.MaxPrice) + + } + } + + return nil +} + func awsAwsjson11_serializeDocumentContactDetail(v *types.ContactDetail, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1744,6 +1995,28 @@ func awsAwsjson11_serializeDocumentContactDetail(v *types.ContactDetail, value s return nil } +func awsAwsjson11_serializeDocumentDnssecSigningAttributes(v *types.DnssecSigningAttributes, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Algorithm != nil { + ok := object.Key("Algorithm") + ok.Integer(*v.Algorithm) + } + + if v.Flags != nil { + ok := object.Key("Flags") + ok.Integer(*v.Flags) + } + + if v.PublicKey != nil { + ok := object.Key("PublicKey") + ok.String(*v.PublicKey) + } + + return nil +} + func awsAwsjson11_serializeDocumentExtraParam(v *types.ExtraParam, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1854,6 +2127,28 @@ func awsAwsjson11_serializeDocumentNameserverList(v []types.Nameserver, value sm return nil } +func awsAwsjson11_serializeDocumentOperationStatusList(v []types.OperationStatus, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + +func awsAwsjson11_serializeDocumentOperationTypeList(v []types.OperationType, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + func awsAwsjson11_serializeDocumentSortCondition(v *types.SortCondition, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1940,6 +2235,25 @@ func awsAwsjson11_serializeOpDocumentAcceptDomainTransferFromAnotherAwsAccountIn return nil } +func awsAwsjson11_serializeOpDocumentAssociateDelegationSignerToDomainInput(v *AssociateDelegationSignerToDomainInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DomainName != nil { + ok := object.Key("DomainName") + ok.String(*v.DomainName) + } + + if v.SigningAttributes != nil { + ok := object.Key("SigningAttributes") + if err := awsAwsjson11_serializeDocumentDnssecSigningAttributes(v.SigningAttributes, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeOpDocumentCancelDomainTransferToAnotherAwsAccountInput(v *CancelDomainTransferToAnotherAwsAccountInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2041,6 +2355,23 @@ func awsAwsjson11_serializeOpDocumentDisableDomainTransferLockInput(v *DisableDo return nil } +func awsAwsjson11_serializeOpDocumentDisassociateDelegationSignerFromDomainInput(v *DisassociateDelegationSignerFromDomainInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DomainName != nil { + ok := object.Key("DomainName") + ok.String(*v.DomainName) + } + + if v.Id != nil { + ok := object.Key("Id") + ok.String(*v.Id) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentEnableDomainAutoRenewInput(v *EnableDomainAutoRenewInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2168,11 +2499,35 @@ func awsAwsjson11_serializeOpDocumentListOperationsInput(v *ListOperationsInput, ok.Integer(*v.MaxItems) } + if len(v.SortBy) > 0 { + ok := object.Key("SortBy") + ok.String(string(v.SortBy)) + } + + if len(v.SortOrder) > 0 { + ok := object.Key("SortOrder") + ok.String(string(v.SortOrder)) + } + + if v.Status != nil { + ok := object.Key("Status") + if err := awsAwsjson11_serializeDocumentOperationStatusList(v.Status, ok); err != nil { + return err + } + } + if v.SubmittedSince != nil { ok := object.Key("SubmittedSince") ok.Double(smithytime.FormatEpochSeconds(*v.SubmittedSince)) } + if v.Type != nil { + ok := object.Key("Type") + if err := awsAwsjson11_serializeDocumentOperationTypeList(v.Type, ok); err != nil { + return err + } + } + return nil } @@ -2210,6 +2565,23 @@ func awsAwsjson11_serializeOpDocumentListTagsForDomainInput(v *ListTagsForDomain return nil } +func awsAwsjson11_serializeOpDocumentPushDomainInput(v *PushDomainInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DomainName != nil { + ok := object.Key("DomainName") + ok.String(*v.DomainName) + } + + if v.Target != nil { + ok := object.Key("Target") + ok.String(*v.Target) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentRegisterDomainInput(v *RegisterDomainInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2319,6 +2691,18 @@ func awsAwsjson11_serializeOpDocumentResendContactReachabilityEmailInput(v *Rese return nil } +func awsAwsjson11_serializeOpDocumentResendOperationAuthorizationInput(v *ResendOperationAuthorizationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.OperationId != nil { + ok := object.Key("OperationId") + ok.String(*v.OperationId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentRetrieveDomainAuthCodeInput(v *RetrieveDomainAuthCodeInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2434,6 +2818,13 @@ func awsAwsjson11_serializeOpDocumentUpdateDomainContactInput(v *UpdateDomainCon } } + if v.Consent != nil { + ok := object.Key("Consent") + if err := awsAwsjson11_serializeDocumentConsent(v.Consent, ok); err != nil { + return err + } + } + if v.DomainName != nil { ok := object.Key("DomainName") ok.String(*v.DomainName) diff --git a/service/route53domains/types/enums.go b/service/route53domains/types/enums.go index 9256a9db2d1..43be3d590ca 100644 --- a/service/route53domains/types/enums.go +++ b/service/route53domains/types/enums.go @@ -606,6 +606,7 @@ const ( ExtraParamNameUkContactType ExtraParamName = "UK_CONTACT_TYPE" ExtraParamNameUkCompanyNumber ExtraParamName = "UK_COMPANY_NUMBER" ExtraParamNameEuCountryOfCitizenship ExtraParamName = "EU_COUNTRY_OF_CITIZENSHIP" + ExtraParamNameAuPriorityToken ExtraParamName = "AU_PRIORITY_TOKEN" ) // Values returns all known values for ExtraParamName. Note that this can be @@ -643,6 +644,7 @@ func (ExtraParamName) Values() []ExtraParamName { "UK_CONTACT_TYPE", "UK_COMPANY_NUMBER", "EU_COUNTRY_OF_CITIZENSHIP", + "AU_PRIORITY_TOKEN", } } @@ -664,6 +666,23 @@ func (ListDomainsAttributeName) Values() []ListDomainsAttributeName { } } +type ListOperationsSortAttributeName string + +// Enum values for ListOperationsSortAttributeName +const ( + ListOperationsSortAttributeNameSubmittedDate ListOperationsSortAttributeName = "SubmittedDate" +) + +// Values returns all known values for ListOperationsSortAttributeName. 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 (ListOperationsSortAttributeName) Values() []ListOperationsSortAttributeName { + return []ListOperationsSortAttributeName{ + "SubmittedDate", + } +} + type OperationStatus string // Enum values for OperationStatus @@ -796,13 +815,40 @@ func (SortOrder) Values() []SortOrder { } } +type StatusFlag string + +// Enum values for StatusFlag +const ( + StatusFlagPendingAcceptance StatusFlag = "PENDING_ACCEPTANCE" + StatusFlagPendingCustomerAction StatusFlag = "PENDING_CUSTOMER_ACTION" + StatusFlagPendingAuthorization StatusFlag = "PENDING_AUTHORIZATION" + StatusFlagPendingPaymentVerification StatusFlag = "PENDING_PAYMENT_VERIFICATION" + StatusFlagPendingSupportCase StatusFlag = "PENDING_SUPPORT_CASE" +) + +// Values returns all known values for StatusFlag. 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 (StatusFlag) Values() []StatusFlag { + return []StatusFlag{ + "PENDING_ACCEPTANCE", + "PENDING_CUSTOMER_ACTION", + "PENDING_AUTHORIZATION", + "PENDING_PAYMENT_VERIFICATION", + "PENDING_SUPPORT_CASE", + } +} + type Transferable string // Enum values for Transferable const ( - TransferableTransferable Transferable = "TRANSFERABLE" - TransferableUntransferable Transferable = "UNTRANSFERABLE" - TransferableDontKnow Transferable = "DONT_KNOW" + TransferableTransferable Transferable = "TRANSFERABLE" + TransferableUntransferable Transferable = "UNTRANSFERABLE" + TransferableDontKnow Transferable = "DONT_KNOW" + TransferableDomainInOwnAccount Transferable = "DOMAIN_IN_OWN_ACCOUNT" + TransferableDomainInAnotherAccount Transferable = "DOMAIN_IN_ANOTHER_ACCOUNT" + TransferablePremiumDomain Transferable = "PREMIUM_DOMAIN" ) // Values returns all known values for Transferable. Note that this can be expanded @@ -813,5 +859,8 @@ func (Transferable) Values() []Transferable { "TRANSFERABLE", "UNTRANSFERABLE", "DONT_KNOW", + "DOMAIN_IN_OWN_ACCOUNT", + "DOMAIN_IN_ANOTHER_ACCOUNT", + "PREMIUM_DOMAIN", } } diff --git a/service/route53domains/types/errors.go b/service/route53domains/types/errors.go index 591275dffd0..63ebf5883a1 100644 --- a/service/route53domains/types/errors.go +++ b/service/route53domains/types/errors.go @@ -7,6 +7,27 @@ import ( smithy "github.com/aws/smithy-go" ) +// This error is returned if you call AssociateDelegationSignerToDomain when the +// specified domain has reached the maximum number of DS records. You can't add any +// additional DS records unless you delete an existing one first. +type DnssecLimitExceeded struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *DnssecLimitExceeded) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *DnssecLimitExceeded) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *DnssecLimitExceeded) ErrorCode() string { return "DnssecLimitExceeded" } +func (e *DnssecLimitExceeded) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // The number of domains has exceeded the allowed threshold for the account. type DomainLimitExceeded struct { Message *string diff --git a/service/route53domains/types/types.go b/service/route53domains/types/types.go index 375a0a0dac1..2a7023c9301 100644 --- a/service/route53domains/types/types.go +++ b/service/route53domains/types/types.go @@ -34,6 +34,22 @@ type BillingRecord struct { noSmithyDocumentSerde } +// Customer's consent for the owner change request. +type Consent struct { + + // Currency for the MaxPrice. + // + // This member is required. + Currency *string + + // Maximum amount the customer agreed to accept. + // + // This member is required. + MaxPrice float64 + + noSmithyDocumentSerde +} + // ContactDetail includes the following elements. type ContactDetail struct { @@ -100,6 +116,74 @@ type ContactDetail struct { noSmithyDocumentSerde } +// Information about the DNSSEC key. You get this from your DNS provider and then +// give it to Route 53 (by using AssociateDelegationSignerToDomain +// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_AssociateDelegationSignerToDomain.html)) +// to pass it to the registry to establish the chain of trust. +type DnssecKey struct { + + // The number of the public key’s cryptographic algorithm according to an IANA + // (https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xml) + // assignment. If Route 53 is your DNS service, set this to 13. For more + // information about enabling DNSSEC signing, see Enabling DNSSEC signing and + // establishing a chain of trust + // (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-enable-signing.html). + Algorithm *int32 + + // The delegation signer digest. Digest is calculated from the public key provided + // using specified digest algorithm and this digest is the actual value returned + // from the registry nameservers as the value of DS records. + Digest *string + + // The number of the DS digest algorithm according to an IANA assignment. For more + // information, see IANA + // (https://www.iana.org/assignments/ds-rr-types/ds-rr-types.xhtml) for DNSSEC + // Delegation Signer (DS) Resource Record (RR) Type Digest Algorithms. + DigestType *int32 + + // Defines the type of key. It can be either a KSK (key-signing-key, value 257) or + // ZSK (zone-signing-key, value 256). Using KSK is always encouraged. Only use ZSK + // if your DNS provider isn't Route 53 and you don’t have KSK available. If you + // have KSK and ZSK keys, always use KSK to create a delegations signer (DS) + // record. If you have ZSK keys only – use ZSK to create a DS record. + Flags *int32 + + // An ID assigned to each DS record created by AssociateDelegationSignerToDomain + // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_AssociateDelegationSignerToDomain.html). + Id *string + + // A numeric identification of the DNSKEY record referred to by this DS record. + KeyTag *int32 + + // The base64-encoded public key part of the key pair that is passed to the + // registry . + PublicKey *string + + noSmithyDocumentSerde +} + +// Information about a delegation signer (DS) record that was created in the +// registry by AssociateDelegationSignerToDomain +// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_AssociateDelegationSignerToDomain.html). +type DnssecSigningAttributes struct { + + // Algorithm which was used to generate the digest from the public key. + Algorithm *int32 + + // Defines the type of key. It can be either a KSK (key-signing-key, value 257) or + // ZSK (zone-signing-key, value 256). Using KSK is always encouraged. Only use ZSK + // if your DNS provider isn't Route 53 and you don’t have KSK available. If you + // have KSK and ZSK keys, always use KSK to create a delegations signer (DS) + // record. If you have ZSK keys only – use ZSK to create a DS record. + Flags *int32 + + // The base64-encoded public key part of the key pair that is passed to the + // registry. + PublicKey *string + + noSmithyDocumentSerde +} + // Information about the domain price associated with a TLD. type DomainPrice struct { @@ -151,14 +235,12 @@ type DomainSuggestion struct { // Summary information about one domain. type DomainSummary struct { - // The name of the domain that the summary information applies to. - // - // This member is required. - DomainName *string - // Indicates whether the domain is automatically renewed upon expiration. AutoRenew *bool + // The name of the domain that the summary information applies to. + DomainName *string + // Expiration date of the domain in Unix time format and Coordinated Universal Time // (UTC). Expiry *time.Time @@ -175,9 +257,12 @@ type DomainSummary struct { type DomainTransferability struct { // Whether the domain name can be transferred to Route 53. You can transfer only - // domains that have a value of TRANSFERABLE for Transferable. Valid values: + // domains that have a value of TRANSFERABLE or Transferable. Valid values: // TRANSFERABLE The domain name can be transferred to Route 53. UNTRANSFERRABLE The // domain name can't be transferred to Route 53. DONT_KNOW Reserved for future use. + // DOMAIN_IN_OWN_ACCOUNT The domain already exists in the current Amazon Web + // Services account. DOMAIN_IN_ANOTHER_ACCOUNT the domain exists in another Amazon + // Web Services account. PREMIUM_DOMAIN Premium domain transfer is not supported. Transferable Transferable noSmithyDocumentSerde @@ -565,7 +650,7 @@ type ExtraParam struct { // * // SG_ID_NUMBER // - // .co.uk, .me.uk, and .org.uk + // .uk, .co.uk, .me.uk, and .org.uk // // * UK_CONTACT_TYPE Valid values // include the following: @@ -655,7 +740,7 @@ type FilterCondition struct { noSmithyDocumentSerde } -// Nameserver includes the following elements. +// Name server includes the following elements. type Nameserver struct { // The fully qualified host name of the name server. Constraint: Maximum 255 @@ -677,24 +762,49 @@ type Nameserver struct { // OperationSummary includes the following elements. type OperationSummary struct { + // Name of the domain. + DomainName *string + + // The date when the last change was made in Unix time format and Coordinated + // Universal Time (UTC). + LastUpdatedDate *time.Time + + // Message about the operation. + Message *string + // Identifier returned to track the requested action. - // - // This member is required. OperationId *string // The current status of the requested operation in the system. - // - // This member is required. Status OperationStatus - // The date when the request was submitted. + // Automatically checks whether there are no outstanding operations on domains that + // need customer attention. Valid values are: // - // This member is required. + // * PENDING_ACCEPTANCE: The operation + // is waiting for acceptance from the account that is receiving the domain. + // + // * + // PENDING_CUSTOMER_ACTION: The operation is waiting for customer action, for + // example, returning an email. + // + // * PENDING_AUTHORIZATION: The operation is waiting + // for the form of authorization. For more information, see + // ResendOperationAuthorization + // (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ResendOperationAuthorization.html). + // + // * + // PENDING_PAYMENT_VERIFICATION: The operation is waiting for the payment method to + // validate. + // + // * PENDING_SUPPORT_CASE: The operation includes a support case and is + // waiting for its resolution. + StatusFlag StatusFlag + + // The date when the request was submitted. SubmittedDate *time.Time // Type of the action requested. - // - // This member is required. Type OperationType noSmithyDocumentSerde diff --git a/service/route53domains/validators.go b/service/route53domains/validators.go index 6725f31ff6f..a2f82fe6ae6 100644 --- a/service/route53domains/validators.go +++ b/service/route53domains/validators.go @@ -30,6 +30,26 @@ func (m *validateOpAcceptDomainTransferFromAnotherAwsAccount) HandleInitialize(c return next.HandleInitialize(ctx, in) } +type validateOpAssociateDelegationSignerToDomain struct { +} + +func (*validateOpAssociateDelegationSignerToDomain) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAssociateDelegationSignerToDomain) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AssociateDelegationSignerToDomainInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAssociateDelegationSignerToDomainInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCancelDomainTransferToAnotherAwsAccount struct { } @@ -170,6 +190,26 @@ func (m *validateOpDisableDomainTransferLock) HandleInitialize(ctx context.Conte return next.HandleInitialize(ctx, in) } +type validateOpDisassociateDelegationSignerFromDomain struct { +} + +func (*validateOpDisassociateDelegationSignerFromDomain) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDisassociateDelegationSignerFromDomain) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DisassociateDelegationSignerFromDomainInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDisassociateDelegationSignerFromDomainInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpEnableDomainAutoRenew struct { } @@ -310,6 +350,26 @@ func (m *validateOpListTagsForDomain) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpPushDomain struct { +} + +func (*validateOpPushDomain) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpPushDomain) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*PushDomainInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpPushDomainInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpRegisterDomain struct { } @@ -370,6 +430,26 @@ func (m *validateOpRenewDomain) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpResendOperationAuthorization struct { +} + +func (*validateOpResendOperationAuthorization) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpResendOperationAuthorization) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ResendOperationAuthorizationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpResendOperationAuthorizationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpRetrieveDomainAuthCode struct { } @@ -514,6 +594,10 @@ func addOpAcceptDomainTransferFromAnotherAwsAccountValidationMiddleware(stack *m return stack.Initialize.Add(&validateOpAcceptDomainTransferFromAnotherAwsAccount{}, middleware.After) } +func addOpAssociateDelegationSignerToDomainValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAssociateDelegationSignerToDomain{}, middleware.After) +} + func addOpCancelDomainTransferToAnotherAwsAccountValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCancelDomainTransferToAnotherAwsAccount{}, middleware.After) } @@ -542,6 +626,10 @@ func addOpDisableDomainTransferLockValidationMiddleware(stack *middleware.Stack) return stack.Initialize.Add(&validateOpDisableDomainTransferLock{}, middleware.After) } +func addOpDisassociateDelegationSignerFromDomainValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDisassociateDelegationSignerFromDomain{}, middleware.After) +} + func addOpEnableDomainAutoRenewValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpEnableDomainAutoRenew{}, middleware.After) } @@ -570,6 +658,10 @@ func addOpListTagsForDomainValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListTagsForDomain{}, middleware.After) } +func addOpPushDomainValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpPushDomain{}, middleware.After) +} + func addOpRegisterDomainValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpRegisterDomain{}, middleware.After) } @@ -582,6 +674,10 @@ func addOpRenewDomainValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpRenewDomain{}, middleware.After) } +func addOpResendOperationAuthorizationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpResendOperationAuthorization{}, middleware.After) +} + func addOpRetrieveDomainAuthCodeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpRetrieveDomainAuthCode{}, middleware.After) } @@ -610,6 +706,21 @@ func addOpUpdateTagsForDomainValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpUpdateTagsForDomain{}, middleware.After) } +func validateConsent(v *types.Consent) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Consent"} + if v.Currency == nil { + invalidParams.Add(smithy.NewErrParamRequired("Currency")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateContactDetail(v *types.ContactDetail) error { if v == nil { return nil @@ -768,6 +879,24 @@ func validateOpAcceptDomainTransferFromAnotherAwsAccountInput(v *AcceptDomainTra } } +func validateOpAssociateDelegationSignerToDomainInput(v *AssociateDelegationSignerToDomainInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssociateDelegationSignerToDomainInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if v.SigningAttributes == nil { + invalidParams.Add(smithy.NewErrParamRequired("SigningAttributes")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCancelDomainTransferToAnotherAwsAccountInput(v *CancelDomainTransferToAnotherAwsAccountInput) error { if v == nil { return nil @@ -876,6 +1005,24 @@ func validateOpDisableDomainTransferLockInput(v *DisableDomainTransferLockInput) } } +func validateOpDisassociateDelegationSignerFromDomainInput(v *DisassociateDelegationSignerFromDomainInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DisassociateDelegationSignerFromDomainInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if v.Id == nil { + invalidParams.Add(smithy.NewErrParamRequired("Id")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpEnableDomainAutoRenewInput(v *EnableDomainAutoRenewInput) error { if v == nil { return nil @@ -991,6 +1138,24 @@ func validateOpListTagsForDomainInput(v *ListTagsForDomainInput) error { } } +func validateOpPushDomainInput(v *PushDomainInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PushDomainInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if v.Target == nil { + invalidParams.Add(smithy.NewErrParamRequired("Target")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpRegisterDomainInput(v *RegisterDomainInput) error { if v == nil { return nil @@ -1060,6 +1225,21 @@ func validateOpRenewDomainInput(v *RenewDomainInput) error { } } +func validateOpResendOperationAuthorizationInput(v *ResendOperationAuthorizationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ResendOperationAuthorizationInput"} + if v.OperationId == nil { + invalidParams.Add(smithy.NewErrParamRequired("OperationId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpRetrieveDomainAuthCodeInput(v *RetrieveDomainAuthCodeInput) error { if v == nil { return nil @@ -1160,6 +1340,11 @@ func validateOpUpdateDomainContactInput(v *UpdateDomainContactInput) error { invalidParams.AddNested("TechContact", err.(smithy.InvalidParamsError)) } } + if v.Consent != nil { + if err := validateConsent(v.Consent); err != nil { + invalidParams.AddNested("Consent", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/sagemaker/api_op_CreateExperiment.go b/service/sagemaker/api_op_CreateExperiment.go index 7760288dbbd..58429e407a9 100644 --- a/service/sagemaker/api_op_CreateExperiment.go +++ b/service/sagemaker/api_op_CreateExperiment.go @@ -11,23 +11,24 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an SageMaker experiment. An experiment is a collection of trials that -// are observed, compared and evaluated as a group. A trial is a set of steps, -// called trial components, that produce a machine learning model. The goal of an -// experiment is to determine the components that produce the best model. Multiple -// trials are performed, each one isolating and measuring the impact of a change to -// one or more inputs, while keeping the remaining inputs constant. When you use -// SageMaker Studio or the SageMaker Python SDK, all experiments, trials, and trial -// components are automatically tracked, logged, and indexed. When you use the -// Amazon Web Services SDK for Python (Boto), you must use the logging APIs -// provided by the SDK. You can add tags to experiments, trials, trial components -// and then use the Search API to search for the tags. To add a description to an -// experiment, specify the optional Description parameter. To add a description -// later, or to change the description, call the UpdateExperiment API. To get a -// list of all your experiments, call the ListExperiments API. To view an -// experiment's properties, call the DescribeExperiment API. To get a list of all -// the trials associated with an experiment, call the ListTrials API. To create a -// trial call the CreateTrial API. +// Creates a SageMaker experiment. An experiment is a collection of trials that are +// observed, compared and evaluated as a group. A trial is a set of steps, called +// trial components, that produce a machine learning model. In the Studio UI, +// trials are referred to as run groups and trial components are referred to as +// runs. The goal of an experiment is to determine the components that produce the +// best model. Multiple trials are performed, each one isolating and measuring the +// impact of a change to one or more inputs, while keeping the remaining inputs +// constant. When you use SageMaker Studio or the SageMaker Python SDK, all +// experiments, trials, and trial components are automatically tracked, logged, and +// indexed. When you use the Amazon Web Services SDK for Python (Boto), you must +// use the logging APIs provided by the SDK. You can add tags to experiments, +// trials, trial components and then use the Search API to search for the tags. To +// add a description to an experiment, specify the optional Description parameter. +// To add a description later, or to change the description, call the +// UpdateExperiment API. To get a list of all your experiments, call the +// ListExperiments API. To view an experiment's properties, call the +// DescribeExperiment API. To get a list of all the trials associated with an +// experiment, call the ListTrials API. To create a trial call the CreateTrial API. func (c *Client) CreateExperiment(ctx context.Context, params *CreateExperimentInput, optFns ...func(*Options)) (*CreateExperimentOutput, error) { if params == nil { params = &CreateExperimentInput{} diff --git a/service/sagemaker/api_op_DescribeAutoMLJob.go b/service/sagemaker/api_op_DescribeAutoMLJob.go index a29e2fcddf9..bb48c88aba1 100644 --- a/service/sagemaker/api_op_DescribeAutoMLJob.go +++ b/service/sagemaker/api_op_DescribeAutoMLJob.go @@ -96,7 +96,10 @@ type DescribeAutoMLJobOutput struct { // Returns the job's objective. AutoMLJobObjective *types.AutoMLJobObjective - // Returns the job's best AutoMLCandidate. + // The best model candidate selected by SageMaker Autopilot using both the best + // objective metric and lowest InferenceLatency + // (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html) + // for an experiment. BestCandidate *types.AutoMLCandidate // Returns the end time of the AutoML job. diff --git a/service/sagemaker/api_op_DescribeTrialComponent.go b/service/sagemaker/api_op_DescribeTrialComponent.go index 1d8af506ef6..8ae0d84de30 100644 --- a/service/sagemaker/api_op_DescribeTrialComponent.go +++ b/service/sagemaker/api_op_DescribeTrialComponent.go @@ -80,8 +80,8 @@ type DescribeTrialComponentOutput struct { // The Amazon Resource Name (ARN) of the source and, optionally, the job type. Source *types.TrialComponentSource - // A list of the Amazon Resource Name (ARN) and, if applicable, job type for - // multiple sources of an experiment run. + // A list of ARNs and, if applicable, job types for multiple sources of an + // experiment run. Sources []types.TrialComponentSource // When the component started. diff --git a/service/sagemaker/types/enums.go b/service/sagemaker/types/enums.go index f98e2ecb116..894525b192a 100644 --- a/service/sagemaker/types/enums.go +++ b/service/sagemaker/types/enums.go @@ -554,11 +554,19 @@ type AutoMLMetricEnum string // Enum values for AutoMLMetricEnum const ( - AutoMLMetricEnumAccuracy AutoMLMetricEnum = "Accuracy" - AutoMLMetricEnumMse AutoMLMetricEnum = "MSE" - AutoMLMetricEnumF1 AutoMLMetricEnum = "F1" - AutoMLMetricEnumF1Macro AutoMLMetricEnum = "F1macro" - AutoMLMetricEnumAuc AutoMLMetricEnum = "AUC" + AutoMLMetricEnumAccuracy AutoMLMetricEnum = "Accuracy" + AutoMLMetricEnumMse AutoMLMetricEnum = "MSE" + AutoMLMetricEnumF1 AutoMLMetricEnum = "F1" + AutoMLMetricEnumF1Macro AutoMLMetricEnum = "F1macro" + AutoMLMetricEnumAuc AutoMLMetricEnum = "AUC" + AutoMLMetricEnumRmse AutoMLMetricEnum = "RMSE" + AutoMLMetricEnumMae AutoMLMetricEnum = "MAE" + AutoMLMetricEnumR2 AutoMLMetricEnum = "R2" + AutoMLMetricEnumBalancedAccuracy AutoMLMetricEnum = "BalancedAccuracy" + AutoMLMetricEnumPrecision AutoMLMetricEnum = "Precision" + AutoMLMetricEnumPrecisionMacro AutoMLMetricEnum = "PrecisionMacro" + AutoMLMetricEnumRecall AutoMLMetricEnum = "Recall" + AutoMLMetricEnumRecallMacro AutoMLMetricEnum = "RecallMacro" ) // Values returns all known values for AutoMLMetricEnum. Note that this can be @@ -571,6 +579,14 @@ func (AutoMLMetricEnum) Values() []AutoMLMetricEnum { "F1", "F1macro", "AUC", + "RMSE", + "MAE", + "R2", + "BalancedAccuracy", + "Precision", + "PrecisionMacro", + "Recall", + "RecallMacro", } } diff --git a/service/sagemaker/types/types.go b/service/sagemaker/types/types.go index 8dcb1b3b203..4bc7c8d951a 100644 --- a/service/sagemaker/types/types.go +++ b/service/sagemaker/types/types.go @@ -1766,71 +1766,109 @@ type AutoMLJobObjective struct { // The name of the objective metric used to measure the predictive quality of a // machine learning system. This metric is optimized during training to provide the // best estimate for model parameter values from data. Here are the options: - // - // * - // MSE: The mean squared error (MSE) is the average of the squared differences - // between the predicted and actual values. It is used for regression. MSE values - // are always positive: the better a model is at predicting the actual values, the - // smaller the MSE value is. When the data contains outliers, they tend to dominate - // the MSE, which might cause subpar prediction performance. - // - // * Accuracy: The ratio - // of the number of correctly classified items to the total number of (correctly - // and incorrectly) classified items. It is used for binary and multiclass - // classification. It measures how close the predicted class values are to the - // actual values. Accuracy values vary between zero and one: one indicates perfect - // accuracy and zero indicates perfect inaccuracy. - // - // * F1: The F1 score is the - // harmonic mean of the precision and recall. It is used for binary classification - // into classes traditionally referred to as positive and negative. Predictions are - // said to be true when they match their actual (correct) class and false when they - // do not. Precision is the ratio of the true positive predictions to all positive - // predictions (including the false positives) in a data set and measures the - // quality of the prediction when it predicts the positive class. Recall (or - // sensitivity) is the ratio of the true positive predictions to all actual - // positive instances and measures how completely a model predicts the actual class - // members in a data set. The standard F1 score weighs precision and recall - // equally. But which metric is paramount typically depends on specific aspects of - // a problem. F1 scores vary between zero and one: one indicates the best possible - // performance and zero the worst. - // - // * AUC: The area under the curve (AUC) metric is - // used to compare and evaluate binary classification by algorithms such as - // logistic regression that return probabilities. A threshold is needed to map the - // probabilities into classifications. The relevant curve is the receiver operating - // characteristic curve that plots the true positive rate (TPR) of predictions (or - // recall) against the false positive rate (FPR) as a function of the threshold - // value, above which a prediction is considered positive. Increasing the threshold - // results in fewer false positives but more false negatives. AUC is the area under - // this receiver operating characteristic curve and so provides an aggregated - // measure of the model performance across all possible classification thresholds. - // The AUC score can also be interpreted as the probability that a randomly - // selected positive data point is more likely to be predicted positive than a - // randomly selected negative example. AUC scores vary between zero and one: a - // score of one indicates perfect accuracy and a score of one half indicates that - // the prediction is not better than a random classifier. Values under one half - // predict less accurately than a random predictor. But such consistently bad - // predictors can simply be inverted to obtain better than random predictors. - // - // * - // F1macro: The F1macro score applies F1 scoring to multiclass classification. In - // this context, you have multiple classes to predict. You just calculate the - // precision and recall for each class as you did for the positive class in binary - // classification. Then, use these values to calculate the F1 score for each class - // and average them to obtain the F1macro score. F1macro scores vary between zero - // and one: one indicates the best possible performance and zero the worst. - // - // If you - // do not specify a metric explicitly, the default behavior is to automatically - // use: + // Accuracy The ratio of the number of correctly classified items to the total + // number of (correctly and incorrectly) classified items. It is used for both + // binary and multiclass classification. Accuracy measures how close the predicted + // class values are to the actual values. Values for accuracy metrics vary between + // zero (0) and one (1). A value of 1 indicates perfect accuracy, and 0 indicates + // perfect inaccuracy. AUC The area under the curve (AUC) metric is used to compare + // and evaluate binary classification by algorithms that return probabilities, such + // as logistic regression. To map the probabilities into classifications, these are + // compared against a threshold value. The relevant curve is the receiver operating + // characteristic curve (ROC curve). The ROC curve plots the true positive rate + // (TPR) of predictions (or recall) against the false positive rate (FPR) as a + // function of the threshold value, above which a prediction is considered + // positive. Increasing the threshold results in fewer false positives, but more + // false negatives. AUC is the area under this ROC curve. Therefore, AUC provides + // an aggregated measure of the model performance across all possible + // classification thresholds. AUC scores vary between 0 and 1. A score of 1 + // indicates perfect accuracy, and a score of one half (0.5) indicates that the + // prediction is not better than a random classifier. BalancedAccuracy + // BalancedAccuracy is a metric that measures the ratio of accurate predictions to + // all predictions. This ratio is calculated after normalizing true positives (TP) + // and true negatives (TN) by the total number of positive (P) and negative (N) + // values. It is used in both binary and multiclass classification and is defined + // as follows: 0.5*((TP/P)+(TN/N)), with values ranging from 0 to 1. + // BalancedAccuracy gives a better measure of accuracy when the number of positives + // or negatives differ greatly from each other in an imbalanced dataset. For + // example, when only 1% of email is spam. F1 The F1 score is the harmonic mean of + // the precision and recall, defined as follows: F1 = 2 * (precision * recall) / + // (precision + recall). It is used for binary classification into classes + // traditionally referred to as positive and negative. Predictions are said to be + // true when they match their actual (correct) class, and false when they do not. + // Precision is the ratio of the true positive predictions to all positive + // predictions, and it includes the false positives in a dataset. Precision + // measures the quality of the prediction when it predicts the positive class. + // Recall (or sensitivity) is the ratio of the true positive predictions to all + // actual positive instances. Recall measures how completely a model predicts the + // actual class members in a dataset. F1 scores vary between 0 and 1. A score of 1 + // indicates the best possible performance, and 0 indicates the worst. F1macro The + // F1macro score applies F1 scoring to multiclass classification problems. It does + // this by calculating the precision and recall, and then taking their harmonic + // mean to calculate the F1 score for each class. Lastly, the F1macro averages the + // individual scores to obtain the F1macro score. F1macro scores vary between 0 and + // 1. A score of 1 indicates the best possible performance, and 0 indicates the + // worst. MAE The mean absolute error (MAE) is a measure of how different the + // predicted and actual values are, when they're averaged over all values. MAE is + // commonly used in regression analysis to understand model prediction error. If + // there is linear regression, MAE represents the average distance from a predicted + // line to the actual value. MAE is defined as the sum of absolute errors divided + // by the number of observations. Values range from 0 to infinity, with smaller + // numbers indicating a better model fit to the data. MSE The mean squared error + // (MSE) is the average of the squared differences between the predicted and actual + // values. It is used for regression. MSE values are always positive. The better a + // model is at predicting the actual values, the smaller the MSE value is Precision + // Precision measures how well an algorithm predicts the true positives (TP) out of + // all of the positives that it identifies. It is defined as follows: Precision = + // TP/(TP+FP), with values ranging from zero (0) to one (1), and is used in binary + // classification. Precision is an important metric when the cost of a false + // positive is high. For example, the cost of a false positive is very high if an + // airplane safety system is falsely deemed safe to fly. A false positive (FP) + // reflects a positive prediction that is actually negative in the data. + // PrecisionMacro The precision macro computes precision for multiclass + // classification problems. It does this by calculating precision for each class + // and averaging scores to obtain precision for several classes. PrecisionMacro + // scores range from zero (0) to one (1). Higher scores reflect the model's ability + // to predict true positives (TP) out of all of the positives that it identifies, + // averaged across multiple classes. R2 R2, also known as the coefficient of + // determination, is used in regression to quantify how much a model can explain + // the variance of a dependent variable. Values range from one (1) to negative one + // (-1). Higher numbers indicate a higher fraction of explained variability. R2 + // values close to zero (0) indicate that very little of the dependent variable can + // be explained by the model. Negative values indicate a poor fit and that the + // model is outperformed by a constant function. For linear regression, this is a + // horizontal line. Recall Recall measures how well an algorithm correctly predicts + // all of the true positives (TP) in a dataset. A true positive is a positive + // prediction that is also an actual positive value in the data. Recall is defined + // as follows: Recall = TP/(TP+FN), with values ranging from 0 to 1. Higher scores + // reflect a better ability of the model to predict true positives (TP) in the + // data, and is used in binary classification. Recall is important when testing for + // cancer because it's used to find all of the true positives. A false positive + // (FP) reflects a positive prediction that is actually negative in the data. It is + // often insufficient to measure only recall, because predicting every output as a + // true positive will yield a perfect recall score. RecallMacro The RecallMacro + // computes recall for multiclass classification problems by calculating recall for + // each class and averaging scores to obtain recall for several classes. + // RecallMacro scores range from 0 to 1. Higher scores reflect the model's ability + // to predict true positives (TP) in a dataset. Whereas, a true positive reflects a + // positive prediction that is also an actual positive value in the data. It is + // often insufficient to measure only recall, because predicting every output as a + // true positive will yield a perfect recall score. RMSE Root mean squared error + // (RMSE) measures the square root of the squared difference between predicted and + // actual values, and it's averaged over all values. It is used in regression + // analysis to understand model prediction error. It's an important metric to + // indicate the presence of large model errors and outliers. Values range from zero + // (0) to infinity, with smaller numbers indicating a better model fit to the data. + // RMSE is dependent on scale, and should not be used to compare datasets of + // different sizes. If you do not specify a metric explicitly, the default behavior + // is to automatically use: // // * MSE: for regression. // - // * F1: for binary classification + // * F1: for binary + // classification // - // * Accuracy: for - // multiclass classification. + // * Accuracy: for multiclass classification. // // This member is required. MetricName AutoMLMetricEnum @@ -4494,10 +4532,10 @@ type Experiment struct { // * CreateTransformJob type ExperimentConfig struct { - // The name of an existing experiment to associate the trial component with. + // The name of an existing experiment to associate with the trial component. ExperimentName *string - // The name of the experiment run to associate the trial component with. + // The name of the experiment run to associate with the trial component. RunName *string // The display name for the trial component. If this key isn't specified, the @@ -6844,7 +6882,7 @@ type HyperParameterTuningJobConfig struct { // The ParameterRanges object that specifies the ranges of hyperparameters that // this tuning job searches over to find the optimal configuration for the highest - // model performance against .your chosen objective metric. + // model performance against your chosen objective metric. ParameterRanges *ParameterRanges // A value used to initialize a pseudo-random number generator. Setting a random diff --git a/service/sso/internal/endpoints/endpoints.go b/service/sso/internal/endpoints/endpoints.go index aeac293ea40..90e5213734c 100644 --- a/service/sso/internal/endpoints/endpoints.go +++ b/service/sso/internal/endpoints/endpoints.go @@ -135,6 +135,14 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.Aws, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "af-south-1", + }: endpoints.Endpoint{ + Hostname: "portal.sso.af-south-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "af-south-1", + }, + }, endpoints.EndpointKey{ Region: "ap-east-1", }: endpoints.Endpoint{ @@ -191,6 +199,14 @@ var defaultPartitions = endpoints.Partitions{ Region: "ap-southeast-2", }, }, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + }: endpoints.Endpoint{ + Hostname: "portal.sso.ap-southeast-3.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "ap-southeast-3", + }, + }, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{ @@ -279,6 +295,14 @@ var defaultPartitions = endpoints.Partitions{ Region: "us-east-2", }, }, + endpoints.EndpointKey{ + Region: "us-west-1", + }: endpoints.Endpoint{ + Hostname: "portal.sso.us-west-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-1", + }, + }, endpoints.EndpointKey{ Region: "us-west-2", }: endpoints.Endpoint{ diff --git a/service/ssoadmin/internal/endpoints/endpoints.go b/service/ssoadmin/internal/endpoints/endpoints.go index 90f3a3e278b..94fd23914e5 100644 --- a/service/ssoadmin/internal/endpoints/endpoints.go +++ b/service/ssoadmin/internal/endpoints/endpoints.go @@ -135,6 +135,9 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.Aws, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "af-south-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ap-east-1", }: endpoints.Endpoint{}, @@ -156,6 +159,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-3", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, @@ -189,6 +195,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-east-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "us-west-2", }: endpoints.Endpoint{}, diff --git a/service/transcribe/types/enums.go b/service/transcribe/types/enums.go index 015cbf67d1b..311c88bd490 100644 --- a/service/transcribe/types/enums.go +++ b/service/transcribe/types/enums.go @@ -129,6 +129,8 @@ const ( LanguageCodeThTh LanguageCode = "th-TH" LanguageCodeEnZa LanguageCode = "en-ZA" LanguageCodeEnNz LanguageCode = "en-NZ" + LanguageCodeViVn LanguageCode = "vi-VN" + LanguageCodeSvSe LanguageCode = "sv-SE" ) // Values returns all known values for LanguageCode. Note that this can be expanded @@ -173,6 +175,8 @@ func (LanguageCode) Values() []LanguageCode { "th-TH", "en-ZA", "en-NZ", + "vi-VN", + "sv-SE", } }