From 8a3cc320e68f7327c3f9e5a716ad1c8207c7c0ba Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Fri, 8 Nov 2024 19:12:11 +0000 Subject: [PATCH 01/20] Update API model --- codegen/sdk-codegen/aws-models/batch.json | 46 +- .../aws-models/bedrock-agent-runtime.json | 307 +++++- .../aws-models/chime-sdk-media-pipelines.json | 47 +- .../aws-models/controlcatalog.json | 62 +- codegen/sdk-codegen/aws-models/eks.json | 8 +- codegen/sdk-codegen/aws-models/firehose.json | 898 +++++++++++++++--- codegen/sdk-codegen/aws-models/lambda.json | 26 +- .../aws-models/pinpoint-sms-voice-v2.json | 20 +- codegen/sdk-codegen/aws-models/qbusiness.json | 13 +- 9 files changed, 1257 insertions(+), 170 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/batch.json b/codegen/sdk-codegen/aws-models/batch.json index 971f8e244b5..b7de037903c 100644 --- a/codegen/sdk-codegen/aws-models/batch.json +++ b/codegen/sdk-codegen/aws-models/batch.json @@ -5851,7 +5851,13 @@ "version": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

The version number of the launch template, $Latest, or\n $Default.

\n

If the value is $Latest, the latest version of the launch template is used. If\n the value is $Default, the default version of the launch template is used.

\n \n

If the AMI ID that's used in a compute environment is from the launch template, the AMI\n isn't changed when the compute environment is updated. It's only changed if the\n updateToLatestImageVersion parameter for the compute environment is set to\n true. During an infrastructure update, if either $Latest or\n $Default is specified, Batch re-evaluates the launch template version, and it\n might use a different version of the launch template. This is the case even if the launch\n template isn't specified in the update. When updating a compute environment, changing the launch\n template requires an infrastructure update of the compute environment. For more information, see\n Updating compute\n environments in the Batch User Guide.

\n
\n

Default: $Default.

" + "smithy.api#documentation": "

The version number of the launch template, \n $Default, or $Latest.

\n

If the value is $Default, the default version of the launch template is used. If the value is $Latest, the latest version of the launch template is used.

\n \n

If the AMI ID that's used in a compute environment is from the launch template, the AMI\n isn't changed when the compute environment is updated. It's only changed if the\n updateToLatestImageVersion parameter for the compute environment is set to\n true. During an infrastructure update, if either $Default or\n $Latest is specified, Batch re-evaluates the launch template version, and it\n might use a different version of the launch template. This is the case even if the launch\n template isn't specified in the update. When updating a compute environment, changing the launch\n template requires an infrastructure update of the compute environment. For more information, see\n Updating compute\n environments in the Batch User Guide.

\n
\n

Default: $Default\n

\n

Latest: $Latest\n

" + } + }, + "overrides": { + "target": "com.amazonaws.batch#LaunchTemplateSpecificationOverrideList", + "traits": { + "smithy.api#documentation": "

A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both.

\n

You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment.

\n \n

To unset all override templates for a compute environment, you can pass an empty array to the UpdateComputeEnvironment.overrides parameter, or not include the overrides parameter when submitting the UpdateComputeEnvironment API operation.

\n
" } } }, @@ -5859,6 +5865,44 @@ "smithy.api#documentation": "

An object that represents a launch template that's associated with a compute resource. You\n must specify either the launch template ID or launch template name in the request, but not\n both.

\n

If security groups are specified using both the securityGroupIds parameter of\n CreateComputeEnvironment and the launch template, the values in the\n securityGroupIds parameter of CreateComputeEnvironment will be\n used.

\n \n

This object isn't applicable to jobs that are running on Fargate resources.

\n
" } }, + "com.amazonaws.batch#LaunchTemplateSpecificationOverride": { + "type": "structure", + "members": { + "launchTemplateId": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The ID of the launch template.

\n

\n Note: If you specify the launchTemplateId you can't specify the launchTemplateName as well.

" + } + }, + "launchTemplateName": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The name of the launch template.

\n

\n Note: If you specify the launchTemplateName you can't specify the launchTemplateId as well.

" + } + }, + "version": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

The version number of the launch template, \n $Default, or $Latest.

\n

If the value is $Default, the default version of the launch template is used. If the value is $Latest, the latest version of the launch template is used.

\n \n

If the AMI ID that's used in a compute environment is from the launch template, the AMI\n isn't changed when the compute environment is updated. It's only changed if the\n updateToLatestImageVersion parameter for the compute environment is set to\n true. During an infrastructure update, if either $Default or $Latest is specified, Batch re-evaluates the launch template version, and it\n might use a different version of the launch template. This is the case even if the launch\n template isn't specified in the update. When updating a compute environment, changing the launch\n template requires an infrastructure update of the compute environment. For more information, see\n Updating compute\n environments in the Batch User Guide.

\n
\n

Default: $Default\n

\n

Latest: $Latest\n

" + } + }, + "targetInstanceTypes": { + "target": "com.amazonaws.batch#StringList", + "traits": { + "smithy.api#documentation": "

The instance type or family that this this override launch template should be applied to.

\n

This parameter is required when defining a launch template override.

\n

Information included in this parameter must meet the following requirements:

\n " + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that represents a launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not\n both.

\n

If security groups are specified using both the securityGroupIds parameter of\n CreateComputeEnvironment and the launch template, the values in the\n securityGroupIds parameter of CreateComputeEnvironment will be\n used.

\n

You can define up to ten (10) overrides for each compute environment.

\n \n

This object isn't applicable to jobs that are running on Fargate resources.

\n
\n \n

To unset all override templates for a compute environment, you can pass an empty array to the UpdateComputeEnvironment.overrides parameter, or not include the overrides parameter when submitting the UpdateComputeEnvironment API operation.

\n
" + } + }, + "com.amazonaws.batch#LaunchTemplateSpecificationOverrideList": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#LaunchTemplateSpecificationOverride" + } + }, "com.amazonaws.batch#LinuxParameters": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/bedrock-agent-runtime.json b/codegen/sdk-codegen/aws-models/bedrock-agent-runtime.json index 77ceee91fe7..cb8cd41fc58 100644 --- a/codegen/sdk-codegen/aws-models/bedrock-agent-runtime.json +++ b/codegen/sdk-codegen/aws-models/bedrock-agent-runtime.json @@ -1064,7 +1064,7 @@ "min": 1, "max": 2048 }, - "smithy.api#pattern": "^(arn:aws(-[^:]{1,10})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]{1,20}/)?)?([a-z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$" + "smithy.api#pattern": "^(arn:aws(-[^:]+)?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$" } }, "com.amazonaws.bedrockagentruntime#ByteContentBlob": { @@ -1718,7 +1718,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about why a flow completed.

\n

This data type is used in the following API operations:

\n ", + "smithy.api#documentation": "

Contains information about why a flow completed.

", "smithy.api#sensitive": {} } }, @@ -1768,7 +1768,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about an input into the prompt flow and where to send it.

\n

This data type is used in the following API operations:

\n " + "smithy.api#documentation": "

Contains information about an input into the prompt flow and where to send it.

" } }, "com.amazonaws.bedrockagentruntime#FlowInputContent": { @@ -1782,7 +1782,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about an input into the flow.

\n

This data type is used in the following API operations:

\n ", + "smithy.api#documentation": "

Contains information about an input into the flow.

", "smithy.api#sensitive": {} } }, @@ -1809,7 +1809,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about the content in an output from prompt flow invocation.

\n

This data type is used in the following API operations:

\n " + "smithy.api#documentation": "

Contains information about the content in an output from prompt flow invocation.

" } }, "com.amazonaws.bedrockagentruntime#FlowOutputEvent": { @@ -1838,7 +1838,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about an output from prompt flow invoction.

\n

This data type is used in the following API operations:

\n ", + "smithy.api#documentation": "

Contains information about an output from prompt flow invoction.

", "smithy.api#sensitive": {} } }, @@ -1865,6 +1865,12 @@ "smithy.api#documentation": "

Contains information about why the flow completed.

" } }, + "flowTraceEvent": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceEvent", + "traits": { + "smithy.api#documentation": "

Contains information about a trace, which tracks an input or output for a node in the flow.

" + } + }, "internalServerException": { "target": "com.amazonaws.bedrockagentruntime#InternalServerException", "traits": { @@ -1921,10 +1927,269 @@ } }, "traits": { - "smithy.api#documentation": "

The output of the flow.

\n

This data type is used in the following API operations:

\n ", + "smithy.api#documentation": "

The output of the flow.

", "smithy.api#streaming": {} } }, + "com.amazonaws.bedrockagentruntime#FlowTrace": { + "type": "union", + "members": { + "nodeInputTrace": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceNodeInputEvent", + "traits": { + "smithy.api#documentation": "

Contains information about the input into a node.

" + } + }, + "nodeOutputTrace": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceNodeOutputEvent", + "traits": { + "smithy.api#documentation": "

Contains information about the output from a node.

" + } + }, + "conditionNodeResultTrace": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceConditionNodeResultEvent", + "traits": { + "smithy.api#documentation": "

Contains information about an output from a condition node.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an input or output for a node in the flow. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceCondition": { + "type": "structure", + "members": { + "conditionName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the condition.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a condition that was satisfied. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceConditionNodeResultEvent": { + "type": "structure", + "members": { + "nodeName": { + "target": "com.amazonaws.bedrockagentruntime#NodeName", + "traits": { + "smithy.api#documentation": "

The name of the condition node.

", + "smithy.api#required": {} + } + }, + "timestamp": { + "target": "com.amazonaws.bedrockagentruntime#DateTimestamp", + "traits": { + "smithy.api#documentation": "

The date and time that the trace was returned.

", + "smithy.api#required": {} + } + }, + "satisfiedConditions": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceConditions", + "traits": { + "smithy.api#documentation": "

An array of objects containing information about the conditions that were satisfied.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about an output from a condition node. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceConditions": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceCondition" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceEvent": { + "type": "structure", + "members": { + "trace": { + "target": "com.amazonaws.bedrockagentruntime#FlowTrace", + "traits": { + "smithy.api#documentation": "

The trace object containing information about an input or output for a node in the flow.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a trace, which tracks an input or output for a node in the flow. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

" + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceNodeInputContent": { + "type": "union", + "members": { + "document": { + "target": "smithy.api#Document", + "traits": { + "smithy.api#documentation": "

The content of the node input.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the content of the node input. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceNodeInputEvent": { + "type": "structure", + "members": { + "nodeName": { + "target": "com.amazonaws.bedrockagentruntime#NodeName", + "traits": { + "smithy.api#documentation": "

The name of the node that received the input.

", + "smithy.api#required": {} + } + }, + "timestamp": { + "target": "com.amazonaws.bedrockagentruntime#DateTimestamp", + "traits": { + "smithy.api#documentation": "

The date and time that the trace was returned.

", + "smithy.api#required": {} + } + }, + "fields": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceNodeInputFields", + "traits": { + "smithy.api#documentation": "

An array of objects containing information about each field in the input.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the input into a node. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceNodeInputField": { + "type": "structure", + "members": { + "nodeInputName": { + "target": "com.amazonaws.bedrockagentruntime#NodeInputName", + "traits": { + "smithy.api#documentation": "

The name of the node input.

", + "smithy.api#required": {} + } + }, + "content": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceNodeInputContent", + "traits": { + "smithy.api#documentation": "

The content of the node input.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a field in the input into a node. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceNodeInputFields": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceNodeInputField" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceNodeOutputContent": { + "type": "union", + "members": { + "document": { + "target": "smithy.api#Document", + "traits": { + "smithy.api#documentation": "

The content of the node output.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the content of the node output. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

" + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceNodeOutputEvent": { + "type": "structure", + "members": { + "nodeName": { + "target": "com.amazonaws.bedrockagentruntime#NodeName", + "traits": { + "smithy.api#documentation": "

The name of the node that yielded the output.

", + "smithy.api#required": {} + } + }, + "timestamp": { + "target": "com.amazonaws.bedrockagentruntime#DateTimestamp", + "traits": { + "smithy.api#documentation": "

The date and time that the trace was returned.

", + "smithy.api#required": {} + } + }, + "fields": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceNodeOutputFields", + "traits": { + "smithy.api#documentation": "

An array of objects containing information about each field in the output.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the output from a node. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceNodeOutputField": { + "type": "structure", + "members": { + "nodeOutputName": { + "target": "com.amazonaws.bedrockagentruntime#NodeOutputName", + "traits": { + "smithy.api#documentation": "

The name of the node output.

", + "smithy.api#required": {} + } + }, + "content": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceNodeOutputContent", + "traits": { + "smithy.api#documentation": "

The content of the node output.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about a field in the output from a node. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.bedrockagentruntime#FlowTraceNodeOutputFields": { + "type": "list", + "member": { + "target": "com.amazonaws.bedrockagentruntime#FlowTraceNodeOutputField" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, "com.amazonaws.bedrockagentruntime#Function": { "type": "string", "traits": { @@ -2055,7 +2320,7 @@ "promptTemplate": { "target": "com.amazonaws.bedrockagentruntime#PromptTemplate", "traits": { - "smithy.api#documentation": "

Contains the template for the prompt that's sent to the model for response generation.

" + "smithy.api#documentation": "

Contains the template for the prompt that's sent to the model for response generation. Generation prompts must include the $search_results$ variable. For more information, see Use placeholder variables in the user guide.

" } }, "guardrailConfiguration": { @@ -3431,6 +3696,12 @@ "smithy.api#documentation": "

A list of objects, each containing information about an input into the flow.

", "smithy.api#required": {} } + }, + "enableTrace": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies whether to return the trace for the flow or not. Traces track inputs and outputs for nodes in the flow. For more information, see Track each step in your prompt flow by viewing its trace in Amazon Bedrock.

" + } } }, "traits": { @@ -3853,12 +4124,6 @@ "smithy.api#documentation": "

The step in the agent sequence.

" } }, - "inferenceConfiguration": { - "target": "com.amazonaws.bedrockagentruntime#InferenceConfiguration", - "traits": { - "smithy.api#documentation": "

Specifications about the inference parameters that were provided alongside the prompt. These are specified in the PromptOverrideConfiguration object that was set when the agent was created or updated. For more information, see Inference parameters for foundation models.

" - } - }, "overrideLambda": { "target": "com.amazonaws.bedrockagentruntime#LambdaArn", "traits": { @@ -3871,6 +4136,12 @@ "smithy.api#documentation": "

Specifies whether the default prompt template was OVERRIDDEN. If it was, the basePromptTemplate that was set in the PromptOverrideConfiguration object when the agent was created or updated is used instead.

" } }, + "inferenceConfiguration": { + "target": "com.amazonaws.bedrockagentruntime#InferenceConfiguration", + "traits": { + "smithy.api#documentation": "

Specifications about the inference parameters that were provided alongside the prompt. These are specified in the PromptOverrideConfiguration object that was set when the agent was created or updated. For more information, see Inference parameters for foundation models.

" + } + }, "parserMode": { "target": "com.amazonaws.bedrockagentruntime#CreationMode", "traits": { @@ -3893,6 +4164,12 @@ "smithy.api#pattern": "^\\S*$" } }, + "com.amazonaws.bedrockagentruntime#NodeInputName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){0,99}$" + } + }, "com.amazonaws.bedrockagentruntime#NodeName": { "type": "string", "traits": { @@ -4015,7 +4292,7 @@ "promptTemplate": { "target": "com.amazonaws.bedrockagentruntime#PromptTemplate", "traits": { - "smithy.api#documentation": "

Contains the template for the prompt that's sent to the model for response generation.

" + "smithy.api#documentation": "

Contains the template for the prompt that's sent to the model. Orchestration prompts must include the $conversation_history$ and $output_format_instructions$ variables. For more information, see Use placeholder variables in the user guide.

" } }, "inferenceConfig": { diff --git a/codegen/sdk-codegen/aws-models/chime-sdk-media-pipelines.json b/codegen/sdk-codegen/aws-models/chime-sdk-media-pipelines.json index f76ca5ca89f..6a06e6e303c 100644 --- a/codegen/sdk-codegen/aws-models/chime-sdk-media-pipelines.json +++ b/codegen/sdk-codegen/aws-models/chime-sdk-media-pipelines.json @@ -260,7 +260,7 @@ "target": "com.amazonaws.chimesdkmediapipelines#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

Turns language identification on or off for multiple languages.

" + "smithy.api#documentation": "

Turns language identification on or off for multiple languages.

\n \n

Calls to this API must include a LanguageCode, IdentifyLanguage, or IdentifyMultipleLanguages parameter. \n If you include more than one of those parameters, your transcription job fails.

\n
" } }, "LanguageOptions": { @@ -1982,6 +1982,18 @@ "smithy.api#documentation": "

The configuration for a specified media pipeline. SourceType must\n be ChimeSdkMeeting.

" } }, + "SseAwsKeyManagementParams": { + "target": "com.amazonaws.chimesdkmediapipelines#SseAwsKeyManagementParams", + "traits": { + "smithy.api#documentation": "

An object that contains server side encryption parameters to be used by media capture\n pipeline. The parameters can also be used by media concatenation pipeline taking media\n capture pipeline as a media source.

" + } + }, + "SinkIamRoleArn": { + "target": "com.amazonaws.chimesdkmediapipelines#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the sink role to be used with AwsKmsKeyId\n in SseAwsKeyManagementParams. Can only interact with S3Bucket\n sink type. The role must belong to the caller’s account and be able to act on behalf of the\n caller during the API call. All minimum policy permissions requirements for the caller to\n perform sink-related actions are the same for SinkIamRoleArn.

\n

Additionally, the role must have permission to kms:GenerateDataKey using\n KMS key supplied as AwsKmsKeyId in SseAwsKeyManagementParams. If\n media concatenation will be required later, the role must also have permission to\n kms:Decrypt for the same KMS key.

" + } + }, "Tags": { "target": "com.amazonaws.chimesdkmediapipelines#TagList", "traits": { @@ -4585,6 +4597,18 @@ "traits": { "smithy.api#documentation": "

The configuration for a specified media pipeline. SourceType must\n be ChimeSdkMeeting.

" } + }, + "SseAwsKeyManagementParams": { + "target": "com.amazonaws.chimesdkmediapipelines#SseAwsKeyManagementParams", + "traits": { + "smithy.api#documentation": "

An object that contains server side encryption parameters to be used by media capture\n pipeline. The parameters can also be used by media concatenation pipeline taking media\n capture pipeline as a media source.

" + } + }, + "SinkIamRoleArn": { + "target": "com.amazonaws.chimesdkmediapipelines#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the sink role to be used with AwsKmsKeyId\n in SseAwsKeyManagementParams.

" + } } }, "traits": { @@ -6146,6 +6170,27 @@ "smithy.api#documentation": "

The configuration settings for the SQS sink.

" } }, + "com.amazonaws.chimesdkmediapipelines#SseAwsKeyManagementParams": { + "type": "structure", + "members": { + "AwsKmsKeyId": { + "target": "com.amazonaws.chimesdkmediapipelines#String", + "traits": { + "smithy.api#documentation": "

The KMS key you want to use to encrypt your media pipeline output.\n Decryption is required for concatenation pipeline. If using a key located in the current\n Amazon Web Services account, you can specify your KMS key in one of four\n ways:

\n \n

If using a key located in a different Amazon Web Services account than the current\n Amazon Web Services account, you can specify your KMS key in one of two\n ways:

\n \n

If you don't specify an encryption key, your output is encrypted with the default\n Amazon S3 key (SSE-S3).

\n

Note that the role specified in the SinkIamRoleArn request parameter must\n have permission to use the specified KMS key.

", + "smithy.api#required": {} + } + }, + "AwsKmsEncryptionContext": { + "target": "com.amazonaws.chimesdkmediapipelines#String", + "traits": { + "smithy.api#documentation": "

Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as\n non-secret key-value pair known as encryption context pairs, that provides an added layer\n of security for your data. For more information, see KMS encryption\n context and Asymmetric keys in KMS in the Key Management Service Developer\n Guide.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains server side encryption parameters to be used by media capture pipeline. The\n parameters can also be used by media concatenation pipeline taking media capture pipeline\n as a media source.

" + } + }, "com.amazonaws.chimesdkmediapipelines#StartSpeakerSearchTask": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/controlcatalog.json b/codegen/sdk-codegen/aws-models/controlcatalog.json index 32b25e7876f..931339825d2 100644 --- a/codegen/sdk-codegen/aws-models/controlcatalog.json +++ b/codegen/sdk-codegen/aws-models/controlcatalog.json @@ -917,6 +917,27 @@ } } }, + "com.amazonaws.controlcatalog#ControlParameter": { + "type": "structure", + "members": { + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The parameter name. This name is the parameter key when you call \n EnableControl\n or \n UpdateEnabledControl\n .

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Four types of control parameters are supported.

\n " + } + }, + "com.amazonaws.controlcatalog#ControlParameters": { + "type": "list", + "member": { + "target": "com.amazonaws.controlcatalog#ControlParameter" + } + }, "com.amazonaws.controlcatalog#ControlResource": { "type": "resource", "identifiers": { @@ -1177,7 +1198,7 @@ "Behavior": { "target": "com.amazonaws.controlcatalog#ControlBehavior", "traits": { - "smithy.api#documentation": "

A term that identifies the control's functional behavior. One of Preventive, Deteictive, Proactive\n

", + "smithy.api#documentation": "

A term that identifies the control's functional behavior. One of Preventive, Detective, Proactive\n

", "smithy.api#required": {} } }, @@ -1186,12 +1207,49 @@ "traits": { "smithy.api#required": {} } + }, + "Implementation": { + "target": "com.amazonaws.controlcatalog#ImplementationDetails", + "traits": { + "smithy.api#documentation": "

Returns information about the control, as an ImplementationDetails object that shows the underlying implementation type for a control.

" + } + }, + "Parameters": { + "target": "com.amazonaws.controlcatalog#ControlParameters", + "traits": { + "smithy.api#documentation": "

Returns an array of ControlParameter objects that specify the parameters a control supports. An empty list is returned for controls that don’t support parameters.\n

" + } } }, "traits": { "smithy.api#output": {} } }, + "com.amazonaws.controlcatalog#ImplementationDetails": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.controlcatalog#ImplementationType", + "traits": { + "smithy.api#documentation": "

A string that describes a control's implementation type.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that describes the implementation type for a control.

\n

Our ImplementationDetails\n Type format has three required segments:

\n \n

For example, AWS::Config::ConfigRule\n or\n AWS::SecurityHub::SecurityControl resources have the format with three required segments.

\n

Our ImplementationDetails\n Type format has an optional fourth segment, which is present for applicable \n implementation types. The format is as follows:

\n \n

For example, AWS::Organizations::Policy::SERVICE_CONTROL_POLICY\n or\n AWS::CloudFormation::Type::HOOK have the format with four segments.

\n

Although the format is similar, the values for the Type field do not match any Amazon Web Services CloudFormation values, and we do not use CloudFormation to implement these controls.

" + } + }, + "com.amazonaws.controlcatalog#ImplementationType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 7, + "max": 2048 + }, + "smithy.api#pattern": "^[A-Za-z0-9]+(::[A-Za-z0-9_]+){2,3}$" + } + }, "com.amazonaws.controlcatalog#InternalServerException": { "type": "structure", "members": { @@ -1732,7 +1790,7 @@ } }, "traits": { - "smithy.api#documentation": "

Returns information about the control, including the scope of the control, if enabled, and the Regions in which the control currently is available for deployment.

\n

If you are applying controls through an Amazon Web Services Control Tower landing zone environment, remember that the values returned in the RegionConfiguration API operation are not related to the governed Regions in your landing zone. For example, if you are governing Regions A,B,and C while the control is available in Regions A, B, C, and D, you'd see a response with DeployableRegions of A, B, C, and D for a control with REGIONAL scope, even though you may not intend to deploy the control in Region D, because you do not govern it through your landing zone.

" + "smithy.api#documentation": "

Returns information about the control, including the scope of the control, if enabled, and the Regions in which the control currently is available for deployment. For more information about scope, see Global services.

\n

If you are applying controls through an Amazon Web Services Control Tower landing zone environment, remember that the values returned in the RegionConfiguration API operation are not related to the governed Regions in your landing zone. For example, if you are governing Regions A,B,and C while the control is available in Regions A, B, C, and D, you'd see a response with DeployableRegions of A, B, C, and D for a control with REGIONAL scope, even though you may not intend to deploy the control in Region D, because you do not govern it through your landing zone.

" } }, "com.amazonaws.controlcatalog#ResourceNotFoundException": { diff --git a/codegen/sdk-codegen/aws-models/eks.json b/codegen/sdk-codegen/aws-models/eks.json index dde6bd03465..e3a975608d5 100644 --- a/codegen/sdk-codegen/aws-models/eks.json +++ b/codegen/sdk-codegen/aws-models/eks.json @@ -6797,7 +6797,7 @@ "code": { "target": "com.amazonaws.eks#NodegroupIssueCode", "traits": { - "smithy.api#documentation": "

A brief description of the error.

\n " + "smithy.api#documentation": "

A brief description of the error.

\n " } }, "message": { @@ -8638,6 +8638,12 @@ "traits": { "smithy.api#enumValue": "Ec2LaunchTemplateVersionMaxLimitExceeded" } + }, + "EC2_INSTANCE_TYPE_DOES_NOT_EXIST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Ec2InstanceTypeDoesNotExist" + } } } }, diff --git a/codegen/sdk-codegen/aws-models/firehose.json b/codegen/sdk-codegen/aws-models/firehose.json index e89f2448b37..1febfffaba6 100644 --- a/codegen/sdk-codegen/aws-models/firehose.json +++ b/codegen/sdk-codegen/aws-models/firehose.json @@ -36,7 +36,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "^arn:" + "smithy.api#pattern": "^arn:.*:kms:[a-zA-Z0-9\\-]+:\\d{12}:(key|alias)/[a-zA-Z_0-9+=,.@\\-_/]+$" } }, "com.amazonaws.firehose#AmazonOpenSearchServerlessBufferingHints": { @@ -51,7 +51,7 @@ "SizeInMBs": { "target": "com.amazonaws.firehose#AmazonOpenSearchServerlessBufferingSizeInMBs", "traits": { - "smithy.api#documentation": "

Buffer incoming data to the specified size, in MBs, before delivering it to the\n destination. The default value is 5.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the delivery stream in 10 seconds. For example, if you typically\n ingest data at 1 MB/sec, the value should be 10 MB or higher.

" + "smithy.api#documentation": "

Buffer incoming data to the specified size, in MBs, before delivering it to the\n destination. The default value is 5.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the Firehose stream in 10 seconds. For example, if you typically\n ingest data at 1 MB/sec, the value should be 10 MB or higher.

" } } }, @@ -313,7 +313,7 @@ "SizeInMBs": { "target": "com.amazonaws.firehose#AmazonopensearchserviceBufferingSizeInMBs", "traits": { - "smithy.api#documentation": "

Buffer incoming data to the specified size, in MBs, before delivering it to the\n destination. The default value is 5.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the delivery stream in 10 seconds. For example, if you typically\n ingest data at 1 MB/sec, the value should be 10 MB or higher.

" + "smithy.api#documentation": "

Buffer incoming data to the specified size, in MBs, before delivering it to the\n destination. The default value is 5.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the Firehose stream in 10 seconds. For example, if you typically\n ingest data at 1 MB/sec, the value should be 10 MB or higher.

" } } }, @@ -544,7 +544,7 @@ "TypeName": { "target": "com.amazonaws.firehose#AmazonopensearchserviceTypeName", "traits": { - "smithy.api#documentation": "

The Amazon OpenSearch Service type name. For Elasticsearch 6.x, there can be only one\n type per index. If you try to specify a new type for an existing index that already has\n another type, Firehose returns an error during runtime.

\n

If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery stream,\n Firehose still delivers data to Elasticsearch with the old index name and type\n name. If you want to update your delivery stream with a new index name, provide an empty\n string for TypeName.

" + "smithy.api#documentation": "

The Amazon OpenSearch Service type name. For Elasticsearch 6.x, there can be only one\n type per index. If you try to specify a new type for an existing index that already has\n another type, Firehose returns an error during runtime.

\n

If you upgrade Elasticsearch from 6.x to 7.x and don’t update your Firehose stream,\n Firehose still delivers data to Elasticsearch with the old index name and type\n name. If you want to update your Firehose stream with a new index name, provide an empty\n string for TypeName.

" } }, "IndexRotationPeriod": { @@ -592,7 +592,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "^arn:" + "smithy.api#pattern": "^arn:.*:es:[a-zA-Z0-9\\-]+:\\d{12}:domain/[a-z][-0-9a-z]{2,27}$" } }, "com.amazonaws.firehose#AmazonopensearchserviceIndexName": { @@ -730,7 +730,7 @@ "min": 1, "max": 2048 }, - "smithy.api#pattern": "^arn:" + "smithy.api#pattern": "^arn:.*:s3:::[\\w\\.\\-]{1,255}$" } }, "com.amazonaws.firehose#BufferingHints": { @@ -739,7 +739,7 @@ "SizeInMBs": { "target": "com.amazonaws.firehose#SizeInMBs", "traits": { - "smithy.api#documentation": "

Buffer incoming data to the specified size, in MiBs, before delivering it to the\n destination. The default value is 5. This parameter is optional but if you specify a value\n for it, you must also specify a value for IntervalInSeconds, and vice\n versa.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the delivery stream in 10 seconds. For example, if you typically\n ingest data at 1 MiB/sec, the value should be 10 MiB or higher.

" + "smithy.api#documentation": "

Buffer incoming data to the specified size, in MiBs, before delivering it to the\n destination. The default value is 5. This parameter is optional but if you specify a value\n for it, you must also specify a value for IntervalInSeconds, and vice\n versa.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the Firehose stream in 10 seconds. For example, if you typically\n ingest data at 1 MiB/sec, the value should be 10 MiB or higher.

" } }, "IntervalInSeconds": { @@ -759,12 +759,18 @@ "CatalogARN": { "target": "com.amazonaws.firehose#GlueDataCatalogARN", "traits": { - "smithy.api#documentation": "

\n Specifies the Glue catalog ARN indentifier of the destination Apache Iceberg Tables. You must specify the ARN in the format arn:aws:glue:region:account-id:catalog.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Specifies the Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format arn:aws:glue:region:account-id:catalog.\n

" + } + }, + "WarehouseLocation": { + "target": "com.amazonaws.firehose#WarehouseLocation", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" } } }, "traits": { - "smithy.api#documentation": "

\n Describes the containers where the destination Apache Iceberg Tables are persisted.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Describes the containers where the destination Apache Iceberg Tables are persisted.\n

" } }, "com.amazonaws.firehose#CloudWatchLoggingOptions": { @@ -790,7 +796,7 @@ } }, "traits": { - "smithy.api#documentation": "

Describes the Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

Describes the Amazon CloudWatch logging options for your Firehose stream.

" } }, "com.amazonaws.firehose#ClusterJDBCURL": { @@ -800,7 +806,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "^jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-9-]{1,63}(?Creates a Firehose delivery stream.

\n

By default, you can create up to 50 delivery streams per Amazon Web Services\n Region.

\n

This is an asynchronous operation that immediately returns. The initial status of the\n delivery stream is CREATING. After the delivery stream is created, its status\n is ACTIVE and it now accepts data. If the delivery stream creation fails, the\n status transitions to CREATING_FAILED. Attempts to send data to a delivery\n stream that is not in the ACTIVE state cause an exception. To check the state\n of a delivery stream, use DescribeDeliveryStream.

\n

If the status of a delivery stream is CREATING_FAILED, this status\n doesn't change, and you can't invoke CreateDeliveryStream again on it.\n However, you can invoke the DeleteDeliveryStream operation to delete\n it.

\n

A Firehose delivery stream can be configured to receive records directly\n from providers using PutRecord or PutRecordBatch, or it\n can be configured to use an existing Kinesis stream as its source. To specify a Kinesis\n data stream as input, set the DeliveryStreamType parameter to\n KinesisStreamAsSource, and provide the Kinesis stream Amazon Resource Name\n (ARN) and role ARN in the KinesisStreamSourceConfiguration\n parameter.

\n

To create a delivery stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput in your request. This is\n optional. You can also invoke StartDeliveryStreamEncryption to turn on\n SSE for an existing delivery stream that doesn't have SSE enabled.

\n

A delivery stream is configured with a single destination, such as Amazon Simple\n Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch\n Serverless, Splunk, and any custom HTTP endpoint or HTTP endpoints owned by or supported by\n third-party service providers, including Datadog, Dynatrace, LogicMonitor, MongoDB, New\n Relic, and Sumo Logic. You must specify only one of the following destination configuration\n parameters: ExtendedS3DestinationConfiguration,\n S3DestinationConfiguration,\n ElasticsearchDestinationConfiguration,\n RedshiftDestinationConfiguration, or\n SplunkDestinationConfiguration.

\n

When you specify S3DestinationConfiguration, you can also provide the\n following optional values: BufferingHints, EncryptionConfiguration, and\n CompressionFormat. By default, if no BufferingHints value is\n provided, Firehose buffers data up to 5 MB or for 5 minutes, whichever\n condition is satisfied first. BufferingHints is a hint, so there are some\n cases where the service cannot adhere to these conditions strictly. For example, record\n boundaries might be such that the size is a little over or under the configured buffering\n size. By default, no encryption is performed. We strongly recommend that you enable\n encryption to ensure secure data storage in Amazon S3.

\n

A few notes about Amazon Redshift as a destination:

\n \n

Firehose assumes the IAM role that is configured as part of the\n destination. The role should allow the Firehose principal to assume the role,\n and the role should have permissions that allow the service to deliver the data. For more\n information, see Grant Firehose Access to an Amazon S3 Destination in the Amazon Firehose Developer Guide.

" + "smithy.api#documentation": "

Creates a Firehose stream.

\n

By default, you can create up to 50 Firehose streams per Amazon Web Services\n Region.

\n

This is an asynchronous operation that immediately returns. The initial status of the\n Firehose stream is CREATING. After the Firehose stream is created, its status\n is ACTIVE and it now accepts data. If the Firehose stream creation fails, the\n status transitions to CREATING_FAILED. Attempts to send data to a delivery\n stream that is not in the ACTIVE state cause an exception. To check the state\n of a Firehose stream, use DescribeDeliveryStream.

\n

If the status of a Firehose stream is CREATING_FAILED, this status\n doesn't change, and you can't invoke CreateDeliveryStream again on it.\n However, you can invoke the DeleteDeliveryStream operation to delete\n it.

\n

A Firehose stream can be configured to receive records directly\n from providers using PutRecord or PutRecordBatch, or it\n can be configured to use an existing Kinesis stream as its source. To specify a Kinesis\n data stream as input, set the DeliveryStreamType parameter to\n KinesisStreamAsSource, and provide the Kinesis stream Amazon Resource Name\n (ARN) and role ARN in the KinesisStreamSourceConfiguration\n parameter.

\n

To create a Firehose stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput in your request. This is\n optional. You can also invoke StartDeliveryStreamEncryption to turn on\n SSE for an existing Firehose stream that doesn't have SSE enabled.

\n

A Firehose stream is configured with a single destination, such as Amazon Simple\n Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch\n Serverless, Splunk, and any custom HTTP endpoint or HTTP endpoints owned by or supported by\n third-party service providers, including Datadog, Dynatrace, LogicMonitor, MongoDB, New\n Relic, and Sumo Logic. You must specify only one of the following destination configuration\n parameters: ExtendedS3DestinationConfiguration,\n S3DestinationConfiguration,\n ElasticsearchDestinationConfiguration,\n RedshiftDestinationConfiguration, or\n SplunkDestinationConfiguration.

\n

When you specify S3DestinationConfiguration, you can also provide the\n following optional values: BufferingHints, EncryptionConfiguration, and\n CompressionFormat. By default, if no BufferingHints value is\n provided, Firehose buffers data up to 5 MB or for 5 minutes, whichever\n condition is satisfied first. BufferingHints is a hint, so there are some\n cases where the service cannot adhere to these conditions strictly. For example, record\n boundaries might be such that the size is a little over or under the configured buffering\n size. By default, no encryption is performed. We strongly recommend that you enable\n encryption to ensure secure data storage in Amazon S3.

\n

A few notes about Amazon Redshift as a destination:

\n \n

Firehose assumes the IAM role that is configured as part of the\n destination. The role should allow the Firehose principal to assume the role,\n and the role should have permissions that allow the service to deliver the data. For more\n information, see Grant Firehose Access to an Amazon S3 Destination in the Amazon Firehose Developer Guide.

" } }, "com.amazonaws.firehose#CreateDeliveryStreamInput": { @@ -965,20 +971,20 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream. This name must be unique per Amazon Web Services\n account in the same Amazon Web Services Region. If the delivery streams are in different\n accounts or different Regions, you can have multiple delivery streams with the same\n name.

", + "smithy.api#documentation": "

The name of the Firehose stream. This name must be unique per Amazon Web Services\n account in the same Amazon Web Services Region. If the Firehose streams are in different\n accounts or different Regions, you can have multiple Firehose streams with the same\n name.

", "smithy.api#required": {} } }, "DeliveryStreamType": { "target": "com.amazonaws.firehose#DeliveryStreamType", "traits": { - "smithy.api#documentation": "

The delivery stream type. This parameter can be one of the following\n values:

\n " + "smithy.api#documentation": "

The Firehose stream type. This parameter can be one of the following\n values:

\n " } }, "KinesisStreamSourceConfiguration": { "target": "com.amazonaws.firehose#KinesisStreamSourceConfiguration", "traits": { - "smithy.api#documentation": "

When a Kinesis data stream is used as the source for the delivery stream, a KinesisStreamSourceConfiguration containing the Kinesis data stream Amazon\n Resource Name (ARN) and the role ARN for the source stream.

" + "smithy.api#documentation": "

When a Kinesis data stream is used as the source for the Firehose stream, a KinesisStreamSourceConfiguration containing the Kinesis data stream Amazon\n Resource Name (ARN) and the role ARN for the source stream.

" } }, "DeliveryStreamEncryptionConfigurationInput": { @@ -1033,7 +1039,7 @@ "Tags": { "target": "com.amazonaws.firehose#TagDeliveryStreamInputTagList", "traits": { - "smithy.api#documentation": "

A set of tags to assign to the delivery stream. A tag is a key-value pair that you can\n define and assign to Amazon Web Services resources. Tags are metadata. For example, you can\n add friendly names and descriptions or other types of information that can help you\n distinguish the delivery stream. For more information about tags, see Using\n Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User\n Guide.

\n

You can specify up to 50 tags when creating a delivery stream.

\n

If you specify tags in the CreateDeliveryStream action, Amazon Data\n Firehose performs an additional authorization on the\n firehose:TagDeliveryStream action to verify if users have permissions to\n create tags. If you do not provide this permission, requests to create new Firehose\n delivery streams with IAM resource tags will fail with an\n AccessDeniedException such as following.

\n

\n AccessDeniedException\n

\n

User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an explicit deny in an identity-based policy.

\n

For an example IAM policy, see Tag example.\n

" + "smithy.api#documentation": "

A set of tags to assign to the Firehose stream. A tag is a key-value pair that you can\n define and assign to Amazon Web Services resources. Tags are metadata. For example, you can\n add friendly names and descriptions or other types of information that can help you\n distinguish the Firehose stream. For more information about tags, see Using\n Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User\n Guide.

\n

You can specify up to 50 tags when creating a Firehose stream.

\n

If you specify tags in the CreateDeliveryStream action, Amazon Data\n Firehose performs an additional authorization on the\n firehose:TagDeliveryStream action to verify if users have permissions to\n create tags. If you do not provide this permission, requests to create new Firehose\n Firehose streams with IAM resource tags will fail with an\n AccessDeniedException such as following.

\n

\n AccessDeniedException\n

\n

User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an explicit deny in an identity-based policy.

\n

For an example IAM policy, see Tag example.\n

" } }, "AmazonOpenSearchServerlessDestinationConfiguration": { @@ -1054,7 +1060,13 @@ "IcebergDestinationConfiguration": { "target": "com.amazonaws.firehose#IcebergDestinationConfiguration", "traits": { - "smithy.api#documentation": "

\n Configure Apache Iceberg Tables destination.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Configure Apache Iceberg Tables destination.\n

" + } + }, + "DatabaseSourceConfiguration": { + "target": "com.amazonaws.firehose#DatabaseSourceConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" } } }, @@ -1068,7 +1080,7 @@ "DeliveryStreamARN": { "target": "com.amazonaws.firehose#DeliveryStreamARN", "traits": { - "smithy.api#documentation": "

The ARN of the delivery stream.

" + "smithy.api#documentation": "

The ARN of the Firehose stream.

" } } }, @@ -1082,7 +1094,8 @@ "smithy.api#length": { "min": 0, "max": 50 - } + }, + "smithy.api#pattern": "^$|[a-zA-Z/_]+$" } }, "com.amazonaws.firehose#Data": { @@ -1131,7 +1144,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 204800 + "max": 10240 }, "smithy.api#pattern": ".*" } @@ -1146,6 +1159,399 @@ "smithy.api#pattern": ".*" } }, + "com.amazonaws.firehose#DatabaseColumnIncludeOrExcludeList": { + "type": "list", + "member": { + "target": "com.amazonaws.firehose#DatabaseColumnName" + } + }, + "com.amazonaws.firehose#DatabaseColumnList": { + "type": "structure", + "members": { + "Include": { + "target": "com.amazonaws.firehose#DatabaseColumnIncludeOrExcludeList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "Exclude": { + "target": "com.amazonaws.firehose#DatabaseColumnIncludeOrExcludeList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "com.amazonaws.firehose#DatabaseColumnName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 194 + }, + "smithy.api#pattern": "^[\\u0001-\\uFFFF]*$" + } + }, + "com.amazonaws.firehose#DatabaseEndpoint": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^(?!\\s*$).+$" + } + }, + "com.amazonaws.firehose#DatabaseIncludeOrExcludeList": { + "type": "list", + "member": { + "target": "com.amazonaws.firehose#DatabaseName" + } + }, + "com.amazonaws.firehose#DatabaseList": { + "type": "structure", + "members": { + "Include": { + "target": "com.amazonaws.firehose#DatabaseIncludeOrExcludeList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "Exclude": { + "target": "com.amazonaws.firehose#DatabaseIncludeOrExcludeList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "com.amazonaws.firehose#DatabaseName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[\\u0001-\\uFFFF]*$" + } + }, + "com.amazonaws.firehose#DatabasePort": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 65535 + } + } + }, + "com.amazonaws.firehose#DatabaseSnapshotInfo": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.firehose#NonEmptyStringWithoutWhitespace", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "Table": { + "target": "com.amazonaws.firehose#DatabaseTableName", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "RequestTimestamp": { + "target": "com.amazonaws.firehose#Timestamp", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "RequestedBy": { + "target": "com.amazonaws.firehose#SnapshotRequestedBy", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.firehose#SnapshotStatus", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "FailureDescription": { + "target": "com.amazonaws.firehose#FailureDescription" + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "com.amazonaws.firehose#DatabaseSnapshotInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.firehose#DatabaseSnapshotInfo" + } + }, + "com.amazonaws.firehose#DatabaseSourceAuthenticationConfiguration": { + "type": "structure", + "members": { + "SecretsManagerConfiguration": { + "target": "com.amazonaws.firehose#SecretsManagerConfiguration", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "com.amazonaws.firehose#DatabaseSourceConfiguration": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.firehose#DatabaseType", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "Endpoint": { + "target": "com.amazonaws.firehose#DatabaseEndpoint", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "Port": { + "target": "com.amazonaws.firehose#DatabasePort", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "SSLMode": { + "target": "com.amazonaws.firehose#SSLMode", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "Databases": { + "target": "com.amazonaws.firehose#DatabaseList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "Tables": { + "target": "com.amazonaws.firehose#DatabaseTableList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "Columns": { + "target": "com.amazonaws.firehose#DatabaseColumnList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "SurrogateKeys": { + "target": "com.amazonaws.firehose#DatabaseSurrogateKeyList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "SnapshotWatermarkTable": { + "target": "com.amazonaws.firehose#DatabaseTableName", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "DatabaseSourceAuthenticationConfiguration": { + "target": "com.amazonaws.firehose#DatabaseSourceAuthenticationConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + }, + "DatabaseSourceVPCConfiguration": { + "target": "com.amazonaws.firehose#DatabaseSourceVPCConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "com.amazonaws.firehose#DatabaseSourceDescription": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.firehose#DatabaseType", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "Endpoint": { + "target": "com.amazonaws.firehose#DatabaseEndpoint", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "Port": { + "target": "com.amazonaws.firehose#DatabasePort", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "SSLMode": { + "target": "com.amazonaws.firehose#SSLMode", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "Databases": { + "target": "com.amazonaws.firehose#DatabaseList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "Tables": { + "target": "com.amazonaws.firehose#DatabaseTableList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "Columns": { + "target": "com.amazonaws.firehose#DatabaseColumnList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "SurrogateKeys": { + "target": "com.amazonaws.firehose#DatabaseColumnIncludeOrExcludeList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "SnapshotWatermarkTable": { + "target": "com.amazonaws.firehose#DatabaseTableName", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "SnapshotInfo": { + "target": "com.amazonaws.firehose#DatabaseSnapshotInfoList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "DatabaseSourceAuthenticationConfiguration": { + "target": "com.amazonaws.firehose#DatabaseSourceAuthenticationConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "DatabaseSourceVPCConfiguration": { + "target": "com.amazonaws.firehose#DatabaseSourceVPCConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "com.amazonaws.firehose#DatabaseSourceVPCConfiguration": { + "type": "structure", + "members": { + "VpcEndpointServiceName": { + "target": "com.amazonaws.firehose#VpcEndpointServiceName", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "com.amazonaws.firehose#DatabaseSurrogateKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.firehose#NonEmptyStringWithoutWhitespace" + } + }, + "com.amazonaws.firehose#DatabaseTableIncludeOrExcludeList": { + "type": "list", + "member": { + "target": "com.amazonaws.firehose#DatabaseTableName" + } + }, + "com.amazonaws.firehose#DatabaseTableList": { + "type": "structure", + "members": { + "Include": { + "target": "com.amazonaws.firehose#DatabaseTableIncludeOrExcludeList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "Exclude": { + "target": "com.amazonaws.firehose#DatabaseTableIncludeOrExcludeList", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "com.amazonaws.firehose#DatabaseTableName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 129 + }, + "smithy.api#pattern": "^[\\u0001-\\uFFFF]*$" + } + }, + "com.amazonaws.firehose#DatabaseType": { + "type": "enum", + "members": { + "MySQL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MySQL" + } + }, + "PostgreSQL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PostgreSQL" + } + } + } + }, "com.amazonaws.firehose#DefaultDocumentIdFormat": { "type": "enum", "members": { @@ -1180,7 +1586,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a delivery stream and its data.

\n

You can delete a delivery stream only if it is in one of the following states:\n ACTIVE, DELETING, CREATING_FAILED, or\n DELETING_FAILED. You can't delete a delivery stream that is in the\n CREATING state. To check the state of a delivery stream, use DescribeDeliveryStream.

\n

DeleteDeliveryStream is an asynchronous API. When an API request to DeleteDeliveryStream succeeds, the delivery stream is marked for deletion, and it goes into the \n DELETING state.While the delivery stream is in the DELETING state, the service might\n continue to accept records, but it doesn't make any guarantees with respect to delivering\n the data. Therefore, as a best practice, first stop any applications that are sending\n records before you delete a delivery stream.

\n

Removal of a delivery stream that is in the DELETING state is a low priority operation for the service. A stream may remain in the \n DELETING state for several minutes. Therefore, as a best practice, applications should not wait for streams in the DELETING state \n to be removed.

" + "smithy.api#documentation": "

Deletes a Firehose stream and its data.

\n

You can delete a Firehose stream only if it is in one of the following states:\n ACTIVE, DELETING, CREATING_FAILED, or\n DELETING_FAILED. You can't delete a Firehose stream that is in the\n CREATING state. To check the state of a Firehose stream, use DescribeDeliveryStream.

\n

DeleteDeliveryStream is an asynchronous API. When an API request to DeleteDeliveryStream succeeds, the Firehose stream is marked for deletion, and it goes into the \n DELETING state.While the Firehose stream is in the DELETING state, the service might\n continue to accept records, but it doesn't make any guarantees with respect to delivering\n the data. Therefore, as a best practice, first stop any applications that are sending\n records before you delete a Firehose stream.

\n

Removal of a Firehose stream that is in the DELETING state is a low priority operation for the service. A stream may remain in the \n DELETING state for several minutes. Therefore, as a best practice, applications should not wait for streams in the DELETING state \n to be removed.

" } }, "com.amazonaws.firehose#DeleteDeliveryStreamInput": { @@ -1189,14 +1595,14 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream.

", + "smithy.api#documentation": "

The name of the Firehose stream.

", "smithy.api#required": {} } }, "AllowForceDelete": { "target": "com.amazonaws.firehose#BooleanObject", "traits": { - "smithy.api#documentation": "

Set this to true if you want to delete the delivery stream even if Firehose\n is unable to retire the grant for the CMK. Firehose might be unable to retire\n the grant due to a customer error, such as when the CMK or the grant are in an invalid\n state. If you force deletion, you can then use the RevokeGrant operation to\n revoke the grant you gave to Firehose. If a failure to retire the grant\n happens due to an Amazon Web Services KMS issue, Firehose keeps retrying the\n delete operation.

\n

The default value is false.

" + "smithy.api#documentation": "

Set this to true if you want to delete the Firehose stream even if Firehose\n is unable to retire the grant for the CMK. Firehose might be unable to retire\n the grant due to a customer error, such as when the CMK or the grant are in an invalid\n state. If you force deletion, you can then use the RevokeGrant operation to\n revoke the grant you gave to Firehose. If a failure to retire the grant\n happens due to an Amazon Web Services KMS issue, Firehose keeps retrying the\n delete operation.

\n

The default value is false.

" } } }, @@ -1221,7 +1627,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "^arn:" + "smithy.api#pattern": "^arn:.*:firehose:[a-zA-Z0-9\\-]+:\\d{12}:deliverystream/[a-zA-Z0-9._-]+$" } }, "com.amazonaws.firehose#DeliveryStreamDescription": { @@ -1230,21 +1636,21 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream.

", + "smithy.api#documentation": "

The name of the Firehose stream.

", "smithy.api#required": {} } }, "DeliveryStreamARN": { "target": "com.amazonaws.firehose#DeliveryStreamARN", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the delivery stream. For more information, see\n Amazon\n Resource Names (ARNs) and Amazon Web Services Service Namespaces.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Firehose stream. For more information, see\n Amazon\n Resource Names (ARNs) and Amazon Web Services Service Namespaces.

", "smithy.api#required": {} } }, "DeliveryStreamStatus": { "target": "com.amazonaws.firehose#DeliveryStreamStatus", "traits": { - "smithy.api#documentation": "

The status of the delivery stream. If the status of a delivery stream is\n CREATING_FAILED, this status doesn't change, and you can't invoke\n CreateDeliveryStream again on it. However, you can invoke the DeleteDeliveryStream operation to delete it.

", + "smithy.api#documentation": "

The status of the Firehose stream. If the status of a Firehose stream is\n CREATING_FAILED, this status doesn't change, and you can't invoke\n CreateDeliveryStream again on it. However, you can invoke the DeleteDeliveryStream operation to delete it.

", "smithy.api#required": {} } }, @@ -1257,33 +1663,33 @@ "DeliveryStreamEncryptionConfiguration": { "target": "com.amazonaws.firehose#DeliveryStreamEncryptionConfiguration", "traits": { - "smithy.api#documentation": "

Indicates the server-side encryption (SSE) status for the delivery stream.

" + "smithy.api#documentation": "

Indicates the server-side encryption (SSE) status for the Firehose stream.

" } }, "DeliveryStreamType": { "target": "com.amazonaws.firehose#DeliveryStreamType", "traits": { - "smithy.api#documentation": "

The delivery stream type. This can be one of the following values:

\n ", + "smithy.api#documentation": "

The Firehose stream type. This can be one of the following values:

\n ", "smithy.api#required": {} } }, "VersionId": { "target": "com.amazonaws.firehose#DeliveryStreamVersionId", "traits": { - "smithy.api#documentation": "

Each time the destination is updated for a delivery stream, the version ID is\n changed, and the current version ID is required when updating the destination. This is so\n that the service knows it is applying the changes to the correct version of the delivery\n stream.

", + "smithy.api#documentation": "

Each time the destination is updated for a Firehose stream, the version ID is\n changed, and the current version ID is required when updating the destination. This is so\n that the service knows it is applying the changes to the correct version of the delivery\n stream.

", "smithy.api#required": {} } }, "CreateTimestamp": { "target": "com.amazonaws.firehose#Timestamp", "traits": { - "smithy.api#documentation": "

The date and time that the delivery stream was created.

" + "smithy.api#documentation": "

The date and time that the Firehose stream was created.

" } }, "LastUpdateTimestamp": { "target": "com.amazonaws.firehose#Timestamp", "traits": { - "smithy.api#documentation": "

The date and time that the delivery stream was last updated.

" + "smithy.api#documentation": "

The date and time that the Firehose stream was last updated.

" } }, "Source": { @@ -1308,7 +1714,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about a delivery stream.

" + "smithy.api#documentation": "

Contains information about a Firehose stream.

" } }, "com.amazonaws.firehose#DeliveryStreamEncryptionConfiguration": { @@ -1329,7 +1735,7 @@ "Status": { "target": "com.amazonaws.firehose#DeliveryStreamEncryptionStatus", "traits": { - "smithy.api#documentation": "

This is the server-side encryption (SSE) status for the delivery stream. For a full\n description of the different values of this status, see StartDeliveryStreamEncryption and StopDeliveryStreamEncryption. If this status is ENABLING_FAILED\n or DISABLING_FAILED, it is the status of the most recent attempt to enable or\n disable SSE, respectively.

" + "smithy.api#documentation": "

This is the server-side encryption (SSE) status for the Firehose stream. For a full\n description of the different values of this status, see StartDeliveryStreamEncryption and StopDeliveryStreamEncryption. If this status is ENABLING_FAILED\n or DISABLING_FAILED, it is the status of the most recent attempt to enable or\n disable SSE, respectively.

" } }, "FailureDescription": { @@ -1355,7 +1761,7 @@ "KeyType": { "target": "com.amazonaws.firehose#KeyType", "traits": { - "smithy.api#documentation": "

Indicates the type of customer master key (CMK) to use for encryption. The default\n setting is Amazon Web Services_OWNED_CMK. For more information about CMKs, see\n Customer Master Keys (CMKs). When you invoke CreateDeliveryStream or StartDeliveryStreamEncryption with\n KeyType set to CUSTOMER_MANAGED_CMK, Firehose invokes the\n Amazon KMS operation CreateGrant to create a grant\n that allows the Firehose service to use the customer managed CMK to perform\n encryption and decryption. Firehose manages that grant.

\n

When you invoke StartDeliveryStreamEncryption to change the CMK for a\n delivery stream that is encrypted with a customer managed CMK, Firehose\n schedules the grant it had on the old CMK for retirement.

\n

You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery streams. If\n a CreateDeliveryStream or StartDeliveryStreamEncryption\n operation exceeds this limit, Firehose throws a\n LimitExceededException.

\n \n

To encrypt your delivery stream, use symmetric CMKs. Firehose doesn't\n support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see About\n Symmetric and Asymmetric CMKs in the Amazon Web Services Key Management\n Service developer guide.

\n
", + "smithy.api#documentation": "

Indicates the type of customer master key (CMK) to use for encryption. The default\n setting is Amazon Web Services_OWNED_CMK. For more information about CMKs, see\n Customer Master Keys (CMKs). When you invoke CreateDeliveryStream or StartDeliveryStreamEncryption with\n KeyType set to CUSTOMER_MANAGED_CMK, Firehose invokes the\n Amazon KMS operation CreateGrant to create a grant\n that allows the Firehose service to use the customer managed CMK to perform\n encryption and decryption. Firehose manages that grant.

\n

When you invoke StartDeliveryStreamEncryption to change the CMK for a\n Firehose stream that is encrypted with a customer managed CMK, Firehose\n schedules the grant it had on the old CMK for retirement.

\n

You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 Firehose streams. If\n a CreateDeliveryStream or StartDeliveryStreamEncryption\n operation exceeds this limit, Firehose throws a\n LimitExceededException.

\n \n

To encrypt your Firehose stream, use symmetric CMKs. Firehose doesn't\n support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see About\n Symmetric and Asymmetric CMKs in the Amazon Web Services Key Management\n Service developer guide.

\n
", "smithy.api#required": {} } } @@ -1408,6 +1814,18 @@ "com.amazonaws.firehose#DeliveryStreamFailureType": { "type": "enum", "members": { + "VPC_ENDPOINT_SERVICE_NAME_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VPC_ENDPOINT_SERVICE_NAME_NOT_FOUND" + } + }, + "VPC_INTERFACE_ENDPOINT_SERVICE_ACCESS_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VPC_INTERFACE_ENDPOINT_SERVICE_ACCESS_DENIED" + } + }, "RETIRE_KMS_GRANT_FAILED": { "target": "smithy.api#Unit", "traits": { @@ -1571,6 +1989,12 @@ "traits": { "smithy.api#enumValue": "MSKAsSource" } + }, + "DatabaseAsSource": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DatabaseAsSource" + } } } }, @@ -1598,7 +2022,7 @@ } ], "traits": { - "smithy.api#documentation": "

Describes the specified delivery stream and its status. For example, after your\n delivery stream is created, call DescribeDeliveryStream to see whether the\n delivery stream is ACTIVE and therefore ready for data to be sent to it.

\n

If the status of a delivery stream is CREATING_FAILED, this status\n doesn't change, and you can't invoke CreateDeliveryStream again on it.\n However, you can invoke the DeleteDeliveryStream operation to delete it.\n If the status is DELETING_FAILED, you can force deletion by invoking DeleteDeliveryStream again but with DeleteDeliveryStreamInput$AllowForceDelete set to true.

" + "smithy.api#documentation": "

Describes the specified Firehose stream and its status. For example, after your\n Firehose stream is created, call DescribeDeliveryStream to see whether the\n Firehose stream is ACTIVE and therefore ready for data to be sent to it.

\n

If the status of a Firehose stream is CREATING_FAILED, this status\n doesn't change, and you can't invoke CreateDeliveryStream again on it.\n However, you can invoke the DeleteDeliveryStream operation to delete it.\n If the status is DELETING_FAILED, you can force deletion by invoking DeleteDeliveryStream again but with DeleteDeliveryStreamInput$AllowForceDelete set to true.

" } }, "com.amazonaws.firehose#DescribeDeliveryStreamInput": { @@ -1607,20 +2031,20 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream.

", + "smithy.api#documentation": "

The name of the Firehose stream.

", "smithy.api#required": {} } }, "Limit": { "target": "com.amazonaws.firehose#DescribeDeliveryStreamInputLimit", "traits": { - "smithy.api#documentation": "

The limit on the number of destinations to return. You can have one destination per\n delivery stream.

" + "smithy.api#documentation": "

The limit on the number of destinations to return. You can have one destination per\n Firehose stream.

" } }, "ExclusiveStartDestinationId": { "target": "com.amazonaws.firehose#DestinationId", "traits": { - "smithy.api#documentation": "

The ID of the destination to start returning the destination information. Firehose supports one destination per delivery stream.

" + "smithy.api#documentation": "

The ID of the destination to start returning the destination information. Firehose supports one destination per Firehose stream.

" } } }, @@ -1643,7 +2067,7 @@ "DeliveryStreamDescription": { "target": "com.amazonaws.firehose#DeliveryStreamDescription", "traits": { - "smithy.api#documentation": "

Information about the delivery stream.

", + "smithy.api#documentation": "

Information about the Firehose stream.

", "smithy.api#required": {} } } @@ -1739,12 +2163,12 @@ "IcebergDestinationDescription": { "target": "com.amazonaws.firehose#IcebergDestinationDescription", "traits": { - "smithy.api#documentation": "

\n Describes a destination in Apache Iceberg Tables.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Describes a destination in Apache Iceberg Tables.\n

" } } }, "traits": { - "smithy.api#documentation": "

Describes the destination for a delivery stream.

" + "smithy.api#documentation": "

Describes the destination for a Firehose stream.

" } }, "com.amazonaws.firehose#DestinationDescriptionList": { @@ -1767,34 +2191,40 @@ "type": "structure", "members": { "DestinationTableName": { - "target": "com.amazonaws.firehose#NonEmptyStringWithoutWhitespace", + "target": "com.amazonaws.firehose#StringWithLettersDigitsUnderscoresDots", "traits": { - "smithy.api#documentation": "

\n Specifies the name of the Apache Iceberg Table.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#documentation": "

\n Specifies the name of the Apache Iceberg Table.\n

", "smithy.api#required": {} } }, "DestinationDatabaseName": { - "target": "com.amazonaws.firehose#NonEmptyStringWithoutWhitespace", + "target": "com.amazonaws.firehose#StringWithLettersDigitsUnderscoresDots", "traits": { - "smithy.api#documentation": "

\n The name of the Apache Iceberg database.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#documentation": "

\n The name of the Apache Iceberg database.\n

", "smithy.api#required": {} } }, "UniqueKeys": { "target": "com.amazonaws.firehose#ListOfNonEmptyStringsWithoutWhitespace", "traits": { - "smithy.api#documentation": "

\n A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create/Update/Delete operations on the given Iceberg table. \n \n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. \n \n

" + } + }, + "PartitionSpec": { + "target": "com.amazonaws.firehose#PartitionSpec", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" } }, "S3ErrorOutputPrefix": { "target": "com.amazonaws.firehose#ErrorOutputPrefix", "traits": { - "smithy.api#documentation": "

\n The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. \n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. \n

" } } }, "traits": { - "smithy.api#documentation": "

\n Describes the configuration of a destination in Apache Iceberg Tables.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Describes the configuration of a destination in Apache Iceberg Tables.\n

" } }, "com.amazonaws.firehose#DestinationTableConfigurationList": { @@ -1830,7 +2260,7 @@ "Enabled": { "target": "com.amazonaws.firehose#BooleanObject", "traits": { - "smithy.api#documentation": "

Specifies that the dynamic partitioning is enabled for this Firehose\n delivery stream.

" + "smithy.api#documentation": "

Specifies that the dynamic partitioning is enabled for this Firehose\n Firehose stream.

" } } }, @@ -1850,7 +2280,7 @@ "SizeInMBs": { "target": "com.amazonaws.firehose#ElasticsearchBufferingSizeInMBs", "traits": { - "smithy.api#documentation": "

Buffer incoming data to the specified size, in MBs, before delivering it to the\n destination. The default value is 5.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the delivery stream in 10 seconds. For example, if you typically\n ingest data at 1 MB/sec, the value should be 10 MB or higher.

" + "smithy.api#documentation": "

Buffer incoming data to the specified size, in MBs, before delivering it to the\n destination. The default value is 5.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the Firehose stream in 10 seconds. For example, if you typically\n ingest data at 1 MB/sec, the value should be 10 MB or higher.

" } } }, @@ -1942,7 +2372,7 @@ "S3BackupMode": { "target": "com.amazonaws.firehose#ElasticsearchS3BackupMode", "traits": { - "smithy.api#documentation": "

Defines how documents should be delivered to Amazon S3. When it is set to\n FailedDocumentsOnly, Firehose writes any documents that could\n not be indexed to the configured Amazon S3 destination, with\n AmazonOpenSearchService-failed/ appended to the key prefix. When set to\n AllDocuments, Firehose delivers all incoming records to Amazon\n S3, and also writes failed documents with AmazonOpenSearchService-failed/\n appended to the prefix. For more information, see Amazon S3 Backup for the\n Amazon ES Destination. Default value is\n FailedDocumentsOnly.

\n

You can't change this backup mode after you create the delivery stream.

" + "smithy.api#documentation": "

Defines how documents should be delivered to Amazon S3. When it is set to\n FailedDocumentsOnly, Firehose writes any documents that could\n not be indexed to the configured Amazon S3 destination, with\n AmazonOpenSearchService-failed/ appended to the key prefix. When set to\n AllDocuments, Firehose delivers all incoming records to Amazon\n S3, and also writes failed documents with AmazonOpenSearchService-failed/\n appended to the prefix. For more information, see Amazon S3 Backup for the\n Amazon ES Destination. Default value is\n FailedDocumentsOnly.

\n

You can't change this backup mode after you create the Firehose stream.

" } }, "S3Configuration": { @@ -1961,7 +2391,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } }, "VpcConfiguration": { @@ -2103,7 +2533,7 @@ "TypeName": { "target": "com.amazonaws.firehose#ElasticsearchTypeName", "traits": { - "smithy.api#documentation": "

The Elasticsearch type name. For Elasticsearch 6.x, there can be only one type per\n index. If you try to specify a new type for an existing index that already has another\n type, Firehose returns an error during runtime.

\n

If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery stream,\n Firehose still delivers data to Elasticsearch with the old index name and type\n name. If you want to update your delivery stream with a new index name, provide an empty\n string for TypeName.

" + "smithy.api#documentation": "

The Elasticsearch type name. For Elasticsearch 6.x, there can be only one type per\n index. If you try to specify a new type for an existing index that already has another\n type, Firehose returns an error during runtime.

\n

If you upgrade Elasticsearch from 6.x to 7.x and don’t update your Firehose stream,\n Firehose still delivers data to Elasticsearch with the old index name and type\n name. If you want to update your Firehose stream with a new index name, provide an empty\n string for TypeName.

" } }, "IndexRotationPeriod": { @@ -2139,7 +2569,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The CloudWatch logging options for your Firehose stream.

" } }, "DocumentIdOptions": { @@ -2160,7 +2590,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "^arn:" + "smithy.api#pattern": "^arn:.*:es:[a-zA-Z0-9\\-]+:\\d{12}:domain/[a-z][-0-9a-z]{2,27}$" } }, "com.amazonaws.firehose#ElasticsearchIndexName": { @@ -2344,7 +2774,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } }, "ProcessingConfiguration": { @@ -2356,7 +2786,7 @@ "S3BackupMode": { "target": "com.amazonaws.firehose#S3BackupMode", "traits": { - "smithy.api#documentation": "

The Amazon S3 backup mode. After you create a delivery stream, you can update it to\n enable Amazon S3 backup if it is disabled. If backup is enabled, you can't update the\n delivery stream to disable it.

" + "smithy.api#documentation": "

The Amazon S3 backup mode. After you create a Firehose stream, you can update it to\n enable Amazon S3 backup if it is disabled. If backup is enabled, you can't update the\n Firehose stream to disable it.

" } }, "S3BackupConfiguration": { @@ -2447,7 +2877,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } }, "ProcessingConfiguration": { @@ -2545,7 +2975,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } }, "ProcessingConfiguration": { @@ -2557,7 +2987,7 @@ "S3BackupMode": { "target": "com.amazonaws.firehose#S3BackupMode", "traits": { - "smithy.api#documentation": "

You can update a delivery stream to enable Amazon S3 backup if it is disabled. If\n backup is enabled, you can't update the delivery stream to disable it.

" + "smithy.api#documentation": "

You can update a Firehose stream to enable Amazon S3 backup if it is disabled. If\n backup is enabled, you can't update the Firehose stream to disable it.

" } }, "S3BackupUpdate": { @@ -3673,7 +4103,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "^arn:" + "smithy.api#pattern": "^arn:.*:glue:.*:\\d{12}:catalog$" } }, "com.amazonaws.firehose#HECAcknowledgmentTimeoutInSeconds": { @@ -3775,7 +4205,7 @@ "SizeInMBs": { "target": "com.amazonaws.firehose#HttpEndpointBufferingSizeInMBs", "traits": { - "smithy.api#documentation": "

Buffer incoming data to the specified size, in MBs, before delivering it to the\n destination. The default value is 5.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the delivery stream in 10 seconds. For example, if you typically\n ingest data at 1 MB/sec, the value should be 10 MB or higher.

" + "smithy.api#documentation": "

Buffer incoming data to the specified size, in MBs, before delivering it to the\n destination. The default value is 5.

\n

We recommend setting this parameter to a value greater than the amount of data you\n typically ingest into the Firehose stream in 10 seconds. For example, if you typically\n ingest data at 1 MB/sec, the value should be 10 MB or higher.

" } }, "IntervalInSeconds": { @@ -4156,7 +4586,19 @@ "DestinationTableConfigurationList": { "target": "com.amazonaws.firehose#DestinationTableConfigurationList", "traits": { - "smithy.api#documentation": "

Provides a list of DestinationTableConfigurations which Firehose uses\n to deliver data to Apache Iceberg tables.

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

Provides a list of DestinationTableConfigurations which Firehose uses\n to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.

" + } + }, + "SchemaEvolutionConfiguration": { + "target": "com.amazonaws.firehose#SchemaEvolutionConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "TableCreationConfiguration": { + "target": "com.amazonaws.firehose#TableCreationConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" } }, "BufferingHints": { @@ -4171,7 +4613,7 @@ "S3BackupMode": { "target": "com.amazonaws.firehose#IcebergS3BackupMode", "traits": { - "smithy.api#documentation": "

Describes how Firehose will backup records. Currently,Firehose only supports\n FailedDataOnly for preview.

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

Describes how Firehose will backup records. Currently,S3 backup only supports\n FailedDataOnly.

" } }, "RetryOptions": { @@ -4180,14 +4622,14 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the Apache Iceberg tables role.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.\n

", "smithy.api#required": {} } }, "CatalogConfiguration": { "target": "com.amazonaws.firehose#CatalogConfiguration", "traits": { - "smithy.api#documentation": "

\n Configuration describing where the destination Apache Iceberg Tables are persisted.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#documentation": "

\n Configuration describing where the destination Apache Iceberg Tables are persisted.\n

", "smithy.api#required": {} } }, @@ -4199,7 +4641,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n Specifies the destination configure settings for Apache Iceberg Table.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Specifies the destination configure settings for Apache Iceberg Table.\n

" } }, "com.amazonaws.firehose#IcebergDestinationDescription": { @@ -4208,7 +4650,19 @@ "DestinationTableConfigurationList": { "target": "com.amazonaws.firehose#DestinationTableConfigurationList", "traits": { - "smithy.api#documentation": "

Provides a list of DestinationTableConfigurations which Firehose uses\n to deliver data to Apache Iceberg tables.

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

Provides a list of DestinationTableConfigurations which Firehose uses\n to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.

" + } + }, + "SchemaEvolutionConfiguration": { + "target": "com.amazonaws.firehose#SchemaEvolutionConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "TableCreationConfiguration": { + "target": "com.amazonaws.firehose#TableCreationConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" } }, "BufferingHints": { @@ -4223,7 +4677,7 @@ "S3BackupMode": { "target": "com.amazonaws.firehose#IcebergS3BackupMode", "traits": { - "smithy.api#documentation": "

Describes how Firehose will backup records. Currently,Firehose only supports\n FailedDataOnly for preview.

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

Describes how Firehose will backup records. Currently,Firehose only supports\n FailedDataOnly.

" } }, "RetryOptions": { @@ -4232,13 +4686,13 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the Apache Iceberg Tables role.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.\n

" } }, "CatalogConfiguration": { "target": "com.amazonaws.firehose#CatalogConfiguration", "traits": { - "smithy.api#documentation": "

\n Configuration describing where the destination Iceberg tables are persisted.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Configuration describing where the destination Iceberg tables are persisted.\n

" } }, "S3DestinationDescription": { @@ -4246,7 +4700,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n Describes a destination in Apache Iceberg Tables.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Describes a destination in Apache Iceberg Tables.\n

" } }, "com.amazonaws.firehose#IcebergDestinationUpdate": { @@ -4255,7 +4709,19 @@ "DestinationTableConfigurationList": { "target": "com.amazonaws.firehose#DestinationTableConfigurationList", "traits": { - "smithy.api#documentation": "

Provides a list of DestinationTableConfigurations which Firehose uses\n to deliver data to Apache Iceberg tables.

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

Provides a list of DestinationTableConfigurations which Firehose uses\n to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.

" + } + }, + "SchemaEvolutionConfiguration": { + "target": "com.amazonaws.firehose#SchemaEvolutionConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "TableCreationConfiguration": { + "target": "com.amazonaws.firehose#TableCreationConfiguration", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" } }, "BufferingHints": { @@ -4270,7 +4736,7 @@ "S3BackupMode": { "target": "com.amazonaws.firehose#IcebergS3BackupMode", "traits": { - "smithy.api#documentation": "

Describes how Firehose will backup records. Currently,Firehose only supports\n FailedDataOnly for preview.

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

Describes how Firehose will backup records. Currently,Firehose only supports\n FailedDataOnly.

" } }, "RetryOptions": { @@ -4279,13 +4745,13 @@ "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the Apache Iceberg Tables role.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.\n

" } }, "CatalogConfiguration": { "target": "com.amazonaws.firehose#CatalogConfiguration", "traits": { - "smithy.api#documentation": "

\n Configuration describing where the destination Iceberg tables are persisted.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Configuration describing where the destination Iceberg tables are persisted.\n

" } }, "S3Configuration": { @@ -4293,7 +4759,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n Describes an update for a destination in Apache Iceberg Tables.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Describes an update for a destination in Apache Iceberg Tables.\n

" } }, "com.amazonaws.firehose#IcebergS3BackupMode": { @@ -4362,7 +4828,7 @@ } }, "traits": { - "smithy.api#documentation": "

Firehose throws this exception when an attempt to put records or to start\n or stop delivery stream encryption fails. This happens when the KMS service throws one of\n the following exception types: AccessDeniedException,\n InvalidStateException, DisabledException, or\n NotFoundException.

", + "smithy.api#documentation": "

Firehose throws this exception when an attempt to put records or to start\n or stop Firehose stream encryption fails. This happens when the KMS service throws one of\n the following exception types: AccessDeniedException,\n InvalidStateException, DisabledException, or\n NotFoundException.

", "smithy.api#error": "client" } }, @@ -4420,7 +4886,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "^arn:" + "smithy.api#pattern": "^arn:.*:kinesis:[a-zA-Z0-9\\-]+:\\d{12}:stream/[a-zA-Z0-9_.-]+$" } }, "com.amazonaws.firehose#KinesisStreamSourceConfiguration": { @@ -4442,7 +4908,7 @@ } }, "traits": { - "smithy.api#documentation": "

The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as\n the source for a delivery stream.

" + "smithy.api#documentation": "

The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as\n the source for a Firehose stream.

" } }, "com.amazonaws.firehose#KinesisStreamSourceDescription": { @@ -4468,7 +4934,7 @@ } }, "traits": { - "smithy.api#documentation": "

Details about a Kinesis data stream used as the source for a Firehose\n delivery stream.

" + "smithy.api#documentation": "

Details about a Kinesis data stream used as the source for a Firehose\n Firehose stream.

" } }, "com.amazonaws.firehose#LimitExceededException": { @@ -4495,7 +4961,7 @@ "target": "com.amazonaws.firehose#ListDeliveryStreamsOutput" }, "traits": { - "smithy.api#documentation": "

Lists your delivery streams in alphabetical order of their names.

\n

The number of delivery streams might be too large to return using a single call to\n ListDeliveryStreams. You can limit the number of delivery streams returned,\n using the Limit parameter. To determine whether there are more delivery\n streams to list, check the value of HasMoreDeliveryStreams in the output. If\n there are more delivery streams to list, you can request them by calling this operation\n again and setting the ExclusiveStartDeliveryStreamName parameter to the name\n of the last delivery stream returned in the last call.

" + "smithy.api#documentation": "

Lists your Firehose streams in alphabetical order of their names.

\n

The number of Firehose streams might be too large to return using a single call to\n ListDeliveryStreams. You can limit the number of Firehose streams returned,\n using the Limit parameter. To determine whether there are more delivery\n streams to list, check the value of HasMoreDeliveryStreams in the output. If\n there are more Firehose streams to list, you can request them by calling this operation\n again and setting the ExclusiveStartDeliveryStreamName parameter to the name\n of the last Firehose stream returned in the last call.

" } }, "com.amazonaws.firehose#ListDeliveryStreamsInput": { @@ -4504,19 +4970,19 @@ "Limit": { "target": "com.amazonaws.firehose#ListDeliveryStreamsInputLimit", "traits": { - "smithy.api#documentation": "

The maximum number of delivery streams to list. The default value is 10.

" + "smithy.api#documentation": "

The maximum number of Firehose streams to list. The default value is 10.

" } }, "DeliveryStreamType": { "target": "com.amazonaws.firehose#DeliveryStreamType", "traits": { - "smithy.api#documentation": "

The delivery stream type. This can be one of the following values:

\n \n

This parameter is optional. If this parameter is omitted, delivery streams of all\n types are returned.

" + "smithy.api#documentation": "

The Firehose stream type. This can be one of the following values:

\n \n

This parameter is optional. If this parameter is omitted, Firehose streams of all\n types are returned.

" } }, "ExclusiveStartDeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The list of delivery streams returned by this call to\n ListDeliveryStreams will start with the delivery stream whose name comes\n alphabetically immediately after the name you specify in\n ExclusiveStartDeliveryStreamName.

" + "smithy.api#documentation": "

The list of Firehose streams returned by this call to\n ListDeliveryStreams will start with the Firehose stream whose name comes\n alphabetically immediately after the name you specify in\n ExclusiveStartDeliveryStreamName.

" } } }, @@ -4539,14 +5005,14 @@ "DeliveryStreamNames": { "target": "com.amazonaws.firehose#DeliveryStreamNameList", "traits": { - "smithy.api#documentation": "

The names of the delivery streams.

", + "smithy.api#documentation": "

The names of the Firehose streams.

", "smithy.api#required": {} } }, "HasMoreDeliveryStreams": { "target": "com.amazonaws.firehose#BooleanObject", "traits": { - "smithy.api#documentation": "

Indicates whether there are more delivery streams available to list.

", + "smithy.api#documentation": "

Indicates whether there are more Firehose streams available to list.

", "smithy.api#required": {} } } @@ -4587,7 +5053,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the tags for the specified delivery stream. This operation has a limit of five\n transactions per second per account.

" + "smithy.api#documentation": "

Lists the tags for the specified Firehose stream. This operation has a limit of five\n transactions per second per account.

" } }, "com.amazonaws.firehose#ListTagsForDeliveryStreamInput": { @@ -4596,7 +5062,7 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream whose tags you want to list.

", + "smithy.api#documentation": "

The name of the Firehose stream whose tags you want to list.

", "smithy.api#required": {} } }, @@ -4609,7 +5075,7 @@ "Limit": { "target": "com.amazonaws.firehose#ListTagsForDeliveryStreamInputLimit", "traits": { - "smithy.api#documentation": "

The number of tags to return. If this number is less than the total number of tags\n associated with the delivery stream, HasMoreTags is set to true\n in the response. To list additional tags, set ExclusiveStartTagKey to the last\n key in the response.

" + "smithy.api#documentation": "

The number of tags to return. If this number is less than the total number of tags\n associated with the Firehose stream, HasMoreTags is set to true\n in the response. To list additional tags, set ExclusiveStartTagKey to the last\n key in the response.

" } } }, @@ -4760,7 +5226,7 @@ } }, "traits": { - "smithy.api#documentation": "

Details about the Amazon MSK cluster used as the source for a Firehose\n delivery stream.

" + "smithy.api#documentation": "

Details about the Amazon MSK cluster used as the source for a Firehose\n Firehose stream.

" } }, "com.amazonaws.firehose#NoEncryptionConfig": { @@ -5058,6 +5524,41 @@ } } }, + "com.amazonaws.firehose#PartitionField": { + "type": "structure", + "members": { + "SourceName": { + "target": "com.amazonaws.firehose#NonEmptyStringWithoutWhitespace", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, + "com.amazonaws.firehose#PartitionFields": { + "type": "list", + "member": { + "target": "com.amazonaws.firehose#PartitionField" + } + }, + "com.amazonaws.firehose#PartitionSpec": { + "type": "structure", + "members": { + "Identity": { + "target": "com.amazonaws.firehose#PartitionFields", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, "com.amazonaws.firehose#Password": { "type": "string", "traits": { @@ -5311,7 +5812,7 @@ } ], "traits": { - "smithy.api#documentation": "

Writes a single data record into an Amazon Firehose delivery stream. To\n write multiple data records into a delivery stream, use PutRecordBatch.\n Applications using these operations are referred to as producers.

\n

By default, each delivery stream can take in up to 2,000 transactions per second,\n 5,000 records per second, or 5 MB per second. If you use PutRecord and\n PutRecordBatch, the limits are an aggregate across these two\n operations for each delivery stream. For more information about limits and how to request\n an increase, see Amazon\n Firehose Limits.

\n

Firehose accumulates and publishes a particular metric for a customer account in one minute intervals. It is possible that the bursts of incoming bytes/records ingested to a delivery stream last only for a few seconds. Due to this, the actual spikes in the traffic might not be fully visible in the customer's 1 minute CloudWatch metrics.

\n

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000\n KiB in size, and any kind of data. For example, it can be a segment from a log file,\n geographic location data, website clickstream data, and so on.

\n

Firehose buffers records before delivering them to the destination. To\n disambiguate the data blobs at the destination, a common solution is to use delimiters in\n the data, such as a newline (\\n) or some other character unique within the\n data. This allows the consumer application to parse individual data items when reading the\n data from the destination.

\n

The PutRecord operation returns a RecordId, which is a\n unique string assigned to each record. Producer applications can use this ID for purposes\n such as auditability and investigation.

\n

If the PutRecord operation throws a\n ServiceUnavailableException, the API is automatically reinvoked (retried) 3\n times. If the exception persists, it is possible that the throughput limits have been\n exceeded for the delivery stream.

\n

Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) can\n result in data duplicates. For larger data assets, allow for a longer time out before\n retrying Put API operations.

\n

Data records sent to Firehose are stored for 24 hours from the time they\n are added to a delivery stream as it tries to send the records to the destination. If the\n destination is unreachable for more than 24 hours, the data is no longer\n available.

\n \n

Don't concatenate two or more base64 strings to form the data fields of your records.\n Instead, concatenate the raw data, then perform base64 encoding.

\n
" + "smithy.api#documentation": "

Writes a single data record into an Firehose stream. To\n write multiple data records into a Firehose stream, use PutRecordBatch.\n Applications using these operations are referred to as producers.

\n

By default, each Firehose stream can take in up to 2,000 transactions per second,\n 5,000 records per second, or 5 MB per second. If you use PutRecord and\n PutRecordBatch, the limits are an aggregate across these two\n operations for each Firehose stream. For more information about limits and how to request\n an increase, see Amazon\n Firehose Limits.

\n

Firehose accumulates and publishes a particular metric for a customer account in one minute intervals. It is possible that the bursts of incoming bytes/records ingested to a Firehose stream last only for a few seconds. Due to this, the actual spikes in the traffic might not be fully visible in the customer's 1 minute CloudWatch metrics.

\n

You must specify the name of the Firehose stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000\n KiB in size, and any kind of data. For example, it can be a segment from a log file,\n geographic location data, website clickstream data, and so on.

\n

For multi record de-aggregation, you can not put more than 500 records even if the\n data blob length is less than 1000 KiB. If you include more than 500 records, the request\n succeeds but the record de-aggregation doesn't work as expected and transformation lambda\n is invoked with the complete base64 encoded data blob instead of de-aggregated base64\n decoded records.

\n

Firehose buffers records before delivering them to the destination. To\n disambiguate the data blobs at the destination, a common solution is to use delimiters in\n the data, such as a newline (\\n) or some other character unique within the\n data. This allows the consumer application to parse individual data items when reading the\n data from the destination.

\n

The PutRecord operation returns a RecordId, which is a\n unique string assigned to each record. Producer applications can use this ID for purposes\n such as auditability and investigation.

\n

If the PutRecord operation throws a\n ServiceUnavailableException, the API is automatically reinvoked (retried) 3\n times. If the exception persists, it is possible that the throughput limits have been\n exceeded for the Firehose stream.

\n

Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) can\n result in data duplicates. For larger data assets, allow for a longer time out before\n retrying Put API operations.

\n

Data records sent to Firehose are stored for 24 hours from the time they\n are added to a Firehose stream as it tries to send the records to the destination. If the\n destination is unreachable for more than 24 hours, the data is no longer\n available.

\n \n

Don't concatenate two or more base64 strings to form the data fields of your records.\n Instead, concatenate the raw data, then perform base64 encoding.

\n
" } }, "com.amazonaws.firehose#PutRecordBatch": { @@ -5340,7 +5841,7 @@ } ], "traits": { - "smithy.api#documentation": "

Writes multiple data records into a delivery stream in a single call, which can\n achieve higher throughput per producer than when writing single records. To write single\n data records into a delivery stream, use PutRecord. Applications using\n these operations are referred to as producers.

\n

Firehose accumulates and publishes a particular metric for a customer account in one minute intervals. It is possible that the bursts of incoming bytes/records ingested to a delivery stream last only for a few seconds. Due to this, the actual spikes in the traffic might not be fully visible in the customer's 1 minute CloudWatch metrics.

\n

For information about service quota, see Amazon Firehose\n Quota.

\n

Each PutRecordBatch request supports up to 500 records. Each record\n in the request can be as large as 1,000 KB (before base64 encoding), up to a limit of 4 MB\n for the entire request. These limits cannot be changed.

\n

You must specify the name of the delivery stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000\n KB in size, and any kind of data. For example, it could be a segment from a log file,\n geographic location data, website clickstream data, and so on.

\n

Firehose buffers records before delivering them to the destination. To\n disambiguate the data blobs at the destination, a common solution is to use delimiters in\n the data, such as a newline (\\n) or some other character unique within the\n data. This allows the consumer application to parse individual data items when reading the\n data from the destination.

\n

The PutRecordBatch response includes a count of failed records,\n FailedPutCount, and an array of responses, RequestResponses.\n Even if the PutRecordBatch call succeeds, the value of\n FailedPutCount may be greater than 0, indicating that there are records for\n which the operation didn't succeed. Each entry in the RequestResponses array\n provides additional information about the processed record. It directly correlates with a\n record in the request array using the same ordering, from the top to the bottom. The\n response array always includes the same number of records as the request array.\n RequestResponses includes both successfully and unsuccessfully processed\n records. Firehose tries to process all records in each PutRecordBatch request. A single record failure does not stop the processing\n of subsequent records.

\n

A successfully processed record includes a RecordId value, which is\n unique for the record. An unsuccessfully processed record includes ErrorCode\n and ErrorMessage values. ErrorCode reflects the type of error,\n and is one of the following values: ServiceUnavailableException or\n InternalFailure. ErrorMessage provides more detailed\n information about the error.

\n

If there is an internal server error or a timeout, the write might have completed or\n it might have failed. If FailedPutCount is greater than 0, retry the request,\n resending only those records that might have failed processing. This minimizes the possible\n duplicate records and also reduces the total bytes sent (and corresponding charges). We\n recommend that you handle any duplicates at the destination.

\n

If PutRecordBatch throws ServiceUnavailableException,\n the API is automatically reinvoked (retried) 3 times. If the exception persists, it is\n possible that the throughput limits have been exceeded for the delivery stream.

\n

Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) can\n result in data duplicates. For larger data assets, allow for a longer time out before\n retrying Put API operations.

\n

Data records sent to Firehose are stored for 24 hours from the time they\n are added to a delivery stream as it attempts to send the records to the destination. If\n the destination is unreachable for more than 24 hours, the data is no longer\n available.

\n \n

Don't concatenate two or more base64 strings to form the data fields of your records.\n Instead, concatenate the raw data, then perform base64 encoding.

\n
" + "smithy.api#documentation": "

Writes multiple data records into a Firehose stream in a single call, which can\n achieve higher throughput per producer than when writing single records. To write single\n data records into a Firehose stream, use PutRecord. Applications using\n these operations are referred to as producers.

\n

Firehose accumulates and publishes a particular metric for a customer account in one minute intervals. It is possible that the bursts of incoming bytes/records ingested to a Firehose stream last only for a few seconds. Due to this, the actual spikes in the traffic might not be fully visible in the customer's 1 minute CloudWatch metrics.

\n

For information about service quota, see Amazon Firehose\n Quota.

\n

Each PutRecordBatch request supports up to 500 records. Each record\n in the request can be as large as 1,000 KB (before base64 encoding), up to a limit of 4 MB\n for the entire request. These limits cannot be changed.

\n

You must specify the name of the Firehose stream and the data record when using PutRecord. The data record consists of a data blob that can be up to 1,000\n KB in size, and any kind of data. For example, it could be a segment from a log file,\n geographic location data, website clickstream data, and so on.

\n

For multi record de-aggregation, you can not put more than 500 records even if the\n data blob length is less than 1000 KiB. If you include more than 500 records, the request\n succeeds but the record de-aggregation doesn't work as expected and transformation lambda\n is invoked with the complete base64 encoded data blob instead of de-aggregated base64\n decoded records.

\n

Firehose buffers records before delivering them to the destination. To\n disambiguate the data blobs at the destination, a common solution is to use delimiters in\n the data, such as a newline (\\n) or some other character unique within the\n data. This allows the consumer application to parse individual data items when reading the\n data from the destination.

\n

The PutRecordBatch response includes a count of failed records,\n FailedPutCount, and an array of responses, RequestResponses.\n Even if the PutRecordBatch call succeeds, the value of\n FailedPutCount may be greater than 0, indicating that there are records for\n which the operation didn't succeed. Each entry in the RequestResponses array\n provides additional information about the processed record. It directly correlates with a\n record in the request array using the same ordering, from the top to the bottom. The\n response array always includes the same number of records as the request array.\n RequestResponses includes both successfully and unsuccessfully processed\n records. Firehose tries to process all records in each PutRecordBatch request. A single record failure does not stop the processing\n of subsequent records.

\n

A successfully processed record includes a RecordId value, which is\n unique for the record. An unsuccessfully processed record includes ErrorCode\n and ErrorMessage values. ErrorCode reflects the type of error,\n and is one of the following values: ServiceUnavailableException or\n InternalFailure. ErrorMessage provides more detailed\n information about the error.

\n

If there is an internal server error or a timeout, the write might have completed or\n it might have failed. If FailedPutCount is greater than 0, retry the request,\n resending only those records that might have failed processing. This minimizes the possible\n duplicate records and also reduces the total bytes sent (and corresponding charges). We\n recommend that you handle any duplicates at the destination.

\n

If PutRecordBatch throws ServiceUnavailableException,\n the API is automatically reinvoked (retried) 3 times. If the exception persists, it is\n possible that the throughput limits have been exceeded for the Firehose stream.

\n

Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) can\n result in data duplicates. For larger data assets, allow for a longer time out before\n retrying Put API operations.

\n

Data records sent to Firehose are stored for 24 hours from the time they\n are added to a Firehose stream as it attempts to send the records to the destination. If\n the destination is unreachable for more than 24 hours, the data is no longer\n available.

\n \n

Don't concatenate two or more base64 strings to form the data fields of your records.\n Instead, concatenate the raw data, then perform base64 encoding.

\n
" } }, "com.amazonaws.firehose#PutRecordBatchInput": { @@ -5349,7 +5850,7 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream.

", + "smithy.api#documentation": "

The name of the Firehose stream.

", "smithy.api#required": {} } }, @@ -5428,7 +5929,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains the result for an individual record from a PutRecordBatch\n request. If the record is successfully added to your delivery stream, it receives a record\n ID. If the record fails to be added to your delivery stream, the result includes an error\n code and an error message.

" + "smithy.api#documentation": "

Contains the result for an individual record from a PutRecordBatch\n request. If the record is successfully added to your Firehose stream, it receives a record\n ID. If the record fails to be added to your Firehose stream, the result includes an error\n code and an error message.

" } }, "com.amazonaws.firehose#PutRecordBatchResponseEntryList": { @@ -5449,7 +5950,7 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream.

", + "smithy.api#documentation": "

The name of the Firehose stream.

", "smithy.api#required": {} } }, @@ -5509,7 +6010,7 @@ } }, "traits": { - "smithy.api#documentation": "

The unit of data in a delivery stream.

" + "smithy.api#documentation": "

The unit of data in a Firehose stream.

" } }, "com.amazonaws.firehose#RedshiftDestinationConfiguration": { @@ -5570,7 +6071,7 @@ "S3BackupMode": { "target": "com.amazonaws.firehose#RedshiftS3BackupMode", "traits": { - "smithy.api#documentation": "

The Amazon S3 backup mode. After you create a delivery stream, you can update it to\n enable Amazon S3 backup if it is disabled. If backup is enabled, you can't update the\n delivery stream to disable it.

" + "smithy.api#documentation": "

The Amazon S3 backup mode. After you create a Firehose stream, you can update it to\n enable Amazon S3 backup if it is disabled. If backup is enabled, you can't update the\n Firehose stream to disable it.

" } }, "S3BackupConfiguration": { @@ -5582,7 +6083,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The CloudWatch logging options for your Firehose stream.

" } }, "SecretsManagerConfiguration": { @@ -5660,7 +6161,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } }, "SecretsManagerConfiguration": { @@ -5728,7 +6229,7 @@ "S3BackupMode": { "target": "com.amazonaws.firehose#RedshiftS3BackupMode", "traits": { - "smithy.api#documentation": "

You can update a delivery stream to enable Amazon S3 backup if it is disabled. If\n backup is enabled, you can't update the delivery stream to disable it.

" + "smithy.api#documentation": "

You can update a Firehose stream to enable Amazon S3 backup if it is disabled. If\n backup is enabled, you can't update the Firehose stream to disable it.

" } }, "S3BackupUpdate": { @@ -5740,7 +6241,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } }, "SecretsManagerConfiguration": { @@ -5839,12 +6340,12 @@ "DurationInSeconds": { "target": "com.amazonaws.firehose#RetryDurationInSeconds", "traits": { - "smithy.api#documentation": "

The period of time during which Firehose retries to deliver data to the\n specified Amazon S3 prefix.

" + "smithy.api#documentation": "

The period of time during which Firehose retries to deliver data to the\n specified destination.

" } } }, "traits": { - "smithy.api#documentation": "

The retry behavior in case Firehose is unable to deliver data to an Amazon\n S3 prefix.

" + "smithy.api#documentation": "

The retry behavior in case Firehose is unable to deliver data to a destination.

" } }, "com.amazonaws.firehose#RoleARN": { @@ -5854,7 +6355,7 @@ "min": 1, "max": 512 }, - "smithy.api#pattern": "^arn:" + "smithy.api#pattern": "^arn:.*:iam::\\d{12}:role/[a-zA-Z_0-9+=,.@\\-_/]+$" } }, "com.amazonaws.firehose#S3BackupMode": { @@ -5924,7 +6425,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The CloudWatch logging options for your Firehose stream.

" } } }, @@ -5985,7 +6486,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } } }, @@ -6041,7 +6542,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The CloudWatch logging options for your Firehose stream.

" } } }, @@ -6049,6 +6550,23 @@ "smithy.api#documentation": "

Describes an update for a destination in Amazon S3.

" } }, + "com.amazonaws.firehose#SSLMode": { + "type": "enum", + "members": { + "Disabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Disabled" + } + }, + "Enabled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Enabled" + } + } + } + }, "com.amazonaws.firehose#SchemaConfiguration": { "type": "structure", "members": { @@ -6093,6 +6611,21 @@ "smithy.api#documentation": "

Specifies the schema to which you want Firehose to configure your data\n before it writes it to Amazon S3. This parameter is required if Enabled is set\n to true.

" } }, + "com.amazonaws.firehose#SchemaEvolutionConfiguration": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.firehose#BooleanObject", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, "com.amazonaws.firehose#SecretARN": { "type": "string", "traits": { @@ -6100,7 +6633,7 @@ "min": 1, "max": 2048 }, - "smithy.api#pattern": "^arn:" + "smithy.api#pattern": "^arn:.*:secretsmanager:[a-zA-Z0-9\\-]+:\\d{12}:secret:[a-zA-Z0-9\\-/_+=.@]+$" } }, "com.amazonaws.firehose#SecretsManagerConfiguration": { @@ -6109,7 +6642,7 @@ "SecretARN": { "target": "com.amazonaws.firehose#SecretARN", "traits": { - "smithy.api#documentation": "

The ARN of the secret that stores your credentials. It must be in the same region as the\n Firehose stream and the role. The secret ARN can reside in a different account than the delivery stream and role as Firehose supports cross-account secret access. This parameter is required when Enabled is set to True.

" + "smithy.api#documentation": "

The ARN of the secret that stores your credentials. It must be in the same region as the\n Firehose stream and the role. The secret ARN can reside in a different account than the Firehose stream and role as Firehose supports cross-account secret access. This parameter is required when Enabled is set to True.

" } }, "RoleARN": { @@ -6121,7 +6654,7 @@ "Enabled": { "target": "com.amazonaws.firehose#BooleanObject", "traits": { - "smithy.api#documentation": "

Specifies whether you want to use the the secrets manager feature. When set as\n True the secrets manager configuration overwrites the existing secrets in\n the destination configuration. When it's set to False Firehose falls back to\n the credentials in the destination configuration.

", + "smithy.api#documentation": "

Specifies whether you want to use the secrets manager feature. When set as\n True the secrets manager configuration overwrites the existing secrets in\n the destination configuration. When it's set to False Firehose falls back to\n the credentials in the destination configuration.

", "smithy.api#required": {} } } @@ -6173,7 +6706,7 @@ } }, "traits": { - "smithy.api#documentation": "

The service is unavailable. Back off and retry the operation. If you continue to see\n the exception, throughput limits for the delivery stream may have been exceeded. For more\n information about limits and how to request an increase, see Amazon Firehose\n Limits.

", + "smithy.api#documentation": "

The service is unavailable. Back off and retry the operation. If you continue to see\n the exception, throughput limits for the Firehose stream may have been exceeded. For more\n information about limits and how to request an increase, see Amazon Firehose\n Limits.

", "smithy.api#error": "server", "smithy.api#httpError": 503 } @@ -6187,6 +6720,46 @@ } } }, + "com.amazonaws.firehose#SnapshotRequestedBy": { + "type": "enum", + "members": { + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USER" + } + }, + "FIREHOSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FIREHOSE" + } + } + } + }, + "com.amazonaws.firehose#SnapshotStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUSPENDED" + } + } + } + }, "com.amazonaws.firehose#SnowflakeAccountUrl": { "type": "string", "traits": { @@ -6204,7 +6777,7 @@ "SizeInMBs": { "target": "com.amazonaws.firehose#SnowflakeBufferingSizeInMBs", "traits": { - "smithy.api#documentation": "

\n Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 1.\n

" + "smithy.api#documentation": "

Buffer incoming data to the specified size, in MBs, before delivering it to the\n destination. The default value is 128.

" } }, "IntervalInSeconds": { @@ -6603,7 +7176,7 @@ "S3BackupMode": { "target": "com.amazonaws.firehose#SnowflakeS3BackupMode", "traits": { - "smithy.api#documentation": "

Choose an S3 backup mode

" + "smithy.api#documentation": "

Choose an S3 backup mode. Once you set the mode as AllData, you can not\n change it to FailedDataOnly.

" } }, "S3Update": { @@ -6797,10 +7370,16 @@ "traits": { "smithy.api#documentation": "

The configuration description for the Amazon MSK cluster to be used as the source for a delivery\n stream.

" } + }, + "DatabaseSourceDescription": { + "target": "com.amazonaws.firehose#DatabaseSourceDescription", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } } }, "traits": { - "smithy.api#documentation": "

Details about a Kinesis data stream used as the source for a Firehose\n delivery stream.

" + "smithy.api#documentation": "

Details about a Kinesis data stream used as the source for a Firehose\n Firehose stream.

" } }, "com.amazonaws.firehose#SplunkBufferingHints": { @@ -6898,7 +7477,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } }, "BufferingHints": { @@ -6972,7 +7551,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } }, "BufferingHints": { @@ -7046,7 +7625,7 @@ "CloudWatchLoggingOptions": { "target": "com.amazonaws.firehose#CloudWatchLoggingOptions", "traits": { - "smithy.api#documentation": "

The Amazon CloudWatch logging options for your delivery stream.

" + "smithy.api#documentation": "

The Amazon CloudWatch logging options for your Firehose stream.

" } }, "BufferingHints": { @@ -7132,7 +7711,7 @@ } ], "traits": { - "smithy.api#documentation": "

Enables server-side encryption (SSE) for the delivery stream.

\n

This operation is asynchronous. It returns immediately. When you invoke it, Firehose first sets the encryption status of the stream to ENABLING, and then\n to ENABLED. The encryption status of a delivery stream is the\n Status property in DeliveryStreamEncryptionConfiguration.\n If the operation fails, the encryption status changes to ENABLING_FAILED. You\n can continue to read and write data to your delivery stream while the encryption status is\n ENABLING, but the data is not encrypted. It can take up to 5 seconds after\n the encryption status changes to ENABLED before all records written to the\n delivery stream are encrypted. To find out whether a record or a batch of records was\n encrypted, check the response elements PutRecordOutput$Encrypted and\n PutRecordBatchOutput$Encrypted, respectively.

\n

To check the encryption status of a delivery stream, use DescribeDeliveryStream.

\n

Even if encryption is currently enabled for a delivery stream, you can still invoke this\n operation on it to change the ARN of the CMK or both its type and ARN. If you invoke this\n method to change the CMK, and the old CMK is of type CUSTOMER_MANAGED_CMK,\n Firehose schedules the grant it had on the old CMK for retirement. If the new\n CMK is of type CUSTOMER_MANAGED_CMK, Firehose creates a grant\n that enables it to use the new CMK to encrypt and decrypt data and to manage the\n grant.

\n

For the KMS grant creation to be successful, the Firehose API operations\n StartDeliveryStreamEncryption and CreateDeliveryStream should\n not be called with session credentials that are more than 6 hours old.

\n

If a delivery stream already has encryption enabled and then you invoke this operation\n to change the ARN of the CMK or both its type and ARN and you get\n ENABLING_FAILED, this only means that the attempt to change the CMK failed.\n In this case, encryption remains enabled with the old CMK.

\n

If the encryption status of your delivery stream is ENABLING_FAILED, you\n can invoke this operation again with a valid CMK. The CMK must be enabled and the key\n policy mustn't explicitly deny the permission for Firehose to invoke KMS\n encrypt and decrypt operations.

\n

You can enable SSE for a delivery stream only if it's a delivery stream that uses\n DirectPut as its source.

\n

The StartDeliveryStreamEncryption and\n StopDeliveryStreamEncryption operations have a combined limit of 25 calls\n per delivery stream per 24 hours. For example, you reach the limit if you call\n StartDeliveryStreamEncryption 13 times and\n StopDeliveryStreamEncryption 12 times for the same delivery stream in a\n 24-hour period.

" + "smithy.api#documentation": "

Enables server-side encryption (SSE) for the Firehose stream.

\n

This operation is asynchronous. It returns immediately. When you invoke it, Firehose first sets the encryption status of the stream to ENABLING, and then\n to ENABLED. The encryption status of a Firehose stream is the\n Status property in DeliveryStreamEncryptionConfiguration.\n If the operation fails, the encryption status changes to ENABLING_FAILED. You\n can continue to read and write data to your Firehose stream while the encryption status is\n ENABLING, but the data is not encrypted. It can take up to 5 seconds after\n the encryption status changes to ENABLED before all records written to the\n Firehose stream are encrypted. To find out whether a record or a batch of records was\n encrypted, check the response elements PutRecordOutput$Encrypted and\n PutRecordBatchOutput$Encrypted, respectively.

\n

To check the encryption status of a Firehose stream, use DescribeDeliveryStream.

\n

Even if encryption is currently enabled for a Firehose stream, you can still invoke this\n operation on it to change the ARN of the CMK or both its type and ARN. If you invoke this\n method to change the CMK, and the old CMK is of type CUSTOMER_MANAGED_CMK,\n Firehose schedules the grant it had on the old CMK for retirement. If the new\n CMK is of type CUSTOMER_MANAGED_CMK, Firehose creates a grant\n that enables it to use the new CMK to encrypt and decrypt data and to manage the\n grant.

\n

For the KMS grant creation to be successful, the Firehose API operations\n StartDeliveryStreamEncryption and CreateDeliveryStream should\n not be called with session credentials that are more than 6 hours old.

\n

If a Firehose stream already has encryption enabled and then you invoke this operation\n to change the ARN of the CMK or both its type and ARN and you get\n ENABLING_FAILED, this only means that the attempt to change the CMK failed.\n In this case, encryption remains enabled with the old CMK.

\n

If the encryption status of your Firehose stream is ENABLING_FAILED, you\n can invoke this operation again with a valid CMK. The CMK must be enabled and the key\n policy mustn't explicitly deny the permission for Firehose to invoke KMS\n encrypt and decrypt operations.

\n

You can enable SSE for a Firehose stream only if it's a Firehose stream that uses\n DirectPut as its source.

\n

The StartDeliveryStreamEncryption and\n StopDeliveryStreamEncryption operations have a combined limit of 25 calls\n per Firehose stream per 24 hours. For example, you reach the limit if you call\n StartDeliveryStreamEncryption 13 times and\n StopDeliveryStreamEncryption 12 times for the same Firehose stream in a\n 24-hour period.

" } }, "com.amazonaws.firehose#StartDeliveryStreamEncryptionInput": { @@ -7141,7 +7720,7 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream for which you want to enable server-side encryption\n (SSE).

", + "smithy.api#documentation": "

The name of the Firehose stream for which you want to enable server-side encryption\n (SSE).

", "smithy.api#required": {} } }, @@ -7186,7 +7765,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disables server-side encryption (SSE) for the delivery stream.

\n

This operation is asynchronous. It returns immediately. When you invoke it, Firehose first sets the encryption status of the stream to DISABLING, and then\n to DISABLED. You can continue to read and write data to your stream while its\n status is DISABLING. It can take up to 5 seconds after the encryption status\n changes to DISABLED before all records written to the delivery stream are no\n longer subject to encryption. To find out whether a record or a batch of records was\n encrypted, check the response elements PutRecordOutput$Encrypted and\n PutRecordBatchOutput$Encrypted, respectively.

\n

To check the encryption state of a delivery stream, use DescribeDeliveryStream.

\n

If SSE is enabled using a customer managed CMK and then you invoke\n StopDeliveryStreamEncryption, Firehose schedules the related\n KMS grant for retirement and then retires it after it ensures that it is finished\n delivering records to the destination.

\n

The StartDeliveryStreamEncryption and\n StopDeliveryStreamEncryption operations have a combined limit of 25 calls\n per delivery stream per 24 hours. For example, you reach the limit if you call\n StartDeliveryStreamEncryption 13 times and\n StopDeliveryStreamEncryption 12 times for the same delivery stream in a\n 24-hour period.

" + "smithy.api#documentation": "

Disables server-side encryption (SSE) for the Firehose stream.

\n

This operation is asynchronous. It returns immediately. When you invoke it, Firehose first sets the encryption status of the stream to DISABLING, and then\n to DISABLED. You can continue to read and write data to your stream while its\n status is DISABLING. It can take up to 5 seconds after the encryption status\n changes to DISABLED before all records written to the Firehose stream are no\n longer subject to encryption. To find out whether a record or a batch of records was\n encrypted, check the response elements PutRecordOutput$Encrypted and\n PutRecordBatchOutput$Encrypted, respectively.

\n

To check the encryption state of a Firehose stream, use DescribeDeliveryStream.

\n

If SSE is enabled using a customer managed CMK and then you invoke\n StopDeliveryStreamEncryption, Firehose schedules the related\n KMS grant for retirement and then retires it after it ensures that it is finished\n delivering records to the destination.

\n

The StartDeliveryStreamEncryption and\n StopDeliveryStreamEncryption operations have a combined limit of 25 calls\n per Firehose stream per 24 hours. For example, you reach the limit if you call\n StartDeliveryStreamEncryption 13 times and\n StopDeliveryStreamEncryption 12 times for the same Firehose stream in a\n 24-hour period.

" } }, "com.amazonaws.firehose#StopDeliveryStreamEncryptionInput": { @@ -7195,7 +7774,7 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream for which you want to disable server-side encryption\n (SSE).

", + "smithy.api#documentation": "

The name of the Firehose stream for which you want to disable server-side encryption\n (SSE).

", "smithy.api#required": {} } } @@ -7211,6 +7790,16 @@ "smithy.api#output": {} } }, + "com.amazonaws.firehose#StringWithLettersDigitsUnderscoresDots": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\.\\_]+$" + } + }, "com.amazonaws.firehose#SubnetIdList": { "type": "list", "member": { @@ -7223,6 +7812,21 @@ } } }, + "com.amazonaws.firehose#TableCreationConfiguration": { + "type": "structure", + "members": { + "Enabled": { + "target": "com.amazonaws.firehose#BooleanObject", + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + } + }, "com.amazonaws.firehose#Tag": { "type": "structure", "members": { @@ -7241,7 +7845,7 @@ } }, "traits": { - "smithy.api#documentation": "

Metadata that you can assign to a delivery stream, consisting of a key-value\n pair.

" + "smithy.api#documentation": "

Metadata that you can assign to a Firehose stream, consisting of a key-value\n pair.

" } }, "com.amazonaws.firehose#TagDeliveryStream": { @@ -7267,7 +7871,7 @@ } ], "traits": { - "smithy.api#documentation": "

Adds or updates tags for the specified delivery stream. A tag is a key-value pair\n that you can define and assign to Amazon Web Services resources. If you specify a tag that\n already exists, the tag value is replaced with the value that you specify in the request.\n Tags are metadata. For example, you can add friendly names and descriptions or other types\n of information that can help you distinguish the delivery stream. For more information\n about tags, see Using Cost Allocation\n Tags in the Amazon Web Services Billing and Cost Management User\n Guide.

\n

Each delivery stream can have up to 50 tags.

\n

This operation has a limit of five transactions per second per account.

" + "smithy.api#documentation": "

Adds or updates tags for the specified Firehose stream. A tag is a key-value pair\n that you can define and assign to Amazon Web Services resources. If you specify a tag that\n already exists, the tag value is replaced with the value that you specify in the request.\n Tags are metadata. For example, you can add friendly names and descriptions or other types\n of information that can help you distinguish the Firehose stream. For more information\n about tags, see Using Cost Allocation\n Tags in the Amazon Web Services Billing and Cost Management User\n Guide.

\n

Each Firehose stream can have up to 50 tags.

\n

This operation has a limit of five transactions per second per account.

" } }, "com.amazonaws.firehose#TagDeliveryStreamInput": { @@ -7276,7 +7880,7 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream to which you want to add the tags.

", + "smithy.api#documentation": "

The name of the Firehose stream to which you want to add the tags.

", "smithy.api#required": {} } }, @@ -7379,7 +7983,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes tags from the specified delivery stream. Removed tags are deleted, and you\n can't recover them after this operation successfully completes.

\n

If you specify a tag that doesn't exist, the operation ignores it.

\n

This operation has a limit of five transactions per second per account.

" + "smithy.api#documentation": "

Removes tags from the specified Firehose stream. Removed tags are deleted, and you\n can't recover them after this operation successfully completes.

\n

If you specify a tag that doesn't exist, the operation ignores it.

\n

This operation has a limit of five transactions per second per account.

" } }, "com.amazonaws.firehose#UntagDeliveryStreamInput": { @@ -7388,7 +7992,7 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream.

", + "smithy.api#documentation": "

The name of the Firehose stream.

", "smithy.api#required": {} } }, @@ -7434,7 +8038,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the specified destination of the specified delivery stream.

\n

Use this operation to change the destination type (for example, to replace the Amazon\n S3 destination with Amazon Redshift) or change the parameters associated with a destination\n (for example, to change the bucket name of the Amazon S3 destination). The update might not\n occur immediately. The target delivery stream remains active while the configurations are\n updated, so data writes to the delivery stream can continue during this process. The\n updated configurations are usually effective within a few minutes.

\n

Switching between Amazon OpenSearch Service and other services is not supported. For\n an Amazon OpenSearch Service destination, you can only update to another Amazon OpenSearch\n Service destination.

\n

If the destination type is the same, Firehose merges the configuration\n parameters specified with the destination configuration that already exists on the delivery\n stream. If any of the parameters are not specified in the call, the existing values are\n retained. For example, in the Amazon S3 destination, if EncryptionConfiguration is not specified, then the existing\n EncryptionConfiguration is maintained on the destination.

\n

If the destination type is not the same, for example, changing the destination from\n Amazon S3 to Amazon Redshift, Firehose does not merge any parameters. In this\n case, all parameters must be specified.

\n

Firehose uses CurrentDeliveryStreamVersionId to avoid race\n conditions and conflicting merges. This is a required field, and the service updates the\n configuration only if the existing configuration has a version ID that matches. After the\n update is applied successfully, the version ID is updated, and can be retrieved using DescribeDeliveryStream. Use the new version ID to set\n CurrentDeliveryStreamVersionId in the next call.

" + "smithy.api#documentation": "

Updates the specified destination of the specified Firehose stream.

\n

Use this operation to change the destination type (for example, to replace the Amazon\n S3 destination with Amazon Redshift) or change the parameters associated with a destination\n (for example, to change the bucket name of the Amazon S3 destination). The update might not\n occur immediately. The target Firehose stream remains active while the configurations are\n updated, so data writes to the Firehose stream can continue during this process. The\n updated configurations are usually effective within a few minutes.

\n

Switching between Amazon OpenSearch Service and other services is not supported. For\n an Amazon OpenSearch Service destination, you can only update to another Amazon OpenSearch\n Service destination.

\n

If the destination type is the same, Firehose merges the configuration\n parameters specified with the destination configuration that already exists on the delivery\n stream. If any of the parameters are not specified in the call, the existing values are\n retained. For example, in the Amazon S3 destination, if EncryptionConfiguration is not specified, then the existing\n EncryptionConfiguration is maintained on the destination.

\n

If the destination type is not the same, for example, changing the destination from\n Amazon S3 to Amazon Redshift, Firehose does not merge any parameters. In this\n case, all parameters must be specified.

\n

Firehose uses CurrentDeliveryStreamVersionId to avoid race\n conditions and conflicting merges. This is a required field, and the service updates the\n configuration only if the existing configuration has a version ID that matches. After the\n update is applied successfully, the version ID is updated, and can be retrieved using DescribeDeliveryStream. Use the new version ID to set\n CurrentDeliveryStreamVersionId in the next call.

" } }, "com.amazonaws.firehose#UpdateDestinationInput": { @@ -7443,7 +8047,7 @@ "DeliveryStreamName": { "target": "com.amazonaws.firehose#DeliveryStreamName", "traits": { - "smithy.api#documentation": "

The name of the delivery stream.

", + "smithy.api#documentation": "

The name of the Firehose stream.

", "smithy.api#required": {} } }, @@ -7519,7 +8123,7 @@ "IcebergDestinationUpdate": { "target": "com.amazonaws.firehose#IcebergDestinationUpdate", "traits": { - "smithy.api#documentation": "

\n Describes an update for a destination in Apache Iceberg Tables.\n

\n

Amazon Data Firehose is in preview release and is subject to change.

" + "smithy.api#documentation": "

\n Describes an update for a destination in Apache Iceberg Tables.\n

" } } }, @@ -7551,14 +8155,14 @@ "SubnetIds": { "target": "com.amazonaws.firehose#SubnetIdList", "traits": { - "smithy.api#documentation": "

The IDs of the subnets that you want Firehose to use to create ENIs in the\n VPC of the Amazon ES destination. Make sure that the routing tables and inbound and\n outbound rules allow traffic to flow from the subnets whose IDs are specified here to the\n subnets that have the destination Amazon ES endpoints. Firehose creates at\n least one ENI in each of the subnets that are specified here. Do not delete or modify these\n ENIs.

\n

The number of ENIs that Firehose creates in the subnets specified here\n scales up and down automatically based on throughput. To enable Firehose to\n scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To\n help you calculate the quota you need, assume that Firehose can create up to\n three ENIs for this delivery stream for each of the subnets specified here. For more\n information about ENI quota, see Network Interfaces\n in the Amazon VPC Quotas topic.

", + "smithy.api#documentation": "

The IDs of the subnets that you want Firehose to use to create ENIs in the\n VPC of the Amazon ES destination. Make sure that the routing tables and inbound and\n outbound rules allow traffic to flow from the subnets whose IDs are specified here to the\n subnets that have the destination Amazon ES endpoints. Firehose creates at\n least one ENI in each of the subnets that are specified here. Do not delete or modify these\n ENIs.

\n

The number of ENIs that Firehose creates in the subnets specified here\n scales up and down automatically based on throughput. To enable Firehose to\n scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To\n help you calculate the quota you need, assume that Firehose can create up to\n three ENIs for this Firehose stream for each of the subnets specified here. For more\n information about ENI quota, see Network Interfaces\n in the Amazon VPC Quotas topic.

", "smithy.api#required": {} } }, "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role that you want the delivery stream to use to create endpoints in\n the destination VPC. You can use your existing Firehose delivery role or you\n can specify a new role. In either case, make sure that the role trusts the Firehose service principal and that it grants the following permissions:

\n \n \n

When you specify subnets for delivering data to the destination in a private VPC, make sure you have enough number of free IP addresses in chosen subnets. If there is no available free IP address in a specified subnet, Firehose cannot create or add ENIs for the data delivery in the private VPC, and the delivery will be degraded or fail.

\n
", + "smithy.api#documentation": "

The ARN of the IAM role that you want the Firehose stream to use to create endpoints in\n the destination VPC. You can use your existing Firehose delivery role or you\n can specify a new role. In either case, make sure that the role trusts the Firehose service principal and that it grants the following permissions:

\n \n \n

When you specify subnets for delivering data to the destination in a private VPC, make sure you have enough number of free IP addresses in chosen subnets. If there is no available free IP address in a specified subnet, Firehose cannot create or add ENIs for the data delivery in the private VPC, and the delivery will be degraded or fail.

\n
", "smithy.api#required": {} } }, @@ -7580,21 +8184,21 @@ "SubnetIds": { "target": "com.amazonaws.firehose#SubnetIdList", "traits": { - "smithy.api#documentation": "

The IDs of the subnets that Firehose uses to create ENIs in the VPC of the\n Amazon ES destination. Make sure that the routing tables and inbound and outbound rules\n allow traffic to flow from the subnets whose IDs are specified here to the subnets that\n have the destination Amazon ES endpoints. Firehose creates at least one ENI in\n each of the subnets that are specified here. Do not delete or modify these ENIs.

\n

The number of ENIs that Firehose creates in the subnets specified here\n scales up and down automatically based on throughput. To enable Firehose to\n scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To\n help you calculate the quota you need, assume that Firehose can create up to\n three ENIs for this delivery stream for each of the subnets specified here. For more\n information about ENI quota, see Network Interfaces\n in the Amazon VPC Quotas topic.

", + "smithy.api#documentation": "

The IDs of the subnets that Firehose uses to create ENIs in the VPC of the\n Amazon ES destination. Make sure that the routing tables and inbound and outbound rules\n allow traffic to flow from the subnets whose IDs are specified here to the subnets that\n have the destination Amazon ES endpoints. Firehose creates at least one ENI in\n each of the subnets that are specified here. Do not delete or modify these ENIs.

\n

The number of ENIs that Firehose creates in the subnets specified here\n scales up and down automatically based on throughput. To enable Firehose to\n scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To\n help you calculate the quota you need, assume that Firehose can create up to\n three ENIs for this Firehose stream for each of the subnets specified here. For more\n information about ENI quota, see Network Interfaces\n in the Amazon VPC Quotas topic.

", "smithy.api#required": {} } }, "RoleARN": { "target": "com.amazonaws.firehose#RoleARN", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role that the delivery stream uses to create endpoints in the\n destination VPC. You can use your existing Firehose delivery role or you can\n specify a new role. In either case, make sure that the role trusts the Firehose service principal and that it grants the following permissions:

\n \n

If you revoke these permissions after you create the delivery stream, Firehose can't scale out by creating more ENIs when necessary. You might therefore see a\n degradation in performance.

", + "smithy.api#documentation": "

The ARN of the IAM role that the Firehose stream uses to create endpoints in the\n destination VPC. You can use your existing Firehose delivery role or you can\n specify a new role. In either case, make sure that the role trusts the Firehose service principal and that it grants the following permissions:

\n \n

If you revoke these permissions after you create the Firehose stream, Firehose can't scale out by creating more ENIs when necessary. You might therefore see a\n degradation in performance.

", "smithy.api#required": {} } }, "SecurityGroupIds": { "target": "com.amazonaws.firehose#SecurityGroupIdList", "traits": { - "smithy.api#documentation": "

The IDs of the security groups that Firehose uses when it creates ENIs in\n the VPC of the Amazon ES destination. You can use the same security group that the Amazon\n ES domain uses or different ones. If you specify different security groups, ensure that\n they allow outbound HTTPS traffic to the Amazon ES domain's security group. Also ensure\n that the Amazon ES domain's security group allows HTTPS traffic from the security groups\n specified here. If you use the same security group for both your delivery stream and the\n Amazon ES domain, make sure the security group inbound rule allows HTTPS traffic. For more\n information about security group rules, see Security group\n rules in the Amazon VPC documentation.

", + "smithy.api#documentation": "

The IDs of the security groups that Firehose uses when it creates ENIs in\n the VPC of the Amazon ES destination. You can use the same security group that the Amazon\n ES domain uses or different ones. If you specify different security groups, ensure that\n they allow outbound HTTPS traffic to the Amazon ES domain's security group. Also ensure\n that the Amazon ES domain's security group allows HTTPS traffic from the security groups\n specified here. If you use the same security group for both your Firehose stream and the\n Amazon ES domain, make sure the security group inbound rule allows HTTPS traffic. For more\n information about security group rules, see Security group\n rules in the Amazon VPC documentation.

", "smithy.api#required": {} } }, @@ -7609,6 +8213,26 @@ "traits": { "smithy.api#documentation": "

The details of the VPC of the Amazon ES destination.

" } + }, + "com.amazonaws.firehose#VpcEndpointServiceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 47, + "max": 255 + }, + "smithy.api#pattern": "^([a-zA-Z0-9\\-\\_]+\\.){2,3}vpce\\.[a-zA-Z0-9\\-]*\\.vpce-svc\\-[a-zA-Z0-9\\-]{17}$" + } + }, + "com.amazonaws.firehose#WarehouseLocation": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^s3:\\/\\/" + } } } } diff --git a/codegen/sdk-codegen/aws-models/lambda.json b/codegen/sdk-codegen/aws-models/lambda.json index 1d2a5ab6de2..83fbfb99515 100644 --- a/codegen/sdk-codegen/aws-models/lambda.json +++ b/codegen/sdk-codegen/aws-models/lambda.json @@ -2974,7 +2974,7 @@ "KMSKeyArn": { "target": "com.amazonaws.lambda#KMSKeyArn", "traits": { - "smithy.api#documentation": "

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt your function's \nenvironment variables. When \nLambda SnapStart is activated, Lambda also uses \nthis key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to \nencrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR).\nIf you don't provide a customer managed key, Lambda uses a default service key.

" + "smithy.api#documentation": "

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt the following resources:

\n \n

If you don't provide a customer managed key, Lambda uses an Amazon Web Services owned key or an Amazon Web Services managed key.

" } }, "TracingConfig": { @@ -4559,6 +4559,12 @@ "traits": { "smithy.api#documentation": "

URI of a container image in the\n Amazon ECR registry.

" } + }, + "SourceKMSKeyArn": { + "target": "com.amazonaws.lambda#KMSKeyArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt your function's \n.zip deployment package. If you don't provide a customer managed key, Lambda uses an Amazon Web Services owned key.

" + } } }, "traits": { @@ -4591,6 +4597,12 @@ "traits": { "smithy.api#documentation": "

The resolved URI for the image.

" } + }, + "SourceKMSKeyArn": { + "target": "com.amazonaws.lambda#String", + "traits": { + "smithy.api#documentation": "

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt your function's \n.zip deployment package. If you don't provide a customer managed key, Lambda uses an Amazon Web Services owned key.

" + } } }, "traits": { @@ -4694,7 +4706,7 @@ "KMSKeyArn": { "target": "com.amazonaws.lambda#KMSKeyArn", "traits": { - "smithy.api#documentation": "

The KMS key that's used to encrypt the function's environment variables. When Lambda SnapStart is activated, this key is also used to encrypt the function's snapshot. This key is\n returned only if you've configured a customer managed key.

" + "smithy.api#documentation": "

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt the following resources:

\n \n

If you don't provide a customer managed key, Lambda uses an Amazon Web Services owned key or an Amazon Web Services managed key.

" } }, "TracingConfig": { @@ -5926,7 +5938,7 @@ "Tags": { "target": "com.amazonaws.lambda#Tags", "traits": { - "smithy.api#documentation": "

The function's tags. Lambda\n returns tag data only if you have explicit allow permissions for lambda:ListTags.

" + "smithy.api#documentation": "

The function's tags. Lambda\n returns tag data only if you have explicit allow permissions for lambda:ListTags.

" } }, "TagsError": { @@ -12780,6 +12792,12 @@ "traits": { "smithy.api#documentation": "

The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64).\n The default value is x86_64.

" } + }, + "SourceKMSKeyArn": { + "target": "com.amazonaws.lambda#KMSKeyArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt your function's \n .zip deployment package. If you don't provide a customer managed key, Lambda uses an Amazon Web Services managed key.

" + } } }, "traits": { @@ -12928,7 +12946,7 @@ "KMSKeyArn": { "target": "com.amazonaws.lambda#KMSKeyArn", "traits": { - "smithy.api#documentation": "

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt your function's \nenvironment variables. When \nLambda SnapStart is activated, Lambda also uses \nthis key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to \nencrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR).\nIf you don't provide a customer managed key, Lambda uses a default service key.

" + "smithy.api#documentation": "

The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt the following resources:

\n \n

If you don't provide a customer managed key, Lambda uses an Amazon Web Services owned key or an Amazon Web Services managed key.

" } }, "TracingConfig": { diff --git a/codegen/sdk-codegen/aws-models/pinpoint-sms-voice-v2.json b/codegen/sdk-codegen/aws-models/pinpoint-sms-voice-v2.json index 7424dcd3b6c..e07d0fd225c 100644 --- a/codegen/sdk-codegen/aws-models/pinpoint-sms-voice-v2.json +++ b/codegen/sdk-codegen/aws-models/pinpoint-sms-voice-v2.json @@ -1701,7 +1701,7 @@ "RegistrationStatus": { "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationStatus", "traits": { - "smithy.api#documentation": "

The status of the registration.

\n ", + "smithy.api#documentation": "

The status of the registration.

\n ", "smithy.api#required": {} } }, @@ -1813,7 +1813,7 @@ "RegistrationVersionStatus": { "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionStatus", "traits": { - "smithy.api#documentation": "

The status of the registration.

\n ", + "smithy.api#documentation": "

The status of the registration.

\n ", "smithy.api#required": {} } }, @@ -3093,7 +3093,7 @@ "RegistrationStatus": { "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationStatus", "traits": { - "smithy.api#documentation": "

The status of the registration.

\n ", + "smithy.api#documentation": "

The status of the registration.

\n ", "smithy.api#required": {} } }, @@ -5400,7 +5400,7 @@ "RegistrationVersionStatus": { "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionStatus", "traits": { - "smithy.api#documentation": "

The status of the registration version.

\n ", + "smithy.api#documentation": "

The status of the registration version.

\n ", "smithy.api#required": {} } }, @@ -9554,7 +9554,7 @@ "RegistrationStatus": { "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationStatus", "traits": { - "smithy.api#documentation": "

The status of the registration.

\n ", + "smithy.api#documentation": "

The status of the registration.

\n ", "smithy.api#required": {} } }, @@ -9911,7 +9911,7 @@ "RegistrationVersionStatus": { "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionStatus", "traits": { - "smithy.api#documentation": "

The status of the registration.

\n ", + "smithy.api#documentation": "

The status of the registration.

\n ", "smithy.api#required": {} } }, @@ -10024,6 +10024,12 @@ "smithy.api#documentation": "

The time when the registration was in the reviewing state, in UNIX epoch time format.

" } }, + "RequiresAuthenticationTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the registration was in the requires authentication state, in UNIX epoch time format.

" + } + }, "ApprovedTimestamp": { "target": "smithy.api#Timestamp", "traits": { @@ -12275,7 +12281,7 @@ "RegistrationVersionStatus": { "target": "com.amazonaws.pinpointsmsvoicev2#RegistrationVersionStatus", "traits": { - "smithy.api#documentation": "

The status of the registration version.

\n ", + "smithy.api#documentation": "

The status of the registration version.

\n ", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/qbusiness.json b/codegen/sdk-codegen/aws-models/qbusiness.json index 75abc347450..f7be686f52d 100644 --- a/codegen/sdk-codegen/aws-models/qbusiness.json +++ b/codegen/sdk-codegen/aws-models/qbusiness.json @@ -1946,7 +1946,7 @@ "kms:DescribeKey", "kms:CreateGrant" ], - "smithy.api#documentation": "

Creates an Amazon Q Business application.

\n \n

There are new tiers for Amazon Q Business. Not all features in Amazon Q Business Pro are\n also available in Amazon Q Business Lite. For information on what's included in\n Amazon Q Business Lite and what's included in Amazon Q Business Pro, see Amazon Q Business tiers. You must use the Amazon Q Business console to assign\n subscription tiers to users.

\n
", + "smithy.api#documentation": "

Creates an Amazon Q Business application.

\n \n

There are new tiers for Amazon Q Business. Not all features in Amazon Q Business Pro are\n also available in Amazon Q Business Lite. For information on what's included in\n Amazon Q Business Lite and what's included in Amazon Q Business Pro, see Amazon Q Business tiers. You must use the Amazon Q Business console to assign\n subscription tiers to users.\n

\n

\n A Amazon Q Apps service linked role will be created if it's absent in the \n Amazon Web Services account when the QAppsConfiguration is enabled in the request. \n For more information, see \n \n Using service-linked roles for Q Apps\n \n

\n
", "smithy.api#http": { "uri": "/applications", "method": "POST" @@ -6444,6 +6444,9 @@ "traits": { "smithy.api#documentation": "

A list of users that belong to a group. For example, a list of interns all belong to\n the \"Interns\" group.

" } + }, + "s3PathForGroupMembers": { + "target": "com.amazonaws.qbusiness#S3" } }, "traits": { @@ -9302,6 +9305,12 @@ "traits": { "smithy.api#required": {} } + }, + "roleArn": { + "target": "com.amazonaws.qbusiness#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of an IAM role that has access to the S3 file that contains \n your list of users that belong to a group.The Amazon Resource Name (ARN) of an IAM role that \n has access to the S3 file that contains your list of users that belong to a group.

" + } } }, "traits": { @@ -10666,7 +10675,7 @@ "qbusiness:ListTagsForResource", "iam:PassRole" ], - "smithy.api#documentation": "

Updates an existing Amazon Q Business application.

", + "smithy.api#documentation": "

Updates an existing Amazon Q Business application.

\n \n

\n A Amazon Q Apps service-linked role will be created if it's absent in the Amazon Web Services account\n when the QAppsConfiguration is enabled in the request.\n For more information, see \n Using service-linked roles for Q Apps\n \n

\n
", "smithy.api#http": { "uri": "/applications/{applicationId}", "method": "PUT" From ff96771a28dcce1acf9e8bf06f39b3e139cb8630 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Fri, 8 Nov 2024 19:12:11 +0000 Subject: [PATCH 02/20] Update endpoints model --- .../software/amazon/smithy/aws/go/codegen/endpoints.json | 1 + 1 file changed, 1 insertion(+) diff --git a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json index 4e25bc2a2bf..d95c35d47d3 100644 --- a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json +++ b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json @@ -6344,6 +6344,7 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "ds-fips.ca-central-1.amazonaws.com", From 344226cb300f2cd550445708c271c614c075e058 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Fri, 8 Nov 2024 19:32:03 +0000 Subject: [PATCH 03/20] Regenerated Clients --- .../1b91a8b8c3b448f0a189c4b79801099f.json | 8 + .../401f451ea4fc4c8e93ca65cc47ee2037.json | 8 + .../4209d78c6706412794b2fd436e7e82d3.json | 8 + .../6d59b5b976ea401ca0ca304f503b584f.json | 8 + .../949cc9f5cc1d4978b750f1cf164404df.json | 8 + .../abab4f2c4e00434da2b237c823c897fc.json | 8 + .../b05c2cd179bc4342ac466002dfa0359a.json | 8 + .../f1f83ca5df6848b0aa01747925cb8e2e.json | 8 + .../f3ed028b64c54f208bb68593d8d9e0b2.json | 8 + service/batch/deserializers.go | 102 +++ service/batch/serializers.go | 49 ++ service/batch/types/types.go | 108 ++- .../bedrockagentruntime/api_op_InvokeFlow.go | 6 + service/bedrockagentruntime/deserializers.go | 624 +++++++++++++ service/bedrockagentruntime/serializers.go | 5 + service/bedrockagentruntime/types/types.go | 306 +++++-- .../types/types_exported_test.go | 66 ++ .../api_op_CreateMediaCapturePipeline.go | 17 + .../chimesdkmediapipelines/deserializers.go | 63 ++ service/chimesdkmediapipelines/serializers.go | 29 + service/chimesdkmediapipelines/types/types.go | 64 ++ service/chimesdkmediapipelines/validators.go | 20 + service/controlcatalog/api_op_GetControl.go | 15 +- service/controlcatalog/deserializers.go | 124 +++ service/controlcatalog/types/types.go | 73 +- .../internal/endpoints/endpoints.go | 3 + service/eks/types/enums.go | 2 + service/eks/types/types.go | 4 + .../firehose/api_op_CreateDeliveryStream.go | 59 +- .../firehose/api_op_DeleteDeliveryStream.go | 18 +- .../firehose/api_op_DescribeDeliveryStream.go | 16 +- .../firehose/api_op_ListDeliveryStreams.go | 28 +- .../api_op_ListTagsForDeliveryStream.go | 6 +- service/firehose/api_op_PutRecord.go | 26 +- service/firehose/api_op_PutRecordBatch.go | 20 +- .../api_op_StartDeliveryStreamEncryption.go | 24 +- .../api_op_StopDeliveryStreamEncryption.go | 12 +- service/firehose/api_op_TagDeliveryStream.go | 8 +- .../firehose/api_op_UntagDeliveryStream.go | 4 +- service/firehose/api_op_UpdateDestination.go | 10 +- service/firehose/deserializers.go | 833 +++++++++++++++++- service/firehose/serializers.go | 317 +++++++ service/firehose/types/enums.go | 114 ++- service/firehose/types/errors.go | 4 +- service/firehose/types/types.go | 530 +++++++---- service/firehose/validators.go | 187 ++++ service/lambda/api_op_CreateFunction.go | 48 +- service/lambda/api_op_GetFunction.go | 2 +- .../lambda/api_op_GetFunctionConfiguration.go | 23 +- service/lambda/api_op_PublishVersion.go | 23 +- service/lambda/api_op_UpdateFunctionCode.go | 28 +- .../api_op_UpdateFunctionConfiguration.go | 48 +- service/lambda/deserializers.go | 9 + service/lambda/serializers.go | 10 + service/lambda/types/types.go | 37 +- .../api_op_CreateRegistration.go | 16 +- .../api_op_CreateRegistrationVersion.go | 18 +- .../api_op_DeleteRegistration.go | 16 +- .../api_op_DiscardRegistrationVersion.go | 18 +- .../api_op_SubmitRegistrationVersion.go | 18 +- service/pinpointsmsvoicev2/deserializers.go | 16 + service/pinpointsmsvoicev2/types/types.go | 40 +- service/qbusiness/api_op_CreateApplication.go | 5 + service/qbusiness/api_op_PutGroup.go | 6 + service/qbusiness/api_op_UpdateApplication.go | 6 + service/qbusiness/serializers.go | 12 + service/qbusiness/types/types.go | 4 + service/qbusiness/validators.go | 5 + 68 files changed, 3914 insertions(+), 462 deletions(-) create mode 100644 .changelog/1b91a8b8c3b448f0a189c4b79801099f.json create mode 100644 .changelog/401f451ea4fc4c8e93ca65cc47ee2037.json create mode 100644 .changelog/4209d78c6706412794b2fd436e7e82d3.json create mode 100644 .changelog/6d59b5b976ea401ca0ca304f503b584f.json create mode 100644 .changelog/949cc9f5cc1d4978b750f1cf164404df.json create mode 100644 .changelog/abab4f2c4e00434da2b237c823c897fc.json create mode 100644 .changelog/b05c2cd179bc4342ac466002dfa0359a.json create mode 100644 .changelog/f1f83ca5df6848b0aa01747925cb8e2e.json create mode 100644 .changelog/f3ed028b64c54f208bb68593d8d9e0b2.json diff --git a/.changelog/1b91a8b8c3b448f0a189c4b79801099f.json b/.changelog/1b91a8b8c3b448f0a189c4b79801099f.json new file mode 100644 index 00000000000..e5cb8fcafcc --- /dev/null +++ b/.changelog/1b91a8b8c3b448f0a189c4b79801099f.json @@ -0,0 +1,8 @@ +{ + "id": "1b91a8b8-c3b4-48f0-a189-c4b79801099f", + "type": "feature", + "description": "AWS Control Catalog GetControl public API returns additional data in output, including Implementation and Parameters", + "modules": [ + "service/controlcatalog" + ] +} \ No newline at end of file diff --git a/.changelog/401f451ea4fc4c8e93ca65cc47ee2037.json b/.changelog/401f451ea4fc4c8e93ca65cc47ee2037.json new file mode 100644 index 00000000000..ded92091160 --- /dev/null +++ b/.changelog/401f451ea4fc4c8e93ca65cc47ee2037.json @@ -0,0 +1,8 @@ +{ + "id": "401f451e-a4fc-4c8e-93ca-65cc47ee2037", + "type": "feature", + "description": "Adds S3 path option to pass group member list for PutGroup API.", + "modules": [ + "service/qbusiness" + ] +} \ No newline at end of file diff --git a/.changelog/4209d78c6706412794b2fd436e7e82d3.json b/.changelog/4209d78c6706412794b2fd436e7e82d3.json new file mode 100644 index 00000000000..d5931997972 --- /dev/null +++ b/.changelog/4209d78c6706412794b2fd436e7e82d3.json @@ -0,0 +1,8 @@ +{ + "id": "4209d78c-6706-4127-94b2-fd436e7e82d3", + "type": "feature", + "description": "Amazon Data Firehose / Features : Adds support for a new DeliveryStreamType, DatabaseAsSource. DatabaseAsSource hoses allow customers to stream CDC events from their RDS and Amazon EC2 hosted databases, running MySQL and PostgreSQL database engines, to Iceberg Table destinations.", + "modules": [ + "service/firehose" + ] +} \ No newline at end of file diff --git a/.changelog/6d59b5b976ea401ca0ca304f503b584f.json b/.changelog/6d59b5b976ea401ca0ca304f503b584f.json new file mode 100644 index 00000000000..3902587168e --- /dev/null +++ b/.changelog/6d59b5b976ea401ca0ca304f503b584f.json @@ -0,0 +1,8 @@ +{ + "id": "6d59b5b9-76ea-401c-a0ca-304f503b584f", + "type": "feature", + "description": "Adds new error code `Ec2InstanceTypeDoesNotExist` for Amazon EKS managed node groups", + "modules": [ + "service/eks" + ] +} \ No newline at end of file diff --git a/.changelog/949cc9f5cc1d4978b750f1cf164404df.json b/.changelog/949cc9f5cc1d4978b750f1cf164404df.json new file mode 100644 index 00000000000..186587788eb --- /dev/null +++ b/.changelog/949cc9f5cc1d4978b750f1cf164404df.json @@ -0,0 +1,8 @@ +{ + "id": "949cc9f5-cc1d-4978-b750-f1cf164404df", + "type": "feature", + "description": "This release adds trace functionality to Bedrock Prompt Flows", + "modules": [ + "service/bedrockagentruntime" + ] +} \ No newline at end of file diff --git a/.changelog/abab4f2c4e00434da2b237c823c897fc.json b/.changelog/abab4f2c4e00434da2b237c823c897fc.json new file mode 100644 index 00000000000..48137059d41 --- /dev/null +++ b/.changelog/abab4f2c4e00434da2b237c823c897fc.json @@ -0,0 +1,8 @@ +{ + "id": "abab4f2c-4e00-434d-a2b2-37c823c897fc", + "type": "feature", + "description": "Added support for Media Capture Pipeline and Media Concatenation Pipeline for customer managed server side encryption. Now Media Capture Pipeline can use IAM sink role to get access to KMS key and encrypt/decrypt recorded artifacts. KMS key ID can also be supplied with encryption context.", + "modules": [ + "service/chimesdkmediapipelines" + ] +} \ No newline at end of file diff --git a/.changelog/b05c2cd179bc4342ac466002dfa0359a.json b/.changelog/b05c2cd179bc4342ac466002dfa0359a.json new file mode 100644 index 00000000000..7554000e156 --- /dev/null +++ b/.changelog/b05c2cd179bc4342ac466002dfa0359a.json @@ -0,0 +1,8 @@ +{ + "id": "b05c2cd1-79bc-4342-ac46-6002dfa0359a", + "type": "feature", + "description": "This feature allows override LaunchTemplates to be specified in an AWS Batch Compute Environment.", + "modules": [ + "service/batch" + ] +} \ No newline at end of file diff --git a/.changelog/f1f83ca5df6848b0aa01747925cb8e2e.json b/.changelog/f1f83ca5df6848b0aa01747925cb8e2e.json new file mode 100644 index 00000000000..577078b0d10 --- /dev/null +++ b/.changelog/f1f83ca5df6848b0aa01747925cb8e2e.json @@ -0,0 +1,8 @@ +{ + "id": "f1f83ca5-df68-48b0-aa01-747925cb8e2e", + "type": "feature", + "description": "This release adds support for using AWS KMS customer managed keys to encrypt AWS Lambda .zip deployment packages.", + "modules": [ + "service/lambda" + ] +} \ No newline at end of file diff --git a/.changelog/f3ed028b64c54f208bb68593d8d9e0b2.json b/.changelog/f3ed028b64c54f208bb68593d8d9e0b2.json new file mode 100644 index 00000000000..e579aa9d082 --- /dev/null +++ b/.changelog/f3ed028b64c54f208bb68593d8d9e0b2.json @@ -0,0 +1,8 @@ +{ + "id": "f3ed028b-64c5-4f20-8bb6-8593d8d9e0b2", + "type": "feature", + "description": "Added the RequiresAuthenticationTimestamp field to the RegistrationVersionStatusHistory data type.", + "modules": [ + "service/pinpointsmsvoicev2" + ] +} \ No newline at end of file diff --git a/service/batch/deserializers.go b/service/batch/deserializers.go index 68b1eb31701..5eee3dbd52e 100644 --- a/service/batch/deserializers.go +++ b/service/batch/deserializers.go @@ -8831,6 +8831,74 @@ func awsRestjson1_deserializeDocumentLaunchTemplateSpecification(v **types.Launc sv.LaunchTemplateName = ptr.String(jtv) } + case "overrides": + if err := awsRestjson1_deserializeDocumentLaunchTemplateSpecificationOverrideList(&sv.Overrides, value); err != nil { + return err + } + + case "version": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Version = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentLaunchTemplateSpecificationOverride(v **types.LaunchTemplateSpecificationOverride, 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.LaunchTemplateSpecificationOverride + if *v == nil { + sv = &types.LaunchTemplateSpecificationOverride{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "launchTemplateId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.LaunchTemplateId = ptr.String(jtv) + } + + case "launchTemplateName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.LaunchTemplateName = ptr.String(jtv) + } + + case "targetInstanceTypes": + if err := awsRestjson1_deserializeDocumentStringList(&sv.TargetInstanceTypes, value); err != nil { + return err + } + case "version": if value != nil { jtv, ok := value.(string) @@ -8849,6 +8917,40 @@ func awsRestjson1_deserializeDocumentLaunchTemplateSpecification(v **types.Launc return nil } +func awsRestjson1_deserializeDocumentLaunchTemplateSpecificationOverrideList(v *[]types.LaunchTemplateSpecificationOverride, 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.LaunchTemplateSpecificationOverride + if *v == nil { + cv = []types.LaunchTemplateSpecificationOverride{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.LaunchTemplateSpecificationOverride + destAddr := &col + if err := awsRestjson1_deserializeDocumentLaunchTemplateSpecificationOverride(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentLinuxParameters(v **types.LinuxParameters, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/batch/serializers.go b/service/batch/serializers.go index 04570caa28d..4a3abbf6dbe 100644 --- a/service/batch/serializers.go +++ b/service/batch/serializers.go @@ -3952,6 +3952,42 @@ func awsRestjson1_serializeDocumentLaunchTemplateSpecification(v *types.LaunchTe ok.String(*v.LaunchTemplateName) } + if v.Overrides != nil { + ok := object.Key("overrides") + if err := awsRestjson1_serializeDocumentLaunchTemplateSpecificationOverrideList(v.Overrides, ok); err != nil { + return err + } + } + + if v.Version != nil { + ok := object.Key("version") + ok.String(*v.Version) + } + + return nil +} + +func awsRestjson1_serializeDocumentLaunchTemplateSpecificationOverride(v *types.LaunchTemplateSpecificationOverride, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.LaunchTemplateId != nil { + ok := object.Key("launchTemplateId") + ok.String(*v.LaunchTemplateId) + } + + if v.LaunchTemplateName != nil { + ok := object.Key("launchTemplateName") + ok.String(*v.LaunchTemplateName) + } + + if v.TargetInstanceTypes != nil { + ok := object.Key("targetInstanceTypes") + if err := awsRestjson1_serializeDocumentStringList(v.TargetInstanceTypes, ok); err != nil { + return err + } + } + if v.Version != nil { ok := object.Key("version") ok.String(*v.Version) @@ -3960,6 +3996,19 @@ func awsRestjson1_serializeDocumentLaunchTemplateSpecification(v *types.LaunchTe return nil } +func awsRestjson1_serializeDocumentLaunchTemplateSpecificationOverrideList(v []types.LaunchTemplateSpecificationOverride, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentLaunchTemplateSpecificationOverride(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentLinuxParameters(v *types.LinuxParameters, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/batch/types/types.go b/service/batch/types/types.go index 12f0a95152f..6c494404de9 100644 --- a/service/batch/types/types.go +++ b/service/batch/types/types.go @@ -3097,22 +3097,120 @@ type LaunchTemplateSpecification struct { // The name of the launch template. LaunchTemplateName *string - // The version number of the launch template, $Latest , or $Default . + // A launch template to use in place of the default launch template. You must + // specify either the launch template ID or launch template name in the request, + // but not both. // - // If the value is $Latest , the latest version of the launch template is used. If - // the value is $Default , the default version of the launch template is used. + // You can specify up to ten (10) launch template overrides that are associated to + // unique instance types or families for each compute environment. + // + // To unset all override templates for a compute environment, you can pass an + // empty array to the [UpdateComputeEnvironment.overrides]parameter, or not include the overrides parameter when + // submitting the UpdateComputeEnvironment API operation. + // + // [UpdateComputeEnvironment.overrides]: https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html + Overrides []LaunchTemplateSpecificationOverride + + // The version number of the launch template, $Default , or $Latest . + // + // If the value is $Default , the default version of the launch template is used. + // If the value is $Latest , the latest version of the launch template is used. + // + // If the AMI ID that's used in a compute environment is from the launch template, + // the AMI isn't changed when the compute environment is updated. It's only changed + // if the updateToLatestImageVersion parameter for the compute environment is set + // to true . During an infrastructure update, if either $Default or $Latest is + // specified, Batch re-evaluates the launch template version, and it might use a + // different version of the launch template. This is the case even if the launch + // template isn't specified in the update. When updating a compute environment, + // changing the launch template requires an infrastructure update of the compute + // environment. For more information, see [Updating compute environments]in the Batch User Guide. + // + // Default: $Default + // + // Latest: $Latest + // + // [Updating compute environments]: https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html + Version *string + + noSmithyDocumentSerde +} + +// An object that represents a launch template to use in place of the default +// launch template. You must specify either the launch template ID or launch +// template name in the request, but not both. +// +// If security groups are specified using both the securityGroupIds parameter of +// CreateComputeEnvironment and the launch template, the values in the +// securityGroupIds parameter of CreateComputeEnvironment will be used. +// +// You can define up to ten (10) overrides for each compute environment. +// +// This object isn't applicable to jobs that are running on Fargate resources. +// +// To unset all override templates for a compute environment, you can pass an +// empty array to the [UpdateComputeEnvironment.overrides]parameter, or not include the overrides parameter when +// submitting the UpdateComputeEnvironment API operation. +// +// [UpdateComputeEnvironment.overrides]: https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html +type LaunchTemplateSpecificationOverride struct { + + // The ID of the launch template. + // + // Note: If you specify the launchTemplateId you can't specify the + // launchTemplateName as well. + LaunchTemplateId *string + + // The name of the launch template. + // + // Note: If you specify the launchTemplateName you can't specify the + // launchTemplateId as well. + LaunchTemplateName *string + + // The instance type or family that this this override launch template should be + // applied to. + // + // This parameter is required when defining a launch template override. + // + // Information included in this parameter must meet the following requirements: + // + // - Must be a valid Amazon EC2 instance type or family. + // + // - optimal isn't allowed. + // + // - targetInstanceTypes can target only instance types and families that are + // included within the [ComputeResource.instanceTypes]ComputeResource.instanceTypes set. targetInstanceTypes + // doesn't need to include all of the instances from the instanceType set, but at + // least a subset. For example, if ComputeResource.instanceTypes includes [m5, + // g5] , targetInstanceTypes can include [m5.2xlarge] and [m5.large] but not + // [c5.large] . + // + // - targetInstanceTypes included within the same launch template override or + // across launch template overrides can't overlap for the same compute environment. + // For example, you can't define one launch template override to target an instance + // family and another define an instance type within this same family. + // + // [ComputeResource.instanceTypes]: https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes + TargetInstanceTypes []string + + // The version number of the launch template, $Default , or $Latest . + // + // If the value is $Default , the default version of the launch template is used. + // If the value is $Latest , the latest version of the launch template is used. // // If the AMI ID that's used in a compute environment is from the launch template, // the AMI isn't changed when the compute environment is updated. It's only changed // if the updateToLatestImageVersion parameter for the compute environment is set - // to true . During an infrastructure update, if either $Latest or $Default is + // to true . During an infrastructure update, if either $Default or $Latest is // specified, Batch re-evaluates the launch template version, and it might use a // different version of the launch template. This is the case even if the launch // template isn't specified in the update. When updating a compute environment, // changing the launch template requires an infrastructure update of the compute // environment. For more information, see [Updating compute environments]in the Batch User Guide. // - // Default: $Default . + // Default: $Default + // + // Latest: $Latest // // [Updating compute environments]: https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html Version *string diff --git a/service/bedrockagentruntime/api_op_InvokeFlow.go b/service/bedrockagentruntime/api_op_InvokeFlow.go index e08865fac15..10fe202164a 100644 --- a/service/bedrockagentruntime/api_op_InvokeFlow.go +++ b/service/bedrockagentruntime/api_op_InvokeFlow.go @@ -52,6 +52,12 @@ type InvokeFlowInput struct { // This member is required. Inputs []types.FlowInput + // Specifies whether to return the trace for the flow or not. Traces track inputs + // and outputs for nodes in the flow. For more information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. + // + // [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html + EnableTrace *bool + noSmithyDocumentSerde } diff --git a/service/bedrockagentruntime/deserializers.go b/service/bedrockagentruntime/deserializers.go index dcd18c5646d..416c15ca754 100644 --- a/service/bedrockagentruntime/deserializers.go +++ b/service/bedrockagentruntime/deserializers.go @@ -6073,6 +6073,14 @@ func awsRestjson1_deserializeEventStreamFlowResponseStream(v *types.FlowResponse *v = vv return nil + case strings.EqualFold("flowTraceEvent", eventType.String()): + vv := &types.FlowResponseStreamMemberFlowTraceEvent{} + if err := awsRestjson1_deserializeEventMessageFlowTraceEvent(&vv.Value, msg); err != nil { + return err + } + *v = vv + return nil + default: buffer := bytes.NewBuffer(nil) eventstream.NewEncoder().Encode(buffer, *msg) @@ -6225,6 +6233,44 @@ func awsRestjson1_deserializeEventMessageFlowCompletionEvent(v *types.FlowComple return nil } +func awsRestjson1_deserializeEventMessageFlowTraceEvent(v *types.FlowTraceEvent, msg *eventstream.Message) error { + if v == nil { + return fmt.Errorf("unexpected serialization of nil %T", v) + } + + br := bytes.NewReader(msg.Payload) + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(br, 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 + } + + if err := awsRestjson1_deserializeDocumentFlowTraceEvent(&v, shape); err != nil { + 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 + } + + } + return nil +} + func awsRestjson1_deserializeDocumentFlowCompletionEvent(v **types.FlowCompletionEvent, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6357,6 +6403,584 @@ func awsRestjson1_deserializeDocumentFlowOutputEvent(v **types.FlowOutputEvent, return nil } +func awsRestjson1_deserializeDocumentFlowTrace(v *types.FlowTrace, 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 uv types.FlowTrace +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "conditionNodeResultTrace": + var mv types.FlowTraceConditionNodeResultEvent + destAddr := &mv + if err := awsRestjson1_deserializeDocumentFlowTraceConditionNodeResultEvent(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.FlowTraceMemberConditionNodeResultTrace{Value: mv} + break loop + + case "nodeInputTrace": + var mv types.FlowTraceNodeInputEvent + destAddr := &mv + if err := awsRestjson1_deserializeDocumentFlowTraceNodeInputEvent(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.FlowTraceMemberNodeInputTrace{Value: mv} + break loop + + case "nodeOutputTrace": + var mv types.FlowTraceNodeOutputEvent + destAddr := &mv + if err := awsRestjson1_deserializeDocumentFlowTraceNodeOutputEvent(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.FlowTraceMemberNodeOutputTrace{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceCondition(v **types.FlowTraceCondition, 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.FlowTraceCondition + if *v == nil { + sv = &types.FlowTraceCondition{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "conditionName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ConditionName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceConditionNodeResultEvent(v **types.FlowTraceConditionNodeResultEvent, 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.FlowTraceConditionNodeResultEvent + if *v == nil { + sv = &types.FlowTraceConditionNodeResultEvent{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nodeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeName to be of type string, got %T instead", value) + } + sv.NodeName = ptr.String(jtv) + } + + case "satisfiedConditions": + if err := awsRestjson1_deserializeDocumentFlowTraceConditions(&sv.SatisfiedConditions, value); err != nil { + return err + } + + case "timestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTimestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.Timestamp = ptr.Time(t) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceConditions(v *[]types.FlowTraceCondition, 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.FlowTraceCondition + if *v == nil { + cv = []types.FlowTraceCondition{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.FlowTraceCondition + destAddr := &col + if err := awsRestjson1_deserializeDocumentFlowTraceCondition(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceEvent(v **types.FlowTraceEvent, 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.FlowTraceEvent + if *v == nil { + sv = &types.FlowTraceEvent{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "trace": + if err := awsRestjson1_deserializeDocumentFlowTrace(&sv.Trace, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceNodeInputContent(v *types.FlowTraceNodeInputContent, 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 uv types.FlowTraceNodeInputContent +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "document": + var mv document.Interface + if err := awsRestjson1_deserializeDocumentDocument(&mv, value); err != nil { + return err + } + uv = &types.FlowTraceNodeInputContentMemberDocument{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceNodeInputEvent(v **types.FlowTraceNodeInputEvent, 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.FlowTraceNodeInputEvent + if *v == nil { + sv = &types.FlowTraceNodeInputEvent{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "fields": + if err := awsRestjson1_deserializeDocumentFlowTraceNodeInputFields(&sv.Fields, value); err != nil { + return err + } + + case "nodeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeName to be of type string, got %T instead", value) + } + sv.NodeName = ptr.String(jtv) + } + + case "timestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTimestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.Timestamp = ptr.Time(t) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceNodeInputField(v **types.FlowTraceNodeInputField, 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.FlowTraceNodeInputField + if *v == nil { + sv = &types.FlowTraceNodeInputField{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "content": + if err := awsRestjson1_deserializeDocumentFlowTraceNodeInputContent(&sv.Content, value); err != nil { + return err + } + + case "nodeInputName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeInputName to be of type string, got %T instead", value) + } + sv.NodeInputName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceNodeInputFields(v *[]types.FlowTraceNodeInputField, 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.FlowTraceNodeInputField + if *v == nil { + cv = []types.FlowTraceNodeInputField{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.FlowTraceNodeInputField + destAddr := &col + if err := awsRestjson1_deserializeDocumentFlowTraceNodeInputField(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceNodeOutputContent(v *types.FlowTraceNodeOutputContent, 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 uv types.FlowTraceNodeOutputContent +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "document": + var mv document.Interface + if err := awsRestjson1_deserializeDocumentDocument(&mv, value); err != nil { + return err + } + uv = &types.FlowTraceNodeOutputContentMemberDocument{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceNodeOutputEvent(v **types.FlowTraceNodeOutputEvent, 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.FlowTraceNodeOutputEvent + if *v == nil { + sv = &types.FlowTraceNodeOutputEvent{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "fields": + if err := awsRestjson1_deserializeDocumentFlowTraceNodeOutputFields(&sv.Fields, value); err != nil { + return err + } + + case "nodeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeName to be of type string, got %T instead", value) + } + sv.NodeName = ptr.String(jtv) + } + + case "timestamp": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTimestamp to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.Timestamp = ptr.Time(t) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceNodeOutputField(v **types.FlowTraceNodeOutputField, 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.FlowTraceNodeOutputField + if *v == nil { + sv = &types.FlowTraceNodeOutputField{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "content": + if err := awsRestjson1_deserializeDocumentFlowTraceNodeOutputContent(&sv.Content, value); err != nil { + return err + } + + case "nodeOutputName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeOutputName to be of type string, got %T instead", value) + } + sv.NodeOutputName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFlowTraceNodeOutputFields(v *[]types.FlowTraceNodeOutputField, 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.FlowTraceNodeOutputField + if *v == nil { + cv = []types.FlowTraceNodeOutputField{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.FlowTraceNodeOutputField + destAddr := &col + if err := awsRestjson1_deserializeDocumentFlowTraceNodeOutputField(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentDocument(v *document.Interface, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/bedrockagentruntime/serializers.go b/service/bedrockagentruntime/serializers.go index 70cbade8bdf..8908f1e3b16 100644 --- a/service/bedrockagentruntime/serializers.go +++ b/service/bedrockagentruntime/serializers.go @@ -427,6 +427,11 @@ func awsRestjson1_serializeOpDocumentInvokeFlowInput(v *InvokeFlowInput, value s object := value.Object() defer object.Close() + if v.EnableTrace != nil { + ok := object.Key("enableTrace") + ok.Boolean(*v.EnableTrace) + } + if v.Inputs != nil { ok := object.Key("inputs") if err := awsRestjson1_serializeDocumentFlowInputs(v.Inputs, ok); err != nil { diff --git a/service/bedrockagentruntime/types/types.go b/service/bedrockagentruntime/types/types.go index 4b8ffd038d6..2f4aeb58335 100644 --- a/service/bedrockagentruntime/types/types.go +++ b/service/bedrockagentruntime/types/types.go @@ -422,12 +422,6 @@ type FinalResponse struct { } // Contains information about why a flow completed. -// -// This data type is used in the following API operations: -// -// [InvokeFlow response] -// -// [InvokeFlow response]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html#API_agent_InvokeFlow_ResponseSyntax type FlowCompletionEvent struct { // The reason that the flow completed. @@ -439,12 +433,6 @@ type FlowCompletionEvent struct { } // Contains information about an input into the prompt flow and where to send it. -// -// This data type is used in the following API operations: -// -// [InvokeFlow request] -// -// [InvokeFlow request]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html#API_agent_InvokeFlow_RequestSyntax type FlowInput struct { // Contains information about an input into the prompt flow. @@ -467,15 +455,9 @@ type FlowInput struct { // Contains information about an input into the flow. // -// This data type is used in the following API operations: -// -// [InvokeFlow request] -// // The following types satisfy this interface: // // FlowInputContentMemberDocument -// -// [InvokeFlow request]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html#API_agent_InvokeFlow_RequestSyntax type FlowInputContent interface { isFlowInputContent() } @@ -491,15 +473,9 @@ func (*FlowInputContentMemberDocument) isFlowInputContent() {} // Contains information about the content in an output from prompt flow invocation. // -// This data type is used in the following API operations: -// -// [InvokeFlow request] -// // The following types satisfy this interface: // // FlowOutputContentMemberDocument -// -// [InvokeFlow request]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html#API_agent_InvokeFlow_RequestSyntax type FlowOutputContent interface { isFlowOutputContent() } @@ -514,12 +490,6 @@ type FlowOutputContentMemberDocument struct { func (*FlowOutputContentMemberDocument) isFlowOutputContent() {} // Contains information about an output from prompt flow invoction. -// -// This data type is used in the following API operations: -// -// [InvokeFlow response] -// -// [InvokeFlow response]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html#API_agent_InvokeFlow_ResponseSyntax type FlowOutputEvent struct { // The content in the output. @@ -542,16 +512,11 @@ type FlowOutputEvent struct { // The output of the flow. // -// This data type is used in the following API operations: -// -// [InvokeFlow response] -// // The following types satisfy this interface: // // FlowResponseStreamMemberFlowCompletionEvent // FlowResponseStreamMemberFlowOutputEvent -// -// [InvokeFlow response]: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html#API_agent_InvokeFlow_ResponseSyntax +// FlowResponseStreamMemberFlowTraceEvent type FlowResponseStream interface { isFlowResponseStream() } @@ -574,6 +539,235 @@ type FlowResponseStreamMemberFlowOutputEvent struct { func (*FlowResponseStreamMemberFlowOutputEvent) isFlowResponseStream() {} +// Contains information about a trace, which tracks an input or output for a node +// in the flow. +type FlowResponseStreamMemberFlowTraceEvent struct { + Value FlowTraceEvent + + noSmithyDocumentSerde +} + +func (*FlowResponseStreamMemberFlowTraceEvent) isFlowResponseStream() {} + +// Contains information about an input or output for a node in the flow. For more +// information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// The following types satisfy this interface: +// +// FlowTraceMemberConditionNodeResultTrace +// FlowTraceMemberNodeInputTrace +// FlowTraceMemberNodeOutputTrace +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTrace interface { + isFlowTrace() +} + +// Contains information about an output from a condition node. +type FlowTraceMemberConditionNodeResultTrace struct { + Value FlowTraceConditionNodeResultEvent + + noSmithyDocumentSerde +} + +func (*FlowTraceMemberConditionNodeResultTrace) isFlowTrace() {} + +// Contains information about the input into a node. +type FlowTraceMemberNodeInputTrace struct { + Value FlowTraceNodeInputEvent + + noSmithyDocumentSerde +} + +func (*FlowTraceMemberNodeInputTrace) isFlowTrace() {} + +// Contains information about the output from a node. +type FlowTraceMemberNodeOutputTrace struct { + Value FlowTraceNodeOutputEvent + + noSmithyDocumentSerde +} + +func (*FlowTraceMemberNodeOutputTrace) isFlowTrace() {} + +// Contains information about a condition that was satisfied. For more +// information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTraceCondition struct { + + // The name of the condition. + // + // This member is required. + ConditionName *string + + noSmithyDocumentSerde +} + +// Contains information about an output from a condition node. For more +// information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTraceConditionNodeResultEvent struct { + + // The name of the condition node. + // + // This member is required. + NodeName *string + + // An array of objects containing information about the conditions that were + // satisfied. + // + // This member is required. + SatisfiedConditions []FlowTraceCondition + + // The date and time that the trace was returned. + // + // This member is required. + Timestamp *time.Time + + noSmithyDocumentSerde +} + +// Contains information about a trace, which tracks an input or output for a node +// in the flow. For more information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTraceEvent struct { + + // The trace object containing information about an input or output for a node in + // the flow. + // + // This member is required. + Trace FlowTrace + + noSmithyDocumentSerde +} + +// Contains the content of the node input. For more information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// The following types satisfy this interface: +// +// FlowTraceNodeInputContentMemberDocument +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTraceNodeInputContent interface { + isFlowTraceNodeInputContent() +} + +// The content of the node input. +type FlowTraceNodeInputContentMemberDocument struct { + Value document.Interface + + noSmithyDocumentSerde +} + +func (*FlowTraceNodeInputContentMemberDocument) isFlowTraceNodeInputContent() {} + +// Contains information about the input into a node. For more information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTraceNodeInputEvent struct { + + // An array of objects containing information about each field in the input. + // + // This member is required. + Fields []FlowTraceNodeInputField + + // The name of the node that received the input. + // + // This member is required. + NodeName *string + + // The date and time that the trace was returned. + // + // This member is required. + Timestamp *time.Time + + noSmithyDocumentSerde +} + +// Contains information about a field in the input into a node. For more +// information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTraceNodeInputField struct { + + // The content of the node input. + // + // This member is required. + Content FlowTraceNodeInputContent + + // The name of the node input. + // + // This member is required. + NodeInputName *string + + noSmithyDocumentSerde +} + +// Contains the content of the node output. For more information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// The following types satisfy this interface: +// +// FlowTraceNodeOutputContentMemberDocument +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTraceNodeOutputContent interface { + isFlowTraceNodeOutputContent() +} + +// The content of the node output. +type FlowTraceNodeOutputContentMemberDocument struct { + Value document.Interface + + noSmithyDocumentSerde +} + +func (*FlowTraceNodeOutputContentMemberDocument) isFlowTraceNodeOutputContent() {} + +// Contains information about the output from a node. For more information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTraceNodeOutputEvent struct { + + // An array of objects containing information about each field in the output. + // + // This member is required. + Fields []FlowTraceNodeOutputField + + // The name of the node that yielded the output. + // + // This member is required. + NodeName *string + + // The date and time that the trace was returned. + // + // This member is required. + Timestamp *time.Time + + noSmithyDocumentSerde +} + +// Contains information about a field in the output from a node. For more +// information, see [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]. +// +// [Track each step in your prompt flow by viewing its trace in Amazon Bedrock]: https://docs.aws.amazon.com/bedrock/latest/userguide/flows-trace.html +type FlowTraceNodeOutputField struct { + + // The content of the node output. + // + // This member is required. + Content FlowTraceNodeOutputContent + + // The name of the node output. + // + // This member is required. + NodeOutputName *string + + noSmithyDocumentSerde +} + // Contains information about the function that the agent predicts should be // called. // @@ -702,7 +896,10 @@ type GenerationConfiguration struct { InferenceConfig *InferenceConfig // Contains the template for the prompt that's sent to the model for response - // generation. + // generation. Generation prompts must include the $search_results$ variable. For + // more information, see [Use placeholder variables]in the user guide. + // + // [Use placeholder variables]: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html PromptTemplate *PromptTemplate noSmithyDocumentSerde @@ -1408,8 +1605,12 @@ type OrchestrationConfiguration struct { // generate responses while using a knowledge base as a source. InferenceConfig *InferenceConfig - // Contains the template for the prompt that's sent to the model for response - // generation. + // Contains the template for the prompt that's sent to the model. Orchestration + // prompts must include the $conversation_history$ and + // $output_format_instructions$ variables. For more information, see [Use placeholder variables] in the user + // guide. + // + // [Use placeholder variables]: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html PromptTemplate *PromptTemplate // To split up the prompt and retrieve multiple sources, set the transformation @@ -2620,15 +2821,18 @@ type UnknownUnionMember struct { noSmithyDocumentSerde } -func (*UnknownUnionMember) isFlowInputContent() {} -func (*UnknownUnionMember) isFlowOutputContent() {} -func (*UnknownUnionMember) isFlowResponseStream() {} -func (*UnknownUnionMember) isInvocationInputMember() {} -func (*UnknownUnionMember) isInvocationResultMember() {} -func (*UnknownUnionMember) isMemory() {} -func (*UnknownUnionMember) isOrchestrationTrace() {} -func (*UnknownUnionMember) isPostProcessingTrace() {} -func (*UnknownUnionMember) isPreProcessingTrace() {} -func (*UnknownUnionMember) isResponseStream() {} -func (*UnknownUnionMember) isRetrievalFilter() {} -func (*UnknownUnionMember) isTrace() {} +func (*UnknownUnionMember) isFlowInputContent() {} +func (*UnknownUnionMember) isFlowOutputContent() {} +func (*UnknownUnionMember) isFlowResponseStream() {} +func (*UnknownUnionMember) isFlowTrace() {} +func (*UnknownUnionMember) isFlowTraceNodeInputContent() {} +func (*UnknownUnionMember) isFlowTraceNodeOutputContent() {} +func (*UnknownUnionMember) isInvocationInputMember() {} +func (*UnknownUnionMember) isInvocationResultMember() {} +func (*UnknownUnionMember) isMemory() {} +func (*UnknownUnionMember) isOrchestrationTrace() {} +func (*UnknownUnionMember) isPostProcessingTrace() {} +func (*UnknownUnionMember) isPreProcessingTrace() {} +func (*UnknownUnionMember) isResponseStream() {} +func (*UnknownUnionMember) isRetrievalFilter() {} +func (*UnknownUnionMember) isTrace() {} diff --git a/service/bedrockagentruntime/types/types_exported_test.go b/service/bedrockagentruntime/types/types_exported_test.go index 585dc6f8098..4d48a65ce1b 100644 --- a/service/bedrockagentruntime/types/types_exported_test.go +++ b/service/bedrockagentruntime/types/types_exported_test.go @@ -54,6 +54,9 @@ func ExampleFlowResponseStream_outputUsage() { case *types.FlowResponseStreamMemberFlowOutputEvent: _ = v.Value // Value is types.FlowOutputEvent + case *types.FlowResponseStreamMemberFlowTraceEvent: + _ = v.Value // Value is types.FlowTraceEvent + case *types.UnknownUnionMember: fmt.Println("unknown tag:", v.Tag) @@ -64,8 +67,71 @@ func ExampleFlowResponseStream_outputUsage() { } var _ *types.FlowOutputEvent +var _ *types.FlowTraceEvent var _ *types.FlowCompletionEvent +func ExampleFlowTrace_outputUsage() { + var union types.FlowTrace + // type switches can be used to check the union value + switch v := union.(type) { + case *types.FlowTraceMemberConditionNodeResultTrace: + _ = v.Value // Value is types.FlowTraceConditionNodeResultEvent + + case *types.FlowTraceMemberNodeInputTrace: + _ = v.Value // Value is types.FlowTraceNodeInputEvent + + case *types.FlowTraceMemberNodeOutputTrace: + _ = v.Value // Value is types.FlowTraceNodeOutputEvent + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *types.FlowTraceNodeInputEvent +var _ *types.FlowTraceConditionNodeResultEvent +var _ *types.FlowTraceNodeOutputEvent + +func ExampleFlowTraceNodeInputContent_outputUsage() { + var union types.FlowTraceNodeInputContent + // type switches can be used to check the union value + switch v := union.(type) { + case *types.FlowTraceNodeInputContentMemberDocument: + _ = v.Value // Value is document.Interface + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ document.Interface + +func ExampleFlowTraceNodeOutputContent_outputUsage() { + var union types.FlowTraceNodeOutputContent + // type switches can be used to check the union value + switch v := union.(type) { + case *types.FlowTraceNodeOutputContentMemberDocument: + _ = v.Value // Value is document.Interface + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ document.Interface + func ExampleInvocationInputMember_outputUsage() { var union types.InvocationInputMember // type switches can be used to check the union value diff --git a/service/chimesdkmediapipelines/api_op_CreateMediaCapturePipeline.go b/service/chimesdkmediapipelines/api_op_CreateMediaCapturePipeline.go index a574834447c..ad9128ce354 100644 --- a/service/chimesdkmediapipelines/api_op_CreateMediaCapturePipeline.go +++ b/service/chimesdkmediapipelines/api_op_CreateMediaCapturePipeline.go @@ -59,6 +59,23 @@ type CreateMediaCapturePipelineInput struct { // idempotent. Use a unique token for each media pipeline request. ClientRequestToken *string + // The Amazon Resource Name (ARN) of the sink role to be used with AwsKmsKeyId in + // SseAwsKeyManagementParams . Can only interact with S3Bucket sink type. The role + // must belong to the caller’s account and be able to act on behalf of the caller + // during the API call. All minimum policy permissions requirements for the caller + // to perform sink-related actions are the same for SinkIamRoleArn . + // + // Additionally, the role must have permission to kms:GenerateDataKey using KMS + // key supplied as AwsKmsKeyId in SseAwsKeyManagementParams . If media + // concatenation will be required later, the role must also have permission to + // kms:Decrypt for the same KMS key. + SinkIamRoleArn *string + + // An object that contains server side encryption parameters to be used by media + // capture pipeline. The parameters can also be used by media concatenation + // pipeline taking media capture pipeline as a media source. + SseAwsKeyManagementParams *types.SseAwsKeyManagementParams + // The tag key-value pairs. Tags []types.Tag diff --git a/service/chimesdkmediapipelines/deserializers.go b/service/chimesdkmediapipelines/deserializers.go index 47d7ae237cf..540c85fe602 100644 --- a/service/chimesdkmediapipelines/deserializers.go +++ b/service/chimesdkmediapipelines/deserializers.go @@ -7662,6 +7662,15 @@ func awsRestjson1_deserializeDocumentMediaCapturePipeline(v **types.MediaCapture sv.SinkArn = ptr.String(jtv) } + case "SinkIamRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.SinkIamRoleArn = ptr.String(jtv) + } + case "SinkType": if value != nil { jtv, ok := value.(string) @@ -7689,6 +7698,11 @@ func awsRestjson1_deserializeDocumentMediaCapturePipeline(v **types.MediaCapture sv.SourceType = types.MediaPipelineSourceType(jtv) } + case "SseAwsKeyManagementParams": + if err := awsRestjson1_deserializeDocumentSseAwsKeyManagementParams(&sv.SseAwsKeyManagementParams, value); err != nil { + return err + } + case "Status": if value != nil { jtv, ok := value.(string) @@ -10014,6 +10028,55 @@ func awsRestjson1_deserializeDocumentSqsQueueSinkConfiguration(v **types.SqsQueu return nil } +func awsRestjson1_deserializeDocumentSseAwsKeyManagementParams(v **types.SseAwsKeyManagementParams, 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.SseAwsKeyManagementParams + if *v == nil { + sv = &types.SseAwsKeyManagementParams{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AwsKmsEncryptionContext": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.AwsKmsEncryptionContext = ptr.String(jtv) + } + + case "AwsKmsKeyId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.AwsKmsKeyId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentStreamChannelDefinition(v **types.StreamChannelDefinition, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/chimesdkmediapipelines/serializers.go b/service/chimesdkmediapipelines/serializers.go index 1a1a9b00942..907254721d3 100644 --- a/service/chimesdkmediapipelines/serializers.go +++ b/service/chimesdkmediapipelines/serializers.go @@ -106,6 +106,11 @@ func awsRestjson1_serializeOpDocumentCreateMediaCapturePipelineInput(v *CreateMe ok.String(*v.SinkArn) } + if v.SinkIamRoleArn != nil { + ok := object.Key("SinkIamRoleArn") + ok.String(*v.SinkIamRoleArn) + } + if len(v.SinkType) > 0 { ok := object.Key("SinkType") ok.String(string(v.SinkType)) @@ -121,6 +126,13 @@ func awsRestjson1_serializeOpDocumentCreateMediaCapturePipelineInput(v *CreateMe ok.String(string(v.SourceType)) } + if v.SseAwsKeyManagementParams != nil { + ok := object.Key("SseAwsKeyManagementParams") + if err := awsRestjson1_serializeDocumentSseAwsKeyManagementParams(v.SseAwsKeyManagementParams, ok); err != nil { + return err + } + } + if v.Tags != nil { ok := object.Key("Tags") if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { @@ -4067,6 +4079,23 @@ func awsRestjson1_serializeDocumentSqsQueueSinkConfiguration(v *types.SqsQueueSi return nil } +func awsRestjson1_serializeDocumentSseAwsKeyManagementParams(v *types.SseAwsKeyManagementParams, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AwsKmsEncryptionContext != nil { + ok := object.Key("AwsKmsEncryptionContext") + ok.String(*v.AwsKmsEncryptionContext) + } + + if v.AwsKmsKeyId != nil { + ok := object.Key("AwsKmsKeyId") + ok.String(*v.AwsKmsKeyId) + } + + return nil +} + func awsRestjson1_serializeDocumentStreamChannelDefinition(v *types.StreamChannelDefinition, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/chimesdkmediapipelines/types/types.go b/service/chimesdkmediapipelines/types/types.go index 68561b1f7b2..3afa15200e2 100644 --- a/service/chimesdkmediapipelines/types/types.go +++ b/service/chimesdkmediapipelines/types/types.go @@ -202,6 +202,10 @@ type AmazonTranscribeProcessorConfiguration struct { IdentifyLanguage bool // Turns language identification on or off for multiple languages. + // + // Calls to this API must include a LanguageCode , IdentifyLanguage , or + // IdentifyMultipleLanguages parameter. If you include more than one of those + // parameters, your transcription job fails. IdentifyMultipleLanguages bool // The language code that represents the language spoken in your audio. @@ -898,6 +902,10 @@ type MediaCapturePipeline struct { // ARN of the destination to which the media artifacts are saved. SinkArn *string + // The Amazon Resource Name (ARN) of the sink role to be used with AwsKmsKeyId in + // SseAwsKeyManagementParams . + SinkIamRoleArn *string + // Destination type to which the media artifacts are saved. You must use an S3 // Bucket. SinkType MediaPipelineSinkType @@ -908,6 +916,11 @@ type MediaCapturePipeline struct { // Source type from which media artifacts are saved. You must use ChimeMeeting . SourceType MediaPipelineSourceType + // An object that contains server side encryption parameters to be used by media + // capture pipeline. The parameters can also be used by media concatenation + // pipeline taking media capture pipeline as a media source. + SseAwsKeyManagementParams *SseAwsKeyManagementParams + // The status of the media pipeline. Status MediaPipelineStatus @@ -1472,6 +1485,57 @@ type SqsQueueSinkConfiguration struct { noSmithyDocumentSerde } +// Contains server side encryption parameters to be used by media capture +// pipeline. The parameters can also be used by media concatenation pipeline taking +// media capture pipeline as a media source. +type SseAwsKeyManagementParams struct { + + // The KMS key you want to use to encrypt your media pipeline output. Decryption + // is required for concatenation pipeline. If using a key located in the current + // Amazon Web Services account, you can specify your KMS key in one of four ways: + // + // - Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab + // . + // + // - Use an alias for the KMS key ID. For example, alias/ExampleAlias . + // + // - Use the Amazon Resource Name (ARN) for the KMS key ID. For example, + // arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab . + // + // - Use the ARN for the KMS key alias. For example, + // arn:aws:kms:region:account-ID:alias/ExampleAlias . + // + // If using a key located in a different Amazon Web Services account than the + // current Amazon Web Services account, you can specify your KMS key in one of two + // ways: + // + // - Use the ARN for the KMS key ID. For example, + // arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab . + // + // - Use the ARN for the KMS key alias. For example, + // arn:aws:kms:region:account-ID:alias/ExampleAlias . + // + // If you don't specify an encryption key, your output is encrypted with the + // default Amazon S3 key (SSE-S3). + // + // Note that the role specified in the SinkIamRoleArn request parameter must have + // permission to use the specified KMS key. + // + // This member is required. + AwsKmsKeyId *string + + // Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption + // context as non-secret key-value pair known as encryption context pairs, that + // provides an added layer of security for your data. For more information, see [KMS encryption context] + // and [Asymmetric keys in KMS]in the Key Management Service Developer Guide. + // + // [Asymmetric keys in KMS]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html + // [KMS encryption context]: https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html + AwsKmsEncryptionContext *string + + noSmithyDocumentSerde +} + // Defines a streaming channel. type StreamChannelDefinition struct { diff --git a/service/chimesdkmediapipelines/validators.go b/service/chimesdkmediapipelines/validators.go index 3643b0d680e..8b4939fa77d 100644 --- a/service/chimesdkmediapipelines/validators.go +++ b/service/chimesdkmediapipelines/validators.go @@ -1578,6 +1578,21 @@ func validateSentimentConfiguration(v *types.SentimentConfiguration) error { } } +func validateSseAwsKeyManagementParams(v *types.SseAwsKeyManagementParams) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SseAwsKeyManagementParams"} + if v.AwsKmsKeyId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsKmsKeyId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateStreamChannelDefinition(v *types.StreamChannelDefinition) error { if v == nil { return nil @@ -1757,6 +1772,11 @@ func validateOpCreateMediaCapturePipelineInput(v *CreateMediaCapturePipelineInpu invalidParams.AddNested("ChimeSdkMeetingConfiguration", err.(smithy.InvalidParamsError)) } } + if v.SseAwsKeyManagementParams != nil { + if err := validateSseAwsKeyManagementParams(v.SseAwsKeyManagementParams); err != nil { + invalidParams.AddNested("SseAwsKeyManagementParams", err.(smithy.InvalidParamsError)) + } + } if v.Tags != nil { if err := validateTagList(v.Tags); err != nil { invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) diff --git a/service/controlcatalog/api_op_GetControl.go b/service/controlcatalog/api_op_GetControl.go index 44471068b7d..d341357a24b 100644 --- a/service/controlcatalog/api_op_GetControl.go +++ b/service/controlcatalog/api_op_GetControl.go @@ -67,7 +67,7 @@ type GetControlOutput struct { Arn *string // A term that identifies the control's functional behavior. One of Preventive , - // Deteictive , Proactive + // Detective , Proactive // // This member is required. Behavior types.ControlBehavior @@ -84,7 +84,7 @@ type GetControlOutput struct { // Returns information about the control, including the scope of the control, if // enabled, and the Regions in which the control currently is available for - // deployment. + // deployment. For more information about scope, see [Global services]. // // If you are applying controls through an Amazon Web Services Control Tower // landing zone environment, remember that the values returned in the @@ -95,9 +95,20 @@ type GetControlOutput struct { // even though you may not intend to deploy the control in Region D , because you // do not govern it through your landing zone. // + // [Global services]: https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html + // // This member is required. RegionConfiguration *types.RegionConfiguration + // Returns information about the control, as an ImplementationDetails object that + // shows the underlying implementation type for a control. + Implementation *types.ImplementationDetails + + // Returns an array of ControlParameter objects that specify the parameters a + // control supports. An empty list is returned for controls that don’t support + // parameters. + Parameters []types.ControlParameter + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/controlcatalog/deserializers.go b/service/controlcatalog/deserializers.go index a12007d91e8..8c0862ae2b1 100644 --- a/service/controlcatalog/deserializers.go +++ b/service/controlcatalog/deserializers.go @@ -206,6 +206,11 @@ func awsRestjson1_deserializeOpDocumentGetControlOutput(v **GetControlOutput, va sv.Description = ptr.String(jtv) } + case "Implementation": + if err := awsRestjson1_deserializeDocumentImplementationDetails(&sv.Implementation, value); err != nil { + return err + } + case "Name": if value != nil { jtv, ok := value.(string) @@ -215,6 +220,11 @@ func awsRestjson1_deserializeOpDocumentGetControlOutput(v **GetControlOutput, va sv.Name = ptr.String(jtv) } + case "Parameters": + if err := awsRestjson1_deserializeDocumentControlParameters(&sv.Parameters, value); err != nil { + return err + } + case "RegionConfiguration": if err := awsRestjson1_deserializeDocumentRegionConfiguration(&sv.RegionConfiguration, value); err != nil { return err @@ -1361,6 +1371,80 @@ func awsRestjson1_deserializeDocumentCommonControlSummaryList(v *[]types.CommonC return nil } +func awsRestjson1_deserializeDocumentControlParameter(v **types.ControlParameter, 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.ControlParameter + if *v == nil { + sv = &types.ControlParameter{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentControlParameters(v *[]types.ControlParameter, 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.ControlParameter + if *v == nil { + cv = []types.ControlParameter{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ControlParameter + destAddr := &col + if err := awsRestjson1_deserializeDocumentControlParameter(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentControls(v *[]types.ControlSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -1613,6 +1697,46 @@ func awsRestjson1_deserializeDocumentDomainSummaryList(v *[]types.DomainSummary, return nil } +func awsRestjson1_deserializeDocumentImplementationDetails(v **types.ImplementationDetails, 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.ImplementationDetails + if *v == nil { + sv = &types.ImplementationDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ImplementationType to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/controlcatalog/types/types.go b/service/controlcatalog/types/types.go index e9cb4659d48..953ce4cb0ce 100644 --- a/service/controlcatalog/types/types.go +++ b/service/controlcatalog/types/types.go @@ -84,6 +84,45 @@ type CommonControlSummary struct { noSmithyDocumentSerde } +// Four types of control parameters are supported. +// +// - AllowedRegions: List of Amazon Web Services Regions exempted from the +// control. Each string is expected to be an Amazon Web Services Region code. This +// parameter is mandatory for the OU Region deny control, CT.MULTISERVICE.PV.1. +// +// Example: ["us-east-1","us-west-2"] +// +// - ExemptedActions: List of Amazon Web Services IAM actions exempted from the +// control. Each string is expected to be an IAM action. +// +// Example: ["logs:DescribeLogGroups","logs:StartQuery","logs:GetQueryResults"] +// +// - ExemptedPrincipalArns: List of Amazon Web Services IAM principal ARNs +// exempted from the control. Each string is expected to be an IAM principal that +// follows the pattern ^arn:(aws|aws-us-gov):(iam|sts)::.+:.+$ +// +// Example: +// +// ["arn:aws:iam::*:role/ReadOnly","arn:aws:sts::*:assumed-role/ReadOnly/*"] +// +// - ExemptedResourceArns: List of resource ARNs exempted from the control. Each +// string is expected to be a resource ARN. +// +// Example: ["arn:aws:s3:::my-bucket-name"] +type ControlParameter struct { + + // The parameter name. This name is the parameter key when you call [EnableControl]EnableControl + // or [UpdateEnabledControl]UpdateEnabledControl . + // + // [EnableControl]: https://docs.aws.amazon.com/controltower/latest/APIReference/API_EnableControl.html + // [UpdateEnabledControl]: https://docs.aws.amazon.com/controltower/latest/APIReference/API_UpdateEnabledControl.html + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + // Overview of information about a control. type ControlSummary struct { @@ -146,6 +185,36 @@ type DomainSummary struct { noSmithyDocumentSerde } +// An object that describes the implementation type for a control. +// +// Our ImplementationDetails Type format has three required segments: +// +// - SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME +// +// For example, AWS::Config::ConfigRule or AWS::SecurityHub::SecurityControl +// resources have the format with three required segments. +// +// Our ImplementationDetails Type format has an optional fourth segment, which is +// present for applicable implementation types. The format is as follows: +// +// - SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME::RESOURCE-TYPE-DESCRIPTION +// +// For example, AWS::Organizations::Policy::SERVICE_CONTROL_POLICY or +// AWS::CloudFormation::Type::HOOK have the format with four segments. +// +// Although the format is similar, the values for the Type field do not match any +// Amazon Web Services CloudFormation values, and we do not use CloudFormation to +// implement these controls. +type ImplementationDetails struct { + + // A string that describes a control's implementation type. + // + // This member is required. + Type *string + + noSmithyDocumentSerde +} + // An optional filter that narrows the list of objectives to a specific domain. type ObjectiveFilter struct { @@ -205,7 +274,7 @@ type ObjectiveSummary struct { // Returns information about the control, including the scope of the control, if // enabled, and the Regions in which the control currently is available for -// deployment. +// deployment. For more information about scope, see [Global services]. // // If you are applying controls through an Amazon Web Services Control Tower // landing zone environment, remember that the values returned in the @@ -215,6 +284,8 @@ type ObjectiveSummary struct { // with DeployableRegions of A , B , C , and D for a control with REGIONAL scope, // even though you may not intend to deploy the control in Region D , because you // do not govern it through your landing zone. +// +// [Global services]: https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html type RegionConfiguration struct { // The coverage of the control, if deployed. Scope is an enumerated type, with diff --git a/service/directoryservice/internal/endpoints/endpoints.go b/service/directoryservice/internal/endpoints/endpoints.go index 442cf2a8813..f1a7a765bbf 100644 --- a/service/directoryservice/internal/endpoints/endpoints.go +++ b/service/directoryservice/internal/endpoints/endpoints.go @@ -172,6 +172,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-4", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-5", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, diff --git a/service/eks/types/enums.go b/service/eks/types/enums.go index 5849b63d038..c8500434f3a 100644 --- a/service/eks/types/enums.go +++ b/service/eks/types/enums.go @@ -594,6 +594,7 @@ const ( NodegroupIssueCodeAutoScalingGroupInstanceRefreshActive NodegroupIssueCode = "AutoScalingGroupInstanceRefreshActive" NodegroupIssueCodeKubernetesLabelInvalid NodegroupIssueCode = "KubernetesLabelInvalid" NodegroupIssueCodeEc2LaunchTemplateVersionMaxLimitExceeded NodegroupIssueCode = "Ec2LaunchTemplateVersionMaxLimitExceeded" + NodegroupIssueCodeEc2InstanceTypeDoesNotExist NodegroupIssueCode = "Ec2InstanceTypeDoesNotExist" ) // Values returns all known values for NodegroupIssueCode. Note that this can be @@ -637,6 +638,7 @@ func (NodegroupIssueCode) Values() []NodegroupIssueCode { "AutoScalingGroupInstanceRefreshActive", "KubernetesLabelInvalid", "Ec2LaunchTemplateVersionMaxLimitExceeded", + "Ec2InstanceTypeDoesNotExist", } } diff --git a/service/eks/types/types.go b/service/eks/types/types.go index 4e1e9f07304..5bb2d604d0b 100644 --- a/service/eks/types/types.go +++ b/service/eks/types/types.go @@ -953,6 +953,10 @@ type Issue struct { // happen if there are network disruptions or if API servers are timing out // processing requests. // + // - Ec2InstanceTypeDoesNotExist: One or more of the supplied Amazon EC2 + // instance types do not exist. Amazon EKS checked for the instance types that you + // provided in this Amazon Web Services Region, and one or more aren't available. + // // - Ec2LaunchTemplateNotFound: We couldn't find the Amazon EC2 launch template // for your managed node group. You may be able to recreate a launch template with // the same settings to recover. diff --git a/service/firehose/api_op_CreateDeliveryStream.go b/service/firehose/api_op_CreateDeliveryStream.go index 5a0b3436575..6309536b972 100644 --- a/service/firehose/api_op_CreateDeliveryStream.go +++ b/service/firehose/api_op_CreateDeliveryStream.go @@ -11,34 +11,34 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a Firehose delivery stream. +// Creates a Firehose stream. // -// By default, you can create up to 50 delivery streams per Amazon Web Services +// By default, you can create up to 50 Firehose streams per Amazon Web Services // Region. // // This is an asynchronous operation that immediately returns. The initial status -// of the delivery stream is CREATING . After the delivery stream is created, its -// status is ACTIVE and it now accepts data. If the delivery stream creation +// of the Firehose stream is CREATING . After the Firehose stream is created, its +// status is ACTIVE and it now accepts data. If the Firehose stream creation // fails, the status transitions to CREATING_FAILED . Attempts to send data to a // delivery stream that is not in the ACTIVE state cause an exception. To check -// the state of a delivery stream, use DescribeDeliveryStream. +// the state of a Firehose stream, use DescribeDeliveryStream. // -// If the status of a delivery stream is CREATING_FAILED , this status doesn't +// If the status of a Firehose stream is CREATING_FAILED , this status doesn't // change, and you can't invoke CreateDeliveryStream again on it. However, you can // invoke the DeleteDeliveryStreamoperation to delete it. // -// A Firehose delivery stream can be configured to receive records directly from -// providers using PutRecordor PutRecordBatch, or it can be configured to use an existing Kinesis stream -// as its source. To specify a Kinesis data stream as input, set the -// DeliveryStreamType parameter to KinesisStreamAsSource , and provide the Kinesis -// stream Amazon Resource Name (ARN) and role ARN in the -// KinesisStreamSourceConfiguration parameter. +// A Firehose stream can be configured to receive records directly from providers +// using PutRecordor PutRecordBatch, or it can be configured to use an existing Kinesis stream as its +// source. To specify a Kinesis data stream as input, set the DeliveryStreamType +// parameter to KinesisStreamAsSource , and provide the Kinesis stream Amazon +// Resource Name (ARN) and role ARN in the KinesisStreamSourceConfiguration +// parameter. // -// To create a delivery stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput +// To create a Firehose stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput // in your request. This is optional. You can also invoke StartDeliveryStreamEncryptionto turn on SSE for an -// existing delivery stream that doesn't have SSE enabled. +// existing Firehose stream that doesn't have SSE enabled. // -// A delivery stream is configured with a single destination, such as Amazon +// A Firehose stream is configured with a single destination, such as Amazon // Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, // Amazon OpenSearch Serverless, Splunk, and any custom HTTP endpoint or HTTP // endpoints owned by or supported by third-party service providers, including @@ -97,9 +97,9 @@ func (c *Client) CreateDeliveryStream(ctx context.Context, params *CreateDeliver type CreateDeliveryStreamInput struct { - // The name of the delivery stream. This name must be unique per Amazon Web - // Services account in the same Amazon Web Services Region. If the delivery streams - // are in different accounts or different Regions, you can have multiple delivery + // The name of the Firehose stream. This name must be unique per Amazon Web + // Services account in the same Amazon Web Services Region. If the Firehose streams + // are in different accounts or different Regions, you can have multiple Firehose // streams with the same name. // // This member is required. @@ -113,15 +113,18 @@ type CreateDeliveryStreamInput struct { // destination. AmazonopensearchserviceDestinationConfiguration *types.AmazonopensearchserviceDestinationConfiguration + // Amazon Data Firehose is in preview release and is subject to change. + DatabaseSourceConfiguration *types.DatabaseSourceConfiguration + // Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed // for Server-Side Encryption (SSE). DeliveryStreamEncryptionConfigurationInput *types.DeliveryStreamEncryptionConfigurationInput - // The delivery stream type. This parameter can be one of the following values: + // The Firehose stream type. This parameter can be one of the following values: // - // - DirectPut : Provider applications access the delivery stream directly. + // - DirectPut : Provider applications access the Firehose stream directly. // - // - KinesisStreamAsSource : The delivery stream uses a Kinesis data stream as a + // - KinesisStreamAsSource : The Firehose stream uses a Kinesis data stream as a // source. DeliveryStreamType types.DeliveryStreamType @@ -136,11 +139,9 @@ type CreateDeliveryStreamInput struct { HttpEndpointDestinationConfiguration *types.HttpEndpointDestinationConfiguration // Configure Apache Iceberg Tables destination. - // - // Amazon Data Firehose is in preview release and is subject to change. IcebergDestinationConfiguration *types.IcebergDestinationConfiguration - // When a Kinesis data stream is used as the source for the delivery stream, a KinesisStreamSourceConfiguration + // When a Kinesis data stream is used as the source for the Firehose stream, a KinesisStreamSourceConfiguration // containing the Kinesis data stream Amazon Resource Name (ARN) and the role ARN // for the source stream. KinesisStreamSourceConfiguration *types.KinesisStreamSourceConfiguration @@ -163,19 +164,19 @@ type CreateDeliveryStreamInput struct { // The destination in Splunk. You can specify only one destination. SplunkDestinationConfiguration *types.SplunkDestinationConfiguration - // A set of tags to assign to the delivery stream. A tag is a key-value pair that + // A set of tags to assign to the Firehose stream. A tag is a key-value pair that // you can define and assign to Amazon Web Services resources. Tags are metadata. // For example, you can add friendly names and descriptions or other types of - // information that can help you distinguish the delivery stream. For more + // information that can help you distinguish the Firehose stream. For more // information about tags, see [Using Cost Allocation Tags]in the Amazon Web Services Billing and Cost // Management User Guide. // - // You can specify up to 50 tags when creating a delivery stream. + // You can specify up to 50 tags when creating a Firehose stream. // // If you specify tags in the CreateDeliveryStream action, Amazon Data Firehose // performs an additional authorization on the firehose:TagDeliveryStream action // to verify if users have permissions to create tags. If you do not provide this - // permission, requests to create new Firehose delivery streams with IAM resource + // permission, requests to create new Firehose Firehose streams with IAM resource // tags will fail with an AccessDeniedException such as following. // // AccessDeniedException @@ -196,7 +197,7 @@ type CreateDeliveryStreamInput struct { type CreateDeliveryStreamOutput struct { - // The ARN of the delivery stream. + // The ARN of the Firehose stream. DeliveryStreamARN *string // Metadata pertaining to the operation's result. diff --git a/service/firehose/api_op_DeleteDeliveryStream.go b/service/firehose/api_op_DeleteDeliveryStream.go index fa8bba7e785..2337145607d 100644 --- a/service/firehose/api_op_DeleteDeliveryStream.go +++ b/service/firehose/api_op_DeleteDeliveryStream.go @@ -10,22 +10,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a delivery stream and its data. +// Deletes a Firehose stream and its data. // -// You can delete a delivery stream only if it is in one of the following states: +// You can delete a Firehose stream only if it is in one of the following states: // ACTIVE , DELETING , CREATING_FAILED , or DELETING_FAILED . You can't delete a -// delivery stream that is in the CREATING state. To check the state of a delivery +// Firehose stream that is in the CREATING state. To check the state of a Firehose // stream, use DescribeDeliveryStream. // // DeleteDeliveryStream is an asynchronous API. When an API request to -// DeleteDeliveryStream succeeds, the delivery stream is marked for deletion, and -// it goes into the DELETING state.While the delivery stream is in the DELETING +// DeleteDeliveryStream succeeds, the Firehose stream is marked for deletion, and +// it goes into the DELETING state.While the Firehose stream is in the DELETING // state, the service might continue to accept records, but it doesn't make any // guarantees with respect to delivering the data. Therefore, as a best practice, // first stop any applications that are sending records before you delete a -// delivery stream. +// Firehose stream. // -// Removal of a delivery stream that is in the DELETING state is a low priority +// Removal of a Firehose stream that is in the DELETING state is a low priority // operation for the service. A stream may remain in the DELETING state for // several minutes. Therefore, as a best practice, applications should not wait for // streams in the DELETING state to be removed. @@ -46,12 +46,12 @@ func (c *Client) DeleteDeliveryStream(ctx context.Context, params *DeleteDeliver type DeleteDeliveryStreamInput struct { - // The name of the delivery stream. + // The name of the Firehose stream. // // This member is required. DeliveryStreamName *string - // Set this to true if you want to delete the delivery stream even if Firehose is + // Set this to true if you want to delete the Firehose stream even if Firehose is // unable to retire the grant for the CMK. Firehose might be unable to retire the // grant due to a customer error, such as when the CMK or the grant are in an // invalid state. If you force deletion, you can then use the [RevokeGrant]operation to revoke diff --git a/service/firehose/api_op_DescribeDeliveryStream.go b/service/firehose/api_op_DescribeDeliveryStream.go index 331eef0bbd4..3e6953c5bed 100644 --- a/service/firehose/api_op_DescribeDeliveryStream.go +++ b/service/firehose/api_op_DescribeDeliveryStream.go @@ -11,11 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Describes the specified delivery stream and its status. For example, after your -// delivery stream is created, call DescribeDeliveryStream to see whether the -// delivery stream is ACTIVE and therefore ready for data to be sent to it. +// Describes the specified Firehose stream and its status. For example, after your +// Firehose stream is created, call DescribeDeliveryStream to see whether the +// Firehose stream is ACTIVE and therefore ready for data to be sent to it. // -// If the status of a delivery stream is CREATING_FAILED , this status doesn't +// If the status of a Firehose stream is CREATING_FAILED , this status doesn't // change, and you can't invoke CreateDeliveryStreamagain on it. However, you can invoke the DeleteDeliveryStream // operation to delete it. If the status is DELETING_FAILED , you can force // deletion by invoking DeleteDeliveryStreamagain but with DeleteDeliveryStreamInput$AllowForceDelete set to true. @@ -36,17 +36,17 @@ func (c *Client) DescribeDeliveryStream(ctx context.Context, params *DescribeDel type DescribeDeliveryStreamInput struct { - // The name of the delivery stream. + // The name of the Firehose stream. // // This member is required. DeliveryStreamName *string // The ID of the destination to start returning the destination information. - // Firehose supports one destination per delivery stream. + // Firehose supports one destination per Firehose stream. ExclusiveStartDestinationId *string // The limit on the number of destinations to return. You can have one destination - // per delivery stream. + // per Firehose stream. Limit *int32 noSmithyDocumentSerde @@ -54,7 +54,7 @@ type DescribeDeliveryStreamInput struct { type DescribeDeliveryStreamOutput struct { - // Information about the delivery stream. + // Information about the Firehose stream. // // This member is required. DeliveryStreamDescription *types.DeliveryStreamDescription diff --git a/service/firehose/api_op_ListDeliveryStreams.go b/service/firehose/api_op_ListDeliveryStreams.go index c915b702c81..4b59f44ecfb 100644 --- a/service/firehose/api_op_ListDeliveryStreams.go +++ b/service/firehose/api_op_ListDeliveryStreams.go @@ -11,15 +11,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists your delivery streams in alphabetical order of their names. +// Lists your Firehose streams in alphabetical order of their names. // -// The number of delivery streams might be too large to return using a single call -// to ListDeliveryStreams . You can limit the number of delivery streams returned, +// The number of Firehose streams might be too large to return using a single call +// to ListDeliveryStreams . You can limit the number of Firehose streams returned, // using the Limit parameter. To determine whether there are more delivery streams // to list, check the value of HasMoreDeliveryStreams in the output. If there are -// more delivery streams to list, you can request them by calling this operation +// more Firehose streams to list, you can request them by calling this operation // again and setting the ExclusiveStartDeliveryStreamName parameter to the name of -// the last delivery stream returned in the last call. +// the last Firehose stream returned in the last call. func (c *Client) ListDeliveryStreams(ctx context.Context, params *ListDeliveryStreamsInput, optFns ...func(*Options)) (*ListDeliveryStreamsOutput, error) { if params == nil { params = &ListDeliveryStreamsInput{} @@ -37,23 +37,23 @@ func (c *Client) ListDeliveryStreams(ctx context.Context, params *ListDeliverySt type ListDeliveryStreamsInput struct { - // The delivery stream type. This can be one of the following values: + // The Firehose stream type. This can be one of the following values: // - // - DirectPut : Provider applications access the delivery stream directly. + // - DirectPut : Provider applications access the Firehose stream directly. // - // - KinesisStreamAsSource : The delivery stream uses a Kinesis data stream as a + // - KinesisStreamAsSource : The Firehose stream uses a Kinesis data stream as a // source. // - // This parameter is optional. If this parameter is omitted, delivery streams of + // This parameter is optional. If this parameter is omitted, Firehose streams of // all types are returned. DeliveryStreamType types.DeliveryStreamType - // The list of delivery streams returned by this call to ListDeliveryStreams will - // start with the delivery stream whose name comes alphabetically immediately after + // The list of Firehose streams returned by this call to ListDeliveryStreams will + // start with the Firehose stream whose name comes alphabetically immediately after // the name you specify in ExclusiveStartDeliveryStreamName . ExclusiveStartDeliveryStreamName *string - // The maximum number of delivery streams to list. The default value is 10. + // The maximum number of Firehose streams to list. The default value is 10. Limit *int32 noSmithyDocumentSerde @@ -61,12 +61,12 @@ type ListDeliveryStreamsInput struct { type ListDeliveryStreamsOutput struct { - // The names of the delivery streams. + // The names of the Firehose streams. // // This member is required. DeliveryStreamNames []string - // Indicates whether there are more delivery streams available to list. + // Indicates whether there are more Firehose streams available to list. // // This member is required. HasMoreDeliveryStreams *bool diff --git a/service/firehose/api_op_ListTagsForDeliveryStream.go b/service/firehose/api_op_ListTagsForDeliveryStream.go index 67b61fd3634..f1c7c7b4d26 100644 --- a/service/firehose/api_op_ListTagsForDeliveryStream.go +++ b/service/firehose/api_op_ListTagsForDeliveryStream.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the tags for the specified delivery stream. This operation has a limit of +// Lists the tags for the specified Firehose stream. This operation has a limit of // five transactions per second per account. func (c *Client) ListTagsForDeliveryStream(ctx context.Context, params *ListTagsForDeliveryStreamInput, optFns ...func(*Options)) (*ListTagsForDeliveryStreamOutput, error) { if params == nil { @@ -30,7 +30,7 @@ func (c *Client) ListTagsForDeliveryStream(ctx context.Context, params *ListTags type ListTagsForDeliveryStreamInput struct { - // The name of the delivery stream whose tags you want to list. + // The name of the Firehose stream whose tags you want to list. // // This member is required. DeliveryStreamName *string @@ -41,7 +41,7 @@ type ListTagsForDeliveryStreamInput struct { ExclusiveStartTagKey *string // The number of tags to return. If this number is less than the total number of - // tags associated with the delivery stream, HasMoreTags is set to true in the + // tags associated with the Firehose stream, HasMoreTags is set to true in the // response. To list additional tags, set ExclusiveStartTagKey to the last key in // the response. Limit *int32 diff --git a/service/firehose/api_op_PutRecord.go b/service/firehose/api_op_PutRecord.go index 0f4d6c22c10..187ada829ff 100644 --- a/service/firehose/api_op_PutRecord.go +++ b/service/firehose/api_op_PutRecord.go @@ -11,26 +11,32 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Writes a single data record into an Amazon Firehose delivery stream. To write -// multiple data records into a delivery stream, use PutRecordBatch. Applications using these -// operations are referred to as producers. +// Writes a single data record into an Firehose stream. To write multiple data +// records into a Firehose stream, use PutRecordBatch. Applications using these operations are +// referred to as producers. // -// By default, each delivery stream can take in up to 2,000 transactions per +// By default, each Firehose stream can take in up to 2,000 transactions per // second, 5,000 records per second, or 5 MB per second. If you use PutRecordand PutRecordBatch, the -// limits are an aggregate across these two operations for each delivery stream. +// limits are an aggregate across these two operations for each Firehose stream. // For more information about limits and how to request an increase, see [Amazon Firehose Limits]. // // Firehose accumulates and publishes a particular metric for a customer account // in one minute intervals. It is possible that the bursts of incoming -// bytes/records ingested to a delivery stream last only for a few seconds. Due to +// bytes/records ingested to a Firehose stream last only for a few seconds. Due to // this, the actual spikes in the traffic might not be fully visible in the // customer's 1 minute CloudWatch metrics. // -// You must specify the name of the delivery stream and the data record when using PutRecord +// You must specify the name of the Firehose stream and the data record when using PutRecord // . The data record consists of a data blob that can be up to 1,000 KiB in size, // and any kind of data. For example, it can be a segment from a log file, // geographic location data, website clickstream data, and so on. // +// For multi record de-aggregation, you can not put more than 500 records even if +// the data blob length is less than 1000 KiB. If you include more than 500 +// records, the request succeeds but the record de-aggregation doesn't work as +// expected and transformation lambda is invoked with the complete base64 encoded +// data blob instead of de-aggregated base64 decoded records. +// // Firehose buffers records before delivering them to the destination. To // disambiguate the data blobs at the destination, a common solution is to use // delimiters in the data, such as a newline ( \n ) or some other character unique @@ -43,14 +49,14 @@ import ( // // If the PutRecord operation throws a ServiceUnavailableException , the API is // automatically reinvoked (retried) 3 times. If the exception persists, it is -// possible that the throughput limits have been exceeded for the delivery stream. +// possible that the throughput limits have been exceeded for the Firehose stream. // // Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) // can result in data duplicates. For larger data assets, allow for a longer time // out before retrying Put API operations. // // Data records sent to Firehose are stored for 24 hours from the time they are -// added to a delivery stream as it tries to send the records to the destination. +// added to a Firehose stream as it tries to send the records to the destination. // If the destination is unreachable for more than 24 hours, the data is no longer // available. // @@ -75,7 +81,7 @@ func (c *Client) PutRecord(ctx context.Context, params *PutRecordInput, optFns . type PutRecordInput struct { - // The name of the delivery stream. + // The name of the Firehose stream. // // This member is required. DeliveryStreamName *string diff --git a/service/firehose/api_op_PutRecordBatch.go b/service/firehose/api_op_PutRecordBatch.go index a33592feb07..c97c275f134 100644 --- a/service/firehose/api_op_PutRecordBatch.go +++ b/service/firehose/api_op_PutRecordBatch.go @@ -11,14 +11,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Writes multiple data records into a delivery stream in a single call, which can +// Writes multiple data records into a Firehose stream in a single call, which can // achieve higher throughput per producer than when writing single records. To -// write single data records into a delivery stream, use PutRecord. Applications using +// write single data records into a Firehose stream, use PutRecord. Applications using // these operations are referred to as producers. // // Firehose accumulates and publishes a particular metric for a customer account // in one minute intervals. It is possible that the bursts of incoming -// bytes/records ingested to a delivery stream last only for a few seconds. Due to +// bytes/records ingested to a Firehose stream last only for a few seconds. Due to // this, the actual spikes in the traffic might not be fully visible in the // customer's 1 minute CloudWatch metrics. // @@ -28,11 +28,17 @@ import ( // large as 1,000 KB (before base64 encoding), up to a limit of 4 MB for the entire // request. These limits cannot be changed. // -// You must specify the name of the delivery stream and the data record when using PutRecord +// You must specify the name of the Firehose stream and the data record when using PutRecord // . The data record consists of a data blob that can be up to 1,000 KB in size, // and any kind of data. For example, it could be a segment from a log file, // geographic location data, website clickstream data, and so on. // +// For multi record de-aggregation, you can not put more than 500 records even if +// the data blob length is less than 1000 KiB. If you include more than 500 +// records, the request succeeds but the record de-aggregation doesn't work as +// expected and transformation lambda is invoked with the complete base64 encoded +// data blob instead of de-aggregated base64 decoded records. +// // Firehose buffers records before delivering them to the destination. To // disambiguate the data blobs at the destination, a common solution is to use // delimiters in the data, such as a newline ( \n ) or some other character unique @@ -66,14 +72,14 @@ import ( // // If PutRecordBatch throws ServiceUnavailableException , the API is automatically reinvoked // (retried) 3 times. If the exception persists, it is possible that the throughput -// limits have been exceeded for the delivery stream. +// limits have been exceeded for the Firehose stream. // // Re-invoking the Put API operations (for example, PutRecord and PutRecordBatch) // can result in data duplicates. For larger data assets, allow for a longer time // out before retrying Put API operations. // // Data records sent to Firehose are stored for 24 hours from the time they are -// added to a delivery stream as it attempts to send the records to the +// added to a Firehose stream as it attempts to send the records to the // destination. If the destination is unreachable for more than 24 hours, the data // is no longer available. // @@ -98,7 +104,7 @@ func (c *Client) PutRecordBatch(ctx context.Context, params *PutRecordBatchInput type PutRecordBatchInput struct { - // The name of the delivery stream. + // The name of the Firehose stream. // // This member is required. DeliveryStreamName *string diff --git a/service/firehose/api_op_StartDeliveryStreamEncryption.go b/service/firehose/api_op_StartDeliveryStreamEncryption.go index 734c33604fc..479f00d40db 100644 --- a/service/firehose/api_op_StartDeliveryStreamEncryption.go +++ b/service/firehose/api_op_StartDeliveryStreamEncryption.go @@ -11,21 +11,21 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Enables server-side encryption (SSE) for the delivery stream. +// Enables server-side encryption (SSE) for the Firehose stream. // // This operation is asynchronous. It returns immediately. When you invoke it, // Firehose first sets the encryption status of the stream to ENABLING , and then -// to ENABLED . The encryption status of a delivery stream is the Status property +// to ENABLED . The encryption status of a Firehose stream is the Status property // in DeliveryStreamEncryptionConfiguration. If the operation fails, the encryption status changes to ENABLING_FAILED . -// You can continue to read and write data to your delivery stream while the +// You can continue to read and write data to your Firehose stream while the // encryption status is ENABLING , but the data is not encrypted. It can take up to // 5 seconds after the encryption status changes to ENABLED before all records -// written to the delivery stream are encrypted. To find out whether a record or a +// written to the Firehose stream are encrypted. To find out whether a record or a // batch of records was encrypted, check the response elements PutRecordOutput$Encryptedand PutRecordBatchOutput$Encrypted, respectively. // -// To check the encryption status of a delivery stream, use DescribeDeliveryStream. +// To check the encryption status of a Firehose stream, use DescribeDeliveryStream. // -// Even if encryption is currently enabled for a delivery stream, you can still +// Even if encryption is currently enabled for a Firehose stream, you can still // invoke this operation on it to change the ARN of the CMK or both its type and // ARN. If you invoke this method to change the CMK, and the old CMK is of type // CUSTOMER_MANAGED_CMK , Firehose schedules the grant it had on the old CMK for @@ -37,23 +37,23 @@ import ( // StartDeliveryStreamEncryption and CreateDeliveryStream should not be called // with session credentials that are more than 6 hours old. // -// If a delivery stream already has encryption enabled and then you invoke this +// If a Firehose stream already has encryption enabled and then you invoke this // operation to change the ARN of the CMK or both its type and ARN and you get // ENABLING_FAILED , this only means that the attempt to change the CMK failed. In // this case, encryption remains enabled with the old CMK. // -// If the encryption status of your delivery stream is ENABLING_FAILED , you can +// If the encryption status of your Firehose stream is ENABLING_FAILED , you can // invoke this operation again with a valid CMK. The CMK must be enabled and the // key policy mustn't explicitly deny the permission for Firehose to invoke KMS // encrypt and decrypt operations. // -// You can enable SSE for a delivery stream only if it's a delivery stream that +// You can enable SSE for a Firehose stream only if it's a Firehose stream that // uses DirectPut as its source. // // The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption operations -// have a combined limit of 25 calls per delivery stream per 24 hours. For example, +// have a combined limit of 25 calls per Firehose stream per 24 hours. For example, // you reach the limit if you call StartDeliveryStreamEncryption 13 times and -// StopDeliveryStreamEncryption 12 times for the same delivery stream in a 24-hour +// StopDeliveryStreamEncryption 12 times for the same Firehose stream in a 24-hour // period. func (c *Client) StartDeliveryStreamEncryption(ctx context.Context, params *StartDeliveryStreamEncryptionInput, optFns ...func(*Options)) (*StartDeliveryStreamEncryptionOutput, error) { if params == nil { @@ -72,7 +72,7 @@ func (c *Client) StartDeliveryStreamEncryption(ctx context.Context, params *Star type StartDeliveryStreamEncryptionInput struct { - // The name of the delivery stream for which you want to enable server-side + // The name of the Firehose stream for which you want to enable server-side // encryption (SSE). // // This member is required. diff --git a/service/firehose/api_op_StopDeliveryStreamEncryption.go b/service/firehose/api_op_StopDeliveryStreamEncryption.go index fde7aad2775..7a8b3d37ae8 100644 --- a/service/firehose/api_op_StopDeliveryStreamEncryption.go +++ b/service/firehose/api_op_StopDeliveryStreamEncryption.go @@ -10,17 +10,17 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Disables server-side encryption (SSE) for the delivery stream. +// Disables server-side encryption (SSE) for the Firehose stream. // // This operation is asynchronous. It returns immediately. When you invoke it, // Firehose first sets the encryption status of the stream to DISABLING , and then // to DISABLED . You can continue to read and write data to your stream while its // status is DISABLING . It can take up to 5 seconds after the encryption status -// changes to DISABLED before all records written to the delivery stream are no +// changes to DISABLED before all records written to the Firehose stream are no // longer subject to encryption. To find out whether a record or a batch of records // was encrypted, check the response elements PutRecordOutput$Encryptedand PutRecordBatchOutput$Encrypted, respectively. // -// To check the encryption state of a delivery stream, use DescribeDeliveryStream. +// To check the encryption state of a Firehose stream, use DescribeDeliveryStream. // // If SSE is enabled using a customer managed CMK and then you invoke // StopDeliveryStreamEncryption , Firehose schedules the related KMS grant for @@ -28,9 +28,9 @@ import ( // records to the destination. // // The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption operations -// have a combined limit of 25 calls per delivery stream per 24 hours. For example, +// have a combined limit of 25 calls per Firehose stream per 24 hours. For example, // you reach the limit if you call StartDeliveryStreamEncryption 13 times and -// StopDeliveryStreamEncryption 12 times for the same delivery stream in a 24-hour +// StopDeliveryStreamEncryption 12 times for the same Firehose stream in a 24-hour // period. func (c *Client) StopDeliveryStreamEncryption(ctx context.Context, params *StopDeliveryStreamEncryptionInput, optFns ...func(*Options)) (*StopDeliveryStreamEncryptionOutput, error) { if params == nil { @@ -49,7 +49,7 @@ func (c *Client) StopDeliveryStreamEncryption(ctx context.Context, params *StopD type StopDeliveryStreamEncryptionInput struct { - // The name of the delivery stream for which you want to disable server-side + // The name of the Firehose stream for which you want to disable server-side // encryption (SSE). // // This member is required. diff --git a/service/firehose/api_op_TagDeliveryStream.go b/service/firehose/api_op_TagDeliveryStream.go index ee3313909fd..281396a7022 100644 --- a/service/firehose/api_op_TagDeliveryStream.go +++ b/service/firehose/api_op_TagDeliveryStream.go @@ -11,15 +11,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Adds or updates tags for the specified delivery stream. A tag is a key-value +// Adds or updates tags for the specified Firehose stream. A tag is a key-value // pair that you can define and assign to Amazon Web Services resources. If you // specify a tag that already exists, the tag value is replaced with the value that // you specify in the request. Tags are metadata. For example, you can add friendly // names and descriptions or other types of information that can help you -// distinguish the delivery stream. For more information about tags, see [Using Cost Allocation Tags]in the +// distinguish the Firehose stream. For more information about tags, see [Using Cost Allocation Tags]in the // Amazon Web Services Billing and Cost Management User Guide. // -// Each delivery stream can have up to 50 tags. +// Each Firehose stream can have up to 50 tags. // // This operation has a limit of five transactions per second per account. // @@ -41,7 +41,7 @@ func (c *Client) TagDeliveryStream(ctx context.Context, params *TagDeliveryStrea type TagDeliveryStreamInput struct { - // The name of the delivery stream to which you want to add the tags. + // The name of the Firehose stream to which you want to add the tags. // // This member is required. DeliveryStreamName *string diff --git a/service/firehose/api_op_UntagDeliveryStream.go b/service/firehose/api_op_UntagDeliveryStream.go index be21688489d..78246d2642b 100644 --- a/service/firehose/api_op_UntagDeliveryStream.go +++ b/service/firehose/api_op_UntagDeliveryStream.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes tags from the specified delivery stream. Removed tags are deleted, and +// Removes tags from the specified Firehose stream. Removed tags are deleted, and // you can't recover them after this operation successfully completes. // // If you specify a tag that doesn't exist, the operation ignores it. @@ -33,7 +33,7 @@ func (c *Client) UntagDeliveryStream(ctx context.Context, params *UntagDeliveryS type UntagDeliveryStreamInput struct { - // The name of the delivery stream. + // The name of the Firehose stream. // // This member is required. DeliveryStreamName *string diff --git a/service/firehose/api_op_UpdateDestination.go b/service/firehose/api_op_UpdateDestination.go index 65bccb5d174..afda040a496 100644 --- a/service/firehose/api_op_UpdateDestination.go +++ b/service/firehose/api_op_UpdateDestination.go @@ -11,14 +11,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the specified destination of the specified delivery stream. +// Updates the specified destination of the specified Firehose stream. // // Use this operation to change the destination type (for example, to replace the // Amazon S3 destination with Amazon Redshift) or change the parameters associated // with a destination (for example, to change the bucket name of the Amazon S3 -// destination). The update might not occur immediately. The target delivery stream +// destination). The update might not occur immediately. The target Firehose stream // remains active while the configurations are updated, so data writes to the -// delivery stream can continue during this process. The updated configurations are +// Firehose stream can continue during this process. The updated configurations are // usually effective within a few minutes. // // Switching between Amazon OpenSearch Service and other services is not @@ -68,7 +68,7 @@ type UpdateDestinationInput struct { // This member is required. CurrentDeliveryStreamVersionId *string - // The name of the delivery stream. + // The name of the Firehose stream. // // This member is required. DeliveryStreamName *string @@ -95,8 +95,6 @@ type UpdateDestinationInput struct { HttpEndpointDestinationUpdate *types.HttpEndpointDestinationUpdate // Describes an update for a destination in Apache Iceberg Tables. - // - // Amazon Data Firehose is in preview release and is subject to change. IcebergDestinationUpdate *types.IcebergDestinationUpdate // Describes an update for a destination in Amazon Redshift. diff --git a/service/firehose/deserializers.go b/service/firehose/deserializers.go index 71d4154dabe..a3ed0a06210 100644 --- a/service/firehose/deserializers.go +++ b/service/firehose/deserializers.go @@ -2294,6 +2294,15 @@ func awsAwsjson11_deserializeDocumentCatalogConfiguration(v **types.CatalogConfi sv.CatalogARN = ptr.String(jtv) } + case "WarehouseLocation": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WarehouseLocation to be of type string, got %T instead", value) + } + sv.WarehouseLocation = ptr.String(jtv) + } + default: _, _ = key, value @@ -2393,11 +2402,536 @@ func awsAwsjson11_deserializeDocumentColumnToJsonKeyMappings(v *map[string]strin mv[key] = parsedVal } - *v = mv + *v = mv + return nil +} + +func awsAwsjson11_deserializeDocumentConcurrentModificationException(v **types.ConcurrentModificationException, 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.ConcurrentModificationException + if *v == nil { + sv = &types.ConcurrentModificationException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "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_deserializeDocumentCopyCommand(v **types.CopyCommand, 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.CopyCommand + if *v == nil { + sv = &types.CopyCommand{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CopyOptions": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CopyOptions to be of type string, got %T instead", value) + } + sv.CopyOptions = ptr.String(jtv) + } + + case "DataTableColumns": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataTableColumns to be of type string, got %T instead", value) + } + sv.DataTableColumns = ptr.String(jtv) + } + + case "DataTableName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataTableName to be of type string, got %T instead", value) + } + sv.DataTableName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDatabaseColumnIncludeOrExcludeList(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatabaseColumnName to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentDatabaseColumnList(v **types.DatabaseColumnList, 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.DatabaseColumnList + if *v == nil { + sv = &types.DatabaseColumnList{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Exclude": + if err := awsAwsjson11_deserializeDocumentDatabaseColumnIncludeOrExcludeList(&sv.Exclude, value); err != nil { + return err + } + + case "Include": + if err := awsAwsjson11_deserializeDocumentDatabaseColumnIncludeOrExcludeList(&sv.Include, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDatabaseIncludeOrExcludeList(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatabaseName to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentDatabaseList(v **types.DatabaseList, 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.DatabaseList + if *v == nil { + sv = &types.DatabaseList{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Exclude": + if err := awsAwsjson11_deserializeDocumentDatabaseIncludeOrExcludeList(&sv.Exclude, value); err != nil { + return err + } + + case "Include": + if err := awsAwsjson11_deserializeDocumentDatabaseIncludeOrExcludeList(&sv.Include, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDatabaseSnapshotInfo(v **types.DatabaseSnapshotInfo, 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.DatabaseSnapshotInfo + if *v == nil { + sv = &types.DatabaseSnapshotInfo{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FailureDescription": + if err := awsAwsjson11_deserializeDocumentFailureDescription(&sv.FailureDescription, value); err != nil { + return err + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyStringWithoutWhitespace to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "RequestedBy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SnapshotRequestedBy to be of type string, got %T instead", value) + } + sv.RequestedBy = types.SnapshotRequestedBy(jtv) + } + + case "RequestTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.RequestTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SnapshotStatus to be of type string, got %T instead", value) + } + sv.Status = types.SnapshotStatus(jtv) + } + + case "Table": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatabaseTableName to be of type string, got %T instead", value) + } + sv.Table = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDatabaseSnapshotInfoList(v *[]types.DatabaseSnapshotInfo, 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.DatabaseSnapshotInfo + if *v == nil { + cv = []types.DatabaseSnapshotInfo{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DatabaseSnapshotInfo + destAddr := &col + if err := awsAwsjson11_deserializeDocumentDatabaseSnapshotInfo(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentDatabaseSourceAuthenticationConfiguration(v **types.DatabaseSourceAuthenticationConfiguration, 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.DatabaseSourceAuthenticationConfiguration + if *v == nil { + sv = &types.DatabaseSourceAuthenticationConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "SecretsManagerConfiguration": + if err := awsAwsjson11_deserializeDocumentSecretsManagerConfiguration(&sv.SecretsManagerConfiguration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentDatabaseSourceDescription(v **types.DatabaseSourceDescription, 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.DatabaseSourceDescription + if *v == nil { + sv = &types.DatabaseSourceDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Columns": + if err := awsAwsjson11_deserializeDocumentDatabaseColumnList(&sv.Columns, value); err != nil { + return err + } + + case "Databases": + if err := awsAwsjson11_deserializeDocumentDatabaseList(&sv.Databases, value); err != nil { + return err + } + + case "DatabaseSourceAuthenticationConfiguration": + if err := awsAwsjson11_deserializeDocumentDatabaseSourceAuthenticationConfiguration(&sv.DatabaseSourceAuthenticationConfiguration, value); err != nil { + return err + } + + case "DatabaseSourceVPCConfiguration": + if err := awsAwsjson11_deserializeDocumentDatabaseSourceVPCConfiguration(&sv.DatabaseSourceVPCConfiguration, value); err != nil { + return err + } + + case "Endpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatabaseEndpoint to be of type string, got %T instead", value) + } + sv.Endpoint = ptr.String(jtv) + } + + case "Port": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected DatabasePort to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Port = ptr.Int32(int32(i64)) + } + + case "SnapshotInfo": + if err := awsAwsjson11_deserializeDocumentDatabaseSnapshotInfoList(&sv.SnapshotInfo, value); err != nil { + return err + } + + case "SnapshotWatermarkTable": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatabaseTableName to be of type string, got %T instead", value) + } + sv.SnapshotWatermarkTable = ptr.String(jtv) + } + + case "SSLMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SSLMode to be of type string, got %T instead", value) + } + sv.SSLMode = types.SSLMode(jtv) + } + + case "SurrogateKeys": + if err := awsAwsjson11_deserializeDocumentDatabaseColumnIncludeOrExcludeList(&sv.SurrogateKeys, value); err != nil { + return err + } + + case "Tables": + if err := awsAwsjson11_deserializeDocumentDatabaseTableList(&sv.Tables, value); err != nil { + return err + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatabaseType to be of type string, got %T instead", value) + } + sv.Type = types.DatabaseType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv return nil } -func awsAwsjson11_deserializeDocumentConcurrentModificationException(v **types.ConcurrentModificationException, value interface{}) error { +func awsAwsjson11_deserializeDocumentDatabaseSourceVPCConfiguration(v **types.DatabaseSourceVPCConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2410,22 +2944,22 @@ func awsAwsjson11_deserializeDocumentConcurrentModificationException(v **types.C return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ConcurrentModificationException + var sv *types.DatabaseSourceVPCConfiguration if *v == nil { - sv = &types.ConcurrentModificationException{} + sv = &types.DatabaseSourceVPCConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "message", "Message": + case "VpcEndpointServiceName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + return fmt.Errorf("expected VpcEndpointServiceName to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.VpcEndpointServiceName = ptr.String(jtv) } default: @@ -2437,7 +2971,43 @@ func awsAwsjson11_deserializeDocumentConcurrentModificationException(v **types.C return nil } -func awsAwsjson11_deserializeDocumentCopyCommand(v **types.CopyCommand, value interface{}) error { +func awsAwsjson11_deserializeDocumentDatabaseTableIncludeOrExcludeList(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatabaseTableName to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentDatabaseTableList(v **types.DatabaseTableList, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2450,40 +3020,23 @@ func awsAwsjson11_deserializeDocumentCopyCommand(v **types.CopyCommand, value in return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.CopyCommand + var sv *types.DatabaseTableList if *v == nil { - sv = &types.CopyCommand{} + sv = &types.DatabaseTableList{} } else { sv = *v } for key, value := range shape { switch key { - case "CopyOptions": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected CopyOptions to be of type string, got %T instead", value) - } - sv.CopyOptions = ptr.String(jtv) - } - - case "DataTableColumns": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DataTableColumns to be of type string, got %T instead", value) - } - sv.DataTableColumns = ptr.String(jtv) + case "Exclude": + if err := awsAwsjson11_deserializeDocumentDatabaseTableIncludeOrExcludeList(&sv.Exclude, value); err != nil { + return err } - case "DataTableName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DataTableName to be of type string, got %T instead", value) - } - sv.DataTableName = ptr.String(jtv) + case "Include": + if err := awsAwsjson11_deserializeDocumentDatabaseTableIncludeOrExcludeList(&sv.Include, value); err != nil { + return err } default: @@ -2977,7 +3530,7 @@ func awsAwsjson11_deserializeDocumentDestinationTableConfiguration(v **types.Des if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyStringWithoutWhitespace to be of type string, got %T instead", value) + return fmt.Errorf("expected StringWithLettersDigitsUnderscoresDots to be of type string, got %T instead", value) } sv.DestinationDatabaseName = ptr.String(jtv) } @@ -2986,11 +3539,16 @@ func awsAwsjson11_deserializeDocumentDestinationTableConfiguration(v **types.Des if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyStringWithoutWhitespace to be of type string, got %T instead", value) + return fmt.Errorf("expected StringWithLettersDigitsUnderscoresDots to be of type string, got %T instead", value) } sv.DestinationTableName = ptr.String(jtv) } + case "PartitionSpec": + if err := awsAwsjson11_deserializeDocumentPartitionSpec(&sv.PartitionSpec, value); err != nil { + return err + } + case "S3ErrorOutputPrefix": if value != nil { jtv, ok := value.(string) @@ -4073,6 +4631,16 @@ func awsAwsjson11_deserializeDocumentIcebergDestinationDescription(v **types.Ice return err } + case "SchemaEvolutionConfiguration": + if err := awsAwsjson11_deserializeDocumentSchemaEvolutionConfiguration(&sv.SchemaEvolutionConfiguration, value); err != nil { + return err + } + + case "TableCreationConfiguration": + if err := awsAwsjson11_deserializeDocumentTableCreationConfiguration(&sv.TableCreationConfiguration, value); err != nil { + return err + } + default: _, _ = key, value @@ -4984,6 +5552,116 @@ func awsAwsjson11_deserializeDocumentParquetSerDe(v **types.ParquetSerDe, value return nil } +func awsAwsjson11_deserializeDocumentPartitionField(v **types.PartitionField, 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.PartitionField + if *v == nil { + sv = &types.PartitionField{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "SourceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyStringWithoutWhitespace to be of type string, got %T instead", value) + } + sv.SourceName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentPartitionFields(v *[]types.PartitionField, 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.PartitionField + if *v == nil { + cv = []types.PartitionField{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.PartitionField + destAddr := &col + if err := awsAwsjson11_deserializeDocumentPartitionField(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentPartitionSpec(v **types.PartitionSpec, 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.PartitionSpec + if *v == nil { + sv = &types.PartitionSpec{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Identity": + if err := awsAwsjson11_deserializeDocumentPartitionFields(&sv.Identity, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentProcessingConfiguration(v **types.ProcessingConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5729,6 +6407,46 @@ func awsAwsjson11_deserializeDocumentSchemaConfiguration(v **types.SchemaConfigu return nil } +func awsAwsjson11_deserializeDocumentSchemaEvolutionConfiguration(v **types.SchemaEvolutionConfiguration, 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.SchemaEvolutionConfiguration + if *v == nil { + sv = &types.SchemaEvolutionConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BooleanObject to be of type *bool, got %T instead", value) + } + sv.Enabled = ptr.Bool(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentSecretsManagerConfiguration(v **types.SecretsManagerConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6277,6 +6995,11 @@ func awsAwsjson11_deserializeDocumentSourceDescription(v **types.SourceDescripti for key, value := range shape { switch key { + case "DatabaseSourceDescription": + if err := awsAwsjson11_deserializeDocumentDatabaseSourceDescription(&sv.DatabaseSourceDescription, value); err != nil { + return err + } + case "KinesisStreamSourceDescription": if err := awsAwsjson11_deserializeDocumentKinesisStreamSourceDescription(&sv.KinesisStreamSourceDescription, value); err != nil { return err @@ -6543,6 +7266,46 @@ func awsAwsjson11_deserializeDocumentSubnetIdList(v *[]string, value interface{} return nil } +func awsAwsjson11_deserializeDocumentTableCreationConfiguration(v **types.TableCreationConfiguration, 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.TableCreationConfiguration + if *v == nil { + sv = &types.TableCreationConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BooleanObject to be of type *bool, got %T instead", value) + } + sv.Enabled = ptr.Bool(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/firehose/serializers.go b/service/firehose/serializers.go index d34e61c1599..f0a74427024 100644 --- a/service/firehose/serializers.go +++ b/service/firehose/serializers.go @@ -1146,6 +1146,11 @@ func awsAwsjson11_serializeDocumentCatalogConfiguration(v *types.CatalogConfigur ok.String(*v.CatalogARN) } + if v.WarehouseLocation != nil { + ok := object.Key("WarehouseLocation") + ok.String(*v.WarehouseLocation) + } + return nil } @@ -1204,6 +1209,213 @@ func awsAwsjson11_serializeDocumentCopyCommand(v *types.CopyCommand, value smith return nil } +func awsAwsjson11_serializeDocumentDatabaseColumnIncludeOrExcludeList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson11_serializeDocumentDatabaseColumnList(v *types.DatabaseColumnList, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Exclude != nil { + ok := object.Key("Exclude") + if err := awsAwsjson11_serializeDocumentDatabaseColumnIncludeOrExcludeList(v.Exclude, ok); err != nil { + return err + } + } + + if v.Include != nil { + ok := object.Key("Include") + if err := awsAwsjson11_serializeDocumentDatabaseColumnIncludeOrExcludeList(v.Include, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentDatabaseIncludeOrExcludeList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson11_serializeDocumentDatabaseList(v *types.DatabaseList, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Exclude != nil { + ok := object.Key("Exclude") + if err := awsAwsjson11_serializeDocumentDatabaseIncludeOrExcludeList(v.Exclude, ok); err != nil { + return err + } + } + + if v.Include != nil { + ok := object.Key("Include") + if err := awsAwsjson11_serializeDocumentDatabaseIncludeOrExcludeList(v.Include, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentDatabaseSourceAuthenticationConfiguration(v *types.DatabaseSourceAuthenticationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SecretsManagerConfiguration != nil { + ok := object.Key("SecretsManagerConfiguration") + if err := awsAwsjson11_serializeDocumentSecretsManagerConfiguration(v.SecretsManagerConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentDatabaseSourceConfiguration(v *types.DatabaseSourceConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Columns != nil { + ok := object.Key("Columns") + if err := awsAwsjson11_serializeDocumentDatabaseColumnList(v.Columns, ok); err != nil { + return err + } + } + + if v.Databases != nil { + ok := object.Key("Databases") + if err := awsAwsjson11_serializeDocumentDatabaseList(v.Databases, ok); err != nil { + return err + } + } + + if v.DatabaseSourceAuthenticationConfiguration != nil { + ok := object.Key("DatabaseSourceAuthenticationConfiguration") + if err := awsAwsjson11_serializeDocumentDatabaseSourceAuthenticationConfiguration(v.DatabaseSourceAuthenticationConfiguration, ok); err != nil { + return err + } + } + + if v.DatabaseSourceVPCConfiguration != nil { + ok := object.Key("DatabaseSourceVPCConfiguration") + if err := awsAwsjson11_serializeDocumentDatabaseSourceVPCConfiguration(v.DatabaseSourceVPCConfiguration, ok); err != nil { + return err + } + } + + if v.Endpoint != nil { + ok := object.Key("Endpoint") + ok.String(*v.Endpoint) + } + + if v.Port != nil { + ok := object.Key("Port") + ok.Integer(*v.Port) + } + + if v.SnapshotWatermarkTable != nil { + ok := object.Key("SnapshotWatermarkTable") + ok.String(*v.SnapshotWatermarkTable) + } + + if len(v.SSLMode) > 0 { + ok := object.Key("SSLMode") + ok.String(string(v.SSLMode)) + } + + if v.SurrogateKeys != nil { + ok := object.Key("SurrogateKeys") + if err := awsAwsjson11_serializeDocumentDatabaseSurrogateKeyList(v.SurrogateKeys, ok); err != nil { + return err + } + } + + if v.Tables != nil { + ok := object.Key("Tables") + if err := awsAwsjson11_serializeDocumentDatabaseTableList(v.Tables, ok); err != nil { + return err + } + } + + if len(v.Type) > 0 { + ok := object.Key("Type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsAwsjson11_serializeDocumentDatabaseSourceVPCConfiguration(v *types.DatabaseSourceVPCConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.VpcEndpointServiceName != nil { + ok := object.Key("VpcEndpointServiceName") + ok.String(*v.VpcEndpointServiceName) + } + + return nil +} + +func awsAwsjson11_serializeDocumentDatabaseSurrogateKeyList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson11_serializeDocumentDatabaseTableIncludeOrExcludeList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson11_serializeDocumentDatabaseTableList(v *types.DatabaseTableList, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Exclude != nil { + ok := object.Key("Exclude") + if err := awsAwsjson11_serializeDocumentDatabaseTableIncludeOrExcludeList(v.Exclude, ok); err != nil { + return err + } + } + + if v.Include != nil { + ok := object.Key("Include") + if err := awsAwsjson11_serializeDocumentDatabaseTableIncludeOrExcludeList(v.Include, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeDocumentDataFormatConversionConfiguration(v *types.DataFormatConversionConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1289,6 +1501,13 @@ func awsAwsjson11_serializeDocumentDestinationTableConfiguration(v *types.Destin ok.String(*v.DestinationTableName) } + if v.PartitionSpec != nil { + ok := object.Key("PartitionSpec") + if err := awsAwsjson11_serializeDocumentPartitionSpec(v.PartitionSpec, ok); err != nil { + return err + } + } + if v.S3ErrorOutputPrefix != nil { ok := object.Key("S3ErrorOutputPrefix") ok.String(*v.S3ErrorOutputPrefix) @@ -2081,6 +2300,20 @@ func awsAwsjson11_serializeDocumentIcebergDestinationConfiguration(v *types.Iceb } } + if v.SchemaEvolutionConfiguration != nil { + ok := object.Key("SchemaEvolutionConfiguration") + if err := awsAwsjson11_serializeDocumentSchemaEvolutionConfiguration(v.SchemaEvolutionConfiguration, ok); err != nil { + return err + } + } + + if v.TableCreationConfiguration != nil { + ok := object.Key("TableCreationConfiguration") + if err := awsAwsjson11_serializeDocumentTableCreationConfiguration(v.TableCreationConfiguration, ok); err != nil { + return err + } + } + return nil } @@ -2147,6 +2380,20 @@ func awsAwsjson11_serializeDocumentIcebergDestinationUpdate(v *types.IcebergDest } } + if v.SchemaEvolutionConfiguration != nil { + ok := object.Key("SchemaEvolutionConfiguration") + if err := awsAwsjson11_serializeDocumentSchemaEvolutionConfiguration(v.SchemaEvolutionConfiguration, ok); err != nil { + return err + } + } + + if v.TableCreationConfiguration != nil { + ok := object.Key("TableCreationConfiguration") + if err := awsAwsjson11_serializeDocumentTableCreationConfiguration(v.TableCreationConfiguration, ok); err != nil { + return err + } + } + return nil } @@ -2417,6 +2664,45 @@ func awsAwsjson11_serializeDocumentParquetSerDe(v *types.ParquetSerDe, value smi return nil } +func awsAwsjson11_serializeDocumentPartitionField(v *types.PartitionField, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SourceName != nil { + ok := object.Key("SourceName") + ok.String(*v.SourceName) + } + + return nil +} + +func awsAwsjson11_serializeDocumentPartitionFields(v []types.PartitionField, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentPartitionField(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson11_serializeDocumentPartitionSpec(v *types.PartitionSpec, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Identity != nil { + ok := object.Key("Identity") + if err := awsAwsjson11_serializeDocumentPartitionFields(v.Identity, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeDocumentProcessingConfiguration(v *types.ProcessingConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2852,6 +3138,18 @@ func awsAwsjson11_serializeDocumentSchemaConfiguration(v *types.SchemaConfigurat return nil } +func awsAwsjson11_serializeDocumentSchemaEvolutionConfiguration(v *types.SchemaEvolutionConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enabled != nil { + ok := object.Key("Enabled") + ok.Boolean(*v.Enabled) + } + + return nil +} + func awsAwsjson11_serializeDocumentSecretsManagerConfiguration(v *types.SecretsManagerConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3391,6 +3689,18 @@ func awsAwsjson11_serializeDocumentSubnetIdList(v []string, value smithyjson.Val return nil } +func awsAwsjson11_serializeDocumentTableCreationConfiguration(v *types.TableCreationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enabled != nil { + ok := object.Key("Enabled") + ok.Boolean(*v.Enabled) + } + + return nil +} + func awsAwsjson11_serializeDocumentTag(v *types.Tag, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3476,6 +3786,13 @@ func awsAwsjson11_serializeOpDocumentCreateDeliveryStreamInput(v *CreateDelivery } } + if v.DatabaseSourceConfiguration != nil { + ok := object.Key("DatabaseSourceConfiguration") + if err := awsAwsjson11_serializeDocumentDatabaseSourceConfiguration(v.DatabaseSourceConfiguration, ok); err != nil { + return err + } + } + if v.DeliveryStreamEncryptionConfigurationInput != nil { ok := object.Key("DeliveryStreamEncryptionConfigurationInput") if err := awsAwsjson11_serializeDocumentDeliveryStreamEncryptionConfigurationInput(v.DeliveryStreamEncryptionConfigurationInput, ok); err != nil { diff --git a/service/firehose/types/enums.go b/service/firehose/types/enums.go index 22269c3d5b2..79081be40d0 100644 --- a/service/firehose/types/enums.go +++ b/service/firehose/types/enums.go @@ -131,6 +131,25 @@ func (ContentEncoding) Values() []ContentEncoding { } } +type DatabaseType string + +// Enum values for DatabaseType +const ( + DatabaseTypeMySQL DatabaseType = "MySQL" + DatabaseTypePostgreSQL DatabaseType = "PostgreSQL" +) + +// Values returns all known values for DatabaseType. 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 (DatabaseType) Values() []DatabaseType { + return []DatabaseType{ + "MySQL", + "PostgreSQL", + } +} + type DefaultDocumentIdFormat string // Enum values for DefaultDocumentIdFormat @@ -182,21 +201,23 @@ type DeliveryStreamFailureType string // Enum values for DeliveryStreamFailureType const ( - DeliveryStreamFailureTypeRetireKmsGrantFailed DeliveryStreamFailureType = "RETIRE_KMS_GRANT_FAILED" - DeliveryStreamFailureTypeCreateKmsGrantFailed DeliveryStreamFailureType = "CREATE_KMS_GRANT_FAILED" - DeliveryStreamFailureTypeKmsAccessDenied DeliveryStreamFailureType = "KMS_ACCESS_DENIED" - DeliveryStreamFailureTypeDisabledKmsKey DeliveryStreamFailureType = "DISABLED_KMS_KEY" - DeliveryStreamFailureTypeInvalidKmsKey DeliveryStreamFailureType = "INVALID_KMS_KEY" - DeliveryStreamFailureTypeKmsKeyNotFound DeliveryStreamFailureType = "KMS_KEY_NOT_FOUND" - DeliveryStreamFailureTypeKmsOptInRequired DeliveryStreamFailureType = "KMS_OPT_IN_REQUIRED" - DeliveryStreamFailureTypeCreateEniFailed DeliveryStreamFailureType = "CREATE_ENI_FAILED" - DeliveryStreamFailureTypeDeleteEniFailed DeliveryStreamFailureType = "DELETE_ENI_FAILED" - DeliveryStreamFailureTypeSubnetNotFound DeliveryStreamFailureType = "SUBNET_NOT_FOUND" - DeliveryStreamFailureTypeSecurityGroupNotFound DeliveryStreamFailureType = "SECURITY_GROUP_NOT_FOUND" - DeliveryStreamFailureTypeEniAccessDenied DeliveryStreamFailureType = "ENI_ACCESS_DENIED" - DeliveryStreamFailureTypeSubnetAccessDenied DeliveryStreamFailureType = "SUBNET_ACCESS_DENIED" - DeliveryStreamFailureTypeSecurityGroupAccessDenied DeliveryStreamFailureType = "SECURITY_GROUP_ACCESS_DENIED" - DeliveryStreamFailureTypeUnknownError DeliveryStreamFailureType = "UNKNOWN_ERROR" + DeliveryStreamFailureTypeVpcEndpointServiceNameNotFound DeliveryStreamFailureType = "VPC_ENDPOINT_SERVICE_NAME_NOT_FOUND" + DeliveryStreamFailureTypeVpcInterfaceEndpointServiceAccessDenied DeliveryStreamFailureType = "VPC_INTERFACE_ENDPOINT_SERVICE_ACCESS_DENIED" + DeliveryStreamFailureTypeRetireKmsGrantFailed DeliveryStreamFailureType = "RETIRE_KMS_GRANT_FAILED" + DeliveryStreamFailureTypeCreateKmsGrantFailed DeliveryStreamFailureType = "CREATE_KMS_GRANT_FAILED" + DeliveryStreamFailureTypeKmsAccessDenied DeliveryStreamFailureType = "KMS_ACCESS_DENIED" + DeliveryStreamFailureTypeDisabledKmsKey DeliveryStreamFailureType = "DISABLED_KMS_KEY" + DeliveryStreamFailureTypeInvalidKmsKey DeliveryStreamFailureType = "INVALID_KMS_KEY" + DeliveryStreamFailureTypeKmsKeyNotFound DeliveryStreamFailureType = "KMS_KEY_NOT_FOUND" + DeliveryStreamFailureTypeKmsOptInRequired DeliveryStreamFailureType = "KMS_OPT_IN_REQUIRED" + DeliveryStreamFailureTypeCreateEniFailed DeliveryStreamFailureType = "CREATE_ENI_FAILED" + DeliveryStreamFailureTypeDeleteEniFailed DeliveryStreamFailureType = "DELETE_ENI_FAILED" + DeliveryStreamFailureTypeSubnetNotFound DeliveryStreamFailureType = "SUBNET_NOT_FOUND" + DeliveryStreamFailureTypeSecurityGroupNotFound DeliveryStreamFailureType = "SECURITY_GROUP_NOT_FOUND" + DeliveryStreamFailureTypeEniAccessDenied DeliveryStreamFailureType = "ENI_ACCESS_DENIED" + DeliveryStreamFailureTypeSubnetAccessDenied DeliveryStreamFailureType = "SUBNET_ACCESS_DENIED" + DeliveryStreamFailureTypeSecurityGroupAccessDenied DeliveryStreamFailureType = "SECURITY_GROUP_ACCESS_DENIED" + DeliveryStreamFailureTypeUnknownError DeliveryStreamFailureType = "UNKNOWN_ERROR" ) // Values returns all known values for DeliveryStreamFailureType. Note that this @@ -205,6 +226,8 @@ const ( // The ordering of this slice is not guaranteed to be stable across updates. func (DeliveryStreamFailureType) Values() []DeliveryStreamFailureType { return []DeliveryStreamFailureType{ + "VPC_ENDPOINT_SERVICE_NAME_NOT_FOUND", + "VPC_INTERFACE_ENDPOINT_SERVICE_ACCESS_DENIED", "RETIRE_KMS_GRANT_FAILED", "CREATE_KMS_GRANT_FAILED", "KMS_ACCESS_DENIED", @@ -255,6 +278,7 @@ const ( DeliveryStreamTypeDirectPut DeliveryStreamType = "DirectPut" DeliveryStreamTypeKinesisStreamAsSource DeliveryStreamType = "KinesisStreamAsSource" DeliveryStreamTypeMSKAsSource DeliveryStreamType = "MSKAsSource" + DeliveryStreamTypeDatabaseAsSource DeliveryStreamType = "DatabaseAsSource" ) // Values returns all known values for DeliveryStreamType. Note that this can be @@ -266,6 +290,7 @@ func (DeliveryStreamType) Values() []DeliveryStreamType { "DirectPut", "KinesisStreamAsSource", "MSKAsSource", + "DatabaseAsSource", } } @@ -589,6 +614,46 @@ func (S3BackupMode) Values() []S3BackupMode { } } +type SnapshotRequestedBy string + +// Enum values for SnapshotRequestedBy +const ( + SnapshotRequestedByUser SnapshotRequestedBy = "USER" + SnapshotRequestedByFirehose SnapshotRequestedBy = "FIREHOSE" +) + +// Values returns all known values for SnapshotRequestedBy. 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 (SnapshotRequestedBy) Values() []SnapshotRequestedBy { + return []SnapshotRequestedBy{ + "USER", + "FIREHOSE", + } +} + +type SnapshotStatus string + +// Enum values for SnapshotStatus +const ( + SnapshotStatusInProgress SnapshotStatus = "IN_PROGRESS" + SnapshotStatusComplete SnapshotStatus = "COMPLETE" + SnapshotStatusSuspended SnapshotStatus = "SUSPENDED" +) + +// Values returns all known values for SnapshotStatus. 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 (SnapshotStatus) Values() []SnapshotStatus { + return []SnapshotStatus{ + "IN_PROGRESS", + "COMPLETE", + "SUSPENDED", + } +} + type SnowflakeDataLoadingOption string // Enum values for SnowflakeDataLoadingOption @@ -647,3 +712,22 @@ func (SplunkS3BackupMode) Values() []SplunkS3BackupMode { "AllEvents", } } + +type SSLMode string + +// Enum values for SSLMode +const ( + SSLModeDisabled SSLMode = "Disabled" + SSLModeEnabled SSLMode = "Enabled" +) + +// Values returns all known values for SSLMode. 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 (SSLMode) Values() []SSLMode { + return []SSLMode{ + "Disabled", + "Enabled", + } +} diff --git a/service/firehose/types/errors.go b/service/firehose/types/errors.go index 8d7c549405b..25dc77df97a 100644 --- a/service/firehose/types/errors.go +++ b/service/firehose/types/errors.go @@ -61,7 +61,7 @@ func (e *InvalidArgumentException) ErrorCode() string { func (e *InvalidArgumentException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // Firehose throws this exception when an attempt to put records or to start or -// stop delivery stream encryption fails. This happens when the KMS service throws +// stop Firehose stream encryption fails. This happens when the KMS service throws // one of the following exception types: AccessDeniedException , // InvalidStateException , DisabledException , or NotFoundException . type InvalidKMSResourceException struct { @@ -199,7 +199,7 @@ func (e *ResourceNotFoundException) ErrorCode() string { func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The service is unavailable. Back off and retry the operation. If you continue -// to see the exception, throughput limits for the delivery stream may have been +// to see the exception, throughput limits for the Firehose stream may have been // exceeded. For more information about limits and how to request an increase, see [Amazon Firehose Limits] // . // diff --git a/service/firehose/types/types.go b/service/firehose/types/types.go index ff2c8a9fd00..1242457492c 100644 --- a/service/firehose/types/types.go +++ b/service/firehose/types/types.go @@ -19,7 +19,7 @@ type AmazonOpenSearchServerlessBufferingHints struct { // destination. The default value is 5. // // We recommend setting this parameter to a value greater than the amount of data - // you typically ingest into the delivery stream in 10 seconds. For example, if you + // you typically ingest into the Firehose stream in 10 seconds. For example, if you // typically ingest data at 1 MB/sec, the value should be 10 MB or higher. SizeInMBs *int32 @@ -51,7 +51,7 @@ type AmazonOpenSearchServerlessDestinationConfiguration struct { // AmazonopensearchserviceBufferingHints are used. BufferingHints *AmazonOpenSearchServerlessBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The endpoint to use when communicating with the collection in the Serverless @@ -88,7 +88,7 @@ type AmazonOpenSearchServerlessDestinationDescription struct { // The buffering options. BufferingHints *AmazonOpenSearchServerlessBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The endpoint to use when communicating with the collection in the Serverless @@ -127,7 +127,7 @@ type AmazonOpenSearchServerlessDestinationUpdate struct { // object default values are used. BufferingHints *AmazonOpenSearchServerlessBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The endpoint to use when communicating with the collection in the Serverless @@ -182,7 +182,7 @@ type AmazonopensearchserviceBufferingHints struct { // destination. The default value is 5. // // We recommend setting this parameter to a value greater than the amount of data - // you typically ingest into the delivery stream in 10 seconds. For example, if you + // you typically ingest into the Firehose stream in 10 seconds. For example, if you // typically ingest data at 1 MB/sec, the value should be 10 MB or higher. SizeInMBs *int32 @@ -213,7 +213,7 @@ type AmazonopensearchserviceDestinationConfiguration struct { // AmazonopensearchserviceBufferingHints are used. BufferingHints *AmazonopensearchserviceBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The endpoint to use when communicating with the cluster. Specify either this @@ -266,7 +266,7 @@ type AmazonopensearchserviceDestinationDescription struct { // The buffering options. BufferingHints *AmazonopensearchserviceBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The endpoint to use when communicating with the cluster. Firehose uses either @@ -320,7 +320,7 @@ type AmazonopensearchserviceDestinationUpdate struct { // object default values are used. BufferingHints *AmazonopensearchserviceBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The endpoint to use when communicating with the cluster. Specify either this @@ -362,9 +362,9 @@ type AmazonopensearchserviceDestinationUpdate struct { // only one type per index. If you try to specify a new type for an existing index // that already has another type, Firehose returns an error during runtime. // - // If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery + // If you upgrade Elasticsearch from 6.x to 7.x and don’t update your Firehose // stream, Firehose still delivers data to Elasticsearch with the old index name - // and type name. If you want to update your delivery stream with a new index name, + // and type name. If you want to update your Firehose stream with a new index name, // provide an empty string for TypeName. TypeName *string @@ -420,7 +420,7 @@ type BufferingHints struct { // and vice versa. // // We recommend setting this parameter to a value greater than the amount of data - // you typically ingest into the delivery stream in 10 seconds. For example, if you + // you typically ingest into the Firehose stream in 10 seconds. For example, if you // typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher. SizeInMBs *int32 @@ -430,21 +430,20 @@ type BufferingHints struct { // Describes the containers where the destination Apache Iceberg Tables are // // persisted. -// -// Amazon Data Firehose is in preview release and is subject to change. type CatalogConfiguration struct { - // Specifies the Glue catalog ARN indentifier of the destination Apache Iceberg + // Specifies the Glue catalog ARN identifier of the destination Apache Iceberg // Tables. You must specify the ARN in the format // arn:aws:glue:region:account-id:catalog . - // - // Amazon Data Firehose is in preview release and is subject to change. CatalogARN *string + // Amazon Data Firehose is in preview release and is subject to change. + WarehouseLocation *string + noSmithyDocumentSerde } -// Describes the Amazon CloudWatch logging options for your delivery stream. +// Describes the Amazon CloudWatch logging options for your Firehose stream. type CloudWatchLoggingOptions struct { // Enables or disables CloudWatch logging. @@ -499,6 +498,196 @@ type CopyCommand struct { noSmithyDocumentSerde } +// Amazon Data Firehose is in preview release and is subject to change. +type DatabaseColumnList struct { + + // Amazon Data Firehose is in preview release and is subject to change. + Exclude []string + + // Amazon Data Firehose is in preview release and is subject to change. + Include []string + + noSmithyDocumentSerde +} + +// Amazon Data Firehose is in preview release and is subject to change. +type DatabaseList struct { + + // Amazon Data Firehose is in preview release and is subject to change. + Exclude []string + + // Amazon Data Firehose is in preview release and is subject to change. + Include []string + + noSmithyDocumentSerde +} + +// Amazon Data Firehose is in preview release and is subject to change. +type DatabaseSnapshotInfo struct { + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Id *string + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + RequestTimestamp *time.Time + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + RequestedBy SnapshotRequestedBy + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Status SnapshotStatus + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Table *string + + // Provides details in case one of the following operations fails due to an error + // related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption, StopDeliveryStreamEncryption. + FailureDescription *FailureDescription + + noSmithyDocumentSerde +} + +// Amazon Data Firehose is in preview release and is subject to change. +type DatabaseSourceAuthenticationConfiguration struct { + + // The structure that defines how Firehose accesses the secret. + // + // This member is required. + SecretsManagerConfiguration *SecretsManagerConfiguration + + noSmithyDocumentSerde +} + +// Amazon Data Firehose is in preview release and is subject to change. +type DatabaseSourceConfiguration struct { + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + DatabaseSourceAuthenticationConfiguration *DatabaseSourceAuthenticationConfiguration + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + DatabaseSourceVPCConfiguration *DatabaseSourceVPCConfiguration + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Databases *DatabaseList + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Endpoint *string + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Port *int32 + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + SnapshotWatermarkTable *string + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Tables *DatabaseTableList + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Type DatabaseType + + // Amazon Data Firehose is in preview release and is subject to change. + Columns *DatabaseColumnList + + // Amazon Data Firehose is in preview release and is subject to change. + SSLMode SSLMode + + // Amazon Data Firehose is in preview release and is subject to change. + SurrogateKeys []string + + noSmithyDocumentSerde +} + +// Amazon Data Firehose is in preview release and is subject to change. +type DatabaseSourceDescription struct { + + // Amazon Data Firehose is in preview release and is subject to change. + Columns *DatabaseColumnList + + // Amazon Data Firehose is in preview release and is subject to change. + DatabaseSourceAuthenticationConfiguration *DatabaseSourceAuthenticationConfiguration + + // Amazon Data Firehose is in preview release and is subject to change. + DatabaseSourceVPCConfiguration *DatabaseSourceVPCConfiguration + + // Amazon Data Firehose is in preview release and is subject to change. + Databases *DatabaseList + + // Amazon Data Firehose is in preview release and is subject to change. + Endpoint *string + + // Amazon Data Firehose is in preview release and is subject to change. + Port *int32 + + // Amazon Data Firehose is in preview release and is subject to change. + SSLMode SSLMode + + // Amazon Data Firehose is in preview release and is subject to change. + SnapshotInfo []DatabaseSnapshotInfo + + // Amazon Data Firehose is in preview release and is subject to change. + SnapshotWatermarkTable *string + + // Amazon Data Firehose is in preview release and is subject to change. + SurrogateKeys []string + + // Amazon Data Firehose is in preview release and is subject to change. + Tables *DatabaseTableList + + // Amazon Data Firehose is in preview release and is subject to change. + Type DatabaseType + + noSmithyDocumentSerde +} + +// Amazon Data Firehose is in preview release and is subject to change. +type DatabaseSourceVPCConfiguration struct { + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + VpcEndpointServiceName *string + + noSmithyDocumentSerde +} + +// Amazon Data Firehose is in preview release and is subject to change. +type DatabaseTableList struct { + + // Amazon Data Firehose is in preview release and is subject to change. + Exclude []string + + // Amazon Data Firehose is in preview release and is subject to change. + Include []string + + noSmithyDocumentSerde +} + // Specifies that you want Firehose to convert data from the JSON format to the // Parquet or ORC format before writing it to Amazon S3. Firehose uses the // serializer and deserializer that you specify, in addition to the column @@ -529,10 +718,10 @@ type DataFormatConversionConfiguration struct { noSmithyDocumentSerde } -// Contains information about a delivery stream. +// Contains information about a Firehose stream. type DeliveryStreamDescription struct { - // The Amazon Resource Name (ARN) of the delivery stream. For more information, + // The Amazon Resource Name (ARN) of the Firehose stream. For more information, // see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]. // // [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html @@ -540,12 +729,12 @@ type DeliveryStreamDescription struct { // This member is required. DeliveryStreamARN *string - // The name of the delivery stream. + // The name of the Firehose stream. // // This member is required. DeliveryStreamName *string - // The status of the delivery stream. If the status of a delivery stream is + // The status of the Firehose stream. If the status of a Firehose stream is // CREATING_FAILED , this status doesn't change, and you can't invoke // CreateDeliveryStream again on it. However, you can invoke the DeleteDeliveryStream operation to // delete it. @@ -553,11 +742,11 @@ type DeliveryStreamDescription struct { // This member is required. DeliveryStreamStatus DeliveryStreamStatus - // The delivery stream type. This can be one of the following values: + // The Firehose stream type. This can be one of the following values: // - // - DirectPut : Provider applications access the delivery stream directly. + // - DirectPut : Provider applications access the Firehose stream directly. // - // - KinesisStreamAsSource : The delivery stream uses a Kinesis data stream as a + // - KinesisStreamAsSource : The Firehose stream uses a Kinesis data stream as a // source. // // This member is required. @@ -573,7 +762,7 @@ type DeliveryStreamDescription struct { // This member is required. HasMoreDestinations *bool - // Each time the destination is updated for a delivery stream, the version ID is + // Each time the destination is updated for a Firehose stream, the version ID is // changed, and the current version ID is required when updating the destination. // This is so that the service knows it is applying the changes to the correct // version of the delivery stream. @@ -581,17 +770,17 @@ type DeliveryStreamDescription struct { // This member is required. VersionId *string - // The date and time that the delivery stream was created. + // The date and time that the Firehose stream was created. CreateTimestamp *time.Time - // Indicates the server-side encryption (SSE) status for the delivery stream. + // Indicates the server-side encryption (SSE) status for the Firehose stream. DeliveryStreamEncryptionConfiguration *DeliveryStreamEncryptionConfiguration // Provides details in case one of the following operations fails due to an error // related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption, StopDeliveryStreamEncryption. FailureDescription *FailureDescription - // The date and time that the delivery stream was last updated. + // The date and time that the Firehose stream was last updated. LastUpdateTimestamp *time.Time // If the DeliveryStreamType parameter is KinesisStreamAsSource , a SourceDescription object @@ -623,7 +812,7 @@ type DeliveryStreamEncryptionConfiguration struct { // [Customer Master Keys (CMKs)]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys KeyType KeyType - // This is the server-side encryption (SSE) status for the delivery stream. For a + // This is the server-side encryption (SSE) status for the Firehose stream. For a // full description of the different values of this status, see StartDeliveryStreamEncryptionand StopDeliveryStreamEncryption. If this // status is ENABLING_FAILED or DISABLING_FAILED , it is the status of the most // recent attempt to enable or disable SSE, respectively. @@ -643,15 +832,15 @@ type DeliveryStreamEncryptionConfigurationInput struct { // Firehose service to use the customer managed CMK to perform encryption and // decryption. Firehose manages that grant. // - // When you invoke StartDeliveryStreamEncryption to change the CMK for a delivery stream that is encrypted with + // When you invoke StartDeliveryStreamEncryption to change the CMK for a Firehose stream that is encrypted with // a customer managed CMK, Firehose schedules the grant it had on the old CMK for // retirement. // - // You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery + // You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 Firehose // streams. If a CreateDeliveryStreamor StartDeliveryStreamEncryption operation exceeds this limit, Firehose throws a // LimitExceededException . // - // To encrypt your delivery stream, use symmetric CMKs. Firehose doesn't support + // To encrypt your Firehose stream, use symmetric CMKs. Firehose doesn't support // asymmetric CMKs. For information about symmetric and asymmetric CMKs, see [About Symmetric and Asymmetric CMKs]in // the Amazon Web Services Key Management Service developer guide. // @@ -695,7 +884,7 @@ type Deserializer struct { noSmithyDocumentSerde } -// Describes the destination for a delivery stream. +// Describes the destination for a Firehose stream. type DestinationDescription struct { // The ID of the destination. @@ -719,8 +908,6 @@ type DestinationDescription struct { HttpEndpointDestinationDescription *HttpEndpointDestinationDescription // Describes a destination in Apache Iceberg Tables. - // - // Amazon Data Firehose is in preview release and is subject to change. IcebergDestinationDescription *IcebergDestinationDescription // The destination in Amazon Redshift. @@ -738,35 +925,29 @@ type DestinationDescription struct { noSmithyDocumentSerde } -// Describes the configuration of a destination in Apache Iceberg Tables. -// -// Amazon Data Firehose is in preview release and is subject to change. +// Describes the configuration of a destination in Apache Iceberg Tables. type DestinationTableConfiguration struct { // The name of the Apache Iceberg database. // - // Amazon Data Firehose is in preview release and is subject to change. - // // This member is required. DestinationDatabaseName *string // Specifies the name of the Apache Iceberg Table. // - // Amazon Data Firehose is in preview release and is subject to change. - // // This member is required. DestinationTableName *string + // Amazon Data Firehose is in preview release and is subject to change. + PartitionSpec *PartitionSpec + // The table specific S3 error output prefix. All the errors that occurred while // delivering to this table will be prefixed with this value in S3 destination. - // - // Amazon Data Firehose is in preview release and is subject to change. S3ErrorOutputPrefix *string // A list of unique keys for a given Apache Iceberg table. Firehose will use - // these for running Create/Update/Delete operations on the given Iceberg table. - // - // Amazon Data Firehose is in preview release and is subject to change. + // these for running Create, Update, or Delete operations on the given Iceberg + // table. UniqueKeys []string noSmithyDocumentSerde @@ -801,7 +982,7 @@ type DocumentIdOptions struct { // Currently, dynamic partitioning is only supported for Amazon S3 destinations. type DynamicPartitioningConfiguration struct { - // Specifies that the dynamic partitioning is enabled for this Firehose delivery + // Specifies that the dynamic partitioning is enabled for this Firehose Firehose // stream. Enabled *bool @@ -824,7 +1005,7 @@ type ElasticsearchBufferingHints struct { // destination. The default value is 5. // // We recommend setting this parameter to a value greater than the amount of data - // you typically ingest into the delivery stream in 10 seconds. For example, if you + // you typically ingest into the Firehose stream in 10 seconds. For example, if you // typically ingest data at 1 MB/sec, the value should be 10 MB or higher. SizeInMBs *int32 @@ -858,7 +1039,7 @@ type ElasticsearchDestinationConfiguration struct { // ElasticsearchBufferingHints are used. BufferingHints *ElasticsearchBufferingHints - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The endpoint to use when communicating with the cluster. Specify either this @@ -900,7 +1081,7 @@ type ElasticsearchDestinationConfiguration struct { // AmazonOpenSearchService-failed/ appended to the prefix. For more information, // see [Amazon S3 Backup for the Amazon ES Destination]. Default value is FailedDocumentsOnly . // - // You can't change this backup mode after you create the delivery stream. + // You can't change this backup mode after you create the Firehose stream. // // [Amazon S3 Backup for the Amazon ES Destination]: https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup S3BackupMode ElasticsearchS3BackupMode @@ -985,7 +1166,7 @@ type ElasticsearchDestinationUpdate struct { // object default values are used. BufferingHints *ElasticsearchBufferingHints - // The CloudWatch logging options for your delivery stream. + // The CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The endpoint to use when communicating with the cluster. Specify either this @@ -1037,9 +1218,9 @@ type ElasticsearchDestinationUpdate struct { // per index. If you try to specify a new type for an existing index that already // has another type, Firehose returns an error during runtime. // - // If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery + // If you upgrade Elasticsearch from 6.x to 7.x and don’t update your Firehose // stream, Firehose still delivers data to Elasticsearch with the old index name - // and type name. If you want to update your delivery stream with a new index name, + // and type name. If you want to update your Firehose stream with a new index name, // provide an empty string for TypeName . TypeName *string @@ -1093,7 +1274,7 @@ type ExtendedS3DestinationConfiguration struct { // The buffering option. BufferingHints *BufferingHints - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The compression format. If no value is specified, the default is UNCOMPRESSED. @@ -1137,9 +1318,9 @@ type ExtendedS3DestinationConfiguration struct { // The configuration for backup in Amazon S3. S3BackupConfiguration *S3DestinationConfiguration - // The Amazon S3 backup mode. After you create a delivery stream, you can update + // The Amazon S3 backup mode. After you create a Firehose stream, you can update // it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't - // update the delivery stream to disable it. + // update the Firehose stream to disable it. S3BackupMode S3BackupMode noSmithyDocumentSerde @@ -1179,7 +1360,7 @@ type ExtendedS3DestinationDescription struct { // This member is required. RoleARN *string - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The time zone you prefer. UTC is the default. @@ -1233,7 +1414,7 @@ type ExtendedS3DestinationUpdate struct { // The buffering option. BufferingHints *BufferingHints - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The compression format. If no value is specified, the default is UNCOMPRESSED . @@ -1280,8 +1461,8 @@ type ExtendedS3DestinationUpdate struct { // [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html RoleARN *string - // You can update a delivery stream to enable Amazon S3 backup if it is disabled. - // If backup is enabled, you can't update the delivery stream to disable it. + // You can update a Firehose stream to enable Amazon S3 backup if it is disabled. + // If backup is enabled, you can't update the Firehose stream to disable it. S3BackupMode S3BackupMode // The Amazon S3 destination for backup. @@ -1342,7 +1523,7 @@ type HttpEndpointBufferingHints struct { // destination. The default value is 5. // // We recommend setting this parameter to a value greater than the amount of data - // you typically ingest into the delivery stream in 10 seconds. For example, if you + // you typically ingest into the Firehose stream in 10 seconds. For example, if you // typically ingest data at 1 MB/sec, the value should be 10 MB or higher. SizeInMBs *int32 @@ -1422,7 +1603,7 @@ type HttpEndpointDestinationConfiguration struct { // must also provide a value for the other. BufferingHints *HttpEndpointBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // Describes a data processing configuration. @@ -1464,7 +1645,7 @@ type HttpEndpointDestinationDescription struct { // of them, you must also provide a value for the other. BufferingHints *HttpEndpointBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The configuration of the specified HTTP endpoint destination. @@ -1512,7 +1693,7 @@ type HttpEndpointDestinationUpdate struct { // of them, you must also provide a value for the other. BufferingHints *HttpEndpointBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // Describes the configuration of the HTTP endpoint destination. @@ -1580,22 +1761,17 @@ type HttpEndpointRetryOptions struct { noSmithyDocumentSerde } -// Specifies the destination configure settings for Apache Iceberg Table. -// -// Amazon Data Firehose is in preview release and is subject to change. +// Specifies the destination configure settings for Apache Iceberg Table. type IcebergDestinationConfiguration struct { // Configuration describing where the destination Apache Iceberg Tables are // persisted. // - // Amazon Data Firehose is in preview release and is subject to change. - // // This member is required. CatalogConfiguration *CatalogConfiguration - // The Amazon Resource Name (ARN) of the Apache Iceberg tables role. - // - // Amazon Data Firehose is in preview release and is subject to change. + // The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for + // calling Apache Iceberg Tables. // // This member is required. RoleARN *string @@ -1612,34 +1788,34 @@ type IcebergDestinationConfiguration struct { // of them, you must also provide a value for the other. BufferingHints *BufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // Provides a list of DestinationTableConfigurations which Firehose uses to - // deliver data to Apache Iceberg tables. - // - // Amazon Data Firehose is in preview release and is subject to change. + // deliver data to Apache Iceberg Tables. Firehose will write data with insert if + // table specific configuration is not provided here. DestinationTableConfigurationList []DestinationTableConfiguration // Describes a data processing configuration. ProcessingConfiguration *ProcessingConfiguration - // The retry behavior in case Firehose is unable to deliver data to an Amazon S3 - // prefix. + // The retry behavior in case Firehose is unable to deliver data to a destination. RetryOptions *RetryOptions - // Describes how Firehose will backup records. Currently,Firehose only supports - // FailedDataOnly for preview. - // - // Amazon Data Firehose is in preview release and is subject to change. + // Describes how Firehose will backup records. Currently,S3 backup only supports + // FailedDataOnly . S3BackupMode IcebergS3BackupMode + // Amazon Data Firehose is in preview release and is subject to change. + SchemaEvolutionConfiguration *SchemaEvolutionConfiguration + + // Amazon Data Firehose is in preview release and is subject to change. + TableCreationConfiguration *TableCreationConfiguration + noSmithyDocumentSerde } -// Describes a destination in Apache Iceberg Tables. -// -// Amazon Data Firehose is in preview release and is subject to change. +// Describes a destination in Apache Iceberg Tables. type IcebergDestinationDescription struct { // Describes hints for the buffering to perform before delivering data to the @@ -1650,46 +1826,43 @@ type IcebergDestinationDescription struct { BufferingHints *BufferingHints // Configuration describing where the destination Iceberg tables are persisted. - // - // Amazon Data Firehose is in preview release and is subject to change. CatalogConfiguration *CatalogConfiguration - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // Provides a list of DestinationTableConfigurations which Firehose uses to - // deliver data to Apache Iceberg tables. - // - // Amazon Data Firehose is in preview release and is subject to change. + // deliver data to Apache Iceberg Tables. Firehose will write data with insert if + // table specific configuration is not provided here. DestinationTableConfigurationList []DestinationTableConfiguration // Describes a data processing configuration. ProcessingConfiguration *ProcessingConfiguration - // The retry behavior in case Firehose is unable to deliver data to an Amazon S3 - // prefix. + // The retry behavior in case Firehose is unable to deliver data to a destination. RetryOptions *RetryOptions - // The Amazon Resource Name (ARN) of the Apache Iceberg Tables role. - // - // Amazon Data Firehose is in preview release and is subject to change. + // The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for + // calling Apache Iceberg Tables. RoleARN *string // Describes how Firehose will backup records. Currently,Firehose only supports - // FailedDataOnly for preview. - // - // Amazon Data Firehose is in preview release and is subject to change. + // FailedDataOnly . S3BackupMode IcebergS3BackupMode // Describes a destination in Amazon S3. S3DestinationDescription *S3DestinationDescription + // Amazon Data Firehose is in preview release and is subject to change. + SchemaEvolutionConfiguration *SchemaEvolutionConfiguration + + // Amazon Data Firehose is in preview release and is subject to change. + TableCreationConfiguration *TableCreationConfiguration + noSmithyDocumentSerde } -// Describes an update for a destination in Apache Iceberg Tables. -// -// Amazon Data Firehose is in preview release and is subject to change. +// Describes an update for a destination in Apache Iceberg Tables. type IcebergDestinationUpdate struct { // Describes hints for the buffering to perform before delivering data to the @@ -1700,40 +1873,39 @@ type IcebergDestinationUpdate struct { BufferingHints *BufferingHints // Configuration describing where the destination Iceberg tables are persisted. - // - // Amazon Data Firehose is in preview release and is subject to change. CatalogConfiguration *CatalogConfiguration - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // Provides a list of DestinationTableConfigurations which Firehose uses to - // deliver data to Apache Iceberg tables. - // - // Amazon Data Firehose is in preview release and is subject to change. + // deliver data to Apache Iceberg Tables. Firehose will write data with insert if + // table specific configuration is not provided here. DestinationTableConfigurationList []DestinationTableConfiguration // Describes a data processing configuration. ProcessingConfiguration *ProcessingConfiguration - // The retry behavior in case Firehose is unable to deliver data to an Amazon S3 - // prefix. + // The retry behavior in case Firehose is unable to deliver data to a destination. RetryOptions *RetryOptions - // The Amazon Resource Name (ARN) of the Apache Iceberg Tables role. - // - // Amazon Data Firehose is in preview release and is subject to change. + // The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for + // calling Apache Iceberg Tables. RoleARN *string // Describes how Firehose will backup records. Currently,Firehose only supports - // FailedDataOnly for preview. - // - // Amazon Data Firehose is in preview release and is subject to change. + // FailedDataOnly . S3BackupMode IcebergS3BackupMode // Describes the configuration of a destination in Amazon S3. S3Configuration *S3DestinationConfiguration + // Amazon Data Firehose is in preview release and is subject to change. + SchemaEvolutionConfiguration *SchemaEvolutionConfiguration + + // Amazon Data Firehose is in preview release and is subject to change. + TableCreationConfiguration *TableCreationConfiguration + noSmithyDocumentSerde } @@ -1750,7 +1922,7 @@ type InputFormatConfiguration struct { } // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used -// as the source for a delivery stream. +// as the source for a Firehose stream. type KinesisStreamSourceConfiguration struct { // The ARN of the source Kinesis data stream. For more information, see [Amazon Kinesis Data Streams ARN Format]. @@ -1771,7 +1943,7 @@ type KinesisStreamSourceConfiguration struct { noSmithyDocumentSerde } -// Details about a Kinesis data stream used as the source for a Firehose delivery +// Details about a Kinesis data stream used as the source for a Firehose Firehose // stream. type KinesisStreamSourceDescription struct { @@ -1840,7 +2012,7 @@ type MSKSourceConfiguration struct { noSmithyDocumentSerde } -// Details about the Amazon MSK cluster used as the source for a Firehose delivery +// Details about the Amazon MSK cluster used as the source for a Firehose Firehose // stream. type MSKSourceDescription struct { @@ -2011,6 +2183,26 @@ type ParquetSerDe struct { noSmithyDocumentSerde } +// Amazon Data Firehose is in preview release and is subject to change. +type PartitionField struct { + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + SourceName *string + + noSmithyDocumentSerde +} + +// Amazon Data Firehose is in preview release and is subject to change. +type PartitionSpec struct { + + // Amazon Data Firehose is in preview release and is subject to change. + Identity []PartitionField + + noSmithyDocumentSerde +} + // Describes a data processing configuration. type ProcessingConfiguration struct { @@ -2063,8 +2255,8 @@ type ProcessorParameter struct { } // Contains the result for an individual record from a PutRecordBatch request. If the record is -// successfully added to your delivery stream, it receives a record ID. If the -// record fails to be added to your delivery stream, the result includes an error +// successfully added to your Firehose stream, it receives a record ID. If the +// record fails to be added to your Firehose stream, the result includes an error // code and an error message. type PutRecordBatchResponseEntry struct { @@ -2080,7 +2272,7 @@ type PutRecordBatchResponseEntry struct { noSmithyDocumentSerde } -// The unit of data in a delivery stream. +// The unit of data in a Firehose stream. type Record struct { // The data blob, which is base64-encoded when the blob is serialized. The maximum @@ -2124,7 +2316,7 @@ type RedshiftDestinationConfiguration struct { // This member is required. S3Configuration *S3DestinationConfiguration - // The CloudWatch logging options for your delivery stream. + // The CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The user password. @@ -2140,9 +2332,9 @@ type RedshiftDestinationConfiguration struct { // The configuration for backup in Amazon S3. S3BackupConfiguration *S3DestinationConfiguration - // The Amazon S3 backup mode. After you create a delivery stream, you can update + // The Amazon S3 backup mode. After you create a Firehose stream, you can update // it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't - // update the delivery stream to disable it. + // update the Firehose stream to disable it. S3BackupMode RedshiftS3BackupMode // The configuration that defines how you access secrets for Amazon Redshift. @@ -2180,7 +2372,7 @@ type RedshiftDestinationDescription struct { // This member is required. S3DestinationDescription *S3DestinationDescription - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The data processing configuration. @@ -2208,7 +2400,7 @@ type RedshiftDestinationDescription struct { // Describes an update for a destination in Amazon Redshift. type RedshiftDestinationUpdate struct { - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The database connection string. @@ -2233,8 +2425,8 @@ type RedshiftDestinationUpdate struct { // [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html RoleARN *string - // You can update a delivery stream to enable Amazon S3 backup if it is disabled. - // If backup is enabled, you can't update the delivery stream to disable it. + // You can update a Firehose stream to enable Amazon S3 backup if it is disabled. + // If backup is enabled, you can't update the Firehose stream to disable it. S3BackupMode RedshiftS3BackupMode // The Amazon S3 destination for backup. @@ -2270,13 +2462,11 @@ type RedshiftRetryOptions struct { noSmithyDocumentSerde } -// The retry behavior in case Firehose is unable to deliver data to an Amazon S3 -// -// prefix. +// The retry behavior in case Firehose is unable to deliver data to a destination. type RetryOptions struct { // The period of time during which Firehose retries to deliver data to the - // specified Amazon S3 prefix. + // specified destination. DurationInSeconds *int32 noSmithyDocumentSerde @@ -2304,7 +2494,7 @@ type S3DestinationConfiguration struct { // values are used. BufferingHints *BufferingHints - // The CloudWatch logging options for your delivery stream. + // The CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The compression format. If no value is specified, the default is UNCOMPRESSED . @@ -2369,7 +2559,7 @@ type S3DestinationDescription struct { // This member is required. RoleARN *string - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // A prefix that Firehose evaluates and adds to failed records before writing them @@ -2400,7 +2590,7 @@ type S3DestinationUpdate struct { // values are used. BufferingHints *BufferingHints - // The CloudWatch logging options for your delivery stream. + // The CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The compression format. If no value is specified, the default is UNCOMPRESSED . @@ -2481,11 +2671,22 @@ type SchemaConfiguration struct { noSmithyDocumentSerde } +// Amazon Data Firehose is in preview release and is subject to change. +type SchemaEvolutionConfiguration struct { + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Enabled *bool + + noSmithyDocumentSerde +} + // The structure that defines how Firehose accesses the secret. type SecretsManagerConfiguration struct { - // Specifies whether you want to use the the secrets manager feature. When set as - // True the secrets manager configuration overwrites the existing secrets in the + // Specifies whether you want to use the secrets manager feature. When set as True + // the secrets manager configuration overwrites the existing secrets in the // destination configuration. When it's set to False Firehose falls back to the // credentials in the destination configuration. // @@ -2500,7 +2701,7 @@ type SecretsManagerConfiguration struct { // The ARN of the secret that stores your credentials. It must be in the same // region as the Firehose stream and the role. The secret ARN can reside in a - // different account than the delivery stream and role as Firehose supports + // different account than the Firehose stream and role as Firehose supports // cross-account secret access. This parameter is required when Enabled is set to // True . SecretARN *string @@ -2540,8 +2741,8 @@ type SnowflakeBufferingHints struct { // delivering it to the destination. The default value is 0. IntervalInSeconds *int32 - // Buffer incoming data to the specified size, in MBs, before delivering it to - // the destination. The default value is 1. + // Buffer incoming data to the specified size, in MBs, before delivering it to the + // destination. The default value is 128. SizeInMBs *int32 noSmithyDocumentSerde @@ -2589,7 +2790,7 @@ type SnowflakeDestinationConfiguration struct { // destination. If you do not specify any value, Firehose uses the default values. BufferingHints *SnowflakeBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The name of the record content column @@ -2656,7 +2857,7 @@ type SnowflakeDestinationDescription struct { // destination. If you do not specify any value, Firehose uses the default values. BufferingHints *SnowflakeBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The name of the record content column @@ -2729,7 +2930,7 @@ type SnowflakeDestinationUpdate struct { // destination. BufferingHints *SnowflakeBufferingHints - // Describes the Amazon CloudWatch logging options for your delivery stream. + // Describes the Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The name of the content metadata column @@ -2785,7 +2986,8 @@ type SnowflakeDestinationUpdate struct { // The Amazon Resource Name (ARN) of the Snowflake role RoleARN *string - // Choose an S3 backup mode + // Choose an S3 backup mode. Once you set the mode as AllData , you can not change + // it to FailedDataOnly . S3BackupMode SnowflakeS3BackupMode // Describes an update for a destination in Amazon S3. @@ -2868,10 +3070,13 @@ type SnowflakeVpcConfiguration struct { noSmithyDocumentSerde } -// Details about a Kinesis data stream used as the source for a Firehose delivery +// Details about a Kinesis data stream used as the source for a Firehose Firehose // stream. type SourceDescription struct { + // Amazon Data Firehose is in preview release and is subject to change. + DatabaseSourceDescription *DatabaseSourceDescription + // The KinesisStreamSourceDescription value for the source Kinesis data stream. KinesisStreamSourceDescription *KinesisStreamSourceDescription @@ -2919,7 +3124,7 @@ type SplunkDestinationConfiguration struct { // are used. BufferingHints *SplunkBufferingHints - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The amount of time that Firehose waits to receive an acknowledgment from Splunk @@ -2961,7 +3166,7 @@ type SplunkDestinationDescription struct { // are used. BufferingHints *SplunkBufferingHints - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The amount of time that Firehose waits to receive an acknowledgment from Splunk @@ -3008,7 +3213,7 @@ type SplunkDestinationUpdate struct { // are used. BufferingHints *SplunkBufferingHints - // The Amazon CloudWatch logging options for your delivery stream. + // The Amazon CloudWatch logging options for your Firehose stream. CloudWatchLoggingOptions *CloudWatchLoggingOptions // The amount of time that Firehose waits to receive an acknowledgment from Splunk @@ -3065,7 +3270,18 @@ type SplunkRetryOptions struct { noSmithyDocumentSerde } -// Metadata that you can assign to a delivery stream, consisting of a key-value +// Amazon Data Firehose is in preview release and is subject to change. +type TableCreationConfiguration struct { + + // Amazon Data Firehose is in preview release and is subject to change. + // + // This member is required. + Enabled *bool + + noSmithyDocumentSerde +} + +// Metadata that you can assign to a Firehose stream, consisting of a key-value // pair. type Tag struct { @@ -3087,7 +3303,7 @@ type Tag struct { // destination. type VpcConfiguration struct { - // The ARN of the IAM role that you want the delivery stream to use to create + // The ARN of the IAM role that you want the Firehose stream to use to create // endpoints in the destination VPC. You can use your existing Firehose delivery // role or you can specify a new role. In either case, make sure that the role // trusts the Firehose service principal and that it grants the following @@ -3144,7 +3360,7 @@ type VpcConfiguration struct { // up and down automatically based on throughput. To enable Firehose to scale up // the number of ENIs to match throughput, ensure that you have sufficient quota. // To help you calculate the quota you need, assume that Firehose can create up to - // three ENIs for this delivery stream for each of the subnets specified here. For + // three ENIs for this Firehose stream for each of the subnets specified here. For // more information about ENI quota, see [Network Interfaces]in the Amazon VPC Quotas topic. // // [Network Interfaces]: https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis @@ -3158,7 +3374,7 @@ type VpcConfiguration struct { // The details of the VPC of the Amazon ES destination. type VpcConfigurationDescription struct { - // The ARN of the IAM role that the delivery stream uses to create endpoints in + // The ARN of the IAM role that the Firehose stream uses to create endpoints in // the destination VPC. You can use your existing Firehose delivery role or you can // specify a new role. In either case, make sure that the role trusts the Firehose // service principal and that it grants the following permissions: @@ -3179,7 +3395,7 @@ type VpcConfigurationDescription struct { // // - ec2:DeleteNetworkInterface // - // If you revoke these permissions after you create the delivery stream, Firehose + // If you revoke these permissions after you create the Firehose stream, Firehose // can't scale out by creating more ENIs when necessary. You might therefore see a // degradation in performance. // @@ -3192,7 +3408,7 @@ type VpcConfigurationDescription struct { // groups, ensure that they allow outbound HTTPS traffic to the Amazon ES domain's // security group. Also ensure that the Amazon ES domain's security group allows // HTTPS traffic from the security groups specified here. If you use the same - // security group for both your delivery stream and the Amazon ES domain, make sure + // security group for both your Firehose stream and the Amazon ES domain, make sure // the security group inbound rule allows HTTPS traffic. For more information about // security group rules, see [Security group rules]in the Amazon VPC documentation. // @@ -3212,7 +3428,7 @@ type VpcConfigurationDescription struct { // up and down automatically based on throughput. To enable Firehose to scale up // the number of ENIs to match throughput, ensure that you have sufficient quota. // To help you calculate the quota you need, assume that Firehose can create up to - // three ENIs for this delivery stream for each of the subnets specified here. For + // three ENIs for this Firehose stream for each of the subnets specified here. For // more information about ENI quota, see [Network Interfaces]in the Amazon VPC Quotas topic. // // [Network Interfaces]: https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis diff --git a/service/firehose/validators.go b/service/firehose/validators.go index 734fd863c67..ceb73b59c6a 100644 --- a/service/firehose/validators.go +++ b/service/firehose/validators.go @@ -431,6 +431,84 @@ func validateCopyCommand(v *types.CopyCommand) error { } } +func validateDatabaseSourceAuthenticationConfiguration(v *types.DatabaseSourceAuthenticationConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DatabaseSourceAuthenticationConfiguration"} + if v.SecretsManagerConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("SecretsManagerConfiguration")) + } else if v.SecretsManagerConfiguration != nil { + if err := validateSecretsManagerConfiguration(v.SecretsManagerConfiguration); err != nil { + invalidParams.AddNested("SecretsManagerConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDatabaseSourceConfiguration(v *types.DatabaseSourceConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DatabaseSourceConfiguration"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if v.Endpoint == nil { + invalidParams.Add(smithy.NewErrParamRequired("Endpoint")) + } + if v.Port == nil { + invalidParams.Add(smithy.NewErrParamRequired("Port")) + } + if v.Databases == nil { + invalidParams.Add(smithy.NewErrParamRequired("Databases")) + } + if v.Tables == nil { + invalidParams.Add(smithy.NewErrParamRequired("Tables")) + } + if v.SnapshotWatermarkTable == nil { + invalidParams.Add(smithy.NewErrParamRequired("SnapshotWatermarkTable")) + } + if v.DatabaseSourceAuthenticationConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("DatabaseSourceAuthenticationConfiguration")) + } else if v.DatabaseSourceAuthenticationConfiguration != nil { + if err := validateDatabaseSourceAuthenticationConfiguration(v.DatabaseSourceAuthenticationConfiguration); err != nil { + invalidParams.AddNested("DatabaseSourceAuthenticationConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.DatabaseSourceVPCConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("DatabaseSourceVPCConfiguration")) + } else if v.DatabaseSourceVPCConfiguration != nil { + if err := validateDatabaseSourceVPCConfiguration(v.DatabaseSourceVPCConfiguration); err != nil { + invalidParams.AddNested("DatabaseSourceVPCConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDatabaseSourceVPCConfiguration(v *types.DatabaseSourceVPCConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DatabaseSourceVPCConfiguration"} + if v.VpcEndpointServiceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("VpcEndpointServiceName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateDeliveryStreamEncryptionConfigurationInput(v *types.DeliveryStreamEncryptionConfigurationInput) error { if v == nil { return nil @@ -457,6 +535,11 @@ func validateDestinationTableConfiguration(v *types.DestinationTableConfiguratio if v.DestinationDatabaseName == nil { invalidParams.Add(smithy.NewErrParamRequired("DestinationDatabaseName")) } + if v.PartitionSpec != nil { + if err := validatePartitionSpec(v.PartitionSpec); err != nil { + invalidParams.AddNested("PartitionSpec", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -795,6 +878,16 @@ func validateIcebergDestinationConfiguration(v *types.IcebergDestinationConfigur invalidParams.AddNested("DestinationTableConfigurationList", err.(smithy.InvalidParamsError)) } } + if v.SchemaEvolutionConfiguration != nil { + if err := validateSchemaEvolutionConfiguration(v.SchemaEvolutionConfiguration); err != nil { + invalidParams.AddNested("SchemaEvolutionConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.TableCreationConfiguration != nil { + if err := validateTableCreationConfiguration(v.TableCreationConfiguration); err != nil { + invalidParams.AddNested("TableCreationConfiguration", err.(smithy.InvalidParamsError)) + } + } if v.ProcessingConfiguration != nil { if err := validateProcessingConfiguration(v.ProcessingConfiguration); err != nil { invalidParams.AddNested("ProcessingConfiguration", err.(smithy.InvalidParamsError)) @@ -830,6 +923,16 @@ func validateIcebergDestinationUpdate(v *types.IcebergDestinationUpdate) error { invalidParams.AddNested("DestinationTableConfigurationList", err.(smithy.InvalidParamsError)) } } + if v.SchemaEvolutionConfiguration != nil { + if err := validateSchemaEvolutionConfiguration(v.SchemaEvolutionConfiguration); err != nil { + invalidParams.AddNested("SchemaEvolutionConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.TableCreationConfiguration != nil { + if err := validateTableCreationConfiguration(v.TableCreationConfiguration); err != nil { + invalidParams.AddNested("TableCreationConfiguration", err.(smithy.InvalidParamsError)) + } + } if v.ProcessingConfiguration != nil { if err := validateProcessingConfiguration(v.ProcessingConfiguration); err != nil { invalidParams.AddNested("ProcessingConfiguration", err.(smithy.InvalidParamsError)) @@ -905,6 +1008,55 @@ func validateMSKSourceConfiguration(v *types.MSKSourceConfiguration) error { } } +func validatePartitionField(v *types.PartitionField) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PartitionField"} + if v.SourceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("SourceName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePartitionFields(v []types.PartitionField) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PartitionFields"} + for i := range v { + if err := validatePartitionField(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePartitionSpec(v *types.PartitionSpec) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PartitionSpec"} + if v.Identity != nil { + if err := validatePartitionFields(v.Identity); err != nil { + invalidParams.AddNested("Identity", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateProcessingConfiguration(v *types.ProcessingConfiguration) error { if v == nil { return nil @@ -1150,6 +1302,21 @@ func validateS3DestinationUpdate(v *types.S3DestinationUpdate) error { } } +func validateSchemaEvolutionConfiguration(v *types.SchemaEvolutionConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SchemaEvolutionConfiguration"} + if v.Enabled == nil { + invalidParams.Add(smithy.NewErrParamRequired("Enabled")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateSecretsManagerConfiguration(v *types.SecretsManagerConfiguration) error { if v == nil { return nil @@ -1318,6 +1485,21 @@ func validateSplunkDestinationUpdate(v *types.SplunkDestinationUpdate) error { } } +func validateTableCreationConfiguration(v *types.TableCreationConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TableCreationConfiguration"} + if v.Enabled == nil { + invalidParams.Add(smithy.NewErrParamRequired("Enabled")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTag(v *types.Tag) error { if v == nil { return nil @@ -1449,6 +1631,11 @@ func validateOpCreateDeliveryStreamInput(v *CreateDeliveryStreamInput) error { invalidParams.AddNested("IcebergDestinationConfiguration", err.(smithy.InvalidParamsError)) } } + if v.DatabaseSourceConfiguration != nil { + if err := validateDatabaseSourceConfiguration(v.DatabaseSourceConfiguration); err != nil { + invalidParams.AddNested("DatabaseSourceConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/lambda/api_op_CreateFunction.go b/service/lambda/api_op_CreateFunction.go index 918cc2624c1..7e5f7e24f78 100644 --- a/service/lambda/api_op_CreateFunction.go +++ b/service/lambda/api_op_CreateFunction.go @@ -159,15 +159,28 @@ type CreateFunctionInput struct { ImageConfig *types.ImageConfig // The ARN of the Key Management Service (KMS) customer managed key that's used to - // encrypt your function's [environment variables]. When [Lambda SnapStart] is activated, Lambda also uses this key is to - // encrypt your function's snapshot. If you deploy your function using a container - // image, Lambda also uses this key to encrypt your function when it's deployed. - // Note that this is not the same key that's used to protect your container image - // in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a - // customer managed key, Lambda uses a default service key. + // encrypt the following resources: // + // - The function's [environment variables]. + // + // - The function's [Lambda SnapStart]snapshots. + // + // - When used with SourceKMSKeyArn , the unzipped version of the .zip deployment + // package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda]. + // + // - The optimized version of the container image that's used for function + // invocations. Note that this is not the same key that's used to protect your + // container image in the Amazon Elastic Container Registry (Amazon ECR). For more + // information, see [Function lifecycle]. + // + // If you don't provide a customer managed key, Lambda uses an [Amazon Web Services owned key] or an [Amazon Web Services managed key]. + // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + // [Specifying a customer managed key for Lambda]: https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption // [Lambda SnapStart]: https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html // [environment variables]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption + // [Function lifecycle]: https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle + // [Amazon Web Services managed key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk KMSKeyArn *string // A list of [function layers] to add to the function's execution environment. Specify each layer @@ -289,12 +302,29 @@ type CreateFunctionOutput struct { // The function's image configuration values. ImageConfigResponse *types.ImageConfigResponse - // The KMS key that's used to encrypt the function's [environment variables]. When [Lambda SnapStart] is activated, this - // key is also used to encrypt the function's snapshot. This key is returned only - // if you've configured a customer managed key. + // The ARN of the Key Management Service (KMS) customer managed key that's used to + // encrypt the following resources: + // + // - The function's [environment variables]. + // + // - The function's [Lambda SnapStart]snapshots. + // + // - When used with SourceKMSKeyArn , the unzipped version of the .zip deployment + // package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda]. + // + // - The optimized version of the container image that's used for function + // invocations. Note that this is not the same key that's used to protect your + // container image in the Amazon Elastic Container Registry (Amazon ECR). For more + // information, see [Function lifecycle]. + // + // If you don't provide a customer managed key, Lambda uses an [Amazon Web Services owned key] or an [Amazon Web Services managed key]. // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + // [Specifying a customer managed key for Lambda]: https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption // [Lambda SnapStart]: https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html // [environment variables]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption + // [Function lifecycle]: https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle + // [Amazon Web Services managed key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk KMSKeyArn *string // The date and time that the function was last updated, in [ISO-8601 format] diff --git a/service/lambda/api_op_GetFunction.go b/service/lambda/api_op_GetFunction.go index 9671a2737ec..cdb92491802 100644 --- a/service/lambda/api_op_GetFunction.go +++ b/service/lambda/api_op_GetFunction.go @@ -76,7 +76,7 @@ type GetFunctionOutput struct { // The function's [tags]. Lambda returns tag data only if you have explicit allow // permissions for [lambda:ListTags]. // - // [lambda:ListTags]: https://docs.aws.amazon.com/https:/docs.aws.amazon.com/lambda/latest/api/API_ListTags.html + // [lambda:ListTags]: https://docs.aws.amazon.com/lambda/latest/api/API_ListTags.html // [tags]: https://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tags map[string]string diff --git a/service/lambda/api_op_GetFunctionConfiguration.go b/service/lambda/api_op_GetFunctionConfiguration.go index 21afe61bffa..4d0d64e1f67 100644 --- a/service/lambda/api_op_GetFunctionConfiguration.go +++ b/service/lambda/api_op_GetFunctionConfiguration.go @@ -109,12 +109,29 @@ type GetFunctionConfigurationOutput struct { // The function's image configuration values. ImageConfigResponse *types.ImageConfigResponse - // The KMS key that's used to encrypt the function's [environment variables]. When [Lambda SnapStart] is activated, this - // key is also used to encrypt the function's snapshot. This key is returned only - // if you've configured a customer managed key. + // The ARN of the Key Management Service (KMS) customer managed key that's used to + // encrypt the following resources: // + // - The function's [environment variables]. + // + // - The function's [Lambda SnapStart]snapshots. + // + // - When used with SourceKMSKeyArn , the unzipped version of the .zip deployment + // package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda]. + // + // - The optimized version of the container image that's used for function + // invocations. Note that this is not the same key that's used to protect your + // container image in the Amazon Elastic Container Registry (Amazon ECR). For more + // information, see [Function lifecycle]. + // + // If you don't provide a customer managed key, Lambda uses an [Amazon Web Services owned key] or an [Amazon Web Services managed key]. + // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + // [Specifying a customer managed key for Lambda]: https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption // [Lambda SnapStart]: https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html // [environment variables]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption + // [Function lifecycle]: https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle + // [Amazon Web Services managed key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk KMSKeyArn *string // The date and time that the function was last updated, in [ISO-8601 format] diff --git a/service/lambda/api_op_PublishVersion.go b/service/lambda/api_op_PublishVersion.go index 421da1ae4b9..0bb8ec10f60 100644 --- a/service/lambda/api_op_PublishVersion.go +++ b/service/lambda/api_op_PublishVersion.go @@ -121,12 +121,29 @@ type PublishVersionOutput struct { // The function's image configuration values. ImageConfigResponse *types.ImageConfigResponse - // The KMS key that's used to encrypt the function's [environment variables]. When [Lambda SnapStart] is activated, this - // key is also used to encrypt the function's snapshot. This key is returned only - // if you've configured a customer managed key. + // The ARN of the Key Management Service (KMS) customer managed key that's used to + // encrypt the following resources: // + // - The function's [environment variables]. + // + // - The function's [Lambda SnapStart]snapshots. + // + // - When used with SourceKMSKeyArn , the unzipped version of the .zip deployment + // package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda]. + // + // - The optimized version of the container image that's used for function + // invocations. Note that this is not the same key that's used to protect your + // container image in the Amazon Elastic Container Registry (Amazon ECR). For more + // information, see [Function lifecycle]. + // + // If you don't provide a customer managed key, Lambda uses an [Amazon Web Services owned key] or an [Amazon Web Services managed key]. + // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + // [Specifying a customer managed key for Lambda]: https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption // [Lambda SnapStart]: https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html // [environment variables]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption + // [Function lifecycle]: https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle + // [Amazon Web Services managed key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk KMSKeyArn *string // The date and time that the function was last updated, in [ISO-8601 format] diff --git a/service/lambda/api_op_UpdateFunctionCode.go b/service/lambda/api_op_UpdateFunctionCode.go index cdc962ffe4a..36ee5574c21 100644 --- a/service/lambda/api_op_UpdateFunctionCode.go +++ b/service/lambda/api_op_UpdateFunctionCode.go @@ -102,6 +102,11 @@ type UpdateFunctionCodeInput struct { // For versioned objects, the version of the deployment package object to use. S3ObjectVersion *string + // The ARN of the Key Management Service (KMS) customer managed key that's used to + // encrypt your function's .zip deployment package. If you don't provide a customer + // managed key, Lambda uses an Amazon Web Services managed key. + SourceKMSKeyArn *string + // The base64-encoded contents of the deployment package. Amazon Web Services SDK // and CLI clients handle the encoding for you. Use only with a function defined // with a .zip file archive deployment package. @@ -158,12 +163,29 @@ type UpdateFunctionCodeOutput struct { // The function's image configuration values. ImageConfigResponse *types.ImageConfigResponse - // The KMS key that's used to encrypt the function's [environment variables]. When [Lambda SnapStart] is activated, this - // key is also used to encrypt the function's snapshot. This key is returned only - // if you've configured a customer managed key. + // The ARN of the Key Management Service (KMS) customer managed key that's used to + // encrypt the following resources: + // + // - The function's [environment variables]. + // + // - The function's [Lambda SnapStart]snapshots. + // + // - When used with SourceKMSKeyArn , the unzipped version of the .zip deployment + // package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda]. + // + // - The optimized version of the container image that's used for function + // invocations. Note that this is not the same key that's used to protect your + // container image in the Amazon Elastic Container Registry (Amazon ECR). For more + // information, see [Function lifecycle]. + // + // If you don't provide a customer managed key, Lambda uses an [Amazon Web Services owned key] or an [Amazon Web Services managed key]. // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + // [Specifying a customer managed key for Lambda]: https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption // [Lambda SnapStart]: https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html // [environment variables]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption + // [Function lifecycle]: https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle + // [Amazon Web Services managed key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk KMSKeyArn *string // The date and time that the function was last updated, in [ISO-8601 format] diff --git a/service/lambda/api_op_UpdateFunctionConfiguration.go b/service/lambda/api_op_UpdateFunctionConfiguration.go index 0afa8430eee..abbd1d4acbc 100644 --- a/service/lambda/api_op_UpdateFunctionConfiguration.go +++ b/service/lambda/api_op_UpdateFunctionConfiguration.go @@ -98,15 +98,28 @@ type UpdateFunctionConfigurationInput struct { ImageConfig *types.ImageConfig // The ARN of the Key Management Service (KMS) customer managed key that's used to - // encrypt your function's [environment variables]. When [Lambda SnapStart] is activated, Lambda also uses this key is to - // encrypt your function's snapshot. If you deploy your function using a container - // image, Lambda also uses this key to encrypt your function when it's deployed. - // Note that this is not the same key that's used to protect your container image - // in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a - // customer managed key, Lambda uses a default service key. + // encrypt the following resources: // + // - The function's [environment variables]. + // + // - The function's [Lambda SnapStart]snapshots. + // + // - When used with SourceKMSKeyArn , the unzipped version of the .zip deployment + // package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda]. + // + // - The optimized version of the container image that's used for function + // invocations. Note that this is not the same key that's used to protect your + // container image in the Amazon Elastic Container Registry (Amazon ECR). For more + // information, see [Function lifecycle]. + // + // If you don't provide a customer managed key, Lambda uses an [Amazon Web Services owned key] or an [Amazon Web Services managed key]. + // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + // [Specifying a customer managed key for Lambda]: https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption // [Lambda SnapStart]: https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html // [environment variables]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption + // [Function lifecycle]: https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle + // [Amazon Web Services managed key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk KMSKeyArn *string // A list of [function layers] to add to the function's execution environment. Specify each layer @@ -224,12 +237,29 @@ type UpdateFunctionConfigurationOutput struct { // The function's image configuration values. ImageConfigResponse *types.ImageConfigResponse - // The KMS key that's used to encrypt the function's [environment variables]. When [Lambda SnapStart] is activated, this - // key is also used to encrypt the function's snapshot. This key is returned only - // if you've configured a customer managed key. + // The ARN of the Key Management Service (KMS) customer managed key that's used to + // encrypt the following resources: + // + // - The function's [environment variables]. + // + // - The function's [Lambda SnapStart]snapshots. + // + // - When used with SourceKMSKeyArn , the unzipped version of the .zip deployment + // package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda]. + // + // - The optimized version of the container image that's used for function + // invocations. Note that this is not the same key that's used to protect your + // container image in the Amazon Elastic Container Registry (Amazon ECR). For more + // information, see [Function lifecycle]. + // + // If you don't provide a customer managed key, Lambda uses an [Amazon Web Services owned key] or an [Amazon Web Services managed key]. // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + // [Specifying a customer managed key for Lambda]: https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption // [Lambda SnapStart]: https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html // [environment variables]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption + // [Function lifecycle]: https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle + // [Amazon Web Services managed key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk KMSKeyArn *string // The date and time that the function was last updated, in [ISO-8601 format] diff --git a/service/lambda/deserializers.go b/service/lambda/deserializers.go index 3332fee6a73..10c0082529d 100644 --- a/service/lambda/deserializers.go +++ b/service/lambda/deserializers.go @@ -17920,6 +17920,15 @@ func awsRestjson1_deserializeDocumentFunctionCodeLocation(v **types.FunctionCode sv.ResolvedImageUri = ptr.String(jtv) } + case "SourceKMSKeyArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.SourceKMSKeyArn = ptr.String(jtv) + } + default: _, _ = key, value diff --git a/service/lambda/serializers.go b/service/lambda/serializers.go index 3f02bc85d62..1906562e49b 100644 --- a/service/lambda/serializers.go +++ b/service/lambda/serializers.go @@ -5970,6 +5970,11 @@ func awsRestjson1_serializeOpDocumentUpdateFunctionCodeInput(v *UpdateFunctionCo ok.String(*v.S3ObjectVersion) } + if v.SourceKMSKeyArn != nil { + ok := object.Key("SourceKMSKeyArn") + ok.String(*v.SourceKMSKeyArn) + } + if v.ZipFile != nil { ok := object.Key("ZipFile") ok.Base64EncodeBytes(v.ZipFile) @@ -6785,6 +6790,11 @@ func awsRestjson1_serializeDocumentFunctionCode(v *types.FunctionCode, value smi ok.String(*v.S3ObjectVersion) } + if v.SourceKMSKeyArn != nil { + ok := object.Key("SourceKMSKeyArn") + ok.String(*v.SourceKMSKeyArn) + } + if v.ZipFile != nil { ok := object.Key("ZipFile") ok.Base64EncodeBytes(v.ZipFile) diff --git a/service/lambda/types/types.go b/service/lambda/types/types.go index e1a9fedfc49..e47c4bfd966 100644 --- a/service/lambda/types/types.go +++ b/service/lambda/types/types.go @@ -548,6 +548,13 @@ type FunctionCode struct { // For versioned objects, the version of the deployment package object to use. S3ObjectVersion *string + // The ARN of the Key Management Service (KMS) customer managed key that's used to + // encrypt your function's .zip deployment package. If you don't provide a customer + // managed key, Lambda uses an [Amazon Web Services owned key]. + // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + SourceKMSKeyArn *string + // The base64-encoded contents of the deployment package. Amazon Web Services SDK // and CLI clients handle the encoding for you. ZipFile []byte @@ -570,6 +577,13 @@ type FunctionCodeLocation struct { // The resolved URI for the image. ResolvedImageUri *string + // The ARN of the Key Management Service (KMS) customer managed key that's used to + // encrypt your function's .zip deployment package. If you don't provide a customer + // managed key, Lambda uses an [Amazon Web Services owned key]. + // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + SourceKMSKeyArn *string + noSmithyDocumentSerde } @@ -621,12 +635,29 @@ type FunctionConfiguration struct { // The function's image configuration values. ImageConfigResponse *ImageConfigResponse - // The KMS key that's used to encrypt the function's [environment variables]. When [Lambda SnapStart] is activated, this - // key is also used to encrypt the function's snapshot. This key is returned only - // if you've configured a customer managed key. + // The ARN of the Key Management Service (KMS) customer managed key that's used to + // encrypt the following resources: + // + // - The function's [environment variables]. + // + // - The function's [Lambda SnapStart]snapshots. + // + // - When used with SourceKMSKeyArn , the unzipped version of the .zip deployment + // package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda]. + // + // - The optimized version of the container image that's used for function + // invocations. Note that this is not the same key that's used to protect your + // container image in the Amazon Elastic Container Registry (Amazon ECR). For more + // information, see [Function lifecycle]. + // + // If you don't provide a customer managed key, Lambda uses an [Amazon Web Services owned key] or an [Amazon Web Services managed key]. // + // [Amazon Web Services owned key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk + // [Specifying a customer managed key for Lambda]: https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption // [Lambda SnapStart]: https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html // [environment variables]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption + // [Function lifecycle]: https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle + // [Amazon Web Services managed key]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk KMSKeyArn *string // The date and time that the function was last updated, in [ISO-8601 format] diff --git a/service/pinpointsmsvoicev2/api_op_CreateRegistration.go b/service/pinpointsmsvoicev2/api_op_CreateRegistration.go index aeb3ff76a36..4039dc3f336 100644 --- a/service/pinpointsmsvoicev2/api_op_CreateRegistration.go +++ b/service/pinpointsmsvoicev2/api_op_CreateRegistration.go @@ -73,24 +73,26 @@ type CreateRegistrationOutput struct { // The status of the registration. // + // - CLOSED : The phone number or sender ID has been deleted and you must also + // delete the registration for the number. + // // - CREATED : Your registration is created but not submitted. // - // - SUBMITTED : Your registration has been submitted and is awaiting review. + // - COMPLETE : Your registration has been approved and your origination identity + // has been created. // - // - REVIEWING : Your registration has been accepted and is being reviewed. + // - DELETED : The registration has been deleted. // // - PROVISIONING : Your registration has been approved and your origination // identity is being created. // - // - COMPLETE : Your registration has been approved and and your origination - // identity has been created. + // - REQUIRES_AUTHENTICATION : You need to complete email authentication. // // - REQUIRES_UPDATES : You must fix your registration and resubmit it. // - // - CLOSED : The phone number or sender ID has been deleted and you must also - // delete the registration for the number. + // - REVIEWING : Your registration has been accepted and is being reviewed. // - // - DELETED : The registration has been deleted. + // - SUBMITTED : Your registration has been submitted and is awaiting review. // // This member is required. RegistrationStatus types.RegistrationStatus diff --git a/service/pinpointsmsvoicev2/api_op_CreateRegistrationVersion.go b/service/pinpointsmsvoicev2/api_op_CreateRegistrationVersion.go index f48d01f4ea7..42ae440c9a6 100644 --- a/service/pinpointsmsvoicev2/api_op_CreateRegistrationVersion.go +++ b/service/pinpointsmsvoicev2/api_op_CreateRegistrationVersion.go @@ -52,23 +52,25 @@ type CreateRegistrationVersionOutput struct { // The status of the registration. // - // - DRAFT : The initial status of a registration version after it’s created. - // - // - SUBMITTED : Your registration has been submitted. + // - APPROVED : Your registration has been approved. // - // - REVIEWING : Your registration has been accepted and is being reviewed. + // - ARCHIVED : Your previously approved registration version moves into this + // status when a more recently submitted version is approved. // - // - APPROVED : Your registration has been approved. + // - DENIED : You must fix your registration and resubmit it. // // - DISCARDED : You've abandon this version of their registration to start over // with a new version. // - // - DENIED : You must fix your registration and resubmit it. + // - DRAFT : The initial status of a registration version after it’s created. + // + // - REQUIRES_AUTHENTICATION : You need to complete email authentication. + // + // - REVIEWING : Your registration has been accepted and is being reviewed. // // - REVOKED : Your previously approved registration has been revoked. // - // - ARCHIVED : Your previously approved registration version moves into this - // status when a more recently submitted version is approved. + // - SUBMITTED : Your registration has been submitted. // // This member is required. RegistrationVersionStatus types.RegistrationVersionStatus diff --git a/service/pinpointsmsvoicev2/api_op_DeleteRegistration.go b/service/pinpointsmsvoicev2/api_op_DeleteRegistration.go index d94c4d58243..16a2bd4995e 100644 --- a/service/pinpointsmsvoicev2/api_op_DeleteRegistration.go +++ b/service/pinpointsmsvoicev2/api_op_DeleteRegistration.go @@ -64,24 +64,26 @@ type DeleteRegistrationOutput struct { // The status of the registration. // + // - CLOSED : The phone number or sender ID has been deleted and you must also + // delete the registration for the number. + // // - CREATED : Your registration is created but not submitted. // - // - SUBMITTED : Your registration has been submitted and is awaiting review. + // - COMPLETE : Your registration has been approved and your origination identity + // has been created. // - // - REVIEWING : Your registration has been accepted and is being reviewed. + // - DELETED : The registration has been deleted. // // - PROVISIONING : Your registration has been approved and your origination // identity is being created. // - // - COMPLETE : Your registration has been approved and and your origination - // identity has been created. + // - REQUIRES_AUTHENTICATION : You need to complete email authentication. // // - REQUIRES_UPDATES : You must fix your registration and resubmit it. // - // - CLOSED : The phone number or sender ID has been deleted and you must also - // delete the registration for the number. + // - REVIEWING : Your registration has been accepted and is being reviewed. // - // - DELETED : The registration has been deleted. + // - SUBMITTED : Your registration has been submitted and is awaiting review. // // This member is required. RegistrationStatus types.RegistrationStatus diff --git a/service/pinpointsmsvoicev2/api_op_DiscardRegistrationVersion.go b/service/pinpointsmsvoicev2/api_op_DiscardRegistrationVersion.go index 6a6294e003c..4228e90aadf 100644 --- a/service/pinpointsmsvoicev2/api_op_DiscardRegistrationVersion.go +++ b/service/pinpointsmsvoicev2/api_op_DiscardRegistrationVersion.go @@ -51,23 +51,25 @@ type DiscardRegistrationVersionOutput struct { // The status of the registration version. // - // - DRAFT : The initial status of a registration version after it’s created. - // - // - SUBMITTED : Your registration has been submitted. + // - APPROVED : Your registration has been approved. // - // - REVIEWING : Your registration has been accepted and is being reviewed. + // - ARCHIVED : Your previously approved registration version moves into this + // status when a more recently submitted version is approved. // - // - APPROVED : Your registration has been approved. + // - DENIED : You must fix your registration and resubmit it. // // - DISCARDED : You've abandon this version of their registration to start over // with a new version. // - // - DENIED : You must fix your registration and resubmit it. + // - DRAFT : The initial status of a registration version after it’s created. + // + // - REQUIRES_AUTHENTICATION : You need to complete email authentication. + // + // - REVIEWING : Your registration has been accepted and is being reviewed. // // - REVOKED : Your previously approved registration has been revoked. // - // - ARCHIVED : Your previously approved registration version moves into this - // status when a more recently submitted version is approved. + // - SUBMITTED : Your registration has been submitted. // // This member is required. RegistrationVersionStatus types.RegistrationVersionStatus diff --git a/service/pinpointsmsvoicev2/api_op_SubmitRegistrationVersion.go b/service/pinpointsmsvoicev2/api_op_SubmitRegistrationVersion.go index 5830d99b3d1..b1608417ca3 100644 --- a/service/pinpointsmsvoicev2/api_op_SubmitRegistrationVersion.go +++ b/service/pinpointsmsvoicev2/api_op_SubmitRegistrationVersion.go @@ -51,23 +51,25 @@ type SubmitRegistrationVersionOutput struct { // The status of the registration version. // - // - DRAFT : The initial status of a registration version after it’s created. - // - // - SUBMITTED : Your registration has been submitted. + // - APPROVED : Your registration has been approved. // - // - REVIEWING : Your registration has been accepted and is being reviewed. + // - ARCHIVED : Your previously approved registration version moves into this + // status when a more recently submitted version is approved. // - // - APPROVED : Your registration has been approved. + // - DENIED : You must fix your registration and resubmit it. // // - DISCARDED : You've abandon this version of their registration to start over // with a new version. // - // - DENIED : You must fix your registration and resubmit it. + // - DRAFT : The initial status of a registration version after it’s created. + // + // - REQUIRES_AUTHENTICATION : You need to complete email authentication. + // + // - REVIEWING : Your registration has been accepted and is being reviewed. // // - REVOKED : Your previously approved registration has been revoked. // - // - ARCHIVED : Your previously approved registration version moves into this - // status when a more recently submitted version is approved. + // - SUBMITTED : Your registration has been submitted. // // This member is required. RegistrationVersionStatus types.RegistrationVersionStatus diff --git a/service/pinpointsmsvoicev2/deserializers.go b/service/pinpointsmsvoicev2/deserializers.go index ac950d9051b..394c6db2a4d 100644 --- a/service/pinpointsmsvoicev2/deserializers.go +++ b/service/pinpointsmsvoicev2/deserializers.go @@ -13962,6 +13962,22 @@ func awsAwsjson10_deserializeDocumentRegistrationVersionStatusHistory(v **types. } } + case "RequiresAuthenticationTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.RequiresAuthenticationTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + case "ReviewingTimestamp": if value != nil { switch jtv := value.(type) { diff --git a/service/pinpointsmsvoicev2/types/types.go b/service/pinpointsmsvoicev2/types/types.go index 2ba8cd2d838..100b7ca2e6a 100644 --- a/service/pinpointsmsvoicev2/types/types.go +++ b/service/pinpointsmsvoicev2/types/types.go @@ -870,24 +870,26 @@ type RegistrationInformation struct { // The status of the registration. // + // - CLOSED : The phone number or sender ID has been deleted and you must also + // delete the registration for the number. + // // - CREATED : Your registration is created but not submitted. // - // - SUBMITTED : Your registration has been submitted and is awaiting review. + // - COMPLETE : Your registration has been approved and your origination identity + // has been created. // - // - REVIEWING : Your registration has been accepted and is being reviewed. + // - DELETED : The registration has been deleted. // // - PROVISIONING : Your registration has been approved and your origination // identity is being created. // - // - COMPLETE : Your registration has been approved and and your origination - // identity has been created. + // - REQUIRES_AUTHENTICATION : You need to complete email authentication. // // - REQUIRES_UPDATES : You must fix your registration and resubmit it. // - // - CLOSED : The phone number or sender ID has been deleted and you must also - // delete the registration for the number. + // - REVIEWING : Your registration has been accepted and is being reviewed. // - // - DELETED : The registration has been deleted. + // - SUBMITTED : Your registration has been submitted and is awaiting review. // // This member is required. RegistrationStatus RegistrationStatus @@ -1033,23 +1035,25 @@ type RegistrationVersionInformation struct { // The status of the registration. // - // - DRAFT : The initial status of a registration version after it’s created. - // - // - SUBMITTED : Your registration has been submitted. + // - APPROVED : Your registration has been approved. // - // - REVIEWING : Your registration has been accepted and is being reviewed. + // - ARCHIVED : Your previously approved registration version moves into this + // status when a more recently submitted version is approved. // - // - APPROVED : Your registration has been approved. + // - DENIED : You must fix your registration and resubmit it. // // - DISCARDED : You've abandon this version of their registration to start over // with a new version. // - // - DENIED : You must fix your registration and resubmit it. + // - DRAFT : The initial status of a registration version after it’s created. + // + // - REQUIRES_AUTHENTICATION : You need to complete email authentication. + // + // - REVIEWING : Your registration has been accepted and is being reviewed. // // - REVOKED : Your previously approved registration has been revoked. // - // - ARCHIVED : Your previously approved registration version moves into this - // status when a more recently submitted version is approved. + // - SUBMITTED : Your registration has been submitted. // // This member is required. RegistrationVersionStatus RegistrationVersionStatus @@ -1102,6 +1106,12 @@ type RegistrationVersionStatusHistory struct { // [UNIX epoch time]: https://www.epochconverter.com/ DiscardedTimestamp *time.Time + // The time when the registration was in the requires authentication state, in [UNIX epoch time] + // format. + // + // [UNIX epoch time]: https://www.epochconverter.com/ + RequiresAuthenticationTimestamp *time.Time + // The time when the registration was in the reviewing state, in [UNIX epoch time] format. // // [UNIX epoch time]: https://www.epochconverter.com/ diff --git a/service/qbusiness/api_op_CreateApplication.go b/service/qbusiness/api_op_CreateApplication.go index ee9e535a25f..f2d6be067ff 100644 --- a/service/qbusiness/api_op_CreateApplication.go +++ b/service/qbusiness/api_op_CreateApplication.go @@ -19,7 +19,12 @@ import ( // Business Pro, see [Amazon Q Business tiers]. You must use the Amazon Q Business console to assign // subscription tiers to users. // +// A Amazon Q Apps service linked role will be created if it's absent in the +// Amazon Web Services account when the QAppsConfiguration is enabled in the +// request. For more information, see [Using service-linked roles for Q Apps] +// // [Amazon Q Business tiers]: https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#user-sub-tiers +// [Using service-linked roles for Q Apps]: https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/using-service-linked-roles-qapps.html func (c *Client) CreateApplication(ctx context.Context, params *CreateApplicationInput, optFns ...func(*Options)) (*CreateApplicationOutput, error) { if params == nil { params = &CreateApplicationInput{} diff --git a/service/qbusiness/api_op_PutGroup.go b/service/qbusiness/api_op_PutGroup.go index d636178bd5b..6a73b507542 100644 --- a/service/qbusiness/api_op_PutGroup.go +++ b/service/qbusiness/api_op_PutGroup.go @@ -73,6 +73,12 @@ type PutGroupInput struct { // documents stored in Salesforce. DataSourceId *string + // The Amazon Resource Name (ARN) of an IAM role that has access to the S3 file + // that contains your list of users that belong to a group.The Amazon Resource Name + // (ARN) of an IAM role that has access to the S3 file that contains your list of + // users that belong to a group. + RoleArn *string + noSmithyDocumentSerde } diff --git a/service/qbusiness/api_op_UpdateApplication.go b/service/qbusiness/api_op_UpdateApplication.go index f4d33f0d9a6..bb90c4bd316 100644 --- a/service/qbusiness/api_op_UpdateApplication.go +++ b/service/qbusiness/api_op_UpdateApplication.go @@ -12,6 +12,12 @@ import ( ) // Updates an existing Amazon Q Business application. +// +// A Amazon Q Apps service-linked role will be created if it's absent in the +// Amazon Web Services account when the QAppsConfiguration is enabled in the +// request. For more information, see [Using service-linked roles for Q Apps] +// +// [Using service-linked roles for Q Apps]: https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/using-service-linked-roles-qapps.html func (c *Client) UpdateApplication(ctx context.Context, params *UpdateApplicationInput, optFns ...func(*Options)) (*UpdateApplicationOutput, error) { if params == nil { params = &UpdateApplicationInput{} diff --git a/service/qbusiness/serializers.go b/service/qbusiness/serializers.go index 31a9222c319..5ad03a0fbfc 100644 --- a/service/qbusiness/serializers.go +++ b/service/qbusiness/serializers.go @@ -4219,6 +4219,11 @@ func awsRestjson1_serializeOpDocumentPutGroupInput(v *PutGroupInput, value smith ok.String(*v.GroupName) } + if v.RoleArn != nil { + ok := object.Key("roleArn") + ok.String(*v.RoleArn) + } + if len(v.Type) > 0 { ok := object.Key("type") ok.String(string(v.Type)) @@ -6773,6 +6778,13 @@ func awsRestjson1_serializeDocumentGroupMembers(v *types.GroupMembers, value smi } } + if v.S3PathForGroupMembers != nil { + ok := object.Key("s3PathForGroupMembers") + if err := awsRestjson1_serializeDocumentS3(v.S3PathForGroupMembers, ok); err != nil { + return err + } + } + return nil } diff --git a/service/qbusiness/types/types.go b/service/qbusiness/types/types.go index 8cdbe3f2f46..9e1a9c1c1f5 100644 --- a/service/qbusiness/types/types.go +++ b/service/qbusiness/types/types.go @@ -1412,6 +1412,10 @@ type GroupMembers struct { // belong to the "Interns" group. MemberUsers []MemberUser + // Information required for Amazon Q Business to find a specific file in an Amazon + // S3 bucket. + S3PathForGroupMembers *S3 + noSmithyDocumentSerde } diff --git a/service/qbusiness/validators.go b/service/qbusiness/validators.go index 13f0e6d7bb2..576bd0a3c11 100644 --- a/service/qbusiness/validators.go +++ b/service/qbusiness/validators.go @@ -2113,6 +2113,11 @@ func validateGroupMembers(v *types.GroupMembers) error { invalidParams.AddNested("MemberUsers", err.(smithy.InvalidParamsError)) } } + if v.S3PathForGroupMembers != nil { + if err := validateS3(v.S3PathForGroupMembers); err != nil { + invalidParams.AddNested("S3PathForGroupMembers", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { From 303fe5ef849e69f6939cd51e0f219954b2cc1d10 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Fri, 8 Nov 2024 19:32:11 +0000 Subject: [PATCH 04/20] Release 2024-11-08 --- .../1b91a8b8c3b448f0a189c4b79801099f.json | 8 ------- .../401f451ea4fc4c8e93ca65cc47ee2037.json | 8 ------- .../4209d78c6706412794b2fd436e7e82d3.json | 8 ------- .../6d59b5b976ea401ca0ca304f503b584f.json | 8 ------- .../949cc9f5cc1d4978b750f1cf164404df.json | 8 ------- .../abab4f2c4e00434da2b237c823c897fc.json | 8 ------- .../b05c2cd179bc4342ac466002dfa0359a.json | 8 ------- .../f1f83ca5df6848b0aa01747925cb8e2e.json | 8 ------- .../f3ed028b64c54f208bb68593d8d9e0b2.json | 8 ------- CHANGELOG.md | 22 +++++++++++++++++++ service/batch/CHANGELOG.md | 4 ++++ service/batch/go_module_metadata.go | 2 +- service/bedrockagentruntime/CHANGELOG.md | 4 ++++ .../bedrockagentruntime/go_module_metadata.go | 2 +- service/chimesdkmediapipelines/CHANGELOG.md | 4 ++++ .../go_module_metadata.go | 2 +- service/controlcatalog/CHANGELOG.md | 4 ++++ service/controlcatalog/go_module_metadata.go | 2 +- service/directoryservice/CHANGELOG.md | 4 ++++ .../directoryservice/go_module_metadata.go | 2 +- service/eks/CHANGELOG.md | 4 ++++ service/eks/go_module_metadata.go | 2 +- service/firehose/CHANGELOG.md | 4 ++++ service/firehose/go_module_metadata.go | 2 +- service/internal/integrationtest/go.mod | 8 +++---- service/lambda/CHANGELOG.md | 4 ++++ service/lambda/go_module_metadata.go | 2 +- service/pinpointsmsvoicev2/CHANGELOG.md | 4 ++++ .../pinpointsmsvoicev2/go_module_metadata.go | 2 +- service/qbusiness/CHANGELOG.md | 4 ++++ service/qbusiness/go_module_metadata.go | 2 +- 31 files changed, 76 insertions(+), 86 deletions(-) delete mode 100644 .changelog/1b91a8b8c3b448f0a189c4b79801099f.json delete mode 100644 .changelog/401f451ea4fc4c8e93ca65cc47ee2037.json delete mode 100644 .changelog/4209d78c6706412794b2fd436e7e82d3.json delete mode 100644 .changelog/6d59b5b976ea401ca0ca304f503b584f.json delete mode 100644 .changelog/949cc9f5cc1d4978b750f1cf164404df.json delete mode 100644 .changelog/abab4f2c4e00434da2b237c823c897fc.json delete mode 100644 .changelog/b05c2cd179bc4342ac466002dfa0359a.json delete mode 100644 .changelog/f1f83ca5df6848b0aa01747925cb8e2e.json delete mode 100644 .changelog/f3ed028b64c54f208bb68593d8d9e0b2.json diff --git a/.changelog/1b91a8b8c3b448f0a189c4b79801099f.json b/.changelog/1b91a8b8c3b448f0a189c4b79801099f.json deleted file mode 100644 index e5cb8fcafcc..00000000000 --- a/.changelog/1b91a8b8c3b448f0a189c4b79801099f.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "1b91a8b8-c3b4-48f0-a189-c4b79801099f", - "type": "feature", - "description": "AWS Control Catalog GetControl public API returns additional data in output, including Implementation and Parameters", - "modules": [ - "service/controlcatalog" - ] -} \ No newline at end of file diff --git a/.changelog/401f451ea4fc4c8e93ca65cc47ee2037.json b/.changelog/401f451ea4fc4c8e93ca65cc47ee2037.json deleted file mode 100644 index ded92091160..00000000000 --- a/.changelog/401f451ea4fc4c8e93ca65cc47ee2037.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "401f451e-a4fc-4c8e-93ca-65cc47ee2037", - "type": "feature", - "description": "Adds S3 path option to pass group member list for PutGroup API.", - "modules": [ - "service/qbusiness" - ] -} \ No newline at end of file diff --git a/.changelog/4209d78c6706412794b2fd436e7e82d3.json b/.changelog/4209d78c6706412794b2fd436e7e82d3.json deleted file mode 100644 index d5931997972..00000000000 --- a/.changelog/4209d78c6706412794b2fd436e7e82d3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "4209d78c-6706-4127-94b2-fd436e7e82d3", - "type": "feature", - "description": "Amazon Data Firehose / Features : Adds support for a new DeliveryStreamType, DatabaseAsSource. DatabaseAsSource hoses allow customers to stream CDC events from their RDS and Amazon EC2 hosted databases, running MySQL and PostgreSQL database engines, to Iceberg Table destinations.", - "modules": [ - "service/firehose" - ] -} \ No newline at end of file diff --git a/.changelog/6d59b5b976ea401ca0ca304f503b584f.json b/.changelog/6d59b5b976ea401ca0ca304f503b584f.json deleted file mode 100644 index 3902587168e..00000000000 --- a/.changelog/6d59b5b976ea401ca0ca304f503b584f.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "6d59b5b9-76ea-401c-a0ca-304f503b584f", - "type": "feature", - "description": "Adds new error code `Ec2InstanceTypeDoesNotExist` for Amazon EKS managed node groups", - "modules": [ - "service/eks" - ] -} \ No newline at end of file diff --git a/.changelog/949cc9f5cc1d4978b750f1cf164404df.json b/.changelog/949cc9f5cc1d4978b750f1cf164404df.json deleted file mode 100644 index 186587788eb..00000000000 --- a/.changelog/949cc9f5cc1d4978b750f1cf164404df.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "949cc9f5-cc1d-4978-b750-f1cf164404df", - "type": "feature", - "description": "This release adds trace functionality to Bedrock Prompt Flows", - "modules": [ - "service/bedrockagentruntime" - ] -} \ No newline at end of file diff --git a/.changelog/abab4f2c4e00434da2b237c823c897fc.json b/.changelog/abab4f2c4e00434da2b237c823c897fc.json deleted file mode 100644 index 48137059d41..00000000000 --- a/.changelog/abab4f2c4e00434da2b237c823c897fc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "abab4f2c-4e00-434d-a2b2-37c823c897fc", - "type": "feature", - "description": "Added support for Media Capture Pipeline and Media Concatenation Pipeline for customer managed server side encryption. Now Media Capture Pipeline can use IAM sink role to get access to KMS key and encrypt/decrypt recorded artifacts. KMS key ID can also be supplied with encryption context.", - "modules": [ - "service/chimesdkmediapipelines" - ] -} \ No newline at end of file diff --git a/.changelog/b05c2cd179bc4342ac466002dfa0359a.json b/.changelog/b05c2cd179bc4342ac466002dfa0359a.json deleted file mode 100644 index 7554000e156..00000000000 --- a/.changelog/b05c2cd179bc4342ac466002dfa0359a.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "b05c2cd1-79bc-4342-ac46-6002dfa0359a", - "type": "feature", - "description": "This feature allows override LaunchTemplates to be specified in an AWS Batch Compute Environment.", - "modules": [ - "service/batch" - ] -} \ No newline at end of file diff --git a/.changelog/f1f83ca5df6848b0aa01747925cb8e2e.json b/.changelog/f1f83ca5df6848b0aa01747925cb8e2e.json deleted file mode 100644 index 577078b0d10..00000000000 --- a/.changelog/f1f83ca5df6848b0aa01747925cb8e2e.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "f1f83ca5-df68-48b0-aa01-747925cb8e2e", - "type": "feature", - "description": "This release adds support for using AWS KMS customer managed keys to encrypt AWS Lambda .zip deployment packages.", - "modules": [ - "service/lambda" - ] -} \ No newline at end of file diff --git a/.changelog/f3ed028b64c54f208bb68593d8d9e0b2.json b/.changelog/f3ed028b64c54f208bb68593d8d9e0b2.json deleted file mode 100644 index e579aa9d082..00000000000 --- a/.changelog/f3ed028b64c54f208bb68593d8d9e0b2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "f3ed028b-64c5-4f20-8bb6-8593d8d9e0b2", - "type": "feature", - "description": "Added the RequiresAuthenticationTimestamp field to the RegistrationVersionStatusHistory data type.", - "modules": [ - "service/pinpointsmsvoicev2" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c29a0b6bfd..57f8c42d47f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,25 @@ +# Release (2024-11-08) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/batch`: [v1.48.0](service/batch/CHANGELOG.md#v1480-2024-11-08) + * **Feature**: This feature allows override LaunchTemplates to be specified in an AWS Batch Compute Environment. +* `github.com/aws/aws-sdk-go-v2/service/bedrockagentruntime`: [v1.24.0](service/bedrockagentruntime/CHANGELOG.md#v1240-2024-11-08) + * **Feature**: This release adds trace functionality to Bedrock Prompt Flows +* `github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines`: [v1.21.0](service/chimesdkmediapipelines/CHANGELOG.md#v1210-2024-11-08) + * **Feature**: Added support for Media Capture Pipeline and Media Concatenation Pipeline for customer managed server side encryption. Now Media Capture Pipeline can use IAM sink role to get access to KMS key and encrypt/decrypt recorded artifacts. KMS key ID can also be supplied with encryption context. +* `github.com/aws/aws-sdk-go-v2/service/controlcatalog`: [v1.6.0](service/controlcatalog/CHANGELOG.md#v160-2024-11-08) + * **Feature**: AWS Control Catalog GetControl public API returns additional data in output, including Implementation and Parameters +* `github.com/aws/aws-sdk-go-v2/service/eks`: [v1.52.0](service/eks/CHANGELOG.md#v1520-2024-11-08) + * **Feature**: Adds new error code `Ec2InstanceTypeDoesNotExist` for Amazon EKS managed node groups +* `github.com/aws/aws-sdk-go-v2/service/firehose`: [v1.35.0](service/firehose/CHANGELOG.md#v1350-2024-11-08) + * **Feature**: Amazon Data Firehose / Features : Adds support for a new DeliveryStreamType, DatabaseAsSource. DatabaseAsSource hoses allow customers to stream CDC events from their RDS and Amazon EC2 hosted databases, running MySQL and PostgreSQL database engines, to Iceberg Table destinations. +* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.65.0](service/lambda/CHANGELOG.md#v1650-2024-11-08) + * **Feature**: This release adds support for using AWS KMS customer managed keys to encrypt AWS Lambda .zip deployment packages. +* `github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2`: [v1.17.0](service/pinpointsmsvoicev2/CHANGELOG.md#v1170-2024-11-08) + * **Feature**: Added the RequiresAuthenticationTimestamp field to the RegistrationVersionStatusHistory data type. +* `github.com/aws/aws-sdk-go-v2/service/qbusiness`: [v1.16.0](service/qbusiness/CHANGELOG.md#v1160-2024-11-08) + * **Feature**: Adds S3 path option to pass group member list for PutGroup API. + # Release (2024-11-07) ## General Highlights diff --git a/service/batch/CHANGELOG.md b/service/batch/CHANGELOG.md index 93126489e0b..9424ded8b40 100644 --- a/service/batch/CHANGELOG.md +++ b/service/batch/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.48.0 (2024-11-08) + +* **Feature**: This feature allows override LaunchTemplates to be specified in an AWS Batch Compute Environment. + # v1.47.2 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/batch/go_module_metadata.go b/service/batch/go_module_metadata.go index 95ec61e453f..05f6f4491ca 100644 --- a/service/batch/go_module_metadata.go +++ b/service/batch/go_module_metadata.go @@ -3,4 +3,4 @@ package batch // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.47.2" +const goModuleVersion = "1.48.0" diff --git a/service/bedrockagentruntime/CHANGELOG.md b/service/bedrockagentruntime/CHANGELOG.md index 2ebe793ef03..f3fff45d26c 100644 --- a/service/bedrockagentruntime/CHANGELOG.md +++ b/service/bedrockagentruntime/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.24.0 (2024-11-08) + +* **Feature**: This release adds trace functionality to Bedrock Prompt Flows + # v1.23.3 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/bedrockagentruntime/go_module_metadata.go b/service/bedrockagentruntime/go_module_metadata.go index 8efd299ddc3..76bf2e8703f 100644 --- a/service/bedrockagentruntime/go_module_metadata.go +++ b/service/bedrockagentruntime/go_module_metadata.go @@ -3,4 +3,4 @@ package bedrockagentruntime // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.23.3" +const goModuleVersion = "1.24.0" diff --git a/service/chimesdkmediapipelines/CHANGELOG.md b/service/chimesdkmediapipelines/CHANGELOG.md index a67a235f4b4..f523109a1ad 100644 --- a/service/chimesdkmediapipelines/CHANGELOG.md +++ b/service/chimesdkmediapipelines/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.21.0 (2024-11-08) + +* **Feature**: Added support for Media Capture Pipeline and Media Concatenation Pipeline for customer managed server side encryption. Now Media Capture Pipeline can use IAM sink role to get access to KMS key and encrypt/decrypt recorded artifacts. KMS key ID can also be supplied with encryption context. + # v1.20.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/chimesdkmediapipelines/go_module_metadata.go b/service/chimesdkmediapipelines/go_module_metadata.go index f0727653817..6153f85d34c 100644 --- a/service/chimesdkmediapipelines/go_module_metadata.go +++ b/service/chimesdkmediapipelines/go_module_metadata.go @@ -3,4 +3,4 @@ package chimesdkmediapipelines // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.20.5" +const goModuleVersion = "1.21.0" diff --git a/service/controlcatalog/CHANGELOG.md b/service/controlcatalog/CHANGELOG.md index 111efe54a86..1631991aebb 100644 --- a/service/controlcatalog/CHANGELOG.md +++ b/service/controlcatalog/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.6.0 (2024-11-08) + +* **Feature**: AWS Control Catalog GetControl public API returns additional data in output, including Implementation and Parameters + # v1.5.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/controlcatalog/go_module_metadata.go b/service/controlcatalog/go_module_metadata.go index f54df7e2470..3ad5edcd799 100644 --- a/service/controlcatalog/go_module_metadata.go +++ b/service/controlcatalog/go_module_metadata.go @@ -3,4 +3,4 @@ package controlcatalog // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.5.5" +const goModuleVersion = "1.6.0" diff --git a/service/directoryservice/CHANGELOG.md b/service/directoryservice/CHANGELOG.md index 47c7a12d5ea..7cef3d2a155 100644 --- a/service/directoryservice/CHANGELOG.md +++ b/service/directoryservice/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.30.6 (2024-11-08) + +* No change notes available for this release. + # v1.30.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/directoryservice/go_module_metadata.go b/service/directoryservice/go_module_metadata.go index c112e27afb8..4bf48f8d81b 100644 --- a/service/directoryservice/go_module_metadata.go +++ b/service/directoryservice/go_module_metadata.go @@ -3,4 +3,4 @@ package directoryservice // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.30.5" +const goModuleVersion = "1.30.6" diff --git a/service/eks/CHANGELOG.md b/service/eks/CHANGELOG.md index 06f3bb46e30..967c226c0b6 100644 --- a/service/eks/CHANGELOG.md +++ b/service/eks/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.52.0 (2024-11-08) + +* **Feature**: Adds new error code `Ec2InstanceTypeDoesNotExist` for Amazon EKS managed node groups + # v1.51.3 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/eks/go_module_metadata.go b/service/eks/go_module_metadata.go index 61d15b93ac8..9bdf2f59af9 100644 --- a/service/eks/go_module_metadata.go +++ b/service/eks/go_module_metadata.go @@ -3,4 +3,4 @@ package eks // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.51.3" +const goModuleVersion = "1.52.0" diff --git a/service/firehose/CHANGELOG.md b/service/firehose/CHANGELOG.md index a9eed4d7e42..6d1e3c2d278 100644 --- a/service/firehose/CHANGELOG.md +++ b/service/firehose/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.35.0 (2024-11-08) + +* **Feature**: Amazon Data Firehose / Features : Adds support for a new DeliveryStreamType, DatabaseAsSource. DatabaseAsSource hoses allow customers to stream CDC events from their RDS and Amazon EC2 hosted databases, running MySQL and PostgreSQL database engines, to Iceberg Table destinations. + # v1.34.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/firehose/go_module_metadata.go b/service/firehose/go_module_metadata.go index 7a37a9a5661..25240dc07c8 100644 --- a/service/firehose/go_module_metadata.go +++ b/service/firehose/go_module_metadata.go @@ -3,4 +3,4 @@ package firehose // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.34.5" +const goModuleVersion = "1.35.0" diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index f6a3b659272..f389344750b 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/applicationdiscoveryservice v1.28.5 github.com/aws/aws-sdk-go-v2/service/appstream v1.41.5 github.com/aws/aws-sdk-go-v2/service/athena v1.48.3 - github.com/aws/aws-sdk-go-v2/service/batch v1.47.2 + github.com/aws/aws-sdk-go-v2/service/batch v1.48.0 github.com/aws/aws-sdk-go-v2/service/cloudformation v1.55.5 github.com/aws/aws-sdk-go-v2/service/cloudfront v1.40.4 github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.6 @@ -26,7 +26,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.3 github.com/aws/aws-sdk-go-v2/service/devicefarm v1.28.5 github.com/aws/aws-sdk-go-v2/service/directconnect v1.29.5 - github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.5 + github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.6 github.com/aws/aws-sdk-go-v2/service/docdb v1.39.4 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.5 github.com/aws/aws-sdk-go-v2/service/ec2 v1.187.1 @@ -41,7 +41,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/elastictranscoder v1.27.5 github.com/aws/aws-sdk-go-v2/service/emr v1.46.3 github.com/aws/aws-sdk-go-v2/service/eventbridge v1.35.5 - github.com/aws/aws-sdk-go-v2/service/firehose v1.34.5 + github.com/aws/aws-sdk-go-v2/service/firehose v1.35.0 github.com/aws/aws-sdk-go-v2/service/gamelift v1.36.5 github.com/aws/aws-sdk-go-v2/service/glacier v1.26.5 github.com/aws/aws-sdk-go-v2/service/glue v1.101.2 @@ -51,7 +51,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/iot v1.59.5 github.com/aws/aws-sdk-go-v2/service/kinesis v1.32.5 github.com/aws/aws-sdk-go-v2/service/kms v1.37.5 - github.com/aws/aws-sdk-go-v2/service/lambda v1.64.3 + github.com/aws/aws-sdk-go-v2/service/lambda v1.65.0 github.com/aws/aws-sdk-go-v2/service/lightsail v1.42.5 github.com/aws/aws-sdk-go-v2/service/marketplacecommerceanalytics v1.24.5 github.com/aws/aws-sdk-go-v2/service/neptune v1.35.4 diff --git a/service/lambda/CHANGELOG.md b/service/lambda/CHANGELOG.md index 157943f210d..fc3fcc30bf8 100644 --- a/service/lambda/CHANGELOG.md +++ b/service/lambda/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.65.0 (2024-11-08) + +* **Feature**: This release adds support for using AWS KMS customer managed keys to encrypt AWS Lambda .zip deployment packages. + # v1.64.3 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/lambda/go_module_metadata.go b/service/lambda/go_module_metadata.go index 2485caa2527..644e5b979c7 100644 --- a/service/lambda/go_module_metadata.go +++ b/service/lambda/go_module_metadata.go @@ -3,4 +3,4 @@ package lambda // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.64.3" +const goModuleVersion = "1.65.0" diff --git a/service/pinpointsmsvoicev2/CHANGELOG.md b/service/pinpointsmsvoicev2/CHANGELOG.md index 3598a4a387b..c364c37c553 100644 --- a/service/pinpointsmsvoicev2/CHANGELOG.md +++ b/service/pinpointsmsvoicev2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.17.0 (2024-11-08) + +* **Feature**: Added the RequiresAuthenticationTimestamp field to the RegistrationVersionStatusHistory data type. + # v1.16.3 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/pinpointsmsvoicev2/go_module_metadata.go b/service/pinpointsmsvoicev2/go_module_metadata.go index 8e23ccb36bb..500d007d398 100644 --- a/service/pinpointsmsvoicev2/go_module_metadata.go +++ b/service/pinpointsmsvoicev2/go_module_metadata.go @@ -3,4 +3,4 @@ package pinpointsmsvoicev2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.16.3" +const goModuleVersion = "1.17.0" diff --git a/service/qbusiness/CHANGELOG.md b/service/qbusiness/CHANGELOG.md index 29bcd9e9444..b52cba309bc 100644 --- a/service/qbusiness/CHANGELOG.md +++ b/service/qbusiness/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.16.0 (2024-11-08) + +* **Feature**: Adds S3 path option to pass group member list for PutGroup API. + # v1.15.3 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/qbusiness/go_module_metadata.go b/service/qbusiness/go_module_metadata.go index e7a9caf4739..eacf20fa3af 100644 --- a/service/qbusiness/go_module_metadata.go +++ b/service/qbusiness/go_module_metadata.go @@ -3,4 +3,4 @@ package qbusiness // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.15.3" +const goModuleVersion = "1.16.0" From b9d9dbb9f7085a14216400a57ed9cb9402c090bb Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Mon, 11 Nov 2024 19:24:07 +0000 Subject: [PATCH 05/20] Update API model --- .../sdk-codegen/aws-models/cloudfront.json | 251 ++++++-- .../sdk-codegen/aws-models/inspector2.json | 83 ++- codegen/sdk-codegen/aws-models/lambda.json | 6 + .../sdk-codegen/aws-models/opensearch.json | 583 +++++++++++++++++- codegen/sdk-codegen/aws-models/outposts.json | 539 +++++++++++++++- 5 files changed, 1405 insertions(+), 57 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/cloudfront.json b/codegen/sdk-codegen/aws-models/cloudfront.json index 1be0bd9361e..f63ca860bab 100644 --- a/codegen/sdk-codegen/aws-models/cloudfront.json +++ b/codegen/sdk-codegen/aws-models/cloudfront.json @@ -1,33 +1,5 @@ { "smithy": "2.0", - "metadata": { - "suppressions": [ - { - "id": "HttpMethodSemantics", - "namespace": "*" - }, - { - "id": "HttpResponseCodeSemantics", - "namespace": "*" - }, - { - "id": "PaginatedTrait", - "namespace": "*" - }, - { - "id": "HttpHeaderTrait", - "namespace": "*" - }, - { - "id": "HttpUriConflict", - "namespace": "*" - }, - { - "id": "Service", - "namespace": "*" - } - ] - }, "shapes": { "com.amazonaws.cloudfront#AccessControlAllowHeadersList": { "type": "list", @@ -3914,6 +3886,54 @@ ], "traits": { "smithy.api#documentation": "

Creates a CloudFront function.

\n

To create a function, you provide the function code and some configuration information\n\t\t\tabout the function. The response contains an Amazon Resource Name (ARN) that uniquely\n\t\t\tidentifies the function.

\n

When you create a function, it's in the DEVELOPMENT stage. In this stage,\n\t\t\tyou can test the function with TestFunction, and update it with\n\t\t\t\tUpdateFunction.

\n

When you're ready to use your function with a CloudFront distribution, use\n\t\t\t\tPublishFunction to copy the function from the DEVELOPMENT\n\t\t\tstage to LIVE. When it's live, you can attach the function to a\n\t\t\tdistribution's cache behavior, using the function's ARN.

", + "smithy.api#examples": [ + { + "title": "To create a function", + "documentation": "Use the following command to create a function.", + "input": { + "Name": "my-function-name", + "FunctionConfig": { + "Comment": "my-function-comment", + "Runtime": "cloudfront-js-2.0", + "KeyValueStoreAssociations": { + "Quantity": 1, + "Items": [ + { + "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + ] + } + }, + "FunctionCode": "function-code.js" + }, + "output": { + "FunctionSummary": { + "Name": "my-function-name", + "Status": "UNPUBLISHED", + "FunctionConfig": { + "Comment": "my-function-comment", + "Runtime": "cloudfront-js-2.0", + "KeyValueStoreAssociations": { + "Quantity": 1, + "Items": [ + { + "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + ] + } + }, + "FunctionMetadata": { + "FunctionARN": "arn:aws:cloudfront::123456789012:function/my-function-name", + "Stage": "DEVELOPMENT", + "CreatedTime": "2023-11-07T19:53:50.334Z", + "LastModifiedTime": "2023-11-07T19:53:50.334Z" + } + }, + "Location": "https://cloudfront.amazonaws.com/2020-05-31/function/arn:aws:cloudfront::123456789012:function/my-function-name", + "ETag": "ETVPDKIKX0DER" + } + } + ], "smithy.api#http": { "method": "POST", "uri": "/2020-05-31/function", @@ -4175,6 +4195,32 @@ ], "traits": { "smithy.api#documentation": "

Specifies the key value store resource to add to your account. In your account, the key value store names must be unique. You can also import key value store data in JSON format from an S3 bucket by providing a valid ImportSource that you own.

", + "smithy.api#examples": [ + { + "title": "To create a KeyValueStore", + "documentation": "Use the following command to create a KeyValueStore.", + "input": { + "Name": "my-keyvaluestore-name", + "Comment": "my-key-valuestore-comment", + "ImportSource": { + "SourceType": "S3", + "SourceARN": "arn:aws:s3:::my-bucket/validJSON.json" + } + }, + "output": { + "KeyValueStore": { + "Name": "my-keyvaluestore-name", + "Id": "54947df8-0e9e-4471-a2f9-9af509fb5889", + "Comment": "my-key-valuestore-comment", + "ARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889", + "Status": "PROVISIONING", + "LastModifiedTime": "2023-11-07T18:15:52.042Z" + }, + "ETag": "ETVPDKIKX0DER", + "Location": "https://cloudfront.amazonaws.com/2020-05-31/key-value-store/arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + } + ], "smithy.api#http": { "method": "POST", "uri": "/2020-05-31/key-value-store", @@ -5673,6 +5719,16 @@ ], "traits": { "smithy.api#documentation": "

Specifies the key value store to delete.

", + "smithy.api#examples": [ + { + "title": "To delete a KeyValueStore", + "documentation": "Use the following command to delete a KeyValueStore.", + "input": { + "Name": "my-keyvaluestore-name", + "IfMatch": "ETVPDKIKX0DER" + } + } + ], "smithy.api#http": { "method": "DELETE", "uri": "/2020-05-31/key-value-store/{Name}", @@ -6196,6 +6252,26 @@ ], "traits": { "smithy.api#documentation": "

Specifies the key value store and its configuration.

", + "smithy.api#examples": [ + { + "title": "To describe a KeyValueStore", + "documentation": "Use the following command to describe a KeyValueStore.", + "input": { + "Name": "my-keyvaluestore-name" + }, + "output": { + "KeyValueStore": { + "Name": "my-keyvaluestore-name", + "Id": "54947df8-0e9e-4471-a2f9-9af509fb5889", + "Comment": "my-key-valuestore-comment", + "ARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889", + "Status": "READY", + "LastModifiedTime": "2023-11-07T18:20:33.056Z" + }, + "ETag": "ETVPDKIKX0DER" + } + } + ], "smithy.api#http": { "method": "GET", "uri": "/2020-05-31/key-value-store/{Name}", @@ -8169,7 +8245,8 @@ } } ], - "minDelay": 60 + "minDelay": 60, + "maxDelay": 2100 } } } @@ -8649,7 +8726,8 @@ } } ], - "minDelay": 20 + "minDelay": 20, + "maxDelay": 600 } } } @@ -9481,7 +9559,8 @@ } } ], - "minDelay": 60 + "minDelay": 60, + "maxDelay": 1500 } } } @@ -11833,6 +11912,32 @@ ], "traits": { "smithy.api#documentation": "

Specifies the key value stores to list.

", + "smithy.api#examples": [ + { + "title": "To get a list of KeyValueStores", + "documentation": "The following command retrieves a list of KeyValueStores with READY status.", + "input": { + "Status": "READY" + }, + "output": { + "KeyValueStoreList": { + "NextMarker": "", + "MaxItems": 100, + "Quantity": 1, + "Items": [ + { + "Name": "my-keyvaluestore-name", + "Id": "54947df8-0e9e-4471-a2f9-9af509fb5889", + "Comment": "", + "ARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889", + "Status": "READY", + "LastModifiedTime": "2023-11-07T18:45:21.069Z" + } + ] + } + } + } + ], "smithy.api#http": { "method": "GET", "uri": "/2020-05-31/key-value-store", @@ -11904,7 +12009,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the list of CloudFront origin access controls in this Amazon Web Services account.

\n

You can optionally specify the maximum number of items to receive in the response. If\n\t\t\tthe total number of items in the list exceeds the maximum that you specify, or the\n\t\t\tdefault maximum, the response is paginated. To get the next page of items, send another\n\t\t\trequest that specifies the NextMarker value from the current response as\n\t\t\tthe Marker value in the next request.

", + "smithy.api#documentation": "

Gets the list of CloudFront origin access controls (OACs) in this Amazon Web Services account.

\n

You can optionally specify the maximum number of items to receive in the response. If\n\t\t\tthe total number of items in the list exceeds the maximum that you specify, or the\n\t\t\tdefault maximum, the response is paginated. To get the next page of items, send another\n\t\t\trequest that specifies the NextMarker value from the current response as\n\t\t\tthe Marker value in the next request.

\n \n

If you're not using origin access controls for your Amazon Web Services account, the\n\t\t\t\t\tListOriginAccessControls operation doesn't return the\n\t\t\t\t\tItems element in the response.

\n
", "smithy.api#http": { "method": "GET", "uri": "/2020-05-31/origin-access-control", @@ -12040,6 +12145,12 @@ "method": "GET", "uri": "/2020-05-31/public-key", "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "PublicKeyList.NextMarker", + "items": "PublicKeyList.Items", + "pageSize": "MaxItems" } } }, @@ -17377,7 +17488,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the configuration for a CloudFront distribution.

\n

The update process includes getting the current distribution configuration, updating\n\t\t\tit to make your changes, and then submitting an UpdateDistribution request\n\t\t\tto make the updates.

\n

\n To update a web distribution using the CloudFront\n\t\t\tAPI\n

\n
    \n
  1. \n

    Use GetDistributionConfig to get the current configuration,\n\t\t\t\t\tincluding the version identifier (ETag).

    \n
  2. \n
  3. \n

    Update the distribution configuration that was returned in the response. Note\n\t\t\t\t\tthe following important requirements and restrictions:

    \n
      \n
    • \n

      You must rename the ETag field to IfMatch,\n\t\t\t\t\t\t\tleaving the value unchanged. (Set the value of IfMatch to\n\t\t\t\t\t\t\tthe value of ETag, then remove the ETag\n\t\t\t\t\t\t\tfield.)

      \n
    • \n
    • \n

      You can't change the value of CallerReference.

      \n
    • \n
    \n
  4. \n
  5. \n

    Submit an UpdateDistribution request, providing the distribution\n\t\t\t\t\tconfiguration. The new configuration replaces the existing configuration. The\n\t\t\t\t\tvalues that you specify in an UpdateDistribution request are not\n\t\t\t\t\tmerged into your existing configuration. Make sure to include all fields: the\n\t\t\t\t\tones that you modified and also the ones that you didn't.

    \n
  6. \n
", + "smithy.api#documentation": "

Updates the configuration for a CloudFront distribution.

\n

The update process includes getting the current distribution configuration, updating\n\t\t\tit to make your changes, and then submitting an UpdateDistribution request\n\t\t\tto make the updates.

\n

\n To update a web distribution using the CloudFront\n\t\t\tAPI\n

\n
    \n
  1. \n

    Use GetDistributionConfig to get the current configuration,\n\t\t\t\t\tincluding the version identifier (ETag).

    \n
  2. \n
  3. \n

    Update the distribution configuration that was returned in the response. Note\n\t\t\t\t\tthe following important requirements and restrictions:

    \n
      \n
    • \n

      You must copy the ETag field value from the response. (You'll use it for the IfMatch parameter in your request.) Then, remove the ETag\n\t\t\t\t\t\t\tfield from the distribution configuration.

      \n
    • \n
    • \n

      You can't change the value of CallerReference.

      \n
    • \n
    \n
  4. \n
  5. \n

    Submit an UpdateDistribution request, providing the updated distribution\n\t\t\t\t\tconfiguration. The new configuration replaces the existing configuration. The\n\t\t\t\t\tvalues that you specify in an UpdateDistribution request are not\n\t\t\t\t\tmerged into your existing configuration. Make sure to include all fields: the\n\t\t\t\t\tones that you modified and also the ones that you didn't.

    \n
  6. \n
", "smithy.api#http": { "method": "PUT", "uri": "/2020-05-31/distribution/{Id}/config", @@ -17664,7 +17775,7 @@ "IfMatch": { "target": "com.amazonaws.cloudfront#string", "traits": { - "smithy.api#documentation": "

The current versions (ETag values) of both primary and staging distributions.\n\t\t\tProvide these in the following format:

\n

\n , \n

", + "smithy.api#documentation": "

The current versions (ETag values) of both primary and staging distributions.\n\t\t\tProvide these in the following format:

\n

\n <primary ETag>, <staging ETag>\n

", "smithy.api#httpHeader": "If-Match" } } @@ -17939,6 +18050,54 @@ ], "traits": { "smithy.api#documentation": "

Updates a CloudFront function.

\n

You can update a function's code or the comment that describes the function. You\n\t\t\tcannot update a function's name.

\n

To update a function, you provide the function's name and version (ETag\n\t\t\tvalue) along with the updated function code. To get the name and version, you can use\n\t\t\t\tListFunctions and DescribeFunction.

", + "smithy.api#examples": [ + { + "title": "To update a function", + "documentation": "Use the following command to update a function.", + "input": { + "Name": "my-function-name", + "FunctionConfig": { + "Comment": "my-changed-comment", + "Runtime": "cloudfront-js-2.0", + "KeyValueStoreAssociations": { + "Quantity": 1, + "Items": [ + { + "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + ] + } + }, + "FunctionCode": "function-code-changed.js", + "IfMatch": "ETVPDKIKX0DER" + }, + "output": { + "FunctionSummary": { + "Name": "my-function-name", + "Status": "UNPUBLISHED", + "FunctionConfig": { + "Comment": "my-changed-comment", + "Runtime": "cloudfront-js-2.0", + "KeyValueStoreAssociations": { + "Quantity": 1, + "Items": [ + { + "KeyValueStoreARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889" + } + ] + } + }, + "FunctionMetadata": { + "FunctionARN": "arn:aws:cloudfront::123456789012:function/my-function-name", + "Stage": "DEVELOPMENT", + "CreatedTime": "2023-11-07T19:53:50.334Z", + "LastModifiedTime": "2023-11-07T20:01:37.174Z" + } + }, + "ETag": "E3UN6WX5RRO2AG" + } + } + ], "smithy.api#http": { "method": "PUT", "uri": "/2020-05-31/function/{Name}", @@ -18127,6 +18286,28 @@ ], "traits": { "smithy.api#documentation": "

Specifies the key value store to update.

", + "smithy.api#examples": [ + { + "title": "To update a KeyValueStore", + "documentation": "Use the following command to update a KeyValueStore.", + "input": { + "Name": "my-keyvaluestore-name", + "Comment": "my-changed-comment", + "IfMatch": "ETVPDKIKX0DER" + }, + "output": { + "KeyValueStore": { + "Name": "my-keyvaluestore-name", + "Id": "54947df8-0e9e-4471-a2f9-9af509fb5889", + "Comment": "my-changed-comment", + "ARN": "arn:aws:cloudfront::123456789012:key-value-store/54947df8-0e9e-4471-a2f9-9af509fb5889", + "Status": "READY", + "LastModifiedTime": "2023-11-07T18:45:21.069Z" + }, + "ETag": "E3UN6WX5RRO2AG" + } + } + ], "smithy.api#http": { "method": "PUT", "uri": "/2020-05-31/key-value-store/{Name}", @@ -18911,4 +19092,4 @@ "type": "timestamp" } } -} +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/inspector2.json b/codegen/sdk-codegen/aws-models/inspector2.json index 97f840031f0..41a02b0b1d7 100644 --- a/codegen/sdk-codegen/aws-models/inspector2.json +++ b/codegen/sdk-codegen/aws-models/inspector2.json @@ -12,7 +12,7 @@ } }, "traits": { - "smithy.api#documentation": "

You do not have sufficient access to perform this action.

\n

\n For Enable, you receive this error if you attempt to use a feature in an unsupported Amazon Web Services Region.\n

", + "smithy.api#documentation": "

You do not have sufficient access to perform this action.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -3562,7 +3562,7 @@ "scanMode": { "target": "com.amazonaws.inspector2#CoverageStringFilterList", "traits": { - "smithy.api#documentation": "

The filter to search for Amazon EC2 instance coverage by scan mode. Valid values are EC2_SSM_AGENT_BASED and EC2_HYBRID.

" + "smithy.api#documentation": "

The filter to search for Amazon EC2 instance coverage by scan mode. Valid values are EC2_SSM_AGENT_BASED and EC2_AGENTLESS.

" } }, "imagePulledAt": { @@ -4130,6 +4130,7 @@ "s3Destination": { "target": "com.amazonaws.inspector2#Destination", "traits": { + "smithy.api#documentation": "

Contains details of the Amazon S3 bucket and KMS key used to export findings.

", "smithy.api#required": {} } } @@ -6566,7 +6567,10 @@ } }, "cisaData": { - "target": "com.amazonaws.inspector2#CisaData" + "target": "com.amazonaws.inspector2#CisaData", + "traits": { + "smithy.api#documentation": "

The Cybersecurity and Infrastructure Security Agency (CISA) details for a specific vulnerability.

" + } }, "riskScore": { "target": "com.amazonaws.inspector2#RiskScore", @@ -6593,7 +6597,10 @@ } }, "exploitObserved": { - "target": "com.amazonaws.inspector2#ExploitObserved" + "target": "com.amazonaws.inspector2#ExploitObserved", + "traits": { + "smithy.api#documentation": "

Contains information on when this exploit was observed.

" + } }, "referenceUrls": { "target": "com.amazonaws.inspector2#VulnerabilityReferenceUrls", @@ -7731,7 +7738,10 @@ } }, "s3Destination": { - "target": "com.amazonaws.inspector2#Destination" + "target": "com.amazonaws.inspector2#Destination", + "traits": { + "smithy.api#documentation": "

Contains details of the Amazon S3 bucket and KMS key used to export findings

" + } }, "filterCriteria": { "target": "com.amazonaws.inspector2#ResourceFilterCriteria", @@ -9104,7 +9114,10 @@ } }, "severityCounts": { - "target": "com.amazonaws.inspector2#SeverityCounts" + "target": "com.amazonaws.inspector2#SeverityCounts", + "traits": { + "smithy.api#documentation": "

An object that contains the counts of aggregated finding per severity.

" + } }, "lastModifiedAt": { "target": "com.amazonaws.inspector2#DateTimeTimestamp", @@ -9238,7 +9251,10 @@ } }, "severityCounts": { - "target": "com.amazonaws.inspector2#SeverityCounts" + "target": "com.amazonaws.inspector2#SeverityCounts", + "traits": { + "smithy.api#documentation": "

An object that contains the counts of aggregated finding per severity.

" + } } }, "traits": { @@ -10116,7 +10132,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists coverage details for you environment.

", + "smithy.api#documentation": "

Lists coverage details for your environment.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -11359,7 +11375,16 @@ } }, "sourceLambdaLayerArn": { - "target": "com.amazonaws.inspector2#StringFilter" + "target": "com.amazonaws.inspector2#StringFilter", + "traits": { + "smithy.api#documentation": "

An object that describes the details of a string filter.

" + } + }, + "filePath": { + "target": "com.amazonaws.inspector2#StringFilter", + "traits": { + "smithy.api#documentation": "

An object that contains details on the package file path to filter on.

" + } } }, "traits": { @@ -11449,6 +11474,10 @@ { "value": "GEMSPEC", "name": "GEMSPEC" + }, + { + "value": "DOTNET_CORE", + "name": "DOTNET_CORE" } ] } @@ -12380,10 +12409,16 @@ } }, "lambda": { - "target": "com.amazonaws.inspector2#State" + "target": "com.amazonaws.inspector2#State", + "traits": { + "smithy.api#documentation": "

An object that described the state of Amazon Inspector scans for an account.

" + } }, "lambdaCode": { - "target": "com.amazonaws.inspector2#State" + "target": "com.amazonaws.inspector2#State", + "traits": { + "smithy.api#documentation": "

An object that described the state of Amazon Inspector scans for an account.

" + } } }, "traits": { @@ -12592,6 +12627,30 @@ { "value": "PYTHON_3_10", "name": "PYTHON_3_10" + }, + { + "value": "PYTHON_3_11", + "name": "PYTHON_3_11" + }, + { + "value": "DOTNETCORE_3_1", + "name": "DOTNETCORE_3_1" + }, + { + "value": "DOTNET_6", + "name": "DOTNET_6" + }, + { + "value": "DOTNET_7", + "name": "DOTNET_7" + }, + { + "value": "RUBY_2_7", + "name": "RUBY_2_7" + }, + { + "value": "RUBY_3_2", + "name": "RUBY_3_2" } ] } @@ -13630,7 +13689,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Stops a CIS session. \n This API is used by the Amazon Inspector SSM plugin to communicate with the Amazon Inspector service. \n The Amazon Inspector SSM plugin calls this API to start a CIS scan session for the scan ID supplied by the service.\n

", + "smithy.api#documentation": "

\n Stops a CIS session. \n This API is used by the Amazon Inspector SSM plugin to communicate with the Amazon Inspector service. \n The Amazon Inspector SSM plugin calls this API to stop a CIS scan session for the scan ID supplied by the service.\n

", "smithy.api#examples": [ { "title": "Sample StopCisSession Call", diff --git a/codegen/sdk-codegen/aws-models/lambda.json b/codegen/sdk-codegen/aws-models/lambda.json index 83fbfb99515..ec739162d52 100644 --- a/codegen/sdk-codegen/aws-models/lambda.json +++ b/codegen/sdk-codegen/aws-models/lambda.json @@ -11256,6 +11256,12 @@ "traits": { "smithy.api#enumValue": "java21" } + }, + "python313": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "python3.13" + } } } }, diff --git a/codegen/sdk-codegen/aws-models/opensearch.json b/codegen/sdk-codegen/aws-models/opensearch.json index 68a2361902f..d9e59bd5367 100644 --- a/codegen/sdk-codegen/aws-models/opensearch.json +++ b/codegen/sdk-codegen/aws-models/opensearch.json @@ -646,6 +646,9 @@ { "target": "com.amazonaws.opensearch#AssociatePackage" }, + { + "target": "com.amazonaws.opensearch#AssociatePackages" + }, { "target": "com.amazonaws.opensearch#AuthorizeVpcEndpointAccess" }, @@ -739,6 +742,9 @@ { "target": "com.amazonaws.opensearch#DissociatePackage" }, + { + "target": "com.amazonaws.opensearch#DissociatePackages" + }, { "target": "com.amazonaws.opensearch#GetApplication" }, @@ -829,6 +835,9 @@ { "target": "com.amazonaws.opensearch#UpdatePackage" }, + { + "target": "com.amazonaws.opensearch#UpdatePackageScope" + }, { "target": "com.amazonaws.opensearch#UpdateScheduledAction" }, @@ -2142,6 +2151,18 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "PrerequisitePackageIDList": { + "target": "com.amazonaws.opensearch#PackageIDList", + "traits": { + "smithy.api#documentation": "

A list of package IDs that must be associated with the domain before the package specified in the request can be associated.

" + } + }, + "AssociationConfiguration": { + "target": "com.amazonaws.opensearch#PackageAssociationConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for associating a package with an Amazon OpenSearch Service domain.

" + } } }, "traits": { @@ -2164,6 +2185,78 @@ "smithy.api#output": {} } }, + "com.amazonaws.opensearch#AssociatePackages": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearch#AssociatePackagesRequest" + }, + "output": { + "target": "com.amazonaws.opensearch#AssociatePackagesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearch#BaseException" + }, + { + "target": "com.amazonaws.opensearch#ConflictException" + }, + { + "target": "com.amazonaws.opensearch#DisabledOperationException" + }, + { + "target": "com.amazonaws.opensearch#InternalException" + }, + { + "target": "com.amazonaws.opensearch#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearch#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Operation in the Amazon OpenSearch Service API for associating multiple packages with a domain simultaneously.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2021-01-01/packages/associateMultiple", + "code": 200 + } + } + }, + "com.amazonaws.opensearch#AssociatePackagesRequest": { + "type": "structure", + "members": { + "PackageList": { + "target": "com.amazonaws.opensearch#PackageDetailsForAssociationList", + "traits": { + "smithy.api#documentation": "

A list of packages and their prerequisites to be associated with a domain.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.opensearch#DomainName", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.opensearch#AssociatePackagesResponse": { + "type": "structure", + "members": { + "DomainPackageDetailsList": { + "target": "com.amazonaws.opensearch#DomainPackageDetailsList", + "traits": { + "smithy.api#documentation": "

List of information about packages that are associated with a domain.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.opensearch#AuthorizeVpcEndpointAccess": { "type": "operation", "input": { @@ -3918,6 +4011,30 @@ "smithy.api#documentation": "

The Amazon S3 location from which to import the package.

", "smithy.api#required": {} } + }, + "PackageConfiguration": { + "target": "com.amazonaws.opensearch#PackageConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration parameters for the package being created.

" + } + }, + "EngineVersion": { + "target": "com.amazonaws.opensearch#EngineVersion", + "traits": { + "smithy.api#documentation": "

The version of the Amazon OpenSearch Service engine for which is compatible with the package. This can only be specified for package type ZIP-PLUGIN\n

" + } + }, + "PackageVendingOptions": { + "target": "com.amazonaws.opensearch#PackageVendingOptions", + "traits": { + "smithy.api#documentation": "

The vending options for the package being created. They determine if the package can be vended to other users.

" + } + }, + "PackageEncryptionOptions": { + "target": "com.amazonaws.opensearch#PackageEncryptionOptions", + "traits": { + "smithy.api#documentation": "

The encryption parameters for the package being created.

" + } } }, "traits": { @@ -5644,6 +5761,12 @@ "traits": { "smithy.api#enumValue": "EngineVersion" } + }, + "PackageOwner": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PackageOwner" + } } } }, @@ -6056,6 +6179,78 @@ "smithy.api#output": {} } }, + "com.amazonaws.opensearch#DissociatePackages": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearch#DissociatePackagesRequest" + }, + "output": { + "target": "com.amazonaws.opensearch#DissociatePackagesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearch#BaseException" + }, + { + "target": "com.amazonaws.opensearch#ConflictException" + }, + { + "target": "com.amazonaws.opensearch#DisabledOperationException" + }, + { + "target": "com.amazonaws.opensearch#InternalException" + }, + { + "target": "com.amazonaws.opensearch#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearch#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Dissociates multiple packages from a domain simulatneously.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2021-01-01/packages/dissociateMultiple", + "code": 200 + } + } + }, + "com.amazonaws.opensearch#DissociatePackagesRequest": { + "type": "structure", + "members": { + "PackageList": { + "target": "com.amazonaws.opensearch#PackageIDList", + "traits": { + "smithy.api#documentation": "

A list of package IDs to be dissociated from a domain.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.opensearch#DomainName", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.opensearch#DissociatePackagesResponse": { + "type": "structure", + "members": { + "DomainPackageDetailsList": { + "target": "com.amazonaws.opensearch#DomainPackageDetailsList", + "traits": { + "smithy.api#documentation": "

A list of package details for the packages that were dissociated from the domain.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.opensearch#DomainArn": { "type": "string", "traits": { @@ -6544,6 +6739,12 @@ "smithy.api#documentation": "

The current version of the package.

" } }, + "PrerequisitePackageIDList": { + "target": "com.amazonaws.opensearch#PackageIDList", + "traits": { + "smithy.api#documentation": "

A list of package IDs that must be associated with the domain before or with the package can be associated.

" + } + }, "ReferencePath": { "target": "com.amazonaws.opensearch#ReferencePath", "traits": { @@ -6555,6 +6756,12 @@ "traits": { "smithy.api#documentation": "

Additional information if the package is in an error state. Null otherwise.

" } + }, + "AssociationConfiguration": { + "target": "com.amazonaws.opensearch#PackageAssociationConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for associating a package with an Amazon OpenSearch Service domain.

" + } } }, "traits": { @@ -8514,6 +8721,27 @@ "smithy.api#documentation": "

Describes the JWT options configured for the domain.

" } }, + "com.amazonaws.opensearch#KeyStoreAccessOption": { + "type": "structure", + "members": { + "KeyAccessRoleArn": { + "target": "com.amazonaws.opensearch#RoleArn", + "traits": { + "smithy.api#documentation": "

Role ARN to access the KeyStore Key

" + } + }, + "KeyStoreAccessEnabled": { + "target": "com.amazonaws.opensearch#Boolean", + "traits": { + "smithy.api#documentation": "

This indicates whether Key Store access is enabled

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration parameters to enable access to the key store required by the package.

" + } + }, "com.amazonaws.opensearch#KmsKeyId": { "type": "string", "traits": { @@ -8527,6 +8755,16 @@ "com.amazonaws.opensearch#LastUpdated": { "type": "timestamp" }, + "com.amazonaws.opensearch#LicenseFilepath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^(?!.*\\/\\.{2,})(?!.*\\.\\.)[a-zA-Z0-9_.-]+(?:\\/[a-zA-Z0-9_.-]+)*$" + } + }, "com.amazonaws.opensearch#LimitExceededException": { "type": "structure", "members": { @@ -11158,6 +11396,54 @@ "smithy.api#pattern": "^[0-9]+$" } }, + "com.amazonaws.opensearch#PackageAssociationConfiguration": { + "type": "structure", + "members": { + "KeyStoreAccessOption": { + "target": "com.amazonaws.opensearch#KeyStoreAccessOption", + "traits": { + "smithy.api#documentation": "

The configuration parameters to enable accessing the key store required by the package.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration for associating a package with a domain.

" + } + }, + "com.amazonaws.opensearch#PackageConfiguration": { + "type": "structure", + "members": { + "LicenseRequirement": { + "target": "com.amazonaws.opensearch#RequirementLevel", + "traits": { + "smithy.api#documentation": "

The license requirements for the package.

", + "smithy.api#required": {} + } + }, + "LicenseFilepath": { + "target": "com.amazonaws.opensearch#LicenseFilepath", + "traits": { + "smithy.api#documentation": "

The relative file path for the license associated with the package.

" + } + }, + "ConfigurationRequirement": { + "target": "com.amazonaws.opensearch#RequirementLevel", + "traits": { + "smithy.api#documentation": "

The configuration requirements for the package.

", + "smithy.api#required": {} + } + }, + "RequiresRestartForConfigurationUpdate": { + "target": "com.amazonaws.opensearch#Boolean", + "traits": { + "smithy.api#documentation": "

This indicates whether a B/G deployment is required for updating the configuration that the plugin is prerequisite for.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The configuration parameters for a package.

" + } + }, "com.amazonaws.opensearch#PackageDescription": { "type": "string", "traits": { @@ -11235,22 +11521,112 @@ "traits": { "smithy.api#documentation": "

If the package is a ZIP-PLUGIN package, additional information about plugin properties.

" } + }, + "AvailablePackageConfiguration": { + "target": "com.amazonaws.opensearch#PackageConfiguration", + "traits": { + "smithy.api#documentation": "

This represents the available configuration parameters for the package.

" + } + }, + "AllowListedUserList": { + "target": "com.amazonaws.opensearch#PackageUserList", + "traits": { + "smithy.api#documentation": "

A list of users who are allowed to view and associate the package. This field is only visible to the owner of a package.

" + } + }, + "PackageOwner": { + "target": "com.amazonaws.opensearch#PackageOwner", + "traits": { + "smithy.api#documentation": "

The owner of the package who is allowed to create/update a package and add users to the package scope.

" + } + }, + "PackageVendingOptions": { + "target": "com.amazonaws.opensearch#PackageVendingOptions", + "traits": { + "smithy.api#documentation": "

Package Vending Options for a package.

" + } + }, + "PackageEncryptionOptions": { + "target": "com.amazonaws.opensearch#PackageEncryptionOptions", + "traits": { + "smithy.api#documentation": "

Package Encryption Options for a package.

" + } } }, "traits": { "smithy.api#documentation": "

Basic information about a package.

" } }, + "com.amazonaws.opensearch#PackageDetailsForAssociation": { + "type": "structure", + "members": { + "PackageID": { + "target": "com.amazonaws.opensearch#PackageID", + "traits": { + "smithy.api#documentation": "

Internal ID of the package that you want to associate with a domain.

", + "smithy.api#required": {} + } + }, + "PrerequisitePackageIDList": { + "target": "com.amazonaws.opensearch#PackageIDList", + "traits": { + "smithy.api#documentation": "

List of package IDs that must be associated with the domain with or before the package can be associated.

" + } + }, + "AssociationConfiguration": { + "target": "com.amazonaws.opensearch#PackageAssociationConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration parameters for associating the package with a domain.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details of a package that is associated with a domain.

" + } + }, + "com.amazonaws.opensearch#PackageDetailsForAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearch#PackageDetailsForAssociation" + } + }, "com.amazonaws.opensearch#PackageDetailsList": { "type": "list", "member": { "target": "com.amazonaws.opensearch#PackageDetails" } }, + "com.amazonaws.opensearch#PackageEncryptionOptions": { + "type": "structure", + "members": { + "KmsKeyIdentifier": { + "target": "com.amazonaws.opensearch#KmsKeyId", + "traits": { + "smithy.api#documentation": "

KMS key ID for encrypting the package.

" + } + }, + "EncryptionEnabled": { + "target": "com.amazonaws.opensearch#Boolean", + "traits": { + "smithy.api#documentation": "

This indicates whether encryption is enabled for the package.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Encryption options for a package.

" + } + }, "com.amazonaws.opensearch#PackageID": { "type": "string", "traits": { - "smithy.api#pattern": "^([FG][0-9]+)$" + "smithy.api#pattern": "^([FG][0-9]+)$|^(pkg-[a-f0-9]+)$" + } + }, + "com.amazonaws.opensearch#PackageIDList": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearch#PackageID" } }, "com.amazonaws.opensearch#PackageName": { @@ -11263,6 +11639,38 @@ "smithy.api#pattern": "^[a-z][a-z0-9\\-]+$" } }, + "com.amazonaws.opensearch#PackageOwner": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + } + } + }, + "com.amazonaws.opensearch#PackageScopeOperationEnum": { + "type": "enum", + "members": { + "ADD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ADD" + } + }, + "OVERRIDE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OVERRIDE" + } + }, + "REMOVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REMOVE" + } + } + } + }, "com.amazonaws.opensearch#PackageSource": { "type": "structure", "members": { @@ -11350,9 +11758,52 @@ "traits": { "smithy.api#enumValue": "ZIP-PLUGIN" } + }, + "PACKAGE_LICENSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PACKAGE-LICENSE" + } + }, + "PACKAGE_CONFIG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PACKAGE-CONFIG" + } } } }, + "com.amazonaws.opensearch#PackageUser": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 6, + "max": 12 + }, + "smithy.api#pattern": "^[0-9]{12}$|^GLOBAL$" + } + }, + "com.amazonaws.opensearch#PackageUserList": { + "type": "list", + "member": { + "target": "com.amazonaws.opensearch#PackageUser" + } + }, + "com.amazonaws.opensearch#PackageVendingOptions": { + "type": "structure", + "members": { + "VendingEnabled": { + "target": "com.amazonaws.opensearch#Boolean", + "traits": { + "smithy.api#documentation": "

This indicates whether vending is enabled for the package to determine if package can be used by other users.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The vending options for a package to determine if the package can be used by other users.\n

" + } + }, "com.amazonaws.opensearch#PackageVersion": { "type": "string" }, @@ -11382,6 +11833,12 @@ "traits": { "smithy.api#documentation": "

Additional information about plugin properties if the package is a ZIP-PLUGIN package.

" } + }, + "PackageConfiguration": { + "target": "com.amazonaws.opensearch#PackageConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration details for a specific version of a package.

" + } } }, "traits": { @@ -11771,6 +12228,29 @@ "smithy.api#pattern": "^([\\s\\S]*)$" } }, + "com.amazonaws.opensearch#RequirementLevel": { + "type": "enum", + "members": { + "REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REQUIRED" + } + }, + "OPTIONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OPTIONAL" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, "com.amazonaws.opensearch#ReservationToken": { "type": "string", "traits": { @@ -13545,6 +14025,18 @@ "traits": { "smithy.api#documentation": "

Commit message for the updated file, which is shown as part of\n GetPackageVersionHistoryResponse.

" } + }, + "PackageConfiguration": { + "target": "com.amazonaws.opensearch#PackageConfiguration", + "traits": { + "smithy.api#documentation": "

The updated configuration details for a package.

" + } + }, + "PackageEncryptionOptions": { + "target": "com.amazonaws.opensearch#PackageEncryptionOptions", + "traits": { + "smithy.api#documentation": "

Encryption options for a package.

" + } } }, "traits": { @@ -13567,6 +14059,95 @@ "smithy.api#output": {} } }, + "com.amazonaws.opensearch#UpdatePackageScope": { + "type": "operation", + "input": { + "target": "com.amazonaws.opensearch#UpdatePackageScopeRequest" + }, + "output": { + "target": "com.amazonaws.opensearch#UpdatePackageScopeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.opensearch#BaseException" + }, + { + "target": "com.amazonaws.opensearch#DisabledOperationException" + }, + { + "target": "com.amazonaws.opensearch#InternalException" + }, + { + "target": "com.amazonaws.opensearch#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.opensearch#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the scope of a package. Scope of the package defines users who can view and associate a package.

", + "smithy.api#http": { + "method": "POST", + "uri": "/2021-01-01/packages/updateScope", + "code": 200 + } + } + }, + "com.amazonaws.opensearch#UpdatePackageScopeRequest": { + "type": "structure", + "members": { + "PackageID": { + "target": "com.amazonaws.opensearch#PackageID", + "traits": { + "smithy.api#documentation": "

ID of the package whose scope is being updated.

", + "smithy.api#required": {} + } + }, + "Operation": { + "target": "com.amazonaws.opensearch#PackageScopeOperationEnum", + "traits": { + "smithy.api#documentation": "

The operation to perform on the package scope (e.g., add/remove/override users).

", + "smithy.api#required": {} + } + }, + "PackageUserList": { + "target": "com.amazonaws.opensearch#PackageUserList", + "traits": { + "smithy.api#documentation": "

List of users to be added or removed from the package scope.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.opensearch#UpdatePackageScopeResponse": { + "type": "structure", + "members": { + "PackageID": { + "target": "com.amazonaws.opensearch#PackageID", + "traits": { + "smithy.api#documentation": "

ID of the package whose scope was updated.

" + } + }, + "Operation": { + "target": "com.amazonaws.opensearch#PackageScopeOperationEnum", + "traits": { + "smithy.api#documentation": "

The operation that was performed on the package scope.

" + } + }, + "PackageUserList": { + "target": "com.amazonaws.opensearch#PackageUserList", + "traits": { + "smithy.api#documentation": "

List of users who have access to the package after the scope update.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.opensearch#UpdateScheduledAction": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/outposts.json b/codegen/sdk-codegen/aws-models/outposts.json index 50c92efa94f..969a1dcc393 100644 --- a/codegen/sdk-codegen/aws-models/outposts.json +++ b/codegen/sdk-codegen/aws-models/outposts.json @@ -29,6 +29,53 @@ ] }, "shapes": { + "com.amazonaws.outposts#AWSServiceName": { + "type": "enum", + "members": { + "AWS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS" + } + }, + "EC2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC2" + } + }, + "ELASTICACHE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ELASTICACHE" + } + }, + "ELB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ELB" + } + }, + "RDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RDS" + } + }, + "ROUTE53": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROUTE53" + } + } + } + }, + "com.amazonaws.outposts#AWSServiceNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#AWSServiceName" + } + }, "com.amazonaws.outposts#AccessDeniedException": { "type": "structure", "members": { @@ -53,6 +100,12 @@ "smithy.api#pattern": "^\\d{12}$" } }, + "com.amazonaws.outposts#AccountIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#AccountId" + } + }, "com.amazonaws.outposts#Address": { "type": "structure", "members": { @@ -199,6 +252,12 @@ "smithy.api#pattern": "^(\\w+)$" } }, + "com.amazonaws.outposts#AssetIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#AssetId" + } + }, "com.amazonaws.outposts#AssetInfo": { "type": "structure", "members": { @@ -237,6 +296,76 @@ "smithy.api#documentation": "

Information about hardware assets.

" } }, + "com.amazonaws.outposts#AssetInstance": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.outposts#InstanceId", + "traits": { + "smithy.api#documentation": "

The ID of the instance.

" + } + }, + "InstanceType": { + "target": "com.amazonaws.outposts#OutpostInstanceType", + "traits": { + "smithy.api#documentation": "

The type of instance.

" + } + }, + "AssetId": { + "target": "com.amazonaws.outposts#AssetId", + "traits": { + "smithy.api#documentation": "

The ID of the asset.

" + } + }, + "AccountId": { + "target": "com.amazonaws.outposts#AccountId" + }, + "AwsServiceName": { + "target": "com.amazonaws.outposts#AWSServiceName", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services service name of the instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Amazon EC2 instance.

" + } + }, + "com.amazonaws.outposts#AssetInstanceCapacityList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#AssetInstanceTypeCapacity" + } + }, + "com.amazonaws.outposts#AssetInstanceList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#AssetInstance" + } + }, + "com.amazonaws.outposts#AssetInstanceTypeCapacity": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.outposts#InstanceTypeName", + "traits": { + "smithy.api#documentation": "

The type of instance.

", + "smithy.api#required": {} + } + }, + "Count": { + "target": "com.amazonaws.outposts#InstanceTypeCount", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of each instance type.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The capacity for each instance type.

" + } + }, "com.amazonaws.outposts#AssetListDefinition": { "type": "list", "member": { @@ -337,6 +466,35 @@ } } }, + "com.amazonaws.outposts#BlockingInstance": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.outposts#InstanceId", + "traits": { + "smithy.api#documentation": "

The ID of the blocking instance.

" + } + }, + "AccountId": { + "target": "com.amazonaws.outposts#AccountId" + }, + "AwsServiceName": { + "target": "com.amazonaws.outposts#AWSServiceName", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services service name that owns the specified blocking instance.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A running Amazon EC2 instance that can be stopped to free up capacity needed to run the\n capacity task.

" + } + }, + "com.amazonaws.outposts#BlockingInstancesList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#BlockingInstance" + } + }, "com.amazonaws.outposts#CIDR": { "type": "string", "traits": { @@ -504,6 +662,30 @@ "traits": { "smithy.api#enumValue": "UNSUPPORTED_CAPACITY_CONFIGURATION" } + }, + "UNEXPECTED_ASSET_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNEXPECTED_ASSET_STATE" + } + }, + "BLOCKING_INSTANCES_NOT_EVACUATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BLOCKING_INSTANCES_NOT_EVACUATED" + } + }, + "INTERNAL_SERVER_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_SERVER_ERROR" + } + }, + "RESOURCE_NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOURCE_NOT_FOUND" + } } } }, @@ -550,6 +732,18 @@ "smithy.api#enumValue": "COMPLETED" } }, + "WAITING_FOR_EVACUATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WAITING_FOR_EVACUATION" + } + }, + "CANCELLATION_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CANCELLATION_IN_PROGRESS" + } + }, "CANCELLED": { "target": "smithy.api#Unit", "traits": { @@ -784,6 +978,18 @@ "traits": { "smithy.api#documentation": "

A list of the names of instance families that are currently associated with a given\n asset.

" } + }, + "InstanceTypeCapacities": { + "target": "com.amazonaws.outposts#AssetInstanceCapacityList", + "traits": { + "smithy.api#documentation": "

The instance type capacities configured for this asset. This can be changed through a\n capacity task.

" + } + }, + "MaxVcpus": { + "target": "com.amazonaws.outposts#VCPUCount", + "traits": { + "smithy.api#documentation": "

The maximum number of vCPUs possible for the specified asset.

" + } } }, "traits": { @@ -1470,6 +1676,12 @@ "smithy.api#documentation": "

List of instance pools requested in the capacity task.

" } }, + "InstancesToExclude": { + "target": "com.amazonaws.outposts#InstancesToExclude", + "traits": { + "smithy.api#documentation": "

Instances that the user specified they cannot stop in order to free up the capacity needed\n to run the capacity task.

" + } + }, "DryRun": { "target": "com.amazonaws.outposts#DryRun", "traits": { @@ -1506,6 +1718,12 @@ "traits": { "smithy.api#documentation": "

The date the capacity task was last modified.

" } + }, + "TaskActionOnBlockingInstances": { + "target": "com.amazonaws.outposts#TaskActionOnBlockingInstances", + "traits": { + "smithy.api#documentation": "

User-specified option in case an instance is blocking the capacity task from running.\n Shows one of the following options:

\n
    \n
  • \n

    \n WAIT_FOR_EVACUATION - Checks every 10 minutes over 48 hours to determine\n if instances have stopped and capacity is available to complete the task.

    \n
  • \n
  • \n

    \n FAIL_TASK - The capacity task fails.

    \n
  • \n
" + } } }, "traits": { @@ -1861,7 +2079,7 @@ } ], "traits": { - "smithy.api#documentation": "

Gets the instance types that an\n Outpost can support in InstanceTypeCapacity. This will generally include instance types that\n are not currently configured and therefore cannot be launched with the current Outpost\n capacity configuration.

", + "smithy.api#documentation": "

Gets the instance types that an Outpost can support in InstanceTypeCapacity.\n This will generally include instance types that are not currently configured and therefore\n cannot be launched with the current Outpost capacity configuration.

", "smithy.api#http": { "method": "GET", "uri": "/outposts/{OutpostIdentifier}/supportedInstanceTypes", @@ -1890,8 +2108,7 @@ "target": "com.amazonaws.outposts#OrderId", "traits": { "smithy.api#documentation": "

The ID for the Amazon Web Services Outposts order.

", - "smithy.api#httpQuery": "OrderId", - "smithy.api#required": {} + "smithy.api#httpQuery": "OrderId" } }, "MaxResults": { @@ -2096,6 +2313,22 @@ "smithy.api#pattern": "^(?:.{1,200}/)?(?:[a-z0-9-_A-Z])+$" } }, + "com.amazonaws.outposts#InstanceId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 11, + "max": 32 + }, + "smithy.api#pattern": "^i-[0-9a-z]+$" + } + }, + "com.amazonaws.outposts#InstanceIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#InstanceId" + } + }, "com.amazonaws.outposts#InstanceType": { "type": "string", "traits": { @@ -2171,6 +2404,32 @@ "smithy.api#pattern": "^[a-z0-9\\-]+\\.[a-z0-9\\-]+$" } }, + "com.amazonaws.outposts#InstancesToExclude": { + "type": "structure", + "members": { + "Instances": { + "target": "com.amazonaws.outposts#InstanceIdList", + "traits": { + "smithy.api#documentation": "

List of user-specified instances that must not be stopped.

" + } + }, + "AccountIds": { + "target": "com.amazonaws.outposts#AccountIdList", + "traits": { + "smithy.api#documentation": "

IDs of the accounts that own each instance that must not be stopped.

" + } + }, + "Services": { + "target": "com.amazonaws.outposts#AWSServiceNameList", + "traits": { + "smithy.api#documentation": "

Names of the services that own each instance that must not be stopped in order to free up\n the capacity needed to run the capacity task.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

User-specified instances that must not be stopped. These instances will not appear in the\n list of instances that Amazon Web Services recommends to stop in order to free up capacity.

" + } + }, "com.amazonaws.outposts#InternalServerException": { "type": "structure", "members": { @@ -2409,6 +2668,116 @@ "target": "com.amazonaws.outposts#LineItemQuantity" } }, + "com.amazonaws.outposts#ListAssetInstances": { + "type": "operation", + "input": { + "target": "com.amazonaws.outposts#ListAssetInstancesInput" + }, + "output": { + "target": "com.amazonaws.outposts#ListAssetInstancesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.outposts#AccessDeniedException" + }, + { + "target": "com.amazonaws.outposts#InternalServerException" + }, + { + "target": "com.amazonaws.outposts#NotFoundException" + }, + { + "target": "com.amazonaws.outposts#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

A list of Amazon EC2 instances, belonging to all accounts, running on the specified Outpost.\n Does not include Amazon EBS or Amazon S3 instances.

", + "smithy.api#http": { + "method": "GET", + "uri": "/outposts/{OutpostIdentifier}/assetInstances", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "AssetInstances", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.outposts#ListAssetInstancesInput": { + "type": "structure", + "members": { + "OutpostIdentifier": { + "target": "com.amazonaws.outposts#OutpostIdentifier", + "traits": { + "smithy.api#documentation": "

The ID of the Outpost.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AssetIdFilter": { + "target": "com.amazonaws.outposts#AssetIdList", + "traits": { + "smithy.api#documentation": "

Filters the results by asset ID.

", + "smithy.api#httpQuery": "AssetIdFilter" + } + }, + "InstanceTypeFilter": { + "target": "com.amazonaws.outposts#OutpostInstanceTypeList", + "traits": { + "smithy.api#documentation": "

Filters the results by instance ID.

", + "smithy.api#httpQuery": "InstanceTypeFilter" + } + }, + "AccountIdFilter": { + "target": "com.amazonaws.outposts#AccountIdList", + "traits": { + "smithy.api#documentation": "

Filters the results by account ID.

", + "smithy.api#httpQuery": "AccountIdFilter" + } + }, + "AwsServiceFilter": { + "target": "com.amazonaws.outposts#AWSServiceNameList", + "traits": { + "smithy.api#documentation": "

Filters the results by Amazon Web Services service.

", + "smithy.api#httpQuery": "AwsServiceFilter" + } + }, + "MaxResults": { + "target": "com.amazonaws.outposts#MaxResults1000", + "traits": { + "smithy.api#httpQuery": "MaxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.outposts#Token", + "traits": { + "smithy.api#httpQuery": "NextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.outposts#ListAssetInstancesOutput": { + "type": "structure", + "members": { + "AssetInstances": { + "target": "com.amazonaws.outposts#AssetInstanceList", + "traits": { + "smithy.api#documentation": "

List of instances owned by all accounts on the Outpost. Does not include Amazon EBS or Amazon S3\n instances.

" + } + }, + "NextToken": { + "target": "com.amazonaws.outposts#Token" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.outposts#ListAssets": { "type": "operation", "input": { @@ -2505,6 +2874,96 @@ "smithy.api#output": {} } }, + "com.amazonaws.outposts#ListBlockingInstancesForCapacityTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.outposts#ListBlockingInstancesForCapacityTaskInput" + }, + "output": { + "target": "com.amazonaws.outposts#ListBlockingInstancesForCapacityTaskOutput" + }, + "errors": [ + { + "target": "com.amazonaws.outposts#AccessDeniedException" + }, + { + "target": "com.amazonaws.outposts#InternalServerException" + }, + { + "target": "com.amazonaws.outposts#NotFoundException" + }, + { + "target": "com.amazonaws.outposts#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

A list of Amazon EC2 instances running on the Outpost and belonging to the account that\n initiated the capacity task. Use this list to specify the instances you cannot stop to free up\n capacity to run the capacity task.

", + "smithy.api#http": { + "method": "GET", + "uri": "/outposts/{OutpostIdentifier}/capacity/{CapacityTaskId}/blockingInstances", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "BlockingInstances", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.outposts#ListBlockingInstancesForCapacityTaskInput": { + "type": "structure", + "members": { + "OutpostIdentifier": { + "target": "com.amazonaws.outposts#OutpostIdentifier", + "traits": { + "smithy.api#documentation": "

The ID or ARN of the Outpost associated with the specified capacity task.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CapacityTaskId": { + "target": "com.amazonaws.outposts#CapacityTaskId", + "traits": { + "smithy.api#documentation": "

The ID of the capacity task.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.outposts#MaxResults1000", + "traits": { + "smithy.api#httpQuery": "MaxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.outposts#Token", + "traits": { + "smithy.api#httpQuery": "NextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.outposts#ListBlockingInstancesForCapacityTaskOutput": { + "type": "structure", + "members": { + "BlockingInstances": { + "target": "com.amazonaws.outposts#BlockingInstancesList", + "traits": { + "smithy.api#documentation": "

A list of all running Amazon EC2 instances on the Outpost. Stopping one or more of these\n instances can free up the capacity needed to run the capacity task.

" + } + }, + "NextToken": { + "target": "com.amazonaws.outposts#Token" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.outposts#ListCapacityTasks": { "type": "operation", "input": { @@ -2567,7 +3026,7 @@ "CapacityTaskStatusFilter": { "target": "com.amazonaws.outposts#CapacityTaskStatusList", "traits": { - "smithy.api#documentation": "

A list of statuses. For example,\n REQUESTED or WAITING_FOR_EVACUATION.

", + "smithy.api#documentation": "

A list of statuses. For example, REQUESTED or\n WAITING_FOR_EVACUATION.

", "smithy.api#httpQuery": "CapacityTaskStatusFilter" } } @@ -3200,7 +3659,7 @@ "Status": { "target": "com.amazonaws.outposts#OrderStatus", "traits": { - "smithy.api#documentation": "

The status of the order.

\n
    \n
  • \n

    \n PREPARING - Order is received and being prepared.

    \n
  • \n
  • \n

    \n IN_PROGRESS - Order is either being built or shipped. To get\n more details, see the line item status.

    \n
  • \n
  • \n

    \n DELIVERED - Order was delivered to the Outpost site.

    \n
  • \n
  • \n

    \n COMPLETED - Order is complete.

    \n
  • \n
  • \n

    \n CANCELLED - Order is cancelled.

    \n
  • \n
  • \n

    \n ERROR - Customer should contact support.

    \n
  • \n
\n \n

The following status are deprecated: RECEIVED, PENDING,\n PROCESSING, INSTALLING, and FULFILLED.

\n
" + "smithy.api#documentation": "

The status of the order.

\n
    \n
  • \n

    \n PREPARING - Order is received and being prepared.

    \n
  • \n
  • \n

    \n IN_PROGRESS - Order is either being built or shipped. To get more\n details, see the line item status.

    \n
  • \n
  • \n

    \n DELIVERED - Order was delivered to the Outpost site.

    \n
  • \n
  • \n

    \n COMPLETED - Order is complete.

    \n
  • \n
  • \n

    \n CANCELLED - Order is cancelled.

    \n
  • \n
  • \n

    \n ERROR - Customer should contact support.

    \n
  • \n
\n \n

The following status are deprecated: RECEIVED, PENDING,\n PROCESSING, INSTALLING, and FULFILLED.

\n
" } }, "LineItems": { @@ -3503,6 +3962,22 @@ "smithy.api#pattern": "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$" } }, + "com.amazonaws.outposts#OutpostInstanceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 30 + }, + "smithy.api#pattern": "^[a-z0-9\\-\\.]+$" + } + }, + "com.amazonaws.outposts#OutpostInstanceTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.outposts#OutpostInstanceType" + } + }, "com.amazonaws.outposts#OutpostName": { "type": "string", "traits": { @@ -3566,9 +4041,15 @@ { "target": "com.amazonaws.outposts#GetSiteAddress" }, + { + "target": "com.amazonaws.outposts#ListAssetInstances" + }, { "target": "com.amazonaws.outposts#ListAssets" }, + { + "target": "com.amazonaws.outposts#ListBlockingInstancesForCapacityTask" + }, { "target": "com.amazonaws.outposts#ListCapacityTasks" }, @@ -5106,7 +5587,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts the specified capacity task. You can have one active capacity task for an order.

", + "smithy.api#documentation": "

Starts the specified capacity task. You can have one active capacity task per order or Outpost.

", "smithy.api#http": { "method": "POST", "uri": "/outposts/{OutpostIdentifier}/capacity", @@ -5128,8 +5609,7 @@ "OrderId": { "target": "com.amazonaws.outposts#OrderId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services Outposts order associated with the specified capacity task.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The ID of the Amazon Web Services Outposts order associated with the specified capacity task.

" } }, "InstancePools": { @@ -5139,11 +5619,23 @@ "smithy.api#required": {} } }, + "InstancesToExclude": { + "target": "com.amazonaws.outposts#InstancesToExclude", + "traits": { + "smithy.api#documentation": "

List of user-specified running instances that must not be stopped in order to free up the\n capacity needed to run the capacity task.

" + } + }, "DryRun": { "target": "com.amazonaws.outposts#DryRun", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

You can request a dry run to determine if the instance type and instance size changes is above or below available instance\n capacity. Requesting a dry run does not make any changes to your plan.

" + "smithy.api#documentation": "

You can request a dry run to determine if the instance type and instance size changes is\n above or below available instance capacity. Requesting a dry run does not make any changes to\n your plan.

" + } + }, + "TaskActionOnBlockingInstances": { + "target": "com.amazonaws.outposts#TaskActionOnBlockingInstances", + "traits": { + "smithy.api#documentation": "

Specify one of the following options in case an instance is blocking the capacity task\n from running.

\n
    \n
  • \n

    \n WAIT_FOR_EVACUATION - Checks every 10 minutes over 48 hours to determine\n if instances have stopped and capacity is available to complete the task.

    \n
  • \n
  • \n

    \n FAIL_TASK - The capacity task fails.

    \n
  • \n
" } } }, @@ -5178,6 +5670,12 @@ "smithy.api#documentation": "

List of the instance pools requested in the specified capacity task.

" } }, + "InstancesToExclude": { + "target": "com.amazonaws.outposts#InstancesToExclude", + "traits": { + "smithy.api#documentation": "

User-specified instances that must not be stopped in order to free up the capacity needed\n to run the capacity task.

" + } + }, "DryRun": { "target": "com.amazonaws.outposts#DryRun", "traits": { @@ -5214,6 +5712,12 @@ "traits": { "smithy.api#documentation": "

Date that the specified capacity task was last modified.

" } + }, + "TaskActionOnBlockingInstances": { + "target": "com.amazonaws.outposts#TaskActionOnBlockingInstances", + "traits": { + "smithy.api#documentation": "

User-specified option in case an instance is blocking the capacity task from\n running.

\n
    \n
  • \n

    \n WAIT_FOR_EVACUATION - Checks every 10 minutes over 48 hours to determine\n if instances have stopped and capacity is available to complete the task.

    \n
  • \n
  • \n

    \n FAIL_TASK - The capacity task fails.

    \n
  • \n
" + } } }, "traits": { @@ -5502,6 +6006,23 @@ "smithy.api#pattern": "^[\\S \\n]+$" } }, + "com.amazonaws.outposts#TaskActionOnBlockingInstances": { + "type": "enum", + "members": { + "WAIT_FOR_EVACUATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WAIT_FOR_EVACUATION" + } + }, + "FAIL_TASK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAIL_TASK" + } + } + } + }, "com.amazonaws.outposts#Token": { "type": "string", "traits": { From f0e35a9c33f84bd449a9b6a15ac0332c7d6d4db6 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Mon, 11 Nov 2024 19:24:07 +0000 Subject: [PATCH 06/20] Update endpoints model --- .../smithy/aws/go/codegen/endpoints.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json index d95c35d47d3..cfbb599d6a0 100644 --- a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json +++ b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json @@ -25111,30 +25111,55 @@ }, "bedrock" : { "endpoints" : { + "bedrock-fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "bedrock-fips.us-gov-east-1.amazonaws.com" + }, "bedrock-fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, "hostname" : "bedrock-fips.us-gov-west-1.amazonaws.com" }, + "bedrock-runtime-fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "bedrock-runtime-fips.us-gov-east-1.amazonaws.com" + }, "bedrock-runtime-fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, "hostname" : "bedrock-runtime-fips.us-gov-west-1.amazonaws.com" }, + "bedrock-runtime-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "bedrock-runtime.us-gov-east-1.amazonaws.com" + }, "bedrock-runtime-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, "hostname" : "bedrock-runtime.us-gov-west-1.amazonaws.com" }, + "bedrock-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "bedrock.us-gov-east-1.amazonaws.com" + }, "bedrock-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, "hostname" : "bedrock.us-gov-west-1.amazonaws.com" }, + "us-gov-east-1" : { }, "us-gov-west-1" : { } } }, From f174447661b711e040d7be71082cd21059a28ec6 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Mon, 11 Nov 2024 19:43:34 +0000 Subject: [PATCH 07/20] Regenerated Clients --- .../0f332045557a478eb1c98fbb6ed38937.json | 8 + .../148bcacd6af047c1b60f14b336341a9c.json | 8 + .../3ff83efb8b054353ab043d3cf7754103.json | 8 + .../a87793418a8448aa948ce29966037636.json | 8 + .../d7cbcd2fef5346938476e496625097cc.json | 8 + .../bedrock/internal/endpoints/endpoints.go | 35 + service/cloudfront/api_op_GetDistribution.go | 6 +- service/cloudfront/api_op_GetInvalidation.go | 6 +- .../api_op_GetStreamingDistribution.go | 6 +- .../api_op_ListOriginAccessControls.go | 8 +- service/cloudfront/api_op_ListPublicKeys.go | 96 ++ .../cloudfront/api_op_UpdateDistribution.go | 7 +- ..._op_UpdateDistributionWithStagingConfig.go | 2 +- service/inspector2/api_op_GetSbomExport.go | 2 +- service/inspector2/api_op_ListCoverage.go | 2 +- service/inspector2/api_op_StopCisSession.go | 2 +- service/inspector2/deserializers.go | 5 + service/inspector2/serializers.go | 7 + service/inspector2/types/enums.go | 78 +- service/inspector2/types/errors.go | 3 - service/inspector2/types/types.go | 5 +- service/inspector2/validators.go | 5 + service/lambda/types/enums.go | 2 + service/opensearch/api_op_AssociatePackage.go | 8 + .../opensearch/api_op_AssociatePackages.go | 164 +++ service/opensearch/api_op_CreatePackage.go | 14 + .../opensearch/api_op_DissociatePackages.go | 164 +++ service/opensearch/api_op_UpdatePackage.go | 6 + .../opensearch/api_op_UpdatePackageScope.go | 175 +++ service/opensearch/deserializers.go | 1071 +++++++++++++-- service/opensearch/generated.json | 3 + service/opensearch/serializers.go | 489 +++++++ .../snapshot/api_op_AssociatePackages.go.snap | 41 + .../api_op_DissociatePackages.go.snap | 41 + .../api_op_UpdatePackageScope.go.snap | 41 + service/opensearch/snapshot_test.go | 72 + service/opensearch/types/enums.go | 52 +- service/opensearch/types/types.go | 121 ++ service/opensearch/validators.go | 280 ++++ service/outposts/api_op_GetCapacityTask.go | 13 + ...api_op_GetOutpostSupportedInstanceTypes.go | 8 +- service/outposts/api_op_ListAssetInstances.go | 274 ++++ ...op_ListBlockingInstancesForCapacityTask.go | 270 ++++ service/outposts/api_op_StartCapacityTask.go | 40 +- service/outposts/deserializers.go | 1161 ++++++++++++++--- service/outposts/generated.json | 2 + service/outposts/serializers.go | 264 ++++ .../api_op_ListAssetInstances.go.snap | 41 + ...stBlockingInstancesForCapacityTask.go.snap | 41 + service/outposts/snapshot_test.go | 48 + service/outposts/types/enums.go | 69 +- service/outposts/types/types.go | 78 ++ service/outposts/validators.go | 87 +- 53 files changed, 5110 insertions(+), 345 deletions(-) create mode 100644 .changelog/0f332045557a478eb1c98fbb6ed38937.json create mode 100644 .changelog/148bcacd6af047c1b60f14b336341a9c.json create mode 100644 .changelog/3ff83efb8b054353ab043d3cf7754103.json create mode 100644 .changelog/a87793418a8448aa948ce29966037636.json create mode 100644 .changelog/d7cbcd2fef5346938476e496625097cc.json create mode 100644 service/opensearch/api_op_AssociatePackages.go create mode 100644 service/opensearch/api_op_DissociatePackages.go create mode 100644 service/opensearch/api_op_UpdatePackageScope.go create mode 100644 service/opensearch/snapshot/api_op_AssociatePackages.go.snap create mode 100644 service/opensearch/snapshot/api_op_DissociatePackages.go.snap create mode 100644 service/opensearch/snapshot/api_op_UpdatePackageScope.go.snap create mode 100644 service/outposts/api_op_ListAssetInstances.go create mode 100644 service/outposts/api_op_ListBlockingInstancesForCapacityTask.go create mode 100644 service/outposts/snapshot/api_op_ListAssetInstances.go.snap create mode 100644 service/outposts/snapshot/api_op_ListBlockingInstancesForCapacityTask.go.snap diff --git a/.changelog/0f332045557a478eb1c98fbb6ed38937.json b/.changelog/0f332045557a478eb1c98fbb6ed38937.json new file mode 100644 index 00000000000..2f0bf4af20d --- /dev/null +++ b/.changelog/0f332045557a478eb1c98fbb6ed38937.json @@ -0,0 +1,8 @@ +{ + "id": "0f332045-557a-478e-b1c9-8fbb6ed38937", + "type": "feature", + "description": "Adds support for filePath filter.", + "modules": [ + "service/inspector2" + ] +} \ No newline at end of file diff --git a/.changelog/148bcacd6af047c1b60f14b336341a9c.json b/.changelog/148bcacd6af047c1b60f14b336341a9c.json new file mode 100644 index 00000000000..b06e6906b77 --- /dev/null +++ b/.changelog/148bcacd6af047c1b60f14b336341a9c.json @@ -0,0 +1,8 @@ +{ + "id": "148bcacd-6af0-47c1-b60f-14b336341a9c", + "type": "feature", + "description": "This release updates StartCapacityTask to allow an active Outpost to be modified. It also adds a new API to list all running EC2 instances on the Outpost.", + "modules": [ + "service/outposts" + ] +} \ No newline at end of file diff --git a/.changelog/3ff83efb8b054353ab043d3cf7754103.json b/.changelog/3ff83efb8b054353ab043d3cf7754103.json new file mode 100644 index 00000000000..11f8b7e4869 --- /dev/null +++ b/.changelog/3ff83efb8b054353ab043d3cf7754103.json @@ -0,0 +1,8 @@ +{ + "id": "3ff83efb-8b05-4353-ab04-3d3cf7754103", + "type": "feature", + "description": "Add Python 3.13 (python3.13) support to AWS Lambda", + "modules": [ + "service/lambda" + ] +} \ No newline at end of file diff --git a/.changelog/a87793418a8448aa948ce29966037636.json b/.changelog/a87793418a8448aa948ce29966037636.json new file mode 100644 index 00000000000..ff6392f8585 --- /dev/null +++ b/.changelog/a87793418a8448aa948ce29966037636.json @@ -0,0 +1,8 @@ +{ + "id": "a8779341-8a84-48aa-948c-e29966037636", + "type": "feature", + "description": "Adds Support for new AssociatePackages and DissociatePackages API in Amazon OpenSearch Service that allows association and dissociation operations to be carried out on multiple packages at the same time.", + "modules": [ + "service/opensearch" + ] +} \ No newline at end of file diff --git a/.changelog/d7cbcd2fef5346938476e496625097cc.json b/.changelog/d7cbcd2fef5346938476e496625097cc.json new file mode 100644 index 00000000000..071cc748254 --- /dev/null +++ b/.changelog/d7cbcd2fef5346938476e496625097cc.json @@ -0,0 +1,8 @@ +{ + "id": "d7cbcd2f-ef53-4693-8476-e496625097cc", + "type": "feature", + "description": "No API changes from previous release. This release migrated the model to Smithy keeping all features unchanged.", + "modules": [ + "service/cloudfront" + ] +} \ No newline at end of file diff --git a/service/bedrock/internal/endpoints/endpoints.go b/service/bedrock/internal/endpoints/endpoints.go index 7432bd0f133..bc9c9869b79 100644 --- a/service/bedrock/internal/endpoints/endpoints.go +++ b/service/bedrock/internal/endpoints/endpoints.go @@ -644,6 +644,14 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.AwsUsGov, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "bedrock-fips-us-gov-east-1", + }: endpoints.Endpoint{ + Hostname: "bedrock-fips.us-gov-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-gov-east-1", + }, + }, endpoints.EndpointKey{ Region: "bedrock-fips-us-gov-west-1", }: endpoints.Endpoint{ @@ -652,6 +660,14 @@ var defaultPartitions = endpoints.Partitions{ Region: "us-gov-west-1", }, }, + endpoints.EndpointKey{ + Region: "bedrock-runtime-fips-us-gov-east-1", + }: endpoints.Endpoint{ + Hostname: "bedrock-runtime-fips.us-gov-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-gov-east-1", + }, + }, endpoints.EndpointKey{ Region: "bedrock-runtime-fips-us-gov-west-1", }: endpoints.Endpoint{ @@ -660,6 +676,14 @@ var defaultPartitions = endpoints.Partitions{ Region: "us-gov-west-1", }, }, + endpoints.EndpointKey{ + Region: "bedrock-runtime-us-gov-east-1", + }: endpoints.Endpoint{ + Hostname: "bedrock-runtime.us-gov-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-gov-east-1", + }, + }, endpoints.EndpointKey{ Region: "bedrock-runtime-us-gov-west-1", }: endpoints.Endpoint{ @@ -668,6 +692,14 @@ var defaultPartitions = endpoints.Partitions{ Region: "us-gov-west-1", }, }, + endpoints.EndpointKey{ + Region: "bedrock-us-gov-east-1", + }: endpoints.Endpoint{ + Hostname: "bedrock.us-gov-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-gov-east-1", + }, + }, endpoints.EndpointKey{ Region: "bedrock-us-gov-west-1", }: endpoints.Endpoint{ @@ -676,6 +708,9 @@ var defaultPartitions = endpoints.Partitions{ Region: "us-gov-west-1", }, }, + endpoints.EndpointKey{ + Region: "us-gov-east-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "us-gov-west-1", }: endpoints.Endpoint{}, diff --git a/service/cloudfront/api_op_GetDistribution.go b/service/cloudfront/api_op_GetDistribution.go index 5c045064514..fd843778c92 100644 --- a/service/cloudfront/api_op_GetDistribution.go +++ b/service/cloudfront/api_op_GetDistribution.go @@ -183,7 +183,7 @@ type DistributionDeployedWaiterOptions struct { MinDelay time.Duration // MaxDelay is the maximum amount of time to delay between retries. If unset or - // set to zero, DistributionDeployedWaiter will use default max delay of 120 + // set to zero, DistributionDeployedWaiter will use default max delay of 2100 // seconds. Note that MaxDelay must resolve to value greater than or equal to the // MinDelay. MaxDelay time.Duration @@ -214,7 +214,7 @@ type DistributionDeployedWaiter struct { func NewDistributionDeployedWaiter(client GetDistributionAPIClient, optFns ...func(*DistributionDeployedWaiterOptions)) *DistributionDeployedWaiter { options := DistributionDeployedWaiterOptions{} options.MinDelay = 60 * time.Second - options.MaxDelay = 120 * time.Second + options.MaxDelay = 2100 * time.Second options.Retryable = distributionDeployedStateRetryable for _, fn := range optFns { @@ -249,7 +249,7 @@ func (w *DistributionDeployedWaiter) WaitForOutput(ctx context.Context, params * } if options.MaxDelay <= 0 { - options.MaxDelay = 120 * time.Second + options.MaxDelay = 2100 * time.Second } if options.MinDelay > options.MaxDelay { diff --git a/service/cloudfront/api_op_GetInvalidation.go b/service/cloudfront/api_op_GetInvalidation.go index ae4ce5e173e..7a5588ae217 100644 --- a/service/cloudfront/api_op_GetInvalidation.go +++ b/service/cloudfront/api_op_GetInvalidation.go @@ -185,7 +185,7 @@ type InvalidationCompletedWaiterOptions struct { MinDelay time.Duration // MaxDelay is the maximum amount of time to delay between retries. If unset or - // set to zero, InvalidationCompletedWaiter will use default max delay of 120 + // set to zero, InvalidationCompletedWaiter will use default max delay of 600 // seconds. Note that MaxDelay must resolve to value greater than or equal to the // MinDelay. MaxDelay time.Duration @@ -216,7 +216,7 @@ type InvalidationCompletedWaiter struct { func NewInvalidationCompletedWaiter(client GetInvalidationAPIClient, optFns ...func(*InvalidationCompletedWaiterOptions)) *InvalidationCompletedWaiter { options := InvalidationCompletedWaiterOptions{} options.MinDelay = 20 * time.Second - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second options.Retryable = invalidationCompletedStateRetryable for _, fn := range optFns { @@ -251,7 +251,7 @@ func (w *InvalidationCompletedWaiter) WaitForOutput(ctx context.Context, params } if options.MaxDelay <= 0 { - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second } if options.MinDelay > options.MaxDelay { diff --git a/service/cloudfront/api_op_GetStreamingDistribution.go b/service/cloudfront/api_op_GetStreamingDistribution.go index 0b087c2f20c..aa4bc72291c 100644 --- a/service/cloudfront/api_op_GetStreamingDistribution.go +++ b/service/cloudfront/api_op_GetStreamingDistribution.go @@ -185,7 +185,7 @@ type StreamingDistributionDeployedWaiterOptions struct { // MaxDelay is the maximum amount of time to delay between retries. If unset or // set to zero, StreamingDistributionDeployedWaiter will use default max delay of - // 120 seconds. Note that MaxDelay must resolve to value greater than or equal to + // 1500 seconds. Note that MaxDelay must resolve to value greater than or equal to // the MinDelay. MaxDelay time.Duration @@ -217,7 +217,7 @@ type StreamingDistributionDeployedWaiter struct { func NewStreamingDistributionDeployedWaiter(client GetStreamingDistributionAPIClient, optFns ...func(*StreamingDistributionDeployedWaiterOptions)) *StreamingDistributionDeployedWaiter { options := StreamingDistributionDeployedWaiterOptions{} options.MinDelay = 60 * time.Second - options.MaxDelay = 120 * time.Second + options.MaxDelay = 1500 * time.Second options.Retryable = streamingDistributionDeployedStateRetryable for _, fn := range optFns { @@ -252,7 +252,7 @@ func (w *StreamingDistributionDeployedWaiter) WaitForOutput(ctx context.Context, } if options.MaxDelay <= 0 { - options.MaxDelay = 120 * time.Second + options.MaxDelay = 1500 * time.Second } if options.MinDelay > options.MaxDelay { diff --git a/service/cloudfront/api_op_ListOriginAccessControls.go b/service/cloudfront/api_op_ListOriginAccessControls.go index 5577c620dfc..07185b10bc3 100644 --- a/service/cloudfront/api_op_ListOriginAccessControls.go +++ b/service/cloudfront/api_op_ListOriginAccessControls.go @@ -11,14 +11,18 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets the list of CloudFront origin access controls in this Amazon Web Services -// account. +// Gets the list of CloudFront origin access controls (OACs) in this Amazon Web +// Services account. // // You can optionally specify the maximum number of items to receive in the // response. If the total number of items in the list exceeds the maximum that you // specify, or the default maximum, the response is paginated. To get the next page // of items, send another request that specifies the NextMarker value from the // current response as the Marker value in the next request. +// +// If you're not using origin access controls for your Amazon Web Services +// account, the ListOriginAccessControls operation doesn't return the Items +// element in the response. func (c *Client) ListOriginAccessControls(ctx context.Context, params *ListOriginAccessControlsInput, optFns ...func(*Options)) (*ListOriginAccessControlsOutput, error) { if params == nil { params = &ListOriginAccessControlsInput{} diff --git a/service/cloudfront/api_op_ListPublicKeys.go b/service/cloudfront/api_op_ListPublicKeys.go index 076807e6fb1..5b81e8137e8 100644 --- a/service/cloudfront/api_op_ListPublicKeys.go +++ b/service/cloudfront/api_op_ListPublicKeys.go @@ -151,6 +151,102 @@ func (c *Client) addOperationListPublicKeysMiddlewares(stack *middleware.Stack, return nil } +// ListPublicKeysPaginatorOptions is the paginator options for ListPublicKeys +type ListPublicKeysPaginatorOptions struct { + // The maximum number of public keys you want in the response body. + 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 +} + +// ListPublicKeysPaginator is a paginator for ListPublicKeys +type ListPublicKeysPaginator struct { + options ListPublicKeysPaginatorOptions + client ListPublicKeysAPIClient + params *ListPublicKeysInput + nextToken *string + firstPage bool +} + +// NewListPublicKeysPaginator returns a new ListPublicKeysPaginator +func NewListPublicKeysPaginator(client ListPublicKeysAPIClient, params *ListPublicKeysInput, optFns ...func(*ListPublicKeysPaginatorOptions)) *ListPublicKeysPaginator { + if params == nil { + params = &ListPublicKeysInput{} + } + + options := ListPublicKeysPaginatorOptions{} + if params.MaxItems != nil { + options.Limit = *params.MaxItems + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListPublicKeysPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.Marker, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListPublicKeysPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListPublicKeys page. +func (p *ListPublicKeysPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListPublicKeysOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.Marker = p.nextToken + + var limit *int32 + if p.options.Limit > 0 { + limit = &p.options.Limit + } + params.MaxItems = limit + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListPublicKeys(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = nil + if result.PublicKeyList != nil { + p.nextToken = result.PublicKeyList.NextMarker + } + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +// ListPublicKeysAPIClient is a client that implements the ListPublicKeys +// operation. +type ListPublicKeysAPIClient interface { + ListPublicKeys(context.Context, *ListPublicKeysInput, ...func(*Options)) (*ListPublicKeysOutput, error) +} + +var _ ListPublicKeysAPIClient = (*Client)(nil) + func newServiceMetadataMiddleware_opListPublicKeys(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, diff --git a/service/cloudfront/api_op_UpdateDistribution.go b/service/cloudfront/api_op_UpdateDistribution.go index 693c1222ba5..38a721e345b 100644 --- a/service/cloudfront/api_op_UpdateDistribution.go +++ b/service/cloudfront/api_op_UpdateDistribution.go @@ -25,12 +25,13 @@ import ( // - Update the distribution configuration that was returned in the response. // Note the following important requirements and restrictions: // -// - You must rename the ETag field to IfMatch , leaving the value unchanged. -// (Set the value of IfMatch to the value of ETag , then remove the ETag field.) +// - You must copy the ETag field value from the response. (You'll use it for the +// IfMatch parameter in your request.) Then, remove the ETag field from the +// distribution configuration. // // - You can't change the value of CallerReference . // -// - Submit an UpdateDistribution request, providing the distribution +// - Submit an UpdateDistribution request, providing the updated distribution // configuration. The new configuration replaces the existing configuration. The // values that you specify in an UpdateDistribution request are not merged into // your existing configuration. Make sure to include all fields: the ones that you diff --git a/service/cloudfront/api_op_UpdateDistributionWithStagingConfig.go b/service/cloudfront/api_op_UpdateDistributionWithStagingConfig.go index 0e3c6229192..f84e105ce62 100644 --- a/service/cloudfront/api_op_UpdateDistributionWithStagingConfig.go +++ b/service/cloudfront/api_op_UpdateDistributionWithStagingConfig.go @@ -58,7 +58,7 @@ type UpdateDistributionWithStagingConfigInput struct { // The current versions ( ETag values) of both primary and staging distributions. // Provide these in the following format: // - // , + // , IfMatch *string // The identifier of the staging distribution whose configuration you are copying diff --git a/service/inspector2/api_op_GetSbomExport.go b/service/inspector2/api_op_GetSbomExport.go index ca370011670..96d17ebf7e0 100644 --- a/service/inspector2/api_op_GetSbomExport.go +++ b/service/inspector2/api_op_GetSbomExport.go @@ -55,7 +55,7 @@ type GetSbomExportOutput struct { // The report ID of the software bill of materials (SBOM) report. ReportId *string - // Contains details of the Amazon S3 bucket and KMS key used to export findings. + // Contains details of the Amazon S3 bucket and KMS key used to export findings S3Destination *types.Destination // The status of the software bill of materials (SBOM) report. diff --git a/service/inspector2/api_op_ListCoverage.go b/service/inspector2/api_op_ListCoverage.go index 4a93aa0937c..9765d1c3c70 100644 --- a/service/inspector2/api_op_ListCoverage.go +++ b/service/inspector2/api_op_ListCoverage.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists coverage details for you environment. +// Lists coverage details for your environment. func (c *Client) ListCoverage(ctx context.Context, params *ListCoverageInput, optFns ...func(*Options)) (*ListCoverageOutput, error) { if params == nil { params = &ListCoverageInput{} diff --git a/service/inspector2/api_op_StopCisSession.go b/service/inspector2/api_op_StopCisSession.go index 9614ef6828c..307e0d906ac 100644 --- a/service/inspector2/api_op_StopCisSession.go +++ b/service/inspector2/api_op_StopCisSession.go @@ -14,7 +14,7 @@ import ( // Stops a CIS session. This API is used by the Amazon Inspector SSM plugin to // // communicate with the Amazon Inspector service. The Amazon Inspector SSM plugin -// calls this API to start a CIS scan session for the scan ID supplied by the +// calls this API to stop a CIS scan session for the scan ID supplied by the // service. func (c *Client) StopCisSession(ctx context.Context, params *StopCisSessionInput, optFns ...func(*Options)) (*StopCisSessionOutput, error) { if params == nil { diff --git a/service/inspector2/deserializers.go b/service/inspector2/deserializers.go index 9340df8036b..8cc90ca1ece 100644 --- a/service/inspector2/deserializers.go +++ b/service/inspector2/deserializers.go @@ -17049,6 +17049,11 @@ func awsRestjson1_deserializeDocumentPackageFilter(v **types.PackageFilter, valu return err } + case "filePath": + if err := awsRestjson1_deserializeDocumentStringFilter(&sv.FilePath, value); err != nil { + return err + } + case "name": if err := awsRestjson1_deserializeDocumentStringFilter(&sv.Name, value); err != nil { return err diff --git a/service/inspector2/serializers.go b/service/inspector2/serializers.go index 28414add6a5..4c0b13fb013 100644 --- a/service/inspector2/serializers.go +++ b/service/inspector2/serializers.go @@ -7190,6 +7190,13 @@ func awsRestjson1_serializeDocumentPackageFilter(v *types.PackageFilter, value s } } + if v.FilePath != nil { + ok := object.Key("filePath") + if err := awsRestjson1_serializeDocumentStringFilter(v.FilePath, ok); err != nil { + return err + } + } + if v.Name != nil { ok := object.Key("name") if err := awsRestjson1_serializeDocumentStringFilter(v.Name, ok); err != nil { diff --git a/service/inspector2/types/enums.go b/service/inspector2/types/enums.go index ae27244e908..78e70dafb8e 100644 --- a/service/inspector2/types/enums.go +++ b/service/inspector2/types/enums.go @@ -1394,23 +1394,24 @@ type PackageManager string // Enum values for PackageManager const ( - PackageManagerBundler PackageManager = "BUNDLER" - PackageManagerCargo PackageManager = "CARGO" - PackageManagerComposer PackageManager = "COMPOSER" - PackageManagerNpm PackageManager = "NPM" - PackageManagerNuget PackageManager = "NUGET" - PackageManagerPipenv PackageManager = "PIPENV" - PackageManagerPoetry PackageManager = "POETRY" - PackageManagerYarn PackageManager = "YARN" - PackageManagerGobinary PackageManager = "GOBINARY" - PackageManagerGomod PackageManager = "GOMOD" - PackageManagerJar PackageManager = "JAR" - PackageManagerOs PackageManager = "OS" - PackageManagerPip PackageManager = "PIP" - PackageManagerPythonpkg PackageManager = "PYTHONPKG" - PackageManagerNodepkg PackageManager = "NODEPKG" - PackageManagerPom PackageManager = "POM" - PackageManagerGemspec PackageManager = "GEMSPEC" + PackageManagerBundler PackageManager = "BUNDLER" + PackageManagerCargo PackageManager = "CARGO" + PackageManagerComposer PackageManager = "COMPOSER" + PackageManagerNpm PackageManager = "NPM" + PackageManagerNuget PackageManager = "NUGET" + PackageManagerPipenv PackageManager = "PIPENV" + PackageManagerPoetry PackageManager = "POETRY" + PackageManagerYarn PackageManager = "YARN" + PackageManagerGobinary PackageManager = "GOBINARY" + PackageManagerGomod PackageManager = "GOMOD" + PackageManagerJar PackageManager = "JAR" + PackageManagerOs PackageManager = "OS" + PackageManagerPip PackageManager = "PIP" + PackageManagerPythonpkg PackageManager = "PYTHONPKG" + PackageManagerNodepkg PackageManager = "NODEPKG" + PackageManagerPom PackageManager = "POM" + PackageManagerGemspec PackageManager = "GEMSPEC" + PackageManagerDotnetCore PackageManager = "DOTNET_CORE" ) // Values returns all known values for PackageManager. Note that this can be @@ -1436,6 +1437,7 @@ func (PackageManager) Values() []PackageManager { "NODEPKG", "POM", "GEMSPEC", + "DOTNET_CORE", } } @@ -1673,21 +1675,27 @@ type Runtime string // Enum values for Runtime const ( - RuntimeNodejs Runtime = "NODEJS" - RuntimeNodejs12X Runtime = "NODEJS_12_X" - RuntimeNodejs14X Runtime = "NODEJS_14_X" - RuntimeNodejs16X Runtime = "NODEJS_16_X" - RuntimeJava8 Runtime = "JAVA_8" - RuntimeJava8Al2 Runtime = "JAVA_8_AL2" - RuntimeJava11 Runtime = "JAVA_11" - RuntimePython37 Runtime = "PYTHON_3_7" - RuntimePython38 Runtime = "PYTHON_3_8" - RuntimePython39 Runtime = "PYTHON_3_9" - RuntimeUnsupported Runtime = "UNSUPPORTED" - RuntimeNodejs18X Runtime = "NODEJS_18_X" - RuntimeGo1X Runtime = "GO_1_X" - RuntimeJava17 Runtime = "JAVA_17" - RuntimePython310 Runtime = "PYTHON_3_10" + RuntimeNodejs Runtime = "NODEJS" + RuntimeNodejs12X Runtime = "NODEJS_12_X" + RuntimeNodejs14X Runtime = "NODEJS_14_X" + RuntimeNodejs16X Runtime = "NODEJS_16_X" + RuntimeJava8 Runtime = "JAVA_8" + RuntimeJava8Al2 Runtime = "JAVA_8_AL2" + RuntimeJava11 Runtime = "JAVA_11" + RuntimePython37 Runtime = "PYTHON_3_7" + RuntimePython38 Runtime = "PYTHON_3_8" + RuntimePython39 Runtime = "PYTHON_3_9" + RuntimeUnsupported Runtime = "UNSUPPORTED" + RuntimeNodejs18X Runtime = "NODEJS_18_X" + RuntimeGo1X Runtime = "GO_1_X" + RuntimeJava17 Runtime = "JAVA_17" + RuntimePython310 Runtime = "PYTHON_3_10" + RuntimePython311 Runtime = "PYTHON_3_11" + RuntimeDotnetcore31 Runtime = "DOTNETCORE_3_1" + RuntimeDotnet6 Runtime = "DOTNET_6" + RuntimeDotnet7 Runtime = "DOTNET_7" + RuntimeRuby27 Runtime = "RUBY_2_7" + RuntimeRuby32 Runtime = "RUBY_3_2" ) // Values returns all known values for Runtime. Note that this can be expanded in @@ -1711,6 +1719,12 @@ func (Runtime) Values() []Runtime { "GO_1_X", "JAVA_17", "PYTHON_3_10", + "PYTHON_3_11", + "DOTNETCORE_3_1", + "DOTNET_6", + "DOTNET_7", + "RUBY_2_7", + "RUBY_3_2", } } diff --git a/service/inspector2/types/errors.go b/service/inspector2/types/errors.go index 05520deab84..9efd636e01c 100644 --- a/service/inspector2/types/errors.go +++ b/service/inspector2/types/errors.go @@ -8,9 +8,6 @@ import ( ) // You do not have sufficient access to perform this action. -// -// For Enable , you receive this error if you attempt to use a feature in an -// unsupported Amazon Web Services Region. type AccessDeniedException struct { Message *string diff --git a/service/inspector2/types/types.go b/service/inspector2/types/types.go index 8d2fc96123d..6aee16b16c7 100644 --- a/service/inspector2/types/types.go +++ b/service/inspector2/types/types.go @@ -1275,7 +1275,7 @@ type CoverageFilterCriteria struct { ResourceType []CoverageStringFilter // The filter to search for Amazon EC2 instance coverage by scan mode. Valid - // values are EC2_SSM_AGENT_BASED and EC2_HYBRID . + // values are EC2_SSM_AGENT_BASED and EC2_AGENTLESS . ScanMode []CoverageStringFilter // The scan status code to filter on. Valid values are: ValidationException , @@ -2747,6 +2747,9 @@ type PackageFilter struct { // An object that contains details on the package epoch to filter on. Epoch *NumberFilter + // An object that contains details on the package file path to filter on. + FilePath *StringFilter + // An object that contains details on the name of the package to filter on. Name *StringFilter diff --git a/service/inspector2/validators.go b/service/inspector2/validators.go index 12712b3d399..1df39f5502b 100644 --- a/service/inspector2/validators.go +++ b/service/inspector2/validators.go @@ -2470,6 +2470,11 @@ func validatePackageFilter(v *types.PackageFilter) error { invalidParams.AddNested("SourceLambdaLayerArn", err.(smithy.InvalidParamsError)) } } + if v.FilePath != nil { + if err := validateStringFilter(v.FilePath); err != nil { + invalidParams.AddNested("FilePath", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/lambda/types/enums.go b/service/lambda/types/enums.go index 545af9db16f..0541d3be93e 100644 --- a/service/lambda/types/enums.go +++ b/service/lambda/types/enums.go @@ -455,6 +455,7 @@ const ( RuntimeProvidedal2023 Runtime = "provided.al2023" RuntimePython312 Runtime = "python3.12" RuntimeJava21 Runtime = "java21" + RuntimePython313 Runtime = "python3.13" ) // Values returns all known values for Runtime. Note that this can be expanded in @@ -501,6 +502,7 @@ func (Runtime) Values() []Runtime { "provided.al2023", "python3.12", "java21", + "python3.13", } } diff --git a/service/opensearch/api_op_AssociatePackage.go b/service/opensearch/api_op_AssociatePackage.go index 775f62691c4..8642534387d 100644 --- a/service/opensearch/api_op_AssociatePackage.go +++ b/service/opensearch/api_op_AssociatePackage.go @@ -44,6 +44,14 @@ type AssociatePackageInput struct { // This member is required. PackageID *string + // The configuration for associating a package with an Amazon OpenSearch Service + // domain. + AssociationConfiguration *types.PackageAssociationConfiguration + + // A list of package IDs that must be associated with the domain before the + // package specified in the request can be associated. + PrerequisitePackageIDList []string + noSmithyDocumentSerde } diff --git a/service/opensearch/api_op_AssociatePackages.go b/service/opensearch/api_op_AssociatePackages.go new file mode 100644 index 00000000000..b2c37df79a6 --- /dev/null +++ b/service/opensearch/api_op_AssociatePackages.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package opensearch + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/opensearch/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Operation in the Amazon OpenSearch Service API for associating multiple +// packages with a domain simultaneously. +func (c *Client) AssociatePackages(ctx context.Context, params *AssociatePackagesInput, optFns ...func(*Options)) (*AssociatePackagesOutput, error) { + if params == nil { + params = &AssociatePackagesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AssociatePackages", params, optFns, c.addOperationAssociatePackagesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AssociatePackagesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AssociatePackagesInput struct { + + // The name of an OpenSearch Service domain. Domain names are unique across the + // domains owned by an account within an Amazon Web Services Region. + // + // This member is required. + DomainName *string + + // A list of packages and their prerequisites to be associated with a domain. + // + // This member is required. + PackageList []types.PackageDetailsForAssociation + + noSmithyDocumentSerde +} + +type AssociatePackagesOutput struct { + + // List of information about packages that are associated with a domain. + DomainPackageDetailsList []types.DomainPackageDetails + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAssociatePackagesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpAssociatePackages{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpAssociatePackages{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "AssociatePackages"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpAssociatePackagesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociatePackages(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opAssociatePackages(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "AssociatePackages", + } +} diff --git a/service/opensearch/api_op_CreatePackage.go b/service/opensearch/api_op_CreatePackage.go index 039d5342de4..25d8edd6e14 100644 --- a/service/opensearch/api_op_CreatePackage.go +++ b/service/opensearch/api_op_CreatePackage.go @@ -48,9 +48,23 @@ type CreatePackageInput struct { // This member is required. PackageType types.PackageType + // The version of the Amazon OpenSearch Service engine for which is compatible + // with the package. This can only be specified for package type ZIP-PLUGIN + EngineVersion *string + + // The configuration parameters for the package being created. + PackageConfiguration *types.PackageConfiguration + // Description of the package. PackageDescription *string + // The encryption parameters for the package being created. + PackageEncryptionOptions *types.PackageEncryptionOptions + + // The vending options for the package being created. They determine if the + // package can be vended to other users. + PackageVendingOptions *types.PackageVendingOptions + noSmithyDocumentSerde } diff --git a/service/opensearch/api_op_DissociatePackages.go b/service/opensearch/api_op_DissociatePackages.go new file mode 100644 index 00000000000..e877f3c5197 --- /dev/null +++ b/service/opensearch/api_op_DissociatePackages.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package opensearch + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/opensearch/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Dissociates multiple packages from a domain simulatneously. +func (c *Client) DissociatePackages(ctx context.Context, params *DissociatePackagesInput, optFns ...func(*Options)) (*DissociatePackagesOutput, error) { + if params == nil { + params = &DissociatePackagesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DissociatePackages", params, optFns, c.addOperationDissociatePackagesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DissociatePackagesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DissociatePackagesInput struct { + + // The name of an OpenSearch Service domain. Domain names are unique across the + // domains owned by an account within an Amazon Web Services Region. + // + // This member is required. + DomainName *string + + // A list of package IDs to be dissociated from a domain. + // + // This member is required. + PackageList []string + + noSmithyDocumentSerde +} + +type DissociatePackagesOutput struct { + + // A list of package details for the packages that were dissociated from the + // domain. + DomainPackageDetailsList []types.DomainPackageDetails + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDissociatePackagesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDissociatePackages{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDissociatePackages{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DissociatePackages"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDissociatePackagesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDissociatePackages(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDissociatePackages(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DissociatePackages", + } +} diff --git a/service/opensearch/api_op_UpdatePackage.go b/service/opensearch/api_op_UpdatePackage.go index ceb40f6eef5..e151d88bee5 100644 --- a/service/opensearch/api_op_UpdatePackage.go +++ b/service/opensearch/api_op_UpdatePackage.go @@ -47,9 +47,15 @@ type UpdatePackageInput struct { // GetPackageVersionHistoryResponse . CommitMessage *string + // The updated configuration details for a package. + PackageConfiguration *types.PackageConfiguration + // A new description of the package. PackageDescription *string + // Encryption options for a package. + PackageEncryptionOptions *types.PackageEncryptionOptions + noSmithyDocumentSerde } diff --git a/service/opensearch/api_op_UpdatePackageScope.go b/service/opensearch/api_op_UpdatePackageScope.go new file mode 100644 index 00000000000..9e28ee599f9 --- /dev/null +++ b/service/opensearch/api_op_UpdatePackageScope.go @@ -0,0 +1,175 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package opensearch + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/opensearch/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates the scope of a package. Scope of the package defines users who can view +// and associate a package. +func (c *Client) UpdatePackageScope(ctx context.Context, params *UpdatePackageScopeInput, optFns ...func(*Options)) (*UpdatePackageScopeOutput, error) { + if params == nil { + params = &UpdatePackageScopeInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdatePackageScope", params, optFns, c.addOperationUpdatePackageScopeMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdatePackageScopeOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdatePackageScopeInput struct { + + // The operation to perform on the package scope (e.g., add/remove/override + // users). + // + // This member is required. + Operation types.PackageScopeOperationEnum + + // ID of the package whose scope is being updated. + // + // This member is required. + PackageID *string + + // List of users to be added or removed from the package scope. + // + // This member is required. + PackageUserList []string + + noSmithyDocumentSerde +} + +type UpdatePackageScopeOutput struct { + + // The operation that was performed on the package scope. + Operation types.PackageScopeOperationEnum + + // ID of the package whose scope was updated. + PackageID *string + + // List of users who have access to the package after the scope update. + PackageUserList []string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdatePackageScopeMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdatePackageScope{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdatePackageScope{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdatePackageScope"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdatePackageScopeValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdatePackageScope(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdatePackageScope(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdatePackageScope", + } +} diff --git a/service/opensearch/deserializers.go b/service/opensearch/deserializers.go index e476959475a..704d3784ff6 100644 --- a/service/opensearch/deserializers.go +++ b/service/opensearch/deserializers.go @@ -633,6 +633,173 @@ func awsRestjson1_deserializeOpDocumentAssociatePackageOutput(v **AssociatePacka return nil } +type awsRestjson1_deserializeOpAssociatePackages struct { +} + +func (*awsRestjson1_deserializeOpAssociatePackages) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpAssociatePackages) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorAssociatePackages(response, &metadata) + } + output := &AssociatePackagesOutput{} + 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_deserializeOpDocumentAssociatePackagesOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorAssociatePackages(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BaseException", errorCode): + return awsRestjson1_deserializeErrorBaseException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("DisabledOperationException", errorCode): + return awsRestjson1_deserializeErrorDisabledOperationException(response, errorBody) + + case strings.EqualFold("InternalException", errorCode): + return awsRestjson1_deserializeErrorInternalException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentAssociatePackagesOutput(v **AssociatePackagesOutput, 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 *AssociatePackagesOutput + if *v == nil { + sv = &AssociatePackagesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DomainPackageDetailsList": + if err := awsRestjson1_deserializeDocumentDomainPackageDetailsList(&sv.DomainPackageDetailsList, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpAuthorizeVpcEndpointAccess struct { } @@ -5915,14 +6082,14 @@ func awsRestjson1_deserializeOpDocumentDissociatePackageOutput(v **DissociatePac return nil } -type awsRestjson1_deserializeOpGetApplication struct { +type awsRestjson1_deserializeOpDissociatePackages struct { } -func (*awsRestjson1_deserializeOpGetApplication) ID() string { +func (*awsRestjson1_deserializeOpDissociatePackages) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetApplication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDissociatePackages) 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) @@ -5940,9 +6107,9 @@ func (m *awsRestjson1_deserializeOpGetApplication) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetApplication(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDissociatePackages(response, &metadata) } - output := &GetApplicationOutput{} + output := &DissociatePackagesOutput{} out.Result = output var buff [1024]byte @@ -5963,7 +6130,7 @@ func (m *awsRestjson1_deserializeOpGetApplication) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetApplicationOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDissociatePackagesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5977,7 +6144,7 @@ func (m *awsRestjson1_deserializeOpGetApplication) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDissociatePackages(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)} @@ -6018,12 +6185,12 @@ func awsRestjson1_deserializeOpErrorGetApplication(response *smithyhttp.Response } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("BaseException", errorCode): return awsRestjson1_deserializeErrorBaseException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("DisabledOperationException", errorCode): return awsRestjson1_deserializeErrorDisabledOperationException(response, errorBody) @@ -6046,7 +6213,7 @@ func awsRestjson1_deserializeOpErrorGetApplication(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentGetApplicationOutput(v **GetApplicationOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDissociatePackagesOutput(v **DissociatePackagesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6059,72 +6226,239 @@ func awsRestjson1_deserializeOpDocumentGetApplicationOutput(v **GetApplicationOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetApplicationOutput + var sv *DissociatePackagesOutput if *v == nil { - sv = &GetApplicationOutput{} + sv = &DissociatePackagesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "appConfigs": - if err := awsRestjson1_deserializeDocumentAppConfigs(&sv.AppConfigs, value); err != nil { + case "DomainPackageDetailsList": + if err := awsRestjson1_deserializeDocumentDomainPackageDetailsList(&sv.DomainPackageDetailsList, value); err != nil { return err } - case "arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ARN to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } + default: + _, _ = key, value - case "createdAt": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreatedAt = ptr.Time(smithytime.ParseEpochSeconds(f64)) + } + } + *v = sv + return nil +} - default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) +type awsRestjson1_deserializeOpGetApplication struct { +} - } - } +func (*awsRestjson1_deserializeOpGetApplication) ID() string { + return "OperationDeserializer" +} - case "dataSources": - if err := awsRestjson1_deserializeDocumentDataSources(&sv.DataSources, value); err != nil { - return err - } +func (m *awsRestjson1_deserializeOpGetApplication) 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 + } - case "endpoint": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.Endpoint = ptr.String(jtv) - } + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } - case "iamIdentityCenterOptions": - if err := awsRestjson1_deserializeDocumentIamIdentityCenterOptions(&sv.IamIdentityCenterOptions, value); err != nil { - return err - } + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorGetApplication(response, &metadata) + } + output := &GetApplicationOutput{} + out.Result = output - case "id": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Id to be of type string, got %T instead", value) - } - sv.Id = ptr.String(jtv) - } + 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_deserializeOpDocumentGetApplicationOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorGetApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("BaseException", errorCode): + return awsRestjson1_deserializeErrorBaseException(response, errorBody) + + case strings.EqualFold("DisabledOperationException", errorCode): + return awsRestjson1_deserializeErrorDisabledOperationException(response, errorBody) + + case strings.EqualFold("InternalException", errorCode): + return awsRestjson1_deserializeErrorInternalException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentGetApplicationOutput(v **GetApplicationOutput, 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 *GetApplicationOutput + if *v == nil { + sv = &GetApplicationOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "appConfigs": + if err := awsRestjson1_deserializeDocumentAppConfigs(&sv.AppConfigs, value); err != nil { + return err + } + + case "arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "createdAt": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreatedAt = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "dataSources": + if err := awsRestjson1_deserializeDocumentDataSources(&sv.DataSources, value); err != nil { + return err + } + + case "endpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Endpoint = ptr.String(jtv) + } + + case "iamIdentityCenterOptions": + if err := awsRestjson1_deserializeDocumentIamIdentityCenterOptions(&sv.IamIdentityCenterOptions, value); err != nil { + return err + } + + case "id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Id to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } case "lastUpdatedAt": if value != nil { @@ -11111,14 +11445,14 @@ func awsRestjson1_deserializeOpDocumentUpdatePackageOutput(v **UpdatePackageOutp return nil } -type awsRestjson1_deserializeOpUpdateScheduledAction struct { +type awsRestjson1_deserializeOpUpdatePackageScope struct { } -func (*awsRestjson1_deserializeOpUpdateScheduledAction) ID() string { +func (*awsRestjson1_deserializeOpUpdatePackageScope) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateScheduledAction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdatePackageScope) 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) @@ -11136,9 +11470,9 @@ func (m *awsRestjson1_deserializeOpUpdateScheduledAction) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateScheduledAction(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdatePackageScope(response, &metadata) } - output := &UpdateScheduledActionOutput{} + output := &UpdatePackageScopeOutput{} out.Result = output var buff [1024]byte @@ -11159,7 +11493,7 @@ func (m *awsRestjson1_deserializeOpUpdateScheduledAction) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateScheduledActionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdatePackageScopeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11173,7 +11507,7 @@ func (m *awsRestjson1_deserializeOpUpdateScheduledAction) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateScheduledAction(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdatePackageScope(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)} @@ -11217,21 +11551,15 @@ func awsRestjson1_deserializeOpErrorUpdateScheduledAction(response *smithyhttp.R case strings.EqualFold("BaseException", errorCode): return awsRestjson1_deserializeErrorBaseException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("DisabledOperationException", errorCode): + return awsRestjson1_deserializeErrorDisabledOperationException(response, errorBody) case strings.EqualFold("InternalException", errorCode): return awsRestjson1_deserializeErrorInternalException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("SlotNotAvailableException", errorCode): - return awsRestjson1_deserializeErrorSlotNotAvailableException(response, errorBody) - case strings.EqualFold("ValidationException", errorCode): return awsRestjson1_deserializeErrorValidationException(response, errorBody) @@ -11245,7 +11573,7 @@ func awsRestjson1_deserializeOpErrorUpdateScheduledAction(response *smithyhttp.R } } -func awsRestjson1_deserializeOpDocumentUpdateScheduledActionOutput(v **UpdateScheduledActionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdatePackageScopeOutput(v **UpdatePackageScopeOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11258,17 +11586,35 @@ func awsRestjson1_deserializeOpDocumentUpdateScheduledActionOutput(v **UpdateSch return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateScheduledActionOutput + var sv *UpdatePackageScopeOutput if *v == nil { - sv = &UpdateScheduledActionOutput{} + sv = &UpdatePackageScopeOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ScheduledAction": - if err := awsRestjson1_deserializeDocumentScheduledAction(&sv.ScheduledAction, value); err != nil { + case "Operation": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PackageScopeOperationEnum to be of type string, got %T instead", value) + } + sv.Operation = types.PackageScopeOperationEnum(jtv) + } + + case "PackageID": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PackageID to be of type string, got %T instead", value) + } + sv.PackageID = ptr.String(jtv) + } + + case "PackageUserList": + if err := awsRestjson1_deserializeDocumentPackageUserList(&sv.PackageUserList, value); err != nil { return err } @@ -11281,14 +11627,14 @@ func awsRestjson1_deserializeOpDocumentUpdateScheduledActionOutput(v **UpdateSch return nil } -type awsRestjson1_deserializeOpUpdateVpcEndpoint struct { +type awsRestjson1_deserializeOpUpdateScheduledAction struct { } -func (*awsRestjson1_deserializeOpUpdateVpcEndpoint) ID() string { +func (*awsRestjson1_deserializeOpUpdateScheduledAction) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateVpcEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateScheduledAction) 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) @@ -11306,9 +11652,9 @@ func (m *awsRestjson1_deserializeOpUpdateVpcEndpoint) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateVpcEndpoint(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateScheduledAction(response, &metadata) } - output := &UpdateVpcEndpointOutput{} + output := &UpdateScheduledActionOutput{} out.Result = output var buff [1024]byte @@ -11329,7 +11675,7 @@ func (m *awsRestjson1_deserializeOpUpdateVpcEndpoint) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateVpcEndpointOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateScheduledActionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11343,7 +11689,7 @@ func (m *awsRestjson1_deserializeOpUpdateVpcEndpoint) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateVpcEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateScheduledAction(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)} @@ -11390,15 +11736,18 @@ func awsRestjson1_deserializeOpErrorUpdateVpcEndpoint(response *smithyhttp.Respo case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("DisabledOperationException", errorCode): - return awsRestjson1_deserializeErrorDisabledOperationException(response, errorBody) - case strings.EqualFold("InternalException", errorCode): return awsRestjson1_deserializeErrorInternalException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("SlotNotAvailableException", errorCode): + return awsRestjson1_deserializeErrorSlotNotAvailableException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): return awsRestjson1_deserializeErrorValidationException(response, errorBody) @@ -11412,7 +11761,7 @@ func awsRestjson1_deserializeOpErrorUpdateVpcEndpoint(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpDocumentUpdateVpcEndpointOutput(v **UpdateVpcEndpointOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateScheduledActionOutput(v **UpdateScheduledActionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11425,17 +11774,17 @@ func awsRestjson1_deserializeOpDocumentUpdateVpcEndpointOutput(v **UpdateVpcEndp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateVpcEndpointOutput + var sv *UpdateScheduledActionOutput if *v == nil { - sv = &UpdateVpcEndpointOutput{} + sv = &UpdateScheduledActionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "VpcEndpoint": - if err := awsRestjson1_deserializeDocumentVpcEndpoint(&sv.VpcEndpoint, value); err != nil { + case "ScheduledAction": + if err := awsRestjson1_deserializeDocumentScheduledAction(&sv.ScheduledAction, value); err != nil { return err } @@ -11448,14 +11797,14 @@ func awsRestjson1_deserializeOpDocumentUpdateVpcEndpointOutput(v **UpdateVpcEndp return nil } -type awsRestjson1_deserializeOpUpgradeDomain struct { +type awsRestjson1_deserializeOpUpdateVpcEndpoint struct { } -func (*awsRestjson1_deserializeOpUpgradeDomain) ID() string { +func (*awsRestjson1_deserializeOpUpdateVpcEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpgradeDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateVpcEndpoint) 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) @@ -11473,7 +11822,174 @@ func (m *awsRestjson1_deserializeOpUpgradeDomain) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpgradeDomain(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateVpcEndpoint(response, &metadata) + } + output := &UpdateVpcEndpointOutput{} + 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_deserializeOpDocumentUpdateVpcEndpointOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdateVpcEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("BaseException", errorCode): + return awsRestjson1_deserializeErrorBaseException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("DisabledOperationException", errorCode): + return awsRestjson1_deserializeErrorDisabledOperationException(response, errorBody) + + case strings.EqualFold("InternalException", errorCode): + return awsRestjson1_deserializeErrorInternalException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentUpdateVpcEndpointOutput(v **UpdateVpcEndpointOutput, 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 *UpdateVpcEndpointOutput + if *v == nil { + sv = &UpdateVpcEndpointOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "VpcEndpoint": + if err := awsRestjson1_deserializeDocumentVpcEndpoint(&sv.VpcEndpoint, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpUpgradeDomain struct { +} + +func (*awsRestjson1_deserializeOpUpgradeDomain) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpgradeDomain) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUpgradeDomain(response, &metadata) } output := &UpgradeDomainOutput{} out.Result = output @@ -15552,6 +16068,11 @@ func awsRestjson1_deserializeDocumentDomainPackageDetails(v **types.DomainPackag for key, value := range shape { switch key { + case "AssociationConfiguration": + if err := awsRestjson1_deserializeDocumentPackageAssociationConfiguration(&sv.AssociationConfiguration, value); err != nil { + return err + } + case "DomainName": if value != nil { jtv, ok := value.(string) @@ -15627,6 +16148,11 @@ func awsRestjson1_deserializeDocumentDomainPackageDetails(v **types.DomainPackag sv.PackageVersion = ptr.String(jtv) } + case "PrerequisitePackageIDList": + if err := awsRestjson1_deserializeDocumentPackageIDList(&sv.PrerequisitePackageIDList, value); err != nil { + return err + } + case "ReferencePath": if value != nil { jtv, ok := value.(string) @@ -17420,6 +17946,55 @@ func awsRestjson1_deserializeDocumentJWTOptionsOutput(v **types.JWTOptionsOutput return nil } +func awsRestjson1_deserializeDocumentKeyStoreAccessOption(v **types.KeyStoreAccessOption, 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.KeyStoreAccessOption + if *v == nil { + sv = &types.KeyStoreAccessOption{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "KeyAccessRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoleArn to be of type string, got %T instead", value) + } + sv.KeyAccessRoleArn = ptr.String(jtv) + } + + case "KeyStoreAccessEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.KeyStoreAccessEnabled = ptr.Bool(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentLimitExceededException(v **types.LimitExceededException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -18451,6 +19026,109 @@ func awsRestjson1_deserializeDocumentOutboundConnectionStatus(v **types.Outbound return nil } +func awsRestjson1_deserializeDocumentPackageAssociationConfiguration(v **types.PackageAssociationConfiguration, 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.PackageAssociationConfiguration + if *v == nil { + sv = &types.PackageAssociationConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "KeyStoreAccessOption": + if err := awsRestjson1_deserializeDocumentKeyStoreAccessOption(&sv.KeyStoreAccessOption, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentPackageConfiguration(v **types.PackageConfiguration, 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.PackageConfiguration + if *v == nil { + sv = &types.PackageConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ConfigurationRequirement": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RequirementLevel to be of type string, got %T instead", value) + } + sv.ConfigurationRequirement = types.RequirementLevel(jtv) + } + + case "LicenseFilepath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LicenseFilepath to be of type string, got %T instead", value) + } + sv.LicenseFilepath = ptr.String(jtv) + } + + case "LicenseRequirement": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RequirementLevel to be of type string, got %T instead", value) + } + sv.LicenseRequirement = types.RequirementLevel(jtv) + } + + case "RequiresRestartForConfigurationUpdate": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.RequiresRestartForConfigurationUpdate = ptr.Bool(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentPackageDetails(v **types.PackageDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -18473,6 +19151,16 @@ func awsRestjson1_deserializeDocumentPackageDetails(v **types.PackageDetails, va for key, value := range shape { switch key { + case "AllowListedUserList": + if err := awsRestjson1_deserializeDocumentPackageUserList(&sv.AllowListedUserList, value); err != nil { + return err + } + + case "AvailablePackageConfiguration": + if err := awsRestjson1_deserializeDocumentPackageConfiguration(&sv.AvailablePackageConfiguration, value); err != nil { + return err + } + case "AvailablePackageVersion": if value != nil { jtv, ok := value.(string) @@ -18542,6 +19230,11 @@ func awsRestjson1_deserializeDocumentPackageDetails(v **types.PackageDetails, va sv.PackageDescription = ptr.String(jtv) } + case "PackageEncryptionOptions": + if err := awsRestjson1_deserializeDocumentPackageEncryptionOptions(&sv.PackageEncryptionOptions, value); err != nil { + return err + } + case "PackageID": if value != nil { jtv, ok := value.(string) @@ -18560,6 +19253,15 @@ func awsRestjson1_deserializeDocumentPackageDetails(v **types.PackageDetails, va sv.PackageName = ptr.String(jtv) } + case "PackageOwner": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PackageOwner to be of type string, got %T instead", value) + } + sv.PackageOwner = ptr.String(jtv) + } + case "PackageStatus": if value != nil { jtv, ok := value.(string) @@ -18578,6 +19280,11 @@ func awsRestjson1_deserializeDocumentPackageDetails(v **types.PackageDetails, va sv.PackageType = types.PackageType(jtv) } + case "PackageVendingOptions": + if err := awsRestjson1_deserializeDocumentPackageVendingOptions(&sv.PackageVendingOptions, value); err != nil { + return err + } + default: _, _ = key, value @@ -18621,6 +19328,167 @@ func awsRestjson1_deserializeDocumentPackageDetailsList(v *[]types.PackageDetail return nil } +func awsRestjson1_deserializeDocumentPackageEncryptionOptions(v **types.PackageEncryptionOptions, 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.PackageEncryptionOptions + if *v == nil { + sv = &types.PackageEncryptionOptions{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EncryptionEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.EncryptionEnabled = ptr.Bool(jtv) + } + + case "KmsKeyIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KmsKeyId to be of type string, got %T instead", value) + } + sv.KmsKeyIdentifier = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentPackageIDList(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PackageID to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentPackageUserList(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PackageUser to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentPackageVendingOptions(v **types.PackageVendingOptions, 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.PackageVendingOptions + if *v == nil { + sv = &types.PackageVendingOptions{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "VendingEnabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.VendingEnabled = ptr.Bool(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentPackageVersionHistory(v **types.PackageVersionHistory, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -18668,6 +19536,11 @@ func awsRestjson1_deserializeDocumentPackageVersionHistory(v **types.PackageVers } } + case "PackageConfiguration": + if err := awsRestjson1_deserializeDocumentPackageConfiguration(&sv.PackageConfiguration, value); err != nil { + return err + } + case "PackageVersion": if value != nil { jtv, ok := value.(string) diff --git a/service/opensearch/generated.json b/service/opensearch/generated.json index 25d3a9c4136..69aad274525 100644 --- a/service/opensearch/generated.json +++ b/service/opensearch/generated.json @@ -12,6 +12,7 @@ "api_op_AddDataSource.go", "api_op_AddTags.go", "api_op_AssociatePackage.go", + "api_op_AssociatePackages.go", "api_op_AuthorizeVpcEndpointAccess.go", "api_op_CancelDomainConfigChange.go", "api_op_CancelServiceSoftwareUpdate.go", @@ -43,6 +44,7 @@ "api_op_DescribeReservedInstances.go", "api_op_DescribeVpcEndpoints.go", "api_op_DissociatePackage.go", + "api_op_DissociatePackages.go", "api_op_GetApplication.go", "api_op_GetCompatibleVersions.go", "api_op_GetDataSource.go", @@ -73,6 +75,7 @@ "api_op_UpdateDataSource.go", "api_op_UpdateDomainConfig.go", "api_op_UpdatePackage.go", + "api_op_UpdatePackageScope.go", "api_op_UpdateScheduledAction.go", "api_op_UpdateVpcEndpoint.go", "api_op_UpgradeDomain.go", diff --git a/service/opensearch/serializers.go b/service/opensearch/serializers.go index 5ba1917f17c..37799f6a407 100644 --- a/service/opensearch/serializers.go +++ b/service/opensearch/serializers.go @@ -326,6 +326,17 @@ func (m *awsRestjson1_serializeOpAssociatePackage) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: err} } + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentAssociatePackageInput(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} } @@ -361,6 +372,115 @@ func awsRestjson1_serializeOpHttpBindingsAssociatePackageInput(v *AssociatePacka return nil } +func awsRestjson1_serializeOpDocumentAssociatePackageInput(v *AssociatePackageInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AssociationConfiguration != nil { + ok := object.Key("AssociationConfiguration") + if err := awsRestjson1_serializeDocumentPackageAssociationConfiguration(v.AssociationConfiguration, ok); err != nil { + return err + } + } + + if v.PrerequisitePackageIDList != nil { + ok := object.Key("PrerequisitePackageIDList") + if err := awsRestjson1_serializeDocumentPackageIDList(v.PrerequisitePackageIDList, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpAssociatePackages struct { +} + +func (*awsRestjson1_serializeOpAssociatePackages) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpAssociatePackages) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*AssociatePackagesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2021-01-01/packages/associateMultiple") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentAssociatePackagesInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsAssociatePackagesInput(v *AssociatePackagesInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentAssociatePackagesInput(v *AssociatePackagesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DomainName != nil { + ok := object.Key("DomainName") + ok.String(*v.DomainName) + } + + if v.PackageList != nil { + ok := object.Key("PackageList") + if err := awsRestjson1_serializeDocumentPackageDetailsForAssociationList(v.PackageList, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpAuthorizeVpcEndpointAccess struct { } @@ -1144,11 +1264,30 @@ func awsRestjson1_serializeOpDocumentCreatePackageInput(v *CreatePackageInput, v object := value.Object() defer object.Close() + if v.EngineVersion != nil { + ok := object.Key("EngineVersion") + ok.String(*v.EngineVersion) + } + + if v.PackageConfiguration != nil { + ok := object.Key("PackageConfiguration") + if err := awsRestjson1_serializeDocumentPackageConfiguration(v.PackageConfiguration, ok); err != nil { + return err + } + } + if v.PackageDescription != nil { ok := object.Key("PackageDescription") ok.String(*v.PackageDescription) } + if v.PackageEncryptionOptions != nil { + ok := object.Key("PackageEncryptionOptions") + if err := awsRestjson1_serializeDocumentPackageEncryptionOptions(v.PackageEncryptionOptions, ok); err != nil { + return err + } + } + if v.PackageName != nil { ok := object.Key("PackageName") ok.String(*v.PackageName) @@ -1166,6 +1305,13 @@ func awsRestjson1_serializeOpDocumentCreatePackageInput(v *CreatePackageInput, v ok.String(string(v.PackageType)) } + if v.PackageVendingOptions != nil { + ok := object.Key("PackageVendingOptions") + if err := awsRestjson1_serializeDocumentPackageVendingOptions(v.PackageVendingOptions, ok); err != nil { + return err + } + } + return nil } @@ -3062,6 +3208,94 @@ func awsRestjson1_serializeOpHttpBindingsDissociatePackageInput(v *DissociatePac return nil } +type awsRestjson1_serializeOpDissociatePackages struct { +} + +func (*awsRestjson1_serializeOpDissociatePackages) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDissociatePackages) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DissociatePackagesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2021-01-01/packages/dissociateMultiple") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentDissociatePackagesInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDissociatePackagesInput(v *DissociatePackagesInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentDissociatePackagesInput(v *DissociatePackagesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DomainName != nil { + ok := object.Key("DomainName") + ok.String(*v.DomainName) + } + + if v.PackageList != nil { + ok := object.Key("PackageList") + if err := awsRestjson1_serializeDocumentPackageIDList(v.PackageList, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpGetApplication struct { } @@ -5619,11 +5853,25 @@ func awsRestjson1_serializeOpDocumentUpdatePackageInput(v *UpdatePackageInput, v ok.String(*v.CommitMessage) } + if v.PackageConfiguration != nil { + ok := object.Key("PackageConfiguration") + if err := awsRestjson1_serializeDocumentPackageConfiguration(v.PackageConfiguration, ok); err != nil { + return err + } + } + if v.PackageDescription != nil { ok := object.Key("PackageDescription") ok.String(*v.PackageDescription) } + if v.PackageEncryptionOptions != nil { + ok := object.Key("PackageEncryptionOptions") + if err := awsRestjson1_serializeDocumentPackageEncryptionOptions(v.PackageEncryptionOptions, ok); err != nil { + return err + } + } + if v.PackageID != nil { ok := object.Key("PackageID") ok.String(*v.PackageID) @@ -5639,6 +5887,99 @@ func awsRestjson1_serializeOpDocumentUpdatePackageInput(v *UpdatePackageInput, v return nil } +type awsRestjson1_serializeOpUpdatePackageScope struct { +} + +func (*awsRestjson1_serializeOpUpdatePackageScope) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdatePackageScope) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdatePackageScopeInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2021-01-01/packages/updateScope") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdatePackageScopeInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUpdatePackageScopeInput(v *UpdatePackageScopeInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdatePackageScopeInput(v *UpdatePackageScopeInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Operation) > 0 { + ok := object.Key("Operation") + ok.String(string(v.Operation)) + } + + if v.PackageID != nil { + ok := object.Key("PackageID") + ok.String(*v.PackageID) + } + + if v.PackageUserList != nil { + ok := object.Key("PackageUserList") + if err := awsRestjson1_serializeDocumentPackageUserList(v.PackageUserList, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpUpdateScheduledAction struct { } @@ -6614,6 +6955,23 @@ func awsRestjson1_serializeDocumentJWTOptionsInput(v *types.JWTOptionsInput, val return nil } +func awsRestjson1_serializeDocumentKeyStoreAccessOption(v *types.KeyStoreAccessOption, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyAccessRoleArn != nil { + ok := object.Key("KeyAccessRoleArn") + ok.String(*v.KeyAccessRoleArn) + } + + if v.KeyStoreAccessEnabled != nil { + ok := object.Key("KeyStoreAccessEnabled") + ok.Boolean(*v.KeyStoreAccessEnabled) + } + + return nil +} + func awsRestjson1_serializeDocumentLogPublishingOption(v *types.LogPublishingOption, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -6778,6 +7136,114 @@ func awsRestjson1_serializeDocumentOffPeakWindowOptions(v *types.OffPeakWindowOp return nil } +func awsRestjson1_serializeDocumentPackageAssociationConfiguration(v *types.PackageAssociationConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyStoreAccessOption != nil { + ok := object.Key("KeyStoreAccessOption") + if err := awsRestjson1_serializeDocumentKeyStoreAccessOption(v.KeyStoreAccessOption, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentPackageConfiguration(v *types.PackageConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ConfigurationRequirement) > 0 { + ok := object.Key("ConfigurationRequirement") + ok.String(string(v.ConfigurationRequirement)) + } + + if v.LicenseFilepath != nil { + ok := object.Key("LicenseFilepath") + ok.String(*v.LicenseFilepath) + } + + if len(v.LicenseRequirement) > 0 { + ok := object.Key("LicenseRequirement") + ok.String(string(v.LicenseRequirement)) + } + + if v.RequiresRestartForConfigurationUpdate != nil { + ok := object.Key("RequiresRestartForConfigurationUpdate") + ok.Boolean(*v.RequiresRestartForConfigurationUpdate) + } + + return nil +} + +func awsRestjson1_serializeDocumentPackageDetailsForAssociation(v *types.PackageDetailsForAssociation, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AssociationConfiguration != nil { + ok := object.Key("AssociationConfiguration") + if err := awsRestjson1_serializeDocumentPackageAssociationConfiguration(v.AssociationConfiguration, ok); err != nil { + return err + } + } + + if v.PackageID != nil { + ok := object.Key("PackageID") + ok.String(*v.PackageID) + } + + if v.PrerequisitePackageIDList != nil { + ok := object.Key("PrerequisitePackageIDList") + if err := awsRestjson1_serializeDocumentPackageIDList(v.PrerequisitePackageIDList, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentPackageDetailsForAssociationList(v []types.PackageDetailsForAssociation, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentPackageDetailsForAssociation(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentPackageEncryptionOptions(v *types.PackageEncryptionOptions, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EncryptionEnabled != nil { + ok := object.Key("EncryptionEnabled") + ok.Boolean(*v.EncryptionEnabled) + } + + if v.KmsKeyIdentifier != nil { + ok := object.Key("KmsKeyIdentifier") + ok.String(*v.KmsKeyIdentifier) + } + + return nil +} + +func awsRestjson1_serializeDocumentPackageIDList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentPackageSource(v *types.PackageSource, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -6795,6 +7261,29 @@ func awsRestjson1_serializeDocumentPackageSource(v *types.PackageSource, value s return nil } +func awsRestjson1_serializeDocumentPackageUserList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentPackageVendingOptions(v *types.PackageVendingOptions, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.VendingEnabled != nil { + ok := object.Key("VendingEnabled") + ok.Boolean(*v.VendingEnabled) + } + + return nil +} + func awsRestjson1_serializeDocumentS3GlueDataCatalog(v *types.S3GlueDataCatalog, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/opensearch/snapshot/api_op_AssociatePackages.go.snap b/service/opensearch/snapshot/api_op_AssociatePackages.go.snap new file mode 100644 index 00000000000..2d0ef4ab239 --- /dev/null +++ b/service/opensearch/snapshot/api_op_AssociatePackages.go.snap @@ -0,0 +1,41 @@ +AssociatePackages + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/opensearch/snapshot/api_op_DissociatePackages.go.snap b/service/opensearch/snapshot/api_op_DissociatePackages.go.snap new file mode 100644 index 00000000000..9ba058b26c8 --- /dev/null +++ b/service/opensearch/snapshot/api_op_DissociatePackages.go.snap @@ -0,0 +1,41 @@ +DissociatePackages + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/opensearch/snapshot/api_op_UpdatePackageScope.go.snap b/service/opensearch/snapshot/api_op_UpdatePackageScope.go.snap new file mode 100644 index 00000000000..ea221d5d646 --- /dev/null +++ b/service/opensearch/snapshot/api_op_UpdatePackageScope.go.snap @@ -0,0 +1,41 @@ +UpdatePackageScope + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/opensearch/snapshot_test.go b/service/opensearch/snapshot_test.go index 5463f14db4a..aee62e24bdc 100644 --- a/service/opensearch/snapshot_test.go +++ b/service/opensearch/snapshot_test.go @@ -110,6 +110,18 @@ func TestCheckSnapshot_AssociatePackage(t *testing.T) { } } +func TestCheckSnapshot_AssociatePackages(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssociatePackages(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "AssociatePackages") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_AuthorizeVpcEndpointAccess(t *testing.T) { svc := New(Options{}) _, err := svc.AuthorizeVpcEndpointAccess(context.Background(), nil, func(o *Options) { @@ -482,6 +494,18 @@ func TestCheckSnapshot_DissociatePackage(t *testing.T) { } } +func TestCheckSnapshot_DissociatePackages(t *testing.T) { + svc := New(Options{}) + _, err := svc.DissociatePackages(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DissociatePackages") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GetApplication(t *testing.T) { svc := New(Options{}) _, err := svc.GetApplication(context.Background(), nil, func(o *Options) { @@ -842,6 +866,18 @@ func TestCheckSnapshot_UpdatePackage(t *testing.T) { } } +func TestCheckSnapshot_UpdatePackageScope(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdatePackageScope(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdatePackageScope") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateScheduledAction(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateScheduledAction(context.Background(), nil, func(o *Options) { @@ -925,6 +961,18 @@ func TestUpdateSnapshot_AssociatePackage(t *testing.T) { } } +func TestUpdateSnapshot_AssociatePackages(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssociatePackages(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "AssociatePackages") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_AuthorizeVpcEndpointAccess(t *testing.T) { svc := New(Options{}) _, err := svc.AuthorizeVpcEndpointAccess(context.Background(), nil, func(o *Options) { @@ -1297,6 +1345,18 @@ func TestUpdateSnapshot_DissociatePackage(t *testing.T) { } } +func TestUpdateSnapshot_DissociatePackages(t *testing.T) { + svc := New(Options{}) + _, err := svc.DissociatePackages(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DissociatePackages") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GetApplication(t *testing.T) { svc := New(Options{}) _, err := svc.GetApplication(context.Background(), nil, func(o *Options) { @@ -1657,6 +1717,18 @@ func TestUpdateSnapshot_UpdatePackage(t *testing.T) { } } +func TestUpdateSnapshot_UpdatePackageScope(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdatePackageScope(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdatePackageScope") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateScheduledAction(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateScheduledAction(context.Background(), nil, func(o *Options) { diff --git a/service/opensearch/types/enums.go b/service/opensearch/types/enums.go index b86a59cf06d..10bcd535555 100644 --- a/service/opensearch/types/enums.go +++ b/service/opensearch/types/enums.go @@ -304,6 +304,7 @@ const ( DescribePackagesFilterNamePackageStatus DescribePackagesFilterName = "PackageStatus" DescribePackagesFilterNamePackageType DescribePackagesFilterName = "PackageType" DescribePackagesFilterNameEngineVersion DescribePackagesFilterName = "EngineVersion" + DescribePackagesFilterNamePackageOwner DescribePackagesFilterName = "PackageOwner" ) // Values returns all known values for DescribePackagesFilterName. Note that this @@ -317,6 +318,7 @@ func (DescribePackagesFilterName) Values() []DescribePackagesFilterName { "PackageStatus", "PackageType", "EngineVersion", + "PackageOwner", } } @@ -1046,6 +1048,27 @@ func (OverallChangeStatus) Values() []OverallChangeStatus { } } +type PackageScopeOperationEnum string + +// Enum values for PackageScopeOperationEnum +const ( + PackageScopeOperationEnumAdd PackageScopeOperationEnum = "ADD" + PackageScopeOperationEnumOverride PackageScopeOperationEnum = "OVERRIDE" + PackageScopeOperationEnumRemove PackageScopeOperationEnum = "REMOVE" +) + +// Values returns all known values for PackageScopeOperationEnum. 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 (PackageScopeOperationEnum) Values() []PackageScopeOperationEnum { + return []PackageScopeOperationEnum{ + "ADD", + "OVERRIDE", + "REMOVE", + } +} + type PackageStatus string // Enum values for PackageStatus @@ -1081,8 +1104,10 @@ type PackageType string // Enum values for PackageType const ( - PackageTypeTxtDictionary PackageType = "TXT-DICTIONARY" - PackageTypeZipPlugin PackageType = "ZIP-PLUGIN" + PackageTypeTxtDictionary PackageType = "TXT-DICTIONARY" + PackageTypeZipPlugin PackageType = "ZIP-PLUGIN" + PackageTypePackageLicense PackageType = "PACKAGE-LICENSE" + PackageTypePackageConfig PackageType = "PACKAGE-CONFIG" ) // Values returns all known values for PackageType. Note that this can be expanded @@ -1093,6 +1118,8 @@ func (PackageType) Values() []PackageType { return []PackageType{ "TXT-DICTIONARY", "ZIP-PLUGIN", + "PACKAGE-LICENSE", + "PACKAGE-CONFIG", } } @@ -1134,6 +1161,27 @@ func (PropertyValueType) Values() []PropertyValueType { } } +type RequirementLevel string + +// Enum values for RequirementLevel +const ( + RequirementLevelRequired RequirementLevel = "REQUIRED" + RequirementLevelOptional RequirementLevel = "OPTIONAL" + RequirementLevelNone RequirementLevel = "NONE" +) + +// Values returns all known values for RequirementLevel. 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 (RequirementLevel) Values() []RequirementLevel { + return []RequirementLevel{ + "REQUIRED", + "OPTIONAL", + "NONE", + } +} + type ReservedInstancePaymentOption string // Enum values for ReservedInstancePaymentOption diff --git a/service/opensearch/types/types.go b/service/opensearch/types/types.go index b42fe4c4329..d8353921a8c 100644 --- a/service/opensearch/types/types.go +++ b/service/opensearch/types/types.go @@ -1015,6 +1015,10 @@ type DomainNodesStatus struct { // [Custom packages for Amazon OpenSearch Service]: https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html type DomainPackageDetails struct { + // The configuration for associating a package with an Amazon OpenSearch Service + // domain. + AssociationConfiguration *PackageAssociationConfiguration + // Name of the domain that the package is associated with. DomainName *string @@ -1039,6 +1043,10 @@ type DomainPackageDetails struct { // The current version of the package. PackageVersion *string + // A list of package IDs that must be associated with the domain before or with + // the package can be associated. + PrerequisitePackageIDList []string + // The relative path of the package on the OpenSearch Service cluster nodes. This // is synonym_path when the package is for synonym files. ReferencePath *string @@ -1633,6 +1641,21 @@ type JWTOptionsOutput struct { noSmithyDocumentSerde } +// The configuration parameters to enable access to the key store required by the +// package. +type KeyStoreAccessOption struct { + + // This indicates whether Key Store access is enabled + // + // This member is required. + KeyStoreAccessEnabled *bool + + // Role ARN to access the KeyStore Key + KeyAccessRoleArn *string + + noSmithyDocumentSerde +} + // Limits for a given instance type and for each of its roles. type Limits struct { @@ -1947,9 +1970,49 @@ type OutboundConnectionStatus struct { noSmithyDocumentSerde } +// The configuration for associating a package with a domain. +type PackageAssociationConfiguration struct { + + // The configuration parameters to enable accessing the key store required by the + // package. + KeyStoreAccessOption *KeyStoreAccessOption + + noSmithyDocumentSerde +} + +// The configuration parameters for a package. +type PackageConfiguration struct { + + // The configuration requirements for the package. + // + // This member is required. + ConfigurationRequirement RequirementLevel + + // The license requirements for the package. + // + // This member is required. + LicenseRequirement RequirementLevel + + // The relative file path for the license associated with the package. + LicenseFilepath *string + + // This indicates whether a B/G deployment is required for updating the + // configuration that the plugin is prerequisite for. + RequiresRestartForConfigurationUpdate *bool + + noSmithyDocumentSerde +} + // Basic information about a package. type PackageDetails struct { + // A list of users who are allowed to view and associate the package. This field + // is only visible to the owner of a package. + AllowListedUserList []string + + // This represents the available configuration parameters for the package. + AvailablePackageConfiguration *PackageConfiguration + // The package version. AvailablePackageVersion *string @@ -1973,12 +2036,19 @@ type PackageDetails struct { // User-specified description of the package. PackageDescription *string + // Package Encryption Options for a package. + PackageEncryptionOptions *PackageEncryptionOptions + // The unique identifier of the package. PackageID *string // The user-specified name of the package. PackageName *string + // The owner of the package who is allowed to create/update a package and add + // users to the package scope. + PackageOwner *string + // The current status of the package. The available options are AVAILABLE , COPYING // , COPY_FAILED , VALIDATNG , VALIDATION_FAILED , DELETING , and DELETE_FAILED . PackageStatus PackageStatus @@ -1986,6 +2056,41 @@ type PackageDetails struct { // The type of package. PackageType PackageType + // Package Vending Options for a package. + PackageVendingOptions *PackageVendingOptions + + noSmithyDocumentSerde +} + +// Details of a package that is associated with a domain. +type PackageDetailsForAssociation struct { + + // Internal ID of the package that you want to associate with a domain. + // + // This member is required. + PackageID *string + + // The configuration parameters for associating the package with a domain. + AssociationConfiguration *PackageAssociationConfiguration + + // List of package IDs that must be associated with the domain with or before the + // package can be associated. + PrerequisitePackageIDList []string + + noSmithyDocumentSerde +} + +// Encryption options for a package. +type PackageEncryptionOptions struct { + + // This indicates whether encryption is enabled for the package. + // + // This member is required. + EncryptionEnabled *bool + + // KMS key ID for encrypting the package. + KmsKeyIdentifier *string + noSmithyDocumentSerde } @@ -2001,6 +2106,19 @@ type PackageSource struct { noSmithyDocumentSerde } +// The vending options for a package to determine if the package can be used by +// other users. +type PackageVendingOptions struct { + + // This indicates whether vending is enabled for the package to determine if + // package can be used by other users. + // + // This member is required. + VendingEnabled *bool + + noSmithyDocumentSerde +} + // Details about a package version. type PackageVersionHistory struct { @@ -2010,6 +2128,9 @@ type PackageVersionHistory struct { // The date and time when the package was created. CreatedAt *time.Time + // The configuration details for a specific version of a package. + PackageConfiguration *PackageConfiguration + // The package version. PackageVersion *string diff --git a/service/opensearch/validators.go b/service/opensearch/validators.go index 14ffb5e0dc8..eb578522cde 100644 --- a/service/opensearch/validators.go +++ b/service/opensearch/validators.go @@ -90,6 +90,26 @@ func (m *validateOpAssociatePackage) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpAssociatePackages struct { +} + +func (*validateOpAssociatePackages) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAssociatePackages) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AssociatePackagesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAssociatePackagesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpAuthorizeVpcEndpointAccess struct { } @@ -610,6 +630,26 @@ func (m *validateOpDissociatePackage) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpDissociatePackages struct { +} + +func (*validateOpDissociatePackages) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDissociatePackages) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DissociatePackagesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDissociatePackagesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetApplication struct { } @@ -1110,6 +1150,26 @@ func (m *validateOpUpdatePackage) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpUpdatePackageScope struct { +} + +func (*validateOpUpdatePackageScope) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdatePackageScope) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdatePackageScopeInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdatePackageScopeInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateScheduledAction struct { } @@ -1186,6 +1246,10 @@ func addOpAssociatePackageValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpAssociatePackage{}, middleware.After) } +func addOpAssociatePackagesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAssociatePackages{}, middleware.After) +} + func addOpAuthorizeVpcEndpointAccessValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpAuthorizeVpcEndpointAccess{}, middleware.After) } @@ -1290,6 +1354,10 @@ func addOpDissociatePackageValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDissociatePackage{}, middleware.After) } +func addOpDissociatePackagesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDissociatePackages{}, middleware.After) +} + func addOpGetApplicationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetApplication{}, middleware.After) } @@ -1390,6 +1458,10 @@ func addOpUpdatePackageValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdatePackage{}, middleware.After) } +func addOpUpdatePackageScopeValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdatePackageScope{}, middleware.After) +} + func addOpUpdateScheduledActionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateScheduledAction{}, middleware.After) } @@ -1483,6 +1555,21 @@ func validateDomainInformationContainer(v *types.DomainInformationContainer) err } } +func validateKeyStoreAccessOption(v *types.KeyStoreAccessOption) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "KeyStoreAccessOption"} + if v.KeyStoreAccessEnabled == nil { + invalidParams.Add(smithy.NewErrParamRequired("KeyStoreAccessEnabled")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOffPeakWindow(v *types.OffPeakWindow) error { if v == nil { return nil @@ -1517,6 +1604,108 @@ func validateOffPeakWindowOptions(v *types.OffPeakWindowOptions) error { } } +func validatePackageAssociationConfiguration(v *types.PackageAssociationConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PackageAssociationConfiguration"} + if v.KeyStoreAccessOption != nil { + if err := validateKeyStoreAccessOption(v.KeyStoreAccessOption); err != nil { + invalidParams.AddNested("KeyStoreAccessOption", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePackageConfiguration(v *types.PackageConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PackageConfiguration"} + if len(v.LicenseRequirement) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("LicenseRequirement")) + } + if len(v.ConfigurationRequirement) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ConfigurationRequirement")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePackageDetailsForAssociation(v *types.PackageDetailsForAssociation) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PackageDetailsForAssociation"} + if v.PackageID == nil { + invalidParams.Add(smithy.NewErrParamRequired("PackageID")) + } + if v.AssociationConfiguration != nil { + if err := validatePackageAssociationConfiguration(v.AssociationConfiguration); err != nil { + invalidParams.AddNested("AssociationConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePackageDetailsForAssociationList(v []types.PackageDetailsForAssociation) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PackageDetailsForAssociationList"} + for i := range v { + if err := validatePackageDetailsForAssociation(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePackageEncryptionOptions(v *types.PackageEncryptionOptions) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PackageEncryptionOptions"} + if v.EncryptionEnabled == nil { + invalidParams.Add(smithy.NewErrParamRequired("EncryptionEnabled")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePackageVendingOptions(v *types.PackageVendingOptions) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PackageVendingOptions"} + if v.VendingEnabled == nil { + invalidParams.Add(smithy.NewErrParamRequired("VendingEnabled")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateSAMLIdp(v *types.SAMLIdp) error { if v == nil { return nil @@ -1668,6 +1857,33 @@ func validateOpAssociatePackageInput(v *AssociatePackageInput) error { if v.DomainName == nil { invalidParams.Add(smithy.NewErrParamRequired("DomainName")) } + if v.AssociationConfiguration != nil { + if err := validatePackageAssociationConfiguration(v.AssociationConfiguration); err != nil { + invalidParams.AddNested("AssociationConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpAssociatePackagesInput(v *AssociatePackagesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssociatePackagesInput"} + if v.PackageList == nil { + invalidParams.Add(smithy.NewErrParamRequired("PackageList")) + } else if v.PackageList != nil { + if err := validatePackageDetailsForAssociationList(v.PackageList); err != nil { + invalidParams.AddNested("PackageList", err.(smithy.InvalidParamsError)) + } + } + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1818,6 +2034,21 @@ func validateOpCreatePackageInput(v *CreatePackageInput) error { if v.PackageSource == nil { invalidParams.Add(smithy.NewErrParamRequired("PackageSource")) } + if v.PackageConfiguration != nil { + if err := validatePackageConfiguration(v.PackageConfiguration); err != nil { + invalidParams.AddNested("PackageConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.PackageVendingOptions != nil { + if err := validatePackageVendingOptions(v.PackageVendingOptions); err != nil { + invalidParams.AddNested("PackageVendingOptions", err.(smithy.InvalidParamsError)) + } + } + if v.PackageEncryptionOptions != nil { + if err := validatePackageEncryptionOptions(v.PackageEncryptionOptions); err != nil { + invalidParams.AddNested("PackageEncryptionOptions", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -2122,6 +2353,24 @@ func validateOpDissociatePackageInput(v *DissociatePackageInput) error { } } +func validateOpDissociatePackagesInput(v *DissociatePackagesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DissociatePackagesInput"} + if v.PackageList == nil { + invalidParams.Add(smithy.NewErrParamRequired("PackageList")) + } + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetApplicationInput(v *GetApplicationInput) error { if v == nil { return nil @@ -2529,6 +2778,37 @@ func validateOpUpdatePackageInput(v *UpdatePackageInput) error { if v.PackageSource == nil { invalidParams.Add(smithy.NewErrParamRequired("PackageSource")) } + if v.PackageConfiguration != nil { + if err := validatePackageConfiguration(v.PackageConfiguration); err != nil { + invalidParams.AddNested("PackageConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.PackageEncryptionOptions != nil { + if err := validatePackageEncryptionOptions(v.PackageEncryptionOptions); err != nil { + invalidParams.AddNested("PackageEncryptionOptions", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdatePackageScopeInput(v *UpdatePackageScopeInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdatePackageScopeInput"} + if v.PackageID == nil { + invalidParams.Add(smithy.NewErrParamRequired("PackageID")) + } + if len(v.Operation) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Operation")) + } + if v.PackageUserList == nil { + invalidParams.Add(smithy.NewErrParamRequired("PackageUserList")) + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/outposts/api_op_GetCapacityTask.go b/service/outposts/api_op_GetCapacityTask.go index c275adfc1a8..816bec330ff 100644 --- a/service/outposts/api_op_GetCapacityTask.go +++ b/service/outposts/api_op_GetCapacityTask.go @@ -74,6 +74,10 @@ type GetCapacityTaskOutput struct { // Reason why the capacity task failed. Failed *types.CapacityTaskFailure + // Instances that the user specified they cannot stop in order to free up the + // capacity needed to run the capacity task. + InstancesToExclude *types.InstancesToExclude + // The date the capacity task was last modified. LastModifiedDate *time.Time @@ -87,6 +91,15 @@ type GetCapacityTaskOutput struct { // List of instance pools requested in the capacity task. RequestedInstancePools []types.InstanceTypeCapacity + // User-specified option in case an instance is blocking the capacity task from + // running. Shows one of the following options: + // + // - WAIT_FOR_EVACUATION - Checks every 10 minutes over 48 hours to determine if + // instances have stopped and capacity is available to complete the task. + // + // - FAIL_TASK - The capacity task fails. + TaskActionOnBlockingInstances types.TaskActionOnBlockingInstances + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/outposts/api_op_GetOutpostSupportedInstanceTypes.go b/service/outposts/api_op_GetOutpostSupportedInstanceTypes.go index 1cd31684968..b588fa25d0a 100644 --- a/service/outposts/api_op_GetOutpostSupportedInstanceTypes.go +++ b/service/outposts/api_op_GetOutpostSupportedInstanceTypes.go @@ -31,11 +31,6 @@ func (c *Client) GetOutpostSupportedInstanceTypes(ctx context.Context, params *G type GetOutpostSupportedInstanceTypesInput struct { - // The ID for the Amazon Web Services Outposts order. - // - // This member is required. - OrderId *string - // The ID or ARN of the Outpost. // // This member is required. @@ -47,6 +42,9 @@ type GetOutpostSupportedInstanceTypesInput struct { // The pagination token. NextToken *string + // The ID for the Amazon Web Services Outposts order. + OrderId *string + noSmithyDocumentSerde } diff --git a/service/outposts/api_op_ListAssetInstances.go b/service/outposts/api_op_ListAssetInstances.go new file mode 100644 index 00000000000..fc2f0944694 --- /dev/null +++ b/service/outposts/api_op_ListAssetInstances.go @@ -0,0 +1,274 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package outposts + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/outposts/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// A list of Amazon EC2 instances, belonging to all accounts, running on the +// specified Outpost. Does not include Amazon EBS or Amazon S3 instances. +func (c *Client) ListAssetInstances(ctx context.Context, params *ListAssetInstancesInput, optFns ...func(*Options)) (*ListAssetInstancesOutput, error) { + if params == nil { + params = &ListAssetInstancesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListAssetInstances", params, optFns, c.addOperationListAssetInstancesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListAssetInstancesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListAssetInstancesInput struct { + + // The ID of the Outpost. + // + // This member is required. + OutpostIdentifier *string + + // Filters the results by account ID. + AccountIdFilter []string + + // Filters the results by asset ID. + AssetIdFilter []string + + // Filters the results by Amazon Web Services service. + AwsServiceFilter []types.AWSServiceName + + // Filters the results by instance ID. + InstanceTypeFilter []string + + // The maximum page size. + MaxResults *int32 + + // The pagination token. + NextToken *string + + noSmithyDocumentSerde +} + +type ListAssetInstancesOutput struct { + + // List of instances owned by all accounts on the Outpost. Does not include Amazon + // EBS or Amazon S3 instances. + AssetInstances []types.AssetInstance + + // The pagination token. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListAssetInstancesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListAssetInstances{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListAssetInstances{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListAssetInstances"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListAssetInstancesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListAssetInstances(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListAssetInstancesPaginatorOptions is the paginator options for +// ListAssetInstances +type ListAssetInstancesPaginatorOptions struct { + // The maximum page size. + 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 +} + +// ListAssetInstancesPaginator is a paginator for ListAssetInstances +type ListAssetInstancesPaginator struct { + options ListAssetInstancesPaginatorOptions + client ListAssetInstancesAPIClient + params *ListAssetInstancesInput + nextToken *string + firstPage bool +} + +// NewListAssetInstancesPaginator returns a new ListAssetInstancesPaginator +func NewListAssetInstancesPaginator(client ListAssetInstancesAPIClient, params *ListAssetInstancesInput, optFns ...func(*ListAssetInstancesPaginatorOptions)) *ListAssetInstancesPaginator { + if params == nil { + params = &ListAssetInstancesInput{} + } + + options := ListAssetInstancesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListAssetInstancesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListAssetInstancesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListAssetInstances page. +func (p *ListAssetInstancesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListAssetInstancesOutput, 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 + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListAssetInstances(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 +} + +// ListAssetInstancesAPIClient is a client that implements the ListAssetInstances +// operation. +type ListAssetInstancesAPIClient interface { + ListAssetInstances(context.Context, *ListAssetInstancesInput, ...func(*Options)) (*ListAssetInstancesOutput, error) +} + +var _ ListAssetInstancesAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListAssetInstances(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListAssetInstances", + } +} diff --git a/service/outposts/api_op_ListBlockingInstancesForCapacityTask.go b/service/outposts/api_op_ListBlockingInstancesForCapacityTask.go new file mode 100644 index 00000000000..1160e55c07e --- /dev/null +++ b/service/outposts/api_op_ListBlockingInstancesForCapacityTask.go @@ -0,0 +1,270 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package outposts + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/outposts/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// A list of Amazon EC2 instances running on the Outpost and belonging to the +// account that initiated the capacity task. Use this list to specify the instances +// you cannot stop to free up capacity to run the capacity task. +func (c *Client) ListBlockingInstancesForCapacityTask(ctx context.Context, params *ListBlockingInstancesForCapacityTaskInput, optFns ...func(*Options)) (*ListBlockingInstancesForCapacityTaskOutput, error) { + if params == nil { + params = &ListBlockingInstancesForCapacityTaskInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListBlockingInstancesForCapacityTask", params, optFns, c.addOperationListBlockingInstancesForCapacityTaskMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListBlockingInstancesForCapacityTaskOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListBlockingInstancesForCapacityTaskInput struct { + + // The ID of the capacity task. + // + // This member is required. + CapacityTaskId *string + + // The ID or ARN of the Outpost associated with the specified capacity task. + // + // This member is required. + OutpostIdentifier *string + + // The maximum page size. + MaxResults *int32 + + // The pagination token. + NextToken *string + + noSmithyDocumentSerde +} + +type ListBlockingInstancesForCapacityTaskOutput struct { + + // A list of all running Amazon EC2 instances on the Outpost. Stopping one or more + // of these instances can free up the capacity needed to run the capacity task. + BlockingInstances []types.BlockingInstance + + // The pagination token. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListBlockingInstancesForCapacityTaskMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListBlockingInstancesForCapacityTask{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListBlockingInstancesForCapacityTask{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListBlockingInstancesForCapacityTask"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListBlockingInstancesForCapacityTaskValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListBlockingInstancesForCapacityTask(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListBlockingInstancesForCapacityTaskPaginatorOptions is the paginator options +// for ListBlockingInstancesForCapacityTask +type ListBlockingInstancesForCapacityTaskPaginatorOptions struct { + // The maximum page size. + 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 +} + +// ListBlockingInstancesForCapacityTaskPaginator is a paginator for +// ListBlockingInstancesForCapacityTask +type ListBlockingInstancesForCapacityTaskPaginator struct { + options ListBlockingInstancesForCapacityTaskPaginatorOptions + client ListBlockingInstancesForCapacityTaskAPIClient + params *ListBlockingInstancesForCapacityTaskInput + nextToken *string + firstPage bool +} + +// NewListBlockingInstancesForCapacityTaskPaginator returns a new +// ListBlockingInstancesForCapacityTaskPaginator +func NewListBlockingInstancesForCapacityTaskPaginator(client ListBlockingInstancesForCapacityTaskAPIClient, params *ListBlockingInstancesForCapacityTaskInput, optFns ...func(*ListBlockingInstancesForCapacityTaskPaginatorOptions)) *ListBlockingInstancesForCapacityTaskPaginator { + if params == nil { + params = &ListBlockingInstancesForCapacityTaskInput{} + } + + options := ListBlockingInstancesForCapacityTaskPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListBlockingInstancesForCapacityTaskPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListBlockingInstancesForCapacityTaskPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListBlockingInstancesForCapacityTask page. +func (p *ListBlockingInstancesForCapacityTaskPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListBlockingInstancesForCapacityTaskOutput, 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 + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListBlockingInstancesForCapacityTask(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 +} + +// ListBlockingInstancesForCapacityTaskAPIClient is a client that implements the +// ListBlockingInstancesForCapacityTask operation. +type ListBlockingInstancesForCapacityTaskAPIClient interface { + ListBlockingInstancesForCapacityTask(context.Context, *ListBlockingInstancesForCapacityTaskInput, ...func(*Options)) (*ListBlockingInstancesForCapacityTaskOutput, error) +} + +var _ ListBlockingInstancesForCapacityTaskAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListBlockingInstancesForCapacityTask(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListBlockingInstancesForCapacityTask", + } +} diff --git a/service/outposts/api_op_StartCapacityTask.go b/service/outposts/api_op_StartCapacityTask.go index c7e67f68f05..19065bec80a 100644 --- a/service/outposts/api_op_StartCapacityTask.go +++ b/service/outposts/api_op_StartCapacityTask.go @@ -12,8 +12,8 @@ import ( "time" ) -// Starts the specified capacity task. You can have one active capacity task for -// an order. +// Starts the specified capacity task. You can have one active capacity task per +// order or Outpost. func (c *Client) StartCapacityTask(ctx context.Context, params *StartCapacityTaskInput, optFns ...func(*Options)) (*StartCapacityTaskOutput, error) { if params == nil { params = &StartCapacityTaskInput{} @@ -36,12 +36,6 @@ type StartCapacityTaskInput struct { // This member is required. InstancePools []types.InstanceTypeCapacity - // The ID of the Amazon Web Services Outposts order associated with the specified - // capacity task. - // - // This member is required. - OrderId *string - // The ID or ARN of the Outposts associated with the specified capacity task. // // This member is required. @@ -52,6 +46,23 @@ type StartCapacityTaskInput struct { // not make any changes to your plan. DryRun bool + // List of user-specified running instances that must not be stopped in order to + // free up the capacity needed to run the capacity task. + InstancesToExclude *types.InstancesToExclude + + // The ID of the Amazon Web Services Outposts order associated with the specified + // capacity task. + OrderId *string + + // Specify one of the following options in case an instance is blocking the + // capacity task from running. + // + // - WAIT_FOR_EVACUATION - Checks every 10 minutes over 48 hours to determine if + // instances have stopped and capacity is available to complete the task. + // + // - FAIL_TASK - The capacity task fails. + TaskActionOnBlockingInstances types.TaskActionOnBlockingInstances + noSmithyDocumentSerde } @@ -76,6 +87,10 @@ type StartCapacityTaskOutput struct { // Reason that the specified capacity task failed. Failed *types.CapacityTaskFailure + // User-specified instances that must not be stopped in order to free up the + // capacity needed to run the capacity task. + InstancesToExclude *types.InstancesToExclude + // Date that the specified capacity task was last modified. LastModifiedDate *time.Time @@ -89,6 +104,15 @@ type StartCapacityTaskOutput struct { // List of the instance pools requested in the specified capacity task. RequestedInstancePools []types.InstanceTypeCapacity + // User-specified option in case an instance is blocking the capacity task from + // running. + // + // - WAIT_FOR_EVACUATION - Checks every 10 minutes over 48 hours to determine if + // instances have stopped and capacity is available to complete the task. + // + // - FAIL_TASK - The capacity task fails. + TaskActionOnBlockingInstances types.TaskActionOnBlockingInstances + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/outposts/deserializers.go b/service/outposts/deserializers.go index 00c8b686058..2965021fb75 100644 --- a/service/outposts/deserializers.go +++ b/service/outposts/deserializers.go @@ -1139,6 +1139,11 @@ func awsRestjson1_deserializeOpDocumentGetCapacityTaskOutput(v **GetCapacityTask return err } + case "InstancesToExclude": + if err := awsRestjson1_deserializeDocumentInstancesToExclude(&sv.InstancesToExclude, value); err != nil { + return err + } + case "LastModifiedDate": if value != nil { switch jtv := value.(type) { @@ -1178,6 +1183,15 @@ func awsRestjson1_deserializeOpDocumentGetCapacityTaskOutput(v **GetCapacityTask return err } + case "TaskActionOnBlockingInstances": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TaskActionOnBlockingInstances to be of type string, got %T instead", value) + } + sv.TaskActionOnBlockingInstances = types.TaskActionOnBlockingInstances(jtv) + } + default: _, _ = key, value @@ -2532,14 +2546,14 @@ func awsRestjson1_deserializeOpDocumentGetSiteAddressOutput(v **GetSiteAddressOu return nil } -type awsRestjson1_deserializeOpListAssets struct { +type awsRestjson1_deserializeOpListAssetInstances struct { } -func (*awsRestjson1_deserializeOpListAssets) ID() string { +func (*awsRestjson1_deserializeOpListAssetInstances) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListAssets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListAssetInstances) 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) @@ -2557,9 +2571,9 @@ func (m *awsRestjson1_deserializeOpListAssets) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListAssets(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListAssetInstances(response, &metadata) } - output := &ListAssetsOutput{} + output := &ListAssetInstancesOutput{} out.Result = output var buff [1024]byte @@ -2580,7 +2594,7 @@ func (m *awsRestjson1_deserializeOpListAssets) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListAssetsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListAssetInstancesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2594,7 +2608,7 @@ func (m *awsRestjson1_deserializeOpListAssets) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorListAssets(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListAssetInstances(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)} @@ -2657,7 +2671,7 @@ func awsRestjson1_deserializeOpErrorListAssets(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpDocumentListAssetsOutput(v **ListAssetsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListAssetInstancesOutput(v **ListAssetInstancesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2670,17 +2684,17 @@ func awsRestjson1_deserializeOpDocumentListAssetsOutput(v **ListAssetsOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListAssetsOutput + var sv *ListAssetInstancesOutput if *v == nil { - sv = &ListAssetsOutput{} + sv = &ListAssetInstancesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Assets": - if err := awsRestjson1_deserializeDocumentAssetListDefinition(&sv.Assets, value); err != nil { + case "AssetInstances": + if err := awsRestjson1_deserializeDocumentAssetInstanceList(&sv.AssetInstances, value); err != nil { return err } @@ -2702,14 +2716,14 @@ func awsRestjson1_deserializeOpDocumentListAssetsOutput(v **ListAssetsOutput, va return nil } -type awsRestjson1_deserializeOpListCapacityTasks struct { +type awsRestjson1_deserializeOpListAssets struct { } -func (*awsRestjson1_deserializeOpListCapacityTasks) ID() string { +func (*awsRestjson1_deserializeOpListAssets) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListCapacityTasks) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListAssets) 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) @@ -2727,9 +2741,9 @@ func (m *awsRestjson1_deserializeOpListCapacityTasks) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListCapacityTasks(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListAssets(response, &metadata) } - output := &ListCapacityTasksOutput{} + output := &ListAssetsOutput{} out.Result = output var buff [1024]byte @@ -2750,7 +2764,7 @@ func (m *awsRestjson1_deserializeOpListCapacityTasks) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListCapacityTasksOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListAssetsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2764,7 +2778,7 @@ func (m *awsRestjson1_deserializeOpListCapacityTasks) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorListCapacityTasks(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListAssets(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)} @@ -2827,7 +2841,7 @@ func awsRestjson1_deserializeOpErrorListCapacityTasks(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpDocumentListCapacityTasksOutput(v **ListCapacityTasksOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListAssetsOutput(v **ListAssetsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2840,17 +2854,17 @@ func awsRestjson1_deserializeOpDocumentListCapacityTasksOutput(v **ListCapacityT return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListCapacityTasksOutput + var sv *ListAssetsOutput if *v == nil { - sv = &ListCapacityTasksOutput{} + sv = &ListAssetsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "CapacityTasks": - if err := awsRestjson1_deserializeDocumentCapacityTaskList(&sv.CapacityTasks, value); err != nil { + case "Assets": + if err := awsRestjson1_deserializeDocumentAssetListDefinition(&sv.Assets, value); err != nil { return err } @@ -2872,14 +2886,14 @@ func awsRestjson1_deserializeOpDocumentListCapacityTasksOutput(v **ListCapacityT return nil } -type awsRestjson1_deserializeOpListCatalogItems struct { +type awsRestjson1_deserializeOpListBlockingInstancesForCapacityTask struct { } -func (*awsRestjson1_deserializeOpListCatalogItems) ID() string { +func (*awsRestjson1_deserializeOpListBlockingInstancesForCapacityTask) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListCatalogItems) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListBlockingInstancesForCapacityTask) 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) @@ -2897,9 +2911,9 @@ func (m *awsRestjson1_deserializeOpListCatalogItems) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListCatalogItems(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListBlockingInstancesForCapacityTask(response, &metadata) } - output := &ListCatalogItemsOutput{} + output := &ListBlockingInstancesForCapacityTaskOutput{} out.Result = output var buff [1024]byte @@ -2920,7 +2934,7 @@ func (m *awsRestjson1_deserializeOpListCatalogItems) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListCatalogItemsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListBlockingInstancesForCapacityTaskOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2934,7 +2948,7 @@ func (m *awsRestjson1_deserializeOpListCatalogItems) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorListCatalogItems(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListBlockingInstancesForCapacityTask(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)} @@ -2975,6 +2989,9 @@ func awsRestjson1_deserializeOpErrorListCatalogItems(response *smithyhttp.Respon } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) @@ -2994,7 +3011,7 @@ func awsRestjson1_deserializeOpErrorListCatalogItems(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpDocumentListCatalogItemsOutput(v **ListCatalogItemsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListBlockingInstancesForCapacityTaskOutput(v **ListBlockingInstancesForCapacityTaskOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3007,17 +3024,17 @@ func awsRestjson1_deserializeOpDocumentListCatalogItemsOutput(v **ListCatalogIte return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListCatalogItemsOutput + var sv *ListBlockingInstancesForCapacityTaskOutput if *v == nil { - sv = &ListCatalogItemsOutput{} + sv = &ListBlockingInstancesForCapacityTaskOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "CatalogItems": - if err := awsRestjson1_deserializeDocumentCatalogItemListDefinition(&sv.CatalogItems, value); err != nil { + case "BlockingInstances": + if err := awsRestjson1_deserializeDocumentBlockingInstancesList(&sv.BlockingInstances, value); err != nil { return err } @@ -3039,14 +3056,14 @@ func awsRestjson1_deserializeOpDocumentListCatalogItemsOutput(v **ListCatalogIte return nil } -type awsRestjson1_deserializeOpListOrders struct { +type awsRestjson1_deserializeOpListCapacityTasks struct { } -func (*awsRestjson1_deserializeOpListOrders) ID() string { +func (*awsRestjson1_deserializeOpListCapacityTasks) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListOrders) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListCapacityTasks) 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) @@ -3064,9 +3081,9 @@ func (m *awsRestjson1_deserializeOpListOrders) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListOrders(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListCapacityTasks(response, &metadata) } - output := &ListOrdersOutput{} + output := &ListCapacityTasksOutput{} out.Result = output var buff [1024]byte @@ -3087,7 +3104,7 @@ func (m *awsRestjson1_deserializeOpListOrders) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListOrdersOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListCapacityTasksOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3101,7 +3118,7 @@ func (m *awsRestjson1_deserializeOpListOrders) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorListOrders(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListCapacityTasks(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)} @@ -3164,7 +3181,7 @@ func awsRestjson1_deserializeOpErrorListOrders(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpDocumentListOrdersOutput(v **ListOrdersOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListCapacityTasksOutput(v **ListCapacityTasksOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3177,15 +3194,20 @@ func awsRestjson1_deserializeOpDocumentListOrdersOutput(v **ListOrdersOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListOrdersOutput + var sv *ListCapacityTasksOutput if *v == nil { - sv = &ListOrdersOutput{} + sv = &ListCapacityTasksOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "CapacityTasks": + if err := awsRestjson1_deserializeDocumentCapacityTaskList(&sv.CapacityTasks, value); err != nil { + return err + } + case "NextToken": if value != nil { jtv, ok := value.(string) @@ -3195,11 +3217,6 @@ func awsRestjson1_deserializeOpDocumentListOrdersOutput(v **ListOrdersOutput, va sv.NextToken = ptr.String(jtv) } - case "Orders": - if err := awsRestjson1_deserializeDocumentOrderSummaryListDefinition(&sv.Orders, value); err != nil { - return err - } - default: _, _ = key, value @@ -3209,14 +3226,14 @@ func awsRestjson1_deserializeOpDocumentListOrdersOutput(v **ListOrdersOutput, va return nil } -type awsRestjson1_deserializeOpListOutposts struct { +type awsRestjson1_deserializeOpListCatalogItems struct { } -func (*awsRestjson1_deserializeOpListOutposts) ID() string { +func (*awsRestjson1_deserializeOpListCatalogItems) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListOutposts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListCatalogItems) 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) @@ -3234,9 +3251,9 @@ func (m *awsRestjson1_deserializeOpListOutposts) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListOutposts(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListCatalogItems(response, &metadata) } - output := &ListOutpostsOutput{} + output := &ListCatalogItemsOutput{} out.Result = output var buff [1024]byte @@ -3257,7 +3274,7 @@ func (m *awsRestjson1_deserializeOpListOutposts) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListOutpostsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListCatalogItemsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3271,7 +3288,7 @@ func (m *awsRestjson1_deserializeOpListOutposts) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorListOutposts(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListCatalogItems(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)} @@ -3312,12 +3329,12 @@ func awsRestjson1_deserializeOpErrorListOutposts(response *smithyhttp.Response, } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): return awsRestjson1_deserializeErrorValidationException(response, errorBody) @@ -3331,7 +3348,7 @@ func awsRestjson1_deserializeOpErrorListOutposts(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentListOutpostsOutput(v **ListOutpostsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListCatalogItemsOutput(v **ListCatalogItemsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3344,15 +3361,20 @@ func awsRestjson1_deserializeOpDocumentListOutpostsOutput(v **ListOutpostsOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListOutpostsOutput + var sv *ListCatalogItemsOutput if *v == nil { - sv = &ListOutpostsOutput{} + sv = &ListCatalogItemsOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "CatalogItems": + if err := awsRestjson1_deserializeDocumentCatalogItemListDefinition(&sv.CatalogItems, value); err != nil { + return err + } + case "NextToken": if value != nil { jtv, ok := value.(string) @@ -3362,11 +3384,6 @@ func awsRestjson1_deserializeOpDocumentListOutpostsOutput(v **ListOutpostsOutput sv.NextToken = ptr.String(jtv) } - case "Outposts": - if err := awsRestjson1_deserializeDocumentOutpostListDefinition(&sv.Outposts, value); err != nil { - return err - } - default: _, _ = key, value @@ -3376,14 +3393,14 @@ func awsRestjson1_deserializeOpDocumentListOutpostsOutput(v **ListOutpostsOutput return nil } -type awsRestjson1_deserializeOpListSites struct { +type awsRestjson1_deserializeOpListOrders struct { } -func (*awsRestjson1_deserializeOpListSites) ID() string { +func (*awsRestjson1_deserializeOpListOrders) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListSites) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListOrders) 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) @@ -3401,9 +3418,9 @@ func (m *awsRestjson1_deserializeOpListSites) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListSites(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListOrders(response, &metadata) } - output := &ListSitesOutput{} + output := &ListOrdersOutput{} out.Result = output var buff [1024]byte @@ -3424,7 +3441,7 @@ func (m *awsRestjson1_deserializeOpListSites) HandleDeserialize(ctx context.Cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListSitesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListOrdersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3438,7 +3455,7 @@ func (m *awsRestjson1_deserializeOpListSites) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorListSites(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListOrders(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)} @@ -3485,6 +3502,9 @@ func awsRestjson1_deserializeOpErrorListSites(response *smithyhttp.Response, met case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("ValidationException", errorCode): return awsRestjson1_deserializeErrorValidationException(response, errorBody) @@ -3498,7 +3518,7 @@ func awsRestjson1_deserializeOpErrorListSites(response *smithyhttp.Response, met } } -func awsRestjson1_deserializeOpDocumentListSitesOutput(v **ListSitesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListOrdersOutput(v **ListOrdersOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3511,9 +3531,9 @@ func awsRestjson1_deserializeOpDocumentListSitesOutput(v **ListSitesOutput, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListSitesOutput + var sv *ListOrdersOutput if *v == nil { - sv = &ListSitesOutput{} + sv = &ListOrdersOutput{} } else { sv = *v } @@ -3529,8 +3549,8 @@ func awsRestjson1_deserializeOpDocumentListSitesOutput(v **ListSitesOutput, valu sv.NextToken = ptr.String(jtv) } - case "Sites": - if err := awsRestjson1_deserializeDocumentSiteListDefinition(&sv.Sites, value); err != nil { + case "Orders": + if err := awsRestjson1_deserializeDocumentOrderSummaryListDefinition(&sv.Orders, value); err != nil { return err } @@ -3543,14 +3563,14 @@ func awsRestjson1_deserializeOpDocumentListSitesOutput(v **ListSitesOutput, valu return nil } -type awsRestjson1_deserializeOpListTagsForResource struct { +type awsRestjson1_deserializeOpListOutposts struct { } -func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { +func (*awsRestjson1_deserializeOpListOutposts) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListOutposts) 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) @@ -3568,9 +3588,9 @@ 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_deserializeOpErrorListOutposts(response, &metadata) } - output := &ListTagsForResourceOutput{} + output := &ListOutpostsOutput{} out.Result = output var buff [1024]byte @@ -3591,7 +3611,7 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListOutpostsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3605,7 +3625,7 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListOutposts(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)} @@ -3646,12 +3666,12 @@ func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("ValidationException", errorCode): return awsRestjson1_deserializeErrorValidationException(response, errorBody) @@ -3665,7 +3685,7 @@ func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListOutpostsOutput(v **ListOutpostsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3678,17 +3698,26 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTagsForResourceOutput + var sv *ListOutpostsOutput if *v == nil { - sv = &ListTagsForResourceOutput{} + sv = &ListOutpostsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Tags": - if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil { + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Token to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "Outposts": + if err := awsRestjson1_deserializeDocumentOutpostListDefinition(&sv.Outposts, value); err != nil { return err } @@ -3701,14 +3730,14 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor return nil } -type awsRestjson1_deserializeOpStartCapacityTask struct { +type awsRestjson1_deserializeOpListSites struct { } -func (*awsRestjson1_deserializeOpStartCapacityTask) ID() string { +func (*awsRestjson1_deserializeOpListSites) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpStartCapacityTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListSites) 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) @@ -3726,9 +3755,9 @@ func (m *awsRestjson1_deserializeOpStartCapacityTask) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorStartCapacityTask(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListSites(response, &metadata) } - output := &StartCapacityTaskOutput{} + output := &ListSitesOutput{} out.Result = output var buff [1024]byte @@ -3749,7 +3778,7 @@ func (m *awsRestjson1_deserializeOpStartCapacityTask) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentStartCapacityTaskOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListSitesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3763,7 +3792,7 @@ func (m *awsRestjson1_deserializeOpStartCapacityTask) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorStartCapacityTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListSites(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)} @@ -3807,15 +3836,9 @@ func awsRestjson1_deserializeOpErrorStartCapacityTask(response *smithyhttp.Respo case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("ValidationException", errorCode): return awsRestjson1_deserializeErrorValidationException(response, errorBody) @@ -3829,7 +3852,7 @@ func awsRestjson1_deserializeOpErrorStartCapacityTask(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpDocumentStartCapacityTaskOutput(v **StartCapacityTaskOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListSitesOutput(v **ListSitesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3842,48 +3865,379 @@ func awsRestjson1_deserializeOpDocumentStartCapacityTaskOutput(v **StartCapacity return fmt.Errorf("unexpected JSON type %v", value) } - var sv *StartCapacityTaskOutput + var sv *ListSitesOutput if *v == nil { - sv = &StartCapacityTaskOutput{} + sv = &ListSitesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "CapacityTaskId": + case "NextToken": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected CapacityTaskId to be of type string, got %T instead", value) + return fmt.Errorf("expected Token to be of type string, got %T instead", value) } - sv.CapacityTaskId = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } - case "CapacityTaskStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected CapacityTaskStatus to be of type string, got %T instead", value) - } - sv.CapacityTaskStatus = types.CapacityTaskStatus(jtv) + case "Sites": + if err := awsRestjson1_deserializeDocumentSiteListDefinition(&sv.Sites, value); err != nil { + return err } - case "CompletionDate": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CompletionDate = ptr.Time(smithytime.ParseEpochSeconds(f64)) + default: + _, _ = key, value - default: - return fmt.Errorf("expected ISO8601Timestamp to be a JSON Number, got %T instead", 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 + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata) + } + output := &ListTagsForResourceOutput{} + 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_deserializeOpDocumentListTagsForResourceOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, 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 *ListTagsForResourceOutput + if *v == nil { + sv = &ListTagsForResourceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Tags": + if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpStartCapacityTask struct { +} + +func (*awsRestjson1_deserializeOpStartCapacityTask) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpStartCapacityTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorStartCapacityTask(response, &metadata) + } + output := &StartCapacityTaskOutput{} + 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_deserializeOpDocumentStartCapacityTaskOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorStartCapacityTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentStartCapacityTaskOutput(v **StartCapacityTaskOutput, 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 *StartCapacityTaskOutput + if *v == nil { + sv = &StartCapacityTaskOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CapacityTaskId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapacityTaskId to be of type string, got %T instead", value) + } + sv.CapacityTaskId = ptr.String(jtv) + } + + case "CapacityTaskStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapacityTaskStatus to be of type string, got %T instead", value) + } + sv.CapacityTaskStatus = types.CapacityTaskStatus(jtv) + } + + case "CompletionDate": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CompletionDate = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected ISO8601Timestamp to be a JSON Number, got %T instead", value) + + } + } case "CreationDate": if value != nil { @@ -3915,6 +4269,11 @@ func awsRestjson1_deserializeOpDocumentStartCapacityTaskOutput(v **StartCapacity return err } + case "InstancesToExclude": + if err := awsRestjson1_deserializeDocumentInstancesToExclude(&sv.InstancesToExclude, value); err != nil { + return err + } + case "LastModifiedDate": if value != nil { switch jtv := value.(type) { @@ -3954,6 +4313,15 @@ func awsRestjson1_deserializeOpDocumentStartCapacityTaskOutput(v **StartCapacity return err } + case "TaskActionOnBlockingInstances": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TaskActionOnBlockingInstances to be of type string, got %T instead", value) + } + sv.TaskActionOnBlockingInstances = types.TaskActionOnBlockingInstances(jtv) + } + default: _, _ = key, value @@ -5246,6 +5614,42 @@ func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDenie return nil } +func awsRestjson1_deserializeDocumentAccountIdList(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AccountId to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentAddress(v **types.Address, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5367,16 +5771,228 @@ func awsRestjson1_deserializeDocumentAddress(v **types.Address, value interface{ sv.StateOrRegion = ptr.String(jtv) } - default: - _, _ = key, value + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAssetInfo(v **types.AssetInfo, 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.AssetInfo + if *v == nil { + sv = &types.AssetInfo{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AssetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssetId to be of type string, got %T instead", value) + } + sv.AssetId = ptr.String(jtv) + } + + case "AssetLocation": + if err := awsRestjson1_deserializeDocumentAssetLocation(&sv.AssetLocation, value); err != nil { + return err + } + + case "AssetType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssetType to be of type string, got %T instead", value) + } + sv.AssetType = types.AssetType(jtv) + } + + case "ComputeAttributes": + if err := awsRestjson1_deserializeDocumentComputeAttributes(&sv.ComputeAttributes, value); err != nil { + return err + } + + case "RackId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RackId to be of type string, got %T instead", value) + } + sv.RackId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAssetInstance(v **types.AssetInstance, 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.AssetInstance + if *v == nil { + sv = &types.AssetInstance{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AccountId to be of type string, got %T instead", value) + } + sv.AccountId = ptr.String(jtv) + } + + case "AssetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssetId to be of type string, got %T instead", value) + } + sv.AssetId = ptr.String(jtv) + } + + case "AwsServiceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AWSServiceName to be of type string, got %T instead", value) + } + sv.AwsServiceName = types.AWSServiceName(jtv) + } + + case "InstanceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InstanceId to be of type string, got %T instead", value) + } + sv.InstanceId = ptr.String(jtv) + } + + case "InstanceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OutpostInstanceType to be of type string, got %T instead", value) + } + sv.InstanceType = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAssetInstanceCapacityList(v *[]types.AssetInstanceTypeCapacity, 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.AssetInstanceTypeCapacity + if *v == nil { + cv = []types.AssetInstanceTypeCapacity{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AssetInstanceTypeCapacity + destAddr := &col + if err := awsRestjson1_deserializeDocumentAssetInstanceTypeCapacity(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentAssetInstanceList(v *[]types.AssetInstance, 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.AssetInstance + if *v == nil { + cv = []types.AssetInstance{} + } else { + cv = *v + } + for _, value := range shape { + var col types.AssetInstance + destAddr := &col + if err := awsRestjson1_deserializeDocumentAssetInstance(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentAssetInfo(v **types.AssetInfo, value interface{}) error { +func awsRestjson1_deserializeDocumentAssetInstanceTypeCapacity(v **types.AssetInstanceTypeCapacity, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5389,50 +6005,35 @@ func awsRestjson1_deserializeDocumentAssetInfo(v **types.AssetInfo, value interf return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AssetInfo + var sv *types.AssetInstanceTypeCapacity if *v == nil { - sv = &types.AssetInfo{} + sv = &types.AssetInstanceTypeCapacity{} } else { sv = *v } for key, value := range shape { switch key { - case "AssetId": + case "Count": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected AssetId to be of type string, got %T instead", value) + return fmt.Errorf("expected InstanceTypeCount to be json.Number, got %T instead", value) } - sv.AssetId = ptr.String(jtv) - } - - case "AssetLocation": - if err := awsRestjson1_deserializeDocumentAssetLocation(&sv.AssetLocation, value); err != nil { - return err - } - - case "AssetType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AssetType to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.AssetType = types.AssetType(jtv) - } - - case "ComputeAttributes": - if err := awsRestjson1_deserializeDocumentComputeAttributes(&sv.ComputeAttributes, value); err != nil { - return err + sv.Count = int32(i64) } - case "RackId": + case "InstanceType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RackId to be of type string, got %T instead", value) + return fmt.Errorf("expected InstanceTypeName to be of type string, got %T instead", value) } - sv.RackId = ptr.String(jtv) + sv.InstanceType = ptr.String(jtv) } default: @@ -5543,6 +6144,134 @@ func awsRestjson1_deserializeDocumentAssetLocation(v **types.AssetLocation, valu return nil } +func awsRestjson1_deserializeDocumentAWSServiceNameList(v *[]types.AWSServiceName, 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.AWSServiceName + if *v == nil { + cv = []types.AWSServiceName{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AWSServiceName + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AWSServiceName to be of type string, got %T instead", value) + } + col = types.AWSServiceName(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentBlockingInstance(v **types.BlockingInstance, 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.BlockingInstance + if *v == nil { + sv = &types.BlockingInstance{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AccountId to be of type string, got %T instead", value) + } + sv.AccountId = ptr.String(jtv) + } + + case "AwsServiceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AWSServiceName to be of type string, got %T instead", value) + } + sv.AwsServiceName = types.AWSServiceName(jtv) + } + + case "InstanceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InstanceId to be of type string, got %T instead", value) + } + sv.InstanceId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBlockingInstancesList(v *[]types.BlockingInstance, 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.BlockingInstance + if *v == nil { + cv = []types.BlockingInstance{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.BlockingInstance + destAddr := &col + if err := awsRestjson1_deserializeDocumentBlockingInstance(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentCapacityTaskFailure(v **types.CapacityTaskFailure, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5958,6 +6687,24 @@ func awsRestjson1_deserializeDocumentComputeAttributes(v **types.ComputeAttribut return err } + case "InstanceTypeCapacities": + if err := awsRestjson1_deserializeDocumentAssetInstanceCapacityList(&sv.InstanceTypeCapacities, value); err != nil { + return err + } + + case "MaxVcpus": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected VCPUCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaxVcpus = ptr.Int32(int32(i64)) + } + case "State": if value != nil { jtv, ok := value.(string) @@ -6243,6 +6990,88 @@ func awsRestjson1_deserializeDocumentInstanceFamilies(v *[]string, value interfa return nil } +func awsRestjson1_deserializeDocumentInstanceIdList(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InstanceId to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentInstancesToExclude(v **types.InstancesToExclude, 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.InstancesToExclude + if *v == nil { + sv = &types.InstancesToExclude{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AccountIds": + if err := awsRestjson1_deserializeDocumentAccountIdList(&sv.AccountIds, value); err != nil { + return err + } + + case "Instances": + if err := awsRestjson1_deserializeDocumentInstanceIdList(&sv.Instances, value); err != nil { + return err + } + + case "Services": + if err := awsRestjson1_deserializeDocumentAWSServiceNameList(&sv.Services, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentInstanceTypeCapacity(v **types.InstanceTypeCapacity, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/outposts/generated.json b/service/outposts/generated.json index e1ce4bd4c12..1facb68c0f7 100644 --- a/service/outposts/generated.json +++ b/service/outposts/generated.json @@ -24,7 +24,9 @@ "api_op_GetOutpostSupportedInstanceTypes.go", "api_op_GetSite.go", "api_op_GetSiteAddress.go", + "api_op_ListAssetInstances.go", "api_op_ListAssets.go", + "api_op_ListBlockingInstancesForCapacityTask.go", "api_op_ListCapacityTasks.go", "api_op_ListCatalogItems.go", "api_op_ListOrders.go", diff --git a/service/outposts/serializers.go b/service/outposts/serializers.go index fdc4453b59d..dfc8452a555 100644 --- a/service/outposts/serializers.go +++ b/service/outposts/serializers.go @@ -1310,6 +1310,109 @@ func awsRestjson1_serializeOpHttpBindingsGetSiteAddressInput(v *GetSiteAddressIn return nil } +type awsRestjson1_serializeOpListAssetInstances struct { +} + +func (*awsRestjson1_serializeOpListAssetInstances) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListAssetInstances) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListAssetInstancesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/outposts/{OutpostIdentifier}/assetInstances") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsListAssetInstancesInput(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 + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListAssetInstancesInput(v *ListAssetInstancesInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AccountIdFilter != nil { + for i := range v.AccountIdFilter { + encoder.AddQuery("AccountIdFilter").String(v.AccountIdFilter[i]) + } + } + + if v.AssetIdFilter != nil { + for i := range v.AssetIdFilter { + encoder.AddQuery("AssetIdFilter").String(v.AssetIdFilter[i]) + } + } + + if v.AwsServiceFilter != nil { + for i := range v.AwsServiceFilter { + encoder.AddQuery("AwsServiceFilter").String(string(v.AwsServiceFilter[i])) + } + } + + if v.InstanceTypeFilter != nil { + for i := range v.InstanceTypeFilter { + encoder.AddQuery("InstanceTypeFilter").String(v.InstanceTypeFilter[i]) + } + } + + if v.MaxResults != nil { + encoder.SetQuery("MaxResults").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("NextToken").String(*v.NextToken) + } + + if v.OutpostIdentifier == nil || len(*v.OutpostIdentifier) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member OutpostIdentifier must not be empty")} + } + if v.OutpostIdentifier != nil { + if err := encoder.SetURI("OutpostIdentifier").String(*v.OutpostIdentifier); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpListAssets struct { } @@ -1401,6 +1504,94 @@ func awsRestjson1_serializeOpHttpBindingsListAssetsInput(v *ListAssetsInput, enc return nil } +type awsRestjson1_serializeOpListBlockingInstancesForCapacityTask struct { +} + +func (*awsRestjson1_serializeOpListBlockingInstancesForCapacityTask) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListBlockingInstancesForCapacityTask) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListBlockingInstancesForCapacityTaskInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/outposts/{OutpostIdentifier}/capacity/{CapacityTaskId}/blockingInstances") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsListBlockingInstancesForCapacityTaskInput(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 + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListBlockingInstancesForCapacityTaskInput(v *ListBlockingInstancesForCapacityTaskInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.CapacityTaskId == nil || len(*v.CapacityTaskId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member CapacityTaskId must not be empty")} + } + if v.CapacityTaskId != nil { + if err := encoder.SetURI("CapacityTaskId").String(*v.CapacityTaskId); err != nil { + return err + } + } + + if v.MaxResults != nil { + encoder.SetQuery("MaxResults").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("NextToken").String(*v.NextToken) + } + + if v.OutpostIdentifier == nil || len(*v.OutpostIdentifier) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member OutpostIdentifier must not be empty")} + } + if v.OutpostIdentifier != nil { + if err := encoder.SetURI("OutpostIdentifier").String(*v.OutpostIdentifier); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpListCapacityTasks struct { } @@ -1988,11 +2179,23 @@ func awsRestjson1_serializeOpDocumentStartCapacityTaskInput(v *StartCapacityTask } } + if v.InstancesToExclude != nil { + ok := object.Key("InstancesToExclude") + if err := awsRestjson1_serializeDocumentInstancesToExclude(v.InstancesToExclude, ok); err != nil { + return err + } + } + if v.OrderId != nil { ok := object.Key("OrderId") ok.String(*v.OrderId) } + if len(v.TaskActionOnBlockingInstances) > 0 { + ok := object.Key("TaskActionOnBlockingInstances") + ok.String(string(v.TaskActionOnBlockingInstances)) + } + return nil } @@ -2708,6 +2911,17 @@ func awsRestjson1_serializeOpDocumentUpdateSiteRackPhysicalPropertiesInput(v *Up return nil } +func awsRestjson1_serializeDocumentAccountIdList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentAddress(v *types.Address, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2770,6 +2984,56 @@ func awsRestjson1_serializeDocumentAddress(v *types.Address, value smithyjson.Va return nil } +func awsRestjson1_serializeDocumentAWSServiceNameList(v []types.AWSServiceName, 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 awsRestjson1_serializeDocumentInstanceIdList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentInstancesToExclude(v *types.InstancesToExclude, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AccountIds != nil { + ok := object.Key("AccountIds") + if err := awsRestjson1_serializeDocumentAccountIdList(v.AccountIds, ok); err != nil { + return err + } + } + + if v.Instances != nil { + ok := object.Key("Instances") + if err := awsRestjson1_serializeDocumentInstanceIdList(v.Instances, ok); err != nil { + return err + } + } + + if v.Services != nil { + ok := object.Key("Services") + if err := awsRestjson1_serializeDocumentAWSServiceNameList(v.Services, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentInstanceTypeCapacity(v *types.InstanceTypeCapacity, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/outposts/snapshot/api_op_ListAssetInstances.go.snap b/service/outposts/snapshot/api_op_ListAssetInstances.go.snap new file mode 100644 index 00000000000..180d3ea8cd9 --- /dev/null +++ b/service/outposts/snapshot/api_op_ListAssetInstances.go.snap @@ -0,0 +1,41 @@ +ListAssetInstances + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/outposts/snapshot/api_op_ListBlockingInstancesForCapacityTask.go.snap b/service/outposts/snapshot/api_op_ListBlockingInstancesForCapacityTask.go.snap new file mode 100644 index 00000000000..5a1f325cc6e --- /dev/null +++ b/service/outposts/snapshot/api_op_ListBlockingInstancesForCapacityTask.go.snap @@ -0,0 +1,41 @@ +ListBlockingInstancesForCapacityTask + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/outposts/snapshot_test.go b/service/outposts/snapshot_test.go index 8f7d9412b9b..6d9971fb41a 100644 --- a/service/outposts/snapshot_test.go +++ b/service/outposts/snapshot_test.go @@ -254,6 +254,18 @@ func TestCheckSnapshot_GetSiteAddress(t *testing.T) { } } +func TestCheckSnapshot_ListAssetInstances(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListAssetInstances(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListAssetInstances") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListAssets(t *testing.T) { svc := New(Options{}) _, err := svc.ListAssets(context.Background(), nil, func(o *Options) { @@ -266,6 +278,18 @@ func TestCheckSnapshot_ListAssets(t *testing.T) { } } +func TestCheckSnapshot_ListBlockingInstancesForCapacityTask(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListBlockingInstancesForCapacityTask(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListBlockingInstancesForCapacityTask") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListCapacityTasks(t *testing.T) { svc := New(Options{}) _, err := svc.ListCapacityTasks(context.Background(), nil, func(o *Options) { @@ -625,6 +649,18 @@ func TestUpdateSnapshot_GetSiteAddress(t *testing.T) { } } +func TestUpdateSnapshot_ListAssetInstances(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListAssetInstances(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListAssetInstances") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListAssets(t *testing.T) { svc := New(Options{}) _, err := svc.ListAssets(context.Background(), nil, func(o *Options) { @@ -637,6 +673,18 @@ func TestUpdateSnapshot_ListAssets(t *testing.T) { } } +func TestUpdateSnapshot_ListBlockingInstancesForCapacityTask(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListBlockingInstancesForCapacityTask(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListBlockingInstancesForCapacityTask") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListCapacityTasks(t *testing.T) { svc := New(Options{}) _, err := svc.ListCapacityTasks(context.Background(), nil, func(o *Options) { diff --git a/service/outposts/types/enums.go b/service/outposts/types/enums.go index d1d87a661f7..b849e7837f0 100644 --- a/service/outposts/types/enums.go +++ b/service/outposts/types/enums.go @@ -59,11 +59,42 @@ func (AssetType) Values() []AssetType { } } +type AWSServiceName string + +// Enum values for AWSServiceName +const ( + AWSServiceNameAws AWSServiceName = "AWS" + AWSServiceNameEc2 AWSServiceName = "EC2" + AWSServiceNameElasticache AWSServiceName = "ELASTICACHE" + AWSServiceNameElb AWSServiceName = "ELB" + AWSServiceNameRds AWSServiceName = "RDS" + AWSServiceNameRoute53 AWSServiceName = "ROUTE53" +) + +// Values returns all known values for AWSServiceName. 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 (AWSServiceName) Values() []AWSServiceName { + return []AWSServiceName{ + "AWS", + "EC2", + "ELASTICACHE", + "ELB", + "RDS", + "ROUTE53", + } +} + type CapacityTaskFailureType string // Enum values for CapacityTaskFailureType const ( CapacityTaskFailureTypeUnsupportedCapacityConfiguration CapacityTaskFailureType = "UNSUPPORTED_CAPACITY_CONFIGURATION" + CapacityTaskFailureTypeUnexpectedAssetState CapacityTaskFailureType = "UNEXPECTED_ASSET_STATE" + CapacityTaskFailureTypeBlockingInstancesNotEvacuated CapacityTaskFailureType = "BLOCKING_INSTANCES_NOT_EVACUATED" + CapacityTaskFailureTypeInternalServerError CapacityTaskFailureType = "INTERNAL_SERVER_ERROR" + CapacityTaskFailureTypeResourceNotFound CapacityTaskFailureType = "RESOURCE_NOT_FOUND" ) // Values returns all known values for CapacityTaskFailureType. Note that this can @@ -73,6 +104,10 @@ const ( func (CapacityTaskFailureType) Values() []CapacityTaskFailureType { return []CapacityTaskFailureType{ "UNSUPPORTED_CAPACITY_CONFIGURATION", + "UNEXPECTED_ASSET_STATE", + "BLOCKING_INSTANCES_NOT_EVACUATED", + "INTERNAL_SERVER_ERROR", + "RESOURCE_NOT_FOUND", } } @@ -80,11 +115,13 @@ type CapacityTaskStatus string // Enum values for CapacityTaskStatus const ( - CapacityTaskStatusRequested CapacityTaskStatus = "REQUESTED" - CapacityTaskStatusInProgress CapacityTaskStatus = "IN_PROGRESS" - CapacityTaskStatusFailed CapacityTaskStatus = "FAILED" - CapacityTaskStatusCompleted CapacityTaskStatus = "COMPLETED" - CapacityTaskStatusCancelled CapacityTaskStatus = "CANCELLED" + CapacityTaskStatusRequested CapacityTaskStatus = "REQUESTED" + CapacityTaskStatusInProgress CapacityTaskStatus = "IN_PROGRESS" + CapacityTaskStatusFailed CapacityTaskStatus = "FAILED" + CapacityTaskStatusCompleted CapacityTaskStatus = "COMPLETED" + CapacityTaskStatusWaitingForEvacuation CapacityTaskStatus = "WAITING_FOR_EVACUATION" + CapacityTaskStatusCancellationInProgress CapacityTaskStatus = "CANCELLATION_IN_PROGRESS" + CapacityTaskStatusCancelled CapacityTaskStatus = "CANCELLED" ) // Values returns all known values for CapacityTaskStatus. Note that this can be @@ -97,6 +134,8 @@ func (CapacityTaskStatus) Values() []CapacityTaskStatus { "IN_PROGRESS", "FAILED", "COMPLETED", + "WAITING_FOR_EVACUATION", + "CANCELLATION_IN_PROGRESS", "CANCELLED", } } @@ -540,6 +579,26 @@ func (SupportedStorageEnum) Values() []SupportedStorageEnum { } } +type TaskActionOnBlockingInstances string + +// Enum values for TaskActionOnBlockingInstances +const ( + TaskActionOnBlockingInstancesWaitForEvacuation TaskActionOnBlockingInstances = "WAIT_FOR_EVACUATION" + TaskActionOnBlockingInstancesFailTask TaskActionOnBlockingInstances = "FAIL_TASK" +) + +// Values returns all known values for TaskActionOnBlockingInstances. 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 (TaskActionOnBlockingInstances) Values() []TaskActionOnBlockingInstances { + return []TaskActionOnBlockingInstances{ + "WAIT_FOR_EVACUATION", + "FAIL_TASK", + } +} + type UplinkCount string // Enum values for UplinkCount diff --git a/service/outposts/types/types.go b/service/outposts/types/types.go index b22b1c298a3..06b7bd58dc3 100644 --- a/service/outposts/types/types.go +++ b/service/outposts/types/types.go @@ -77,6 +77,43 @@ type AssetInfo struct { noSmithyDocumentSerde } +// An Amazon EC2 instance. +type AssetInstance struct { + + // The ID of the Amazon Web Services account. + AccountId *string + + // The ID of the asset. + AssetId *string + + // The Amazon Web Services service name of the instance. + AwsServiceName AWSServiceName + + // The ID of the instance. + InstanceId *string + + // The type of instance. + InstanceType *string + + noSmithyDocumentSerde +} + +// The capacity for each instance type. +type AssetInstanceTypeCapacity struct { + + // The number of each instance type. + // + // This member is required. + Count int32 + + // The type of instance. + // + // This member is required. + InstanceType *string + + noSmithyDocumentSerde +} + // Information about the position of the asset in a rack. type AssetLocation struct { @@ -86,6 +123,22 @@ type AssetLocation struct { noSmithyDocumentSerde } +// A running Amazon EC2 instance that can be stopped to free up capacity needed to +// run the capacity task. +type BlockingInstance struct { + + // The ID of the Amazon Web Services account. + AccountId *string + + // The Amazon Web Services service name that owns the specified blocking instance. + AwsServiceName AWSServiceName + + // The ID of the blocking instance. + InstanceId *string + + noSmithyDocumentSerde +} + // The capacity tasks that failed. type CapacityTaskFailure struct { @@ -165,6 +218,13 @@ type ComputeAttributes struct { // given asset. InstanceFamilies []string + // The instance type capacities configured for this asset. This can be changed + // through a capacity task. + InstanceTypeCapacities []AssetInstanceTypeCapacity + + // The maximum number of vCPUs possible for the specified asset. + MaxVcpus *int32 + // The state. // // - ACTIVE - The asset is available and can provide capacity for new compute @@ -221,6 +281,24 @@ type EC2Capacity struct { noSmithyDocumentSerde } +// User-specified instances that must not be stopped. These instances will not +// appear in the list of instances that Amazon Web Services recommends to stop in +// order to free up capacity. +type InstancesToExclude struct { + + // IDs of the accounts that own each instance that must not be stopped. + AccountIds []string + + // List of user-specified instances that must not be stopped. + Instances []string + + // Names of the services that own each instance that must not be stopped in order + // to free up the capacity needed to run the capacity task. + Services []AWSServiceName + + noSmithyDocumentSerde +} + // The instance type that you specify determines the combination of CPU, memory, // storage, and networking capacity. type InstanceTypeCapacity struct { diff --git a/service/outposts/validators.go b/service/outposts/validators.go index 9c0fae3e228..617fddf619c 100644 --- a/service/outposts/validators.go +++ b/service/outposts/validators.go @@ -330,6 +330,26 @@ func (m *validateOpGetSite) HandleInitialize(ctx context.Context, in middleware. return next.HandleInitialize(ctx, in) } +type validateOpListAssetInstances struct { +} + +func (*validateOpListAssetInstances) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListAssetInstances) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListAssetInstancesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListAssetInstancesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListAssets struct { } @@ -350,6 +370,26 @@ func (m *validateOpListAssets) HandleInitialize(ctx context.Context, in middlewa return next.HandleInitialize(ctx, in) } +type validateOpListBlockingInstancesForCapacityTask struct { +} + +func (*validateOpListBlockingInstancesForCapacityTask) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListBlockingInstancesForCapacityTask) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListBlockingInstancesForCapacityTaskInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListBlockingInstancesForCapacityTaskInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListTagsForResource struct { } @@ -594,10 +634,18 @@ func addOpGetSiteValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetSite{}, middleware.After) } +func addOpListAssetInstancesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListAssetInstances{}, middleware.After) +} + func addOpListAssetsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListAssets{}, middleware.After) } +func addOpListBlockingInstancesForCapacityTaskValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListBlockingInstancesForCapacityTask{}, middleware.After) +} + func addOpListTagsForResourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListTagsForResource{}, middleware.After) } @@ -921,9 +969,6 @@ func validateOpGetOutpostSupportedInstanceTypesInput(v *GetOutpostSupportedInsta if v.OutpostIdentifier == nil { invalidParams.Add(smithy.NewErrParamRequired("OutpostIdentifier")) } - if v.OrderId == nil { - invalidParams.Add(smithy.NewErrParamRequired("OrderId")) - } if invalidParams.Len() > 0 { return invalidParams } else { @@ -964,6 +1009,21 @@ func validateOpGetSiteInput(v *GetSiteInput) error { } } +func validateOpListAssetInstancesInput(v *ListAssetInstancesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListAssetInstancesInput"} + if v.OutpostIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("OutpostIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListAssetsInput(v *ListAssetsInput) error { if v == nil { return nil @@ -979,6 +1039,24 @@ func validateOpListAssetsInput(v *ListAssetsInput) error { } } +func validateOpListBlockingInstancesForCapacityTaskInput(v *ListBlockingInstancesForCapacityTaskInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListBlockingInstancesForCapacityTaskInput"} + if v.OutpostIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("OutpostIdentifier")) + } + if v.CapacityTaskId == nil { + invalidParams.Add(smithy.NewErrParamRequired("CapacityTaskId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListTagsForResourceInput(v *ListTagsForResourceInput) error { if v == nil { return nil @@ -1002,9 +1080,6 @@ func validateOpStartCapacityTaskInput(v *StartCapacityTaskInput) error { if v.OutpostIdentifier == nil { invalidParams.Add(smithy.NewErrParamRequired("OutpostIdentifier")) } - if v.OrderId == nil { - invalidParams.Add(smithy.NewErrParamRequired("OrderId")) - } if v.InstancePools == nil { invalidParams.Add(smithy.NewErrParamRequired("InstancePools")) } else if v.InstancePools != nil { From 58904b3efc8e7fa5fb24e30724ee63ecd2cdd82d Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Mon, 11 Nov 2024 19:43:43 +0000 Subject: [PATCH 08/20] Release 2024-11-11 --- .changelog/0f332045557a478eb1c98fbb6ed38937.json | 8 -------- .changelog/148bcacd6af047c1b60f14b336341a9c.json | 8 -------- .changelog/3ff83efb8b054353ab043d3cf7754103.json | 8 -------- .changelog/a87793418a8448aa948ce29966037636.json | 8 -------- .changelog/d7cbcd2fef5346938476e496625097cc.json | 8 -------- CHANGELOG.md | 14 ++++++++++++++ service/bedrock/CHANGELOG.md | 4 ++++ service/bedrock/go_module_metadata.go | 2 +- service/cloudfront/CHANGELOG.md | 4 ++++ service/cloudfront/go_module_metadata.go | 2 +- service/inspector2/CHANGELOG.md | 4 ++++ service/inspector2/go_module_metadata.go | 2 +- service/internal/integrationtest/go.mod | 4 ++-- service/lambda/CHANGELOG.md | 4 ++++ service/lambda/go_module_metadata.go | 2 +- service/opensearch/CHANGELOG.md | 4 ++++ service/opensearch/go_module_metadata.go | 2 +- service/outposts/CHANGELOG.md | 4 ++++ service/outposts/go_module_metadata.go | 2 +- 19 files changed, 46 insertions(+), 48 deletions(-) delete mode 100644 .changelog/0f332045557a478eb1c98fbb6ed38937.json delete mode 100644 .changelog/148bcacd6af047c1b60f14b336341a9c.json delete mode 100644 .changelog/3ff83efb8b054353ab043d3cf7754103.json delete mode 100644 .changelog/a87793418a8448aa948ce29966037636.json delete mode 100644 .changelog/d7cbcd2fef5346938476e496625097cc.json diff --git a/.changelog/0f332045557a478eb1c98fbb6ed38937.json b/.changelog/0f332045557a478eb1c98fbb6ed38937.json deleted file mode 100644 index 2f0bf4af20d..00000000000 --- a/.changelog/0f332045557a478eb1c98fbb6ed38937.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "0f332045-557a-478e-b1c9-8fbb6ed38937", - "type": "feature", - "description": "Adds support for filePath filter.", - "modules": [ - "service/inspector2" - ] -} \ No newline at end of file diff --git a/.changelog/148bcacd6af047c1b60f14b336341a9c.json b/.changelog/148bcacd6af047c1b60f14b336341a9c.json deleted file mode 100644 index b06e6906b77..00000000000 --- a/.changelog/148bcacd6af047c1b60f14b336341a9c.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "148bcacd-6af0-47c1-b60f-14b336341a9c", - "type": "feature", - "description": "This release updates StartCapacityTask to allow an active Outpost to be modified. It also adds a new API to list all running EC2 instances on the Outpost.", - "modules": [ - "service/outposts" - ] -} \ No newline at end of file diff --git a/.changelog/3ff83efb8b054353ab043d3cf7754103.json b/.changelog/3ff83efb8b054353ab043d3cf7754103.json deleted file mode 100644 index 11f8b7e4869..00000000000 --- a/.changelog/3ff83efb8b054353ab043d3cf7754103.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "3ff83efb-8b05-4353-ab04-3d3cf7754103", - "type": "feature", - "description": "Add Python 3.13 (python3.13) support to AWS Lambda", - "modules": [ - "service/lambda" - ] -} \ No newline at end of file diff --git a/.changelog/a87793418a8448aa948ce29966037636.json b/.changelog/a87793418a8448aa948ce29966037636.json deleted file mode 100644 index ff6392f8585..00000000000 --- a/.changelog/a87793418a8448aa948ce29966037636.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "a8779341-8a84-48aa-948c-e29966037636", - "type": "feature", - "description": "Adds Support for new AssociatePackages and DissociatePackages API in Amazon OpenSearch Service that allows association and dissociation operations to be carried out on multiple packages at the same time.", - "modules": [ - "service/opensearch" - ] -} \ No newline at end of file diff --git a/.changelog/d7cbcd2fef5346938476e496625097cc.json b/.changelog/d7cbcd2fef5346938476e496625097cc.json deleted file mode 100644 index 071cc748254..00000000000 --- a/.changelog/d7cbcd2fef5346938476e496625097cc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "d7cbcd2f-ef53-4693-8476-e496625097cc", - "type": "feature", - "description": "No API changes from previous release. This release migrated the model to Smithy keeping all features unchanged.", - "modules": [ - "service/cloudfront" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 57f8c42d47f..88b0a6ef0e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +# Release (2024-11-11) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/cloudfront`: [v1.41.0](service/cloudfront/CHANGELOG.md#v1410-2024-11-11) + * **Feature**: No API changes from previous release. This release migrated the model to Smithy keeping all features unchanged. +* `github.com/aws/aws-sdk-go-v2/service/inspector2`: [v1.33.0](service/inspector2/CHANGELOG.md#v1330-2024-11-11) + * **Feature**: Adds support for filePath filter. +* `github.com/aws/aws-sdk-go-v2/service/lambda`: [v1.66.0](service/lambda/CHANGELOG.md#v1660-2024-11-11) + * **Feature**: Add Python 3.13 (python3.13) support to AWS Lambda +* `github.com/aws/aws-sdk-go-v2/service/opensearch`: [v1.44.0](service/opensearch/CHANGELOG.md#v1440-2024-11-11) + * **Feature**: Adds Support for new AssociatePackages and DissociatePackages API in Amazon OpenSearch Service that allows association and dissociation operations to be carried out on multiple packages at the same time. +* `github.com/aws/aws-sdk-go-v2/service/outposts`: [v1.46.0](service/outposts/CHANGELOG.md#v1460-2024-11-11) + * **Feature**: This release updates StartCapacityTask to allow an active Outpost to be modified. It also adds a new API to list all running EC2 instances on the Outpost. + # Release (2024-11-08) ## Module Highlights diff --git a/service/bedrock/CHANGELOG.md b/service/bedrock/CHANGELOG.md index 05fa701a905..5fcb93611a6 100644 --- a/service/bedrock/CHANGELOG.md +++ b/service/bedrock/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.22.3 (2024-11-11) + +* No change notes available for this release. + # v1.22.2 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/bedrock/go_module_metadata.go b/service/bedrock/go_module_metadata.go index 6e19685b19a..3e04380ca29 100644 --- a/service/bedrock/go_module_metadata.go +++ b/service/bedrock/go_module_metadata.go @@ -3,4 +3,4 @@ package bedrock // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.22.2" +const goModuleVersion = "1.22.3" diff --git a/service/cloudfront/CHANGELOG.md b/service/cloudfront/CHANGELOG.md index 784e084451a..83c75f07d8d 100644 --- a/service/cloudfront/CHANGELOG.md +++ b/service/cloudfront/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.41.0 (2024-11-11) + +* **Feature**: No API changes from previous release. This release migrated the model to Smithy keeping all features unchanged. + # v1.40.4 (2024-11-06) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/cloudfront/go_module_metadata.go b/service/cloudfront/go_module_metadata.go index d43c5c3d78c..4401c9801fe 100644 --- a/service/cloudfront/go_module_metadata.go +++ b/service/cloudfront/go_module_metadata.go @@ -3,4 +3,4 @@ package cloudfront // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.40.4" +const goModuleVersion = "1.41.0" diff --git a/service/inspector2/CHANGELOG.md b/service/inspector2/CHANGELOG.md index 086c8b5e901..bad7c1d190c 100644 --- a/service/inspector2/CHANGELOG.md +++ b/service/inspector2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.33.0 (2024-11-11) + +* **Feature**: Adds support for filePath filter. + # v1.32.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/inspector2/go_module_metadata.go b/service/inspector2/go_module_metadata.go index fbd4055f321..502bf5a1f6b 100644 --- a/service/inspector2/go_module_metadata.go +++ b/service/inspector2/go_module_metadata.go @@ -3,4 +3,4 @@ package inspector2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.32.5" +const goModuleVersion = "1.33.0" diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index f389344750b..15b7e8034e9 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -12,7 +12,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/athena v1.48.3 github.com/aws/aws-sdk-go-v2/service/batch v1.48.0 github.com/aws/aws-sdk-go-v2/service/cloudformation v1.55.5 - github.com/aws/aws-sdk-go-v2/service/cloudfront v1.40.4 + github.com/aws/aws-sdk-go-v2/service/cloudfront v1.41.0 github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.6 github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.44.5 github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.42.4 @@ -51,7 +51,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/iot v1.59.5 github.com/aws/aws-sdk-go-v2/service/kinesis v1.32.5 github.com/aws/aws-sdk-go-v2/service/kms v1.37.5 - github.com/aws/aws-sdk-go-v2/service/lambda v1.65.0 + github.com/aws/aws-sdk-go-v2/service/lambda v1.66.0 github.com/aws/aws-sdk-go-v2/service/lightsail v1.42.5 github.com/aws/aws-sdk-go-v2/service/marketplacecommerceanalytics v1.24.5 github.com/aws/aws-sdk-go-v2/service/neptune v1.35.4 diff --git a/service/lambda/CHANGELOG.md b/service/lambda/CHANGELOG.md index fc3fcc30bf8..33de6778ea6 100644 --- a/service/lambda/CHANGELOG.md +++ b/service/lambda/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.66.0 (2024-11-11) + +* **Feature**: Add Python 3.13 (python3.13) support to AWS Lambda + # v1.65.0 (2024-11-08) * **Feature**: This release adds support for using AWS KMS customer managed keys to encrypt AWS Lambda .zip deployment packages. diff --git a/service/lambda/go_module_metadata.go b/service/lambda/go_module_metadata.go index 644e5b979c7..52f11979873 100644 --- a/service/lambda/go_module_metadata.go +++ b/service/lambda/go_module_metadata.go @@ -3,4 +3,4 @@ package lambda // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.65.0" +const goModuleVersion = "1.66.0" diff --git a/service/opensearch/CHANGELOG.md b/service/opensearch/CHANGELOG.md index a05ec588219..4bdb14f9fa9 100644 --- a/service/opensearch/CHANGELOG.md +++ b/service/opensearch/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.44.0 (2024-11-11) + +* **Feature**: Adds Support for new AssociatePackages and DissociatePackages API in Amazon OpenSearch Service that allows association and dissociation operations to be carried out on multiple packages at the same time. + # v1.43.2 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/opensearch/go_module_metadata.go b/service/opensearch/go_module_metadata.go index 50a716b80c9..3d43642aa48 100644 --- a/service/opensearch/go_module_metadata.go +++ b/service/opensearch/go_module_metadata.go @@ -3,4 +3,4 @@ package opensearch // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.43.2" +const goModuleVersion = "1.44.0" diff --git a/service/outposts/CHANGELOG.md b/service/outposts/CHANGELOG.md index 75cbdc9d9b3..da9e847e67d 100644 --- a/service/outposts/CHANGELOG.md +++ b/service/outposts/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.46.0 (2024-11-11) + +* **Feature**: This release updates StartCapacityTask to allow an active Outpost to be modified. It also adds a new API to list all running EC2 instances on the Outpost. + # v1.45.3 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/outposts/go_module_metadata.go b/service/outposts/go_module_metadata.go index e6647d95ecd..f061f52d116 100644 --- a/service/outposts/go_module_metadata.go +++ b/service/outposts/go_module_metadata.go @@ -3,4 +3,4 @@ package outposts // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.45.3" +const goModuleVersion = "1.46.0" From 49a6bb8a1f374a2816f8a3a1a2b9929d643c70d7 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Tue, 12 Nov 2024 19:26:16 +0000 Subject: [PATCH 09/20] Update API model --- codegen/sdk-codegen/aws-models/codebuild.json | 24 +- .../sdk-codegen/aws-models/controltower.json | 85 +- codegen/sdk-codegen/aws-models/fis.json | 535 +++ codegen/sdk-codegen/aws-models/gamelift.json | 3218 +++++++++++++---- .../aws-models/payment-cryptography.json | 20 +- codegen/sdk-codegen/aws-models/rds.json | 8 +- 6 files changed, 3154 insertions(+), 736 deletions(-) diff --git a/codegen/sdk-codegen/aws-models/codebuild.json b/codegen/sdk-codegen/aws-models/codebuild.json index ad19aa82eb5..910db18d583 100644 --- a/codegen/sdk-codegen/aws-models/codebuild.json +++ b/codegen/sdk-codegen/aws-models/codebuild.json @@ -2952,7 +2952,7 @@ "environmentType": { "target": "com.amazonaws.codebuild#EnvironmentType", "traits": { - "smithy.api#documentation": "

The environment type of the compute fleet.

\n
    \n
  • \n

    The environment type ARM_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland),\n Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), \n EU (Frankfurt), and South America (São Paulo).

    \n
  • \n
  • \n

    The environment type LINUX_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_GPU_CONTAINER is available only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Medium fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n and EU (Frankfurt)

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Large fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2019_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n Asia Pacific (Tokyo), Asia Pacific (Mumbai) and\n EU (Ireland).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2022_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), \n Asia Pacific (Sydney), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (São Paulo) and\n Asia Pacific (Mumbai).

    \n
  • \n
\n

For more information, see Build environment compute types in the CodeBuild\n user guide.

", + "smithy.api#documentation": "

The environment type of the compute fleet.

\n
    \n
  • \n

    The environment type ARM_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland),\n Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), \n EU (Frankfurt), and South America (São Paulo).

    \n
  • \n
  • \n

    The environment type ARM_EC2 is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_EC2 is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_GPU_CONTAINER is available only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Medium fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n and EU (Frankfurt)

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Large fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type WINDOWS_EC2 is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2019_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n Asia Pacific (Tokyo), Asia Pacific (Mumbai) and\n EU (Ireland).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2022_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), \n Asia Pacific (Sydney), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (São Paulo) and\n Asia Pacific (Mumbai).

    \n
  • \n
\n

For more information, see Build environment compute types in the CodeBuild\n user guide.

", "smithy.api#required": {} } }, @@ -4053,6 +4053,24 @@ "smithy.api#enumValue": "ARM_LAMBDA_CONTAINER" } }, + "LINUX_EC2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINUX_EC2" + } + }, + "ARM_EC2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ARM_EC2" + } + }, + "WINDOWS_EC2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WINDOWS_EC2" + } + }, "MAC_ARM": { "target": "smithy.api#Unit", "traits": { @@ -4215,7 +4233,7 @@ "environmentType": { "target": "com.amazonaws.codebuild#EnvironmentType", "traits": { - "smithy.api#documentation": "

The environment type of the compute fleet.

\n
    \n
  • \n

    The environment type ARM_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland),\n Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), \n EU (Frankfurt), and South America (São Paulo).

    \n
  • \n
  • \n

    The environment type LINUX_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_GPU_CONTAINER is available only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Medium fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n and EU (Frankfurt)

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Large fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2019_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n Asia Pacific (Tokyo), Asia Pacific (Mumbai) and\n EU (Ireland).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2022_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), \n Asia Pacific (Sydney), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (São Paulo) and\n Asia Pacific (Mumbai).

    \n
  • \n
\n

For more information, see Build environment compute types in the CodeBuild\n user guide.

" + "smithy.api#documentation": "

The environment type of the compute fleet.

\n
    \n
  • \n

    The environment type ARM_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland),\n Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), \n EU (Frankfurt), and South America (São Paulo).

    \n
  • \n
  • \n

    The environment type ARM_EC2 is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_EC2 is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_GPU_CONTAINER is available only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Medium fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n and EU (Frankfurt)

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Large fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type WINDOWS_EC2 is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2019_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n Asia Pacific (Tokyo), Asia Pacific (Mumbai) and\n EU (Ireland).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2022_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), \n Asia Pacific (Sydney), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (São Paulo) and\n Asia Pacific (Mumbai).

    \n
  • \n
\n

For more information, see Build environment compute types in the CodeBuild\n user guide.

" } }, "computeType": { @@ -8820,7 +8838,7 @@ "environmentType": { "target": "com.amazonaws.codebuild#EnvironmentType", "traits": { - "smithy.api#documentation": "

The environment type of the compute fleet.

\n
    \n
  • \n

    The environment type ARM_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland),\n Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), \n EU (Frankfurt), and South America (São Paulo).

    \n
  • \n
  • \n

    The environment type LINUX_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_GPU_CONTAINER is available only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Medium fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n and EU (Frankfurt)

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Large fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2019_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n Asia Pacific (Tokyo), Asia Pacific (Mumbai) and\n EU (Ireland).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2022_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), \n Asia Pacific (Sydney), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (São Paulo) and\n Asia Pacific (Mumbai).

    \n
  • \n
\n

For more information, see Build environment compute types in the CodeBuild\n user guide.

" + "smithy.api#documentation": "

The environment type of the compute fleet.

\n
    \n
  • \n

    The environment type ARM_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland),\n Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), \n EU (Frankfurt), and South America (São Paulo).

    \n
  • \n
  • \n

    The environment type ARM_EC2 is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_EC2 is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type LINUX_GPU_CONTAINER is available only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Medium fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n and EU (Frankfurt)

    \n
  • \n
  • \n

    The environment type MAC_ARM is available for Large fleets only in\n regions US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific (Sydney).

    \n
  • \n
  • \n

    The environment type WINDOWS_EC2 is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), \n EU (Frankfurt), Asia Pacific (Tokyo),\n Asia Pacific (Singapore), Asia Pacific (Sydney), South America (São Paulo), and\n Asia Pacific (Mumbai).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2019_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Sydney), \n Asia Pacific (Tokyo), Asia Pacific (Mumbai) and\n EU (Ireland).

    \n
  • \n
  • \n

    The environment type WINDOWS_SERVER_2022_CONTAINER is available only in regions\n US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), \n Asia Pacific (Sydney), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (São Paulo) and\n Asia Pacific (Mumbai).

    \n
  • \n
\n

For more information, see Build environment compute types in the CodeBuild\n user guide.

" } }, "computeType": { diff --git a/codegen/sdk-codegen/aws-models/controltower.json b/codegen/sdk-codegen/aws-models/controltower.json index b70920fe1fb..5a003e8f678 100644 --- a/codegen/sdk-codegen/aws-models/controltower.json +++ b/codegen/sdk-codegen/aws-models/controltower.json @@ -1390,6 +1390,12 @@ "traits": { "smithy.api#enumValue": "UPDATE_ENABLED_CONTROL" } + }, + "RESET_ENABLED_CONTROL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESET_ENABLED_CONTROL" + } } } }, @@ -2357,7 +2363,12 @@ }, "list": { "target": "com.amazonaws.controltower#ListEnabledControls" - } + }, + "operations": [ + { + "target": "com.amazonaws.controltower#ResetEnabledControl" + } + ] }, "com.amazonaws.controltower#EnabledControlSummary": { "type": "structure", @@ -4035,6 +4046,76 @@ "smithy.api#output": {} } }, + "com.amazonaws.controltower#ResetEnabledControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.controltower#ResetEnabledControlInput" + }, + "output": { + "target": "com.amazonaws.controltower#ResetEnabledControlOutput" + }, + "errors": [ + { + "target": "com.amazonaws.controltower#AccessDeniedException" + }, + { + "target": "com.amazonaws.controltower#ConflictException" + }, + { + "target": "com.amazonaws.controltower#InternalServerException" + }, + { + "target": "com.amazonaws.controltower#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.controltower#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.controltower#ThrottlingException" + }, + { + "target": "com.amazonaws.controltower#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Resets an enabled control.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/reset-enabled-control" + } + } + }, + "com.amazonaws.controltower#ResetEnabledControlInput": { + "type": "structure", + "members": { + "enabledControlIdentifier": { + "target": "com.amazonaws.controltower#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the enabled control to be reset.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.controltower#ResetEnabledControlOutput": { + "type": "structure", + "members": { + "operationIdentifier": { + "target": "com.amazonaws.controltower#OperationIdentifier", + "traits": { + "smithy.api#documentation": "

The operation identifier for this ResetEnabledControl operation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.controltower#ResetLandingZone": { "type": "operation", "input": { @@ -4502,7 +4583,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Updates the configuration of an already enabled control.

\n

If the enabled control shows an EnablementStatus of SUCCEEDED, supply parameters that are different from the currently configured parameters. Otherwise, Amazon Web Services Control Tower will not accept the request.

\n

If the enabled control shows an EnablementStatus of FAILED, Amazon Web Services Control Tower updates the control to match any valid parameters that you supply.

\n

If the DriftSummary status for the control shows as DRIFTED, you cannot call this API. Instead, you can update the control by calling DisableControl and again calling EnableControl, or you can run an extending governance operation. For usage examples, see the \n Controls Reference Guide\n .\n

", + "smithy.api#documentation": "

\n Updates the configuration of an already enabled control.

\n

If the enabled control shows an EnablementStatus of SUCCEEDED, supply parameters that are different from the currently configured parameters. Otherwise, Amazon Web Services Control Tower will not accept the request.

\n

If the enabled control shows an EnablementStatus of FAILED, Amazon Web Services Control Tower updates the control to match any valid parameters that you supply.

\n

If the DriftSummary status for the control shows as DRIFTED, you cannot call this API. Instead, you can update the control by calling the ResetEnabledControl API. Alternatively, you can call DisableControl and then call EnableControl again. Also, you can run an extending governance operation to repair drift. For usage examples, see the \n Controls Reference Guide\n .\n

", "smithy.api#http": { "code": 200, "method": "POST", diff --git a/codegen/sdk-codegen/aws-models/fis.json b/codegen/sdk-codegen/aws-models/fis.json index ec0e5a5c1f9..063d8ee7960 100644 --- a/codegen/sdk-codegen/aws-models/fis.json +++ b/codegen/sdk-codegen/aws-models/fis.json @@ -423,6 +423,38 @@ "smithy.api#documentation": "

Specifies the configuration for experiment logging.

" } }, + "com.amazonaws.fis#CreateExperimentTemplateReportConfigurationInput": { + "type": "structure", + "members": { + "outputs": { + "target": "com.amazonaws.fis#ExperimentTemplateReportConfigurationOutputsInput", + "traits": { + "smithy.api#documentation": "

The output destinations of the experiment report.

" + } + }, + "dataSources": { + "target": "com.amazonaws.fis#ExperimentTemplateReportConfigurationDataSourcesInput", + "traits": { + "smithy.api#documentation": "

The data sources for the experiment report.

" + } + }, + "preExperimentDuration": { + "target": "com.amazonaws.fis#ReportConfigurationDuration", + "traits": { + "smithy.api#documentation": "

The duration before the experiment start time for the data sources to include in the report.

" + } + }, + "postExperimentDuration": { + "target": "com.amazonaws.fis#ReportConfigurationDuration", + "traits": { + "smithy.api#documentation": "

The duration after the experiment end time for the data sources to include in the report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the configuration for experiment reports.

" + } + }, "com.amazonaws.fis#CreateExperimentTemplateRequest": { "type": "structure", "members": { @@ -485,6 +517,12 @@ "traits": { "smithy.api#documentation": "

The experiment options for the experiment template.

" } + }, + "experimentReportConfiguration": { + "target": "com.amazonaws.fis#CreateExperimentTemplateReportConfigurationInput", + "traits": { + "smithy.api#documentation": "

The experiment report configuration for the experiment template.

" + } } }, "traits": { @@ -916,6 +954,18 @@ "traits": { "smithy.api#documentation": "

The count of target account configurations for the experiment.

" } + }, + "experimentReportConfiguration": { + "target": "com.amazonaws.fis#ExperimentReportConfiguration", + "traits": { + "smithy.api#documentation": "

The experiment report configuration for the experiment.

" + } + }, + "experimentReport": { + "target": "com.amazonaws.fis#ExperimentReport", + "traits": { + "smithy.api#documentation": "

The experiment report for the experiment.

" + } } }, "traits": { @@ -1287,6 +1337,259 @@ "smithy.api#documentation": "

Describes the options for an experiment.

" } }, + "com.amazonaws.fis#ExperimentReport": { + "type": "structure", + "members": { + "state": { + "target": "com.amazonaws.fis#ExperimentReportState", + "traits": { + "smithy.api#documentation": "

The state of the experiment report.

" + } + }, + "s3Reports": { + "target": "com.amazonaws.fis#ExperimentReportS3ReportList", + "traits": { + "smithy.api#documentation": "

The S3 destination of the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the experiment report.

" + } + }, + "com.amazonaws.fis#ExperimentReportConfiguration": { + "type": "structure", + "members": { + "outputs": { + "target": "com.amazonaws.fis#ExperimentReportConfigurationOutputs", + "traits": { + "smithy.api#documentation": "

The output destinations of the experiment report.

" + } + }, + "dataSources": { + "target": "com.amazonaws.fis#ExperimentReportConfigurationDataSources", + "traits": { + "smithy.api#documentation": "

The data sources for the experiment report.

" + } + }, + "preExperimentDuration": { + "target": "com.amazonaws.fis#ReportConfigurationDuration", + "traits": { + "smithy.api#documentation": "

The duration before the experiment start time for the data sources to include in the report.

" + } + }, + "postExperimentDuration": { + "target": "com.amazonaws.fis#ReportConfigurationDuration", + "traits": { + "smithy.api#documentation": "

The duration after the experiment end time for the data sources to include in the report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the report configuration for the experiment. For more information, see Experiment report configurations for AWS FIS.

" + } + }, + "com.amazonaws.fis#ExperimentReportConfigurationCloudWatchDashboard": { + "type": "structure", + "members": { + "dashboardIdentifier": { + "target": "com.amazonaws.fis#ReportConfigurationCloudWatchDashboardIdentifier", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the CloudWatch dashboard to include in the experiment report. The dashboard widgets will be captured as snapshot graphs within the report.

" + } + }, + "com.amazonaws.fis#ExperimentReportConfigurationCloudWatchDashboardList": { + "type": "list", + "member": { + "target": "com.amazonaws.fis#ExperimentReportConfigurationCloudWatchDashboard" + } + }, + "com.amazonaws.fis#ExperimentReportConfigurationDataSources": { + "type": "structure", + "members": { + "cloudWatchDashboards": { + "target": "com.amazonaws.fis#ExperimentReportConfigurationCloudWatchDashboardList", + "traits": { + "smithy.api#documentation": "

The CloudWatch dashboards to include as data sources in the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the data sources for the experiment report.

" + } + }, + "com.amazonaws.fis#ExperimentReportConfigurationOutputs": { + "type": "structure", + "members": { + "s3Configuration": { + "target": "com.amazonaws.fis#ExperimentReportConfigurationOutputsS3Configuration", + "traits": { + "smithy.api#documentation": "

The S3 destination for the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the output destinations of the experiment report.

" + } + }, + "com.amazonaws.fis#ExperimentReportConfigurationOutputsS3Configuration": { + "type": "structure", + "members": { + "bucketName": { + "target": "com.amazonaws.fis#S3BucketName", + "traits": { + "smithy.api#documentation": "

The name of the S3 bucket where the experiment report will be stored.

" + } + }, + "prefix": { + "target": "com.amazonaws.fis#S3ObjectKey", + "traits": { + "smithy.api#documentation": "

The prefix of the S3 bucket where the experiment report will be stored.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the S3 destination for the experiment report.

" + } + }, + "com.amazonaws.fis#ExperimentReportError": { + "type": "structure", + "members": { + "code": { + "target": "com.amazonaws.fis#ExperimentReportErrorCode", + "traits": { + "smithy.api#documentation": "

The error code for the failed experiment report generation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the error when experiment report generation has failed.

" + } + }, + "com.amazonaws.fis#ExperimentReportErrorCode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + }, + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.fis#ExperimentReportReason": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 512 + }, + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.fis#ExperimentReportS3Report": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.fis#ExperimentReportS3ReportArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the generated report.

" + } + }, + "reportType": { + "target": "com.amazonaws.fis#ExperimentReportS3ReportType", + "traits": { + "smithy.api#documentation": "

The report type for the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the S3 destination for the report.

" + } + }, + "com.amazonaws.fis#ExperimentReportS3ReportArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.fis#ExperimentReportS3ReportList": { + "type": "list", + "member": { + "target": "com.amazonaws.fis#ExperimentReportS3Report" + } + }, + "com.amazonaws.fis#ExperimentReportS3ReportType": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, + "com.amazonaws.fis#ExperimentReportState": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.fis#ExperimentReportStatus", + "traits": { + "smithy.api#documentation": "

The state of the experiment report generation.

" + } + }, + "reason": { + "target": "com.amazonaws.fis#ExperimentReportReason", + "traits": { + "smithy.api#documentation": "

The reason for the state of the experiment report generation.

" + } + }, + "error": { + "target": "com.amazonaws.fis#ExperimentReportError", + "traits": { + "smithy.api#documentation": "

The error information of the experiment when the experiment report generation has failed.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the state of the experiment report generation.

" + } + }, + "com.amazonaws.fis#ExperimentReportStatus": { + "type": "enum", + "members": { + "pending": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "running": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "running" + } + }, + "completed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "completed" + } + }, + "cancelled": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "failed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + } + }, "com.amazonaws.fis#ExperimentS3LogConfiguration": { "type": "structure", "members": { @@ -1772,6 +2075,12 @@ "traits": { "smithy.api#documentation": "

The count of target account configurations for the experiment template.

" } + }, + "experimentReportConfiguration": { + "target": "com.amazonaws.fis#ExperimentTemplateReportConfiguration", + "traits": { + "smithy.api#documentation": "

Describes the report configuration for the experiment template.

" + } } }, "traits": { @@ -2004,6 +2313,114 @@ "smithy.api#documentation": "

Describes the configuration for experiment logging.

" } }, + "com.amazonaws.fis#ExperimentTemplateReportConfiguration": { + "type": "structure", + "members": { + "outputs": { + "target": "com.amazonaws.fis#ExperimentTemplateReportConfigurationOutputs", + "traits": { + "smithy.api#documentation": "

Describes the output destinations of the experiment report.

" + } + }, + "dataSources": { + "target": "com.amazonaws.fis#ExperimentTemplateReportConfigurationDataSources", + "traits": { + "smithy.api#documentation": "

The data sources for the experiment report.

" + } + }, + "preExperimentDuration": { + "target": "com.amazonaws.fis#ReportConfigurationDuration", + "traits": { + "smithy.api#documentation": "

The duration before the experiment start time for the data sources to include in the report.

" + } + }, + "postExperimentDuration": { + "target": "com.amazonaws.fis#ReportConfigurationDuration", + "traits": { + "smithy.api#documentation": "

The duration after the experiment end time for the data sources to include in the report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the experiment report configuration. For more information, see Experiment report configurations for AWS FIS.

" + } + }, + "com.amazonaws.fis#ExperimentTemplateReportConfigurationCloudWatchDashboard": { + "type": "structure", + "members": { + "dashboardIdentifier": { + "target": "com.amazonaws.fis#ReportConfigurationCloudWatchDashboardIdentifier", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The CloudWatch dashboards to include as data sources in the experiment report.

" + } + }, + "com.amazonaws.fis#ExperimentTemplateReportConfigurationCloudWatchDashboardList": { + "type": "list", + "member": { + "target": "com.amazonaws.fis#ExperimentTemplateReportConfigurationCloudWatchDashboard" + } + }, + "com.amazonaws.fis#ExperimentTemplateReportConfigurationDataSources": { + "type": "structure", + "members": { + "cloudWatchDashboards": { + "target": "com.amazonaws.fis#ExperimentTemplateReportConfigurationCloudWatchDashboardList", + "traits": { + "smithy.api#documentation": "

The CloudWatch dashboards to include as data sources in the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the data sources for the experiment report.

" + } + }, + "com.amazonaws.fis#ExperimentTemplateReportConfigurationDataSourcesInput": { + "type": "structure", + "members": { + "cloudWatchDashboards": { + "target": "com.amazonaws.fis#ReportConfigurationCloudWatchDashboardInputList", + "traits": { + "smithy.api#documentation": "

The CloudWatch dashboards to include as data sources in the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the data sources for the experiment report.

" + } + }, + "com.amazonaws.fis#ExperimentTemplateReportConfigurationOutputs": { + "type": "structure", + "members": { + "s3Configuration": { + "target": "com.amazonaws.fis#ReportConfigurationS3Output", + "traits": { + "smithy.api#documentation": "

The S3 destination for the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The output destinations of the experiment report.

" + } + }, + "com.amazonaws.fis#ExperimentTemplateReportConfigurationOutputsInput": { + "type": "structure", + "members": { + "s3Configuration": { + "target": "com.amazonaws.fis#ReportConfigurationS3OutputInput", + "traits": { + "smithy.api#documentation": "

The S3 destination for the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the outputs for the experiment templates.

" + } + }, "com.amazonaws.fis#ExperimentTemplateS3LogConfiguration": { "type": "structure", "members": { @@ -4114,6 +4531,86 @@ "smithy.api#pattern": "^[\\S]+$" } }, + "com.amazonaws.fis#ReportConfigurationCloudWatchDashboardIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 512 + }, + "smithy.api#pattern": "^[\\S]+$" + } + }, + "com.amazonaws.fis#ReportConfigurationCloudWatchDashboardInput": { + "type": "structure", + "members": { + "dashboardIdentifier": { + "target": "com.amazonaws.fis#ReportConfigurationCloudWatchDashboardIdentifier", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the CloudWatch dashboard for the experiment report.

" + } + }, + "com.amazonaws.fis#ReportConfigurationCloudWatchDashboardInputList": { + "type": "list", + "member": { + "target": "com.amazonaws.fis#ReportConfigurationCloudWatchDashboardInput" + } + }, + "com.amazonaws.fis#ReportConfigurationDuration": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 32 + }, + "smithy.api#pattern": "^[\\S]+$" + } + }, + "com.amazonaws.fis#ReportConfigurationS3Output": { + "type": "structure", + "members": { + "bucketName": { + "target": "com.amazonaws.fis#S3BucketName", + "traits": { + "smithy.api#documentation": "

The name of the S3 bucket where the experiment report will be stored.

" + } + }, + "prefix": { + "target": "com.amazonaws.fis#S3ObjectKey", + "traits": { + "smithy.api#documentation": "

The prefix of the S3 bucket where the experiment report will be stored.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the S3 destination for the experiment report.

" + } + }, + "com.amazonaws.fis#ReportConfigurationS3OutputInput": { + "type": "structure", + "members": { + "bucketName": { + "target": "com.amazonaws.fis#S3BucketName", + "traits": { + "smithy.api#documentation": "

The name of the S3 bucket where the experiment report will be stored.

" + } + }, + "prefix": { + "target": "com.amazonaws.fis#S3ObjectKey", + "traits": { + "smithy.api#documentation": "

The prefix of the S3 bucket where the experiment report will be stored.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the S3 destination for the experiment report.

" + } + }, "com.amazonaws.fis#ResolvedTarget": { "type": "structure", "members": { @@ -5003,6 +5500,38 @@ "smithy.api#documentation": "

Specifies the configuration for experiment logging.

" } }, + "com.amazonaws.fis#UpdateExperimentTemplateReportConfigurationInput": { + "type": "structure", + "members": { + "outputs": { + "target": "com.amazonaws.fis#ExperimentTemplateReportConfigurationOutputsInput", + "traits": { + "smithy.api#documentation": "

Describes the output destinations of the experiment report.

" + } + }, + "dataSources": { + "target": "com.amazonaws.fis#ExperimentTemplateReportConfigurationDataSourcesInput", + "traits": { + "smithy.api#documentation": "

The data sources for the experiment report.

" + } + }, + "preExperimentDuration": { + "target": "com.amazonaws.fis#ReportConfigurationDuration", + "traits": { + "smithy.api#documentation": "

The duration before the experiment start time for the data sources to include in the report.

" + } + }, + "postExperimentDuration": { + "target": "com.amazonaws.fis#ReportConfigurationDuration", + "traits": { + "smithy.api#documentation": "

The duration after the experiment end time for the data sources to include in the report.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Specifies the input for the experiment report configuration.

" + } + }, "com.amazonaws.fis#UpdateExperimentTemplateRequest": { "type": "structure", "members": { @@ -5055,6 +5584,12 @@ "traits": { "smithy.api#documentation": "

The experiment options for the experiment template.

" } + }, + "experimentReportConfiguration": { + "target": "com.amazonaws.fis#UpdateExperimentTemplateReportConfigurationInput", + "traits": { + "smithy.api#documentation": "

The experiment report configuration for the experiment template.

" + } } }, "traits": { diff --git a/codegen/sdk-codegen/aws-models/gamelift.json b/codegen/sdk-codegen/aws-models/gamelift.json index a2478792d04..6f776de74c8 100644 --- a/codegen/sdk-codegen/aws-models/gamelift.json +++ b/codegen/sdk-codegen/aws-models/gamelift.json @@ -215,7 +215,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 256 + "max": 512 }, "smithy.api#pattern": "^[a-zA-Z0-9:/-]+$" } @@ -344,19 +344,19 @@ "BuildArn": { "target": "com.amazonaws.gamelift#BuildArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) assigned to a Amazon GameLift build resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:::build/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. In a GameLift build ARN, the resource ID matches the\n BuildId value.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift build resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:::build/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. In a GameLift build ARN, the resource ID matches the\n BuildId value.

" } }, "Name": { "target": "com.amazonaws.gamelift#FreeText", "traits": { - "smithy.api#documentation": "

A descriptive label associated with a build. Build names don't need to be unique. It can be set using CreateBuild or\n UpdateBuild.

" + "smithy.api#documentation": "

A descriptive label that is associated with a build. Build names do not need to be unique. It can be set using CreateBuild or\n UpdateBuild.

" } }, "Version": { "target": "com.amazonaws.gamelift#FreeText", "traits": { - "smithy.api#documentation": "

Version information associated with a build or script. Version strings don't need to be unique.

" + "smithy.api#documentation": "

Version information that is associated with a build or script. Version strings do not need to be unique.

" } }, "Status": { @@ -448,13 +448,13 @@ "target": "com.amazonaws.gamelift#CertificateType", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Indicates whether a TLS/SSL certificate is generated for a fleet.

\n

Valid values include:

\n
    \n
  • \n

    \n GENERATED - Generate a TLS/SSL certificate\n for this fleet.

    \n
  • \n
  • \n

    \n DISABLED - (default) Do not generate a\n TLS/SSL certificate for this fleet.

    \n
  • \n
", + "smithy.api#documentation": "

Indicates whether a TLS/SSL certificate is generated for a fleet.

\n

Valid values include:

\n
    \n
  • \n

    \n GENERATED -- Generate a TLS/SSL certificate\n for this fleet.

    \n
  • \n
  • \n

    \n DISABLED -- (default) Do not generate a\n TLS/SSL certificate for this fleet.

    \n
  • \n
", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

\n This data type has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Determines whether a TLS/SSL certificate is generated for a fleet. This feature must\n be enabled when creating the fleet. All instances in a fleet share the same certificate.\n The certificate can be retrieved by calling the Amazon GameLift Server\n SDK operation GetInstanceCertificate.

" + "smithy.api#documentation": "

Determines whether a TLS/SSL certificate is generated for a fleet. This feature must\n be enabled when creating the fleet. All instances in a fleet share the same certificate.\n The certificate can be retrieved by calling the Amazon GameLift Server\n SDK operation GetInstanceCertificate.

" } }, "com.amazonaws.gamelift#CertificateType": { @@ -681,18 +681,24 @@ "InstanceId": { "target": "com.amazonaws.gamelift#InstanceId", "traits": { - "smithy.api#documentation": "

\n The InstanceID of the Instance hosting the compute for Container and Managed EC2 fleets.\n

" + "smithy.api#documentation": "

\n The InstanceID of the EC2 instance that is hosting the compute.\n

" } }, "ContainerAttributes": { "target": "com.amazonaws.gamelift#ContainerAttributes", "traits": { - "smithy.api#documentation": "

\n Some attributes of a container.\n

" + "smithy.api#documentation": "

A set of attributes for each container in the compute.

" + } + }, + "GameServerContainerGroupDefinitionArn": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#documentation": "

The game server container group definition for the compute.

" } } }, "traits": { - "smithy.api#documentation": "

\n This data type has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

An Amazon GameLift compute resource for hosting your game servers. Computes in an Amazon GameLift\n fleet differs depending on the fleet's compute type property as follows:

\n
    \n
  • \n

    For EC2 fleets, a compute is an EC2 instance.

    \n
  • \n
  • \n

    For ANYWHERE fleets, a compute is a computing resource that you\n provide and is registered to the fleet.

    \n
  • \n
  • \n

    For CONTAINER fleets, a compute is a container that's registered\n to the fleet.

    \n
  • \n
" + "smithy.api#documentation": "

An Amazon GameLift compute resource for hosting your game servers. Computes in an Amazon GameLift\n fleet differs depending on the fleet's compute type property as follows:

\n
    \n
  • \n

    For managed EC2 fleets, a compute is an EC2 instance.

    \n
  • \n
  • \n

    For Anywhere fleets, a compute is a computing resource that you provide and is\n registered to the fleet.

    \n
  • \n
" } }, "com.amazonaws.gamelift#ComputeArn": { @@ -761,6 +767,12 @@ "traits": { "smithy.api#enumValue": "TERMINATING" } + }, + "IMPAIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPAIRED" + } } } }, @@ -778,12 +790,6 @@ "traits": { "smithy.api#enumValue": "ANYWHERE" } - }, - "CONTAINER": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "CONTAINER" - } } } }, @@ -820,222 +826,33 @@ } }, "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The set of port numbers to open on each instance in a container fleet. Connection\n ports are used by inbound traffic to connect with processes that are running in\n containers on the fleet.

\n

\n Part of:\n ContainerGroupsConfiguration, ContainerGroupsAttributes\n

" - } - }, - "com.amazonaws.gamelift#ContainerAttributes": { - "type": "structure", - "members": { - "ContainerPortMappings": { - "target": "com.amazonaws.gamelift#ContainerPortMappingList", - "traits": { - "smithy.api#documentation": "

\n Describes how container ports map to connection ports on the fleet instance.\n Incoming traffic connects to a game via a connection port.\n A ContainerPortMapping directs the traffic from a connection port to a port on the container that hosts the game session.\n

" - } - } - }, - "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Describes attributes of containers that are deployed to a fleet with compute type\n CONTAINER.

" - } - }, - "com.amazonaws.gamelift#ContainerCommandStringList": { - "type": "list", - "member": { - "target": "com.amazonaws.gamelift#NonZeroAnd255MaxString" - }, - "traits": { - "smithy.api#length": { - "min": 1, - "max": 20 - } - } - }, - "com.amazonaws.gamelift#ContainerCpu": { - "type": "integer", - "traits": { - "smithy.api#range": { - "min": 1, - "max": 10240 - } - } - }, - "com.amazonaws.gamelift#ContainerDefinition": { - "type": "structure", - "members": { - "ContainerName": { - "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The container definition identifier. Container names are unique within a container group\n definition.

", - "smithy.api#required": {} - } - }, - "ImageUri": { - "target": "com.amazonaws.gamelift#ImageUriString", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The URI to the image that $short; copied and deployed to a container fleet. For a more\n specific identifier, see ResolvedImageDigest.

", - "smithy.api#required": {} - } - }, - "ResolvedImageDigest": { - "target": "com.amazonaws.gamelift#Sha256", - "traits": { - "smithy.api#documentation": "

A unique and immutable identifier for the container image that is deployed to a container\n fleet. The digest is a SHA 256 hash of the container image manifest.

" - } - }, - "MemoryLimits": { - "target": "com.amazonaws.gamelift#ContainerMemoryLimits", - "traits": { - "smithy.api#documentation": "

The amount of memory that Amazon GameLift makes available to the container. If memory limits\n aren't set for an individual container, the container shares the container group's total\n memory allocation.

\n

\n Related data type: \n ContainerGroupDefinition$TotalMemoryLimit\n

" - } - }, - "PortConfiguration": { - "target": "com.amazonaws.gamelift#ContainerPortConfiguration", - "traits": { - "smithy.api#documentation": "

Defines the ports that are available to assign to processes in the container. For\n example, a game server process requires a container port to allow game clients to connect to\n it. Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container\n ports to externally accessible connection ports, which are assigned as needed from the\n container fleet's ConnectionPortRange.

" - } - }, - "Cpu": { - "target": "com.amazonaws.gamelift#ContainerCpu", - "traits": { - "smithy.api#documentation": "

The number of CPU units that are reserved for the container. Note: 1 vCPU unit equals\n 1024 CPU units. If no resources are reserved, the container shares the total CPU limit for the\n container group.

\n

\n Related data type: \n ContainerGroupDefinition$TotalCpuLimit\n

" - } - }, - "HealthCheck": { - "target": "com.amazonaws.gamelift#ContainerHealthCheck", - "traits": { - "smithy.api#documentation": "

A configuration for a non-terminal health check. A container, which automatically restarts\n if it stops functioning, also restarts if it fails this health check. If an essential\n container in the daemon group fails a health check, the entire container group is restarted.\n The essential container in the replica group doesn't use this health check mechanism, because\n the Amazon GameLift Agent automatically handles the task.

" - } - }, - "Command": { - "target": "com.amazonaws.gamelift#ContainerCommandStringList", - "traits": { - "smithy.api#documentation": "

A command that's passed to the container on startup. Each argument for the command is an\n additional string in the array. See the ContainerDefinition::command parameter in the Amazon Elastic Container Service API\n reference.\n

" - } - }, - "Essential": { - "target": "com.amazonaws.gamelift#BooleanModel", - "traits": { - "smithy.api#documentation": "

Indicates whether the container is vital to the container group. If an essential\n container fails, the entire container group is restarted.

" - } - }, - "EntryPoint": { - "target": "com.amazonaws.gamelift#ContainerEntryPointList", - "traits": { - "smithy.api#documentation": "

The entry point that's passed to the container on startup. If there are multiple\n arguments, each argument is an additional string in the array. See the ContainerDefinition::entryPoint parameter in the Amazon Elastic Container Service API\n Reference.

" - } - }, - "WorkingDirectory": { - "target": "com.amazonaws.gamelift#NonZeroAnd255MaxString", - "traits": { - "smithy.api#documentation": "

The directory in the container where commands are run. See the ContainerDefinition::workingDirectory parameter in the Amazon Elastic Container Service API\n Reference.

" - } - }, - "Environment": { - "target": "com.amazonaws.gamelift#ContainerEnvironmentList", - "traits": { - "smithy.api#documentation": "

A set of environment variables that's passed to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API\n Reference.

" - } - }, - "DependsOn": { - "target": "com.amazonaws.gamelift#ContainerDependencyList", - "traits": { - "smithy.api#documentation": "

Indicates that the container relies on the status of other containers in the same\n container group during its startup and shutdown sequences. A container might have dependencies\n on multiple containers.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Describes a container in a container fleet, the resources available to the container,\n and the commands that are run when the container starts. Container properties can't be\n updated. To change a property, create a new container group definition. See also \n ContainerDefinitionInput.

\n

\n Part of:\n ContainerGroupDefinition\n

\n

\n Returned by:\n DescribeContainerGroupDefinition, ListContainerGroupDefinitions\n

" + "smithy.api#documentation": "

The set of port numbers to open on each instance in a container fleet. Connection\n ports are used by inbound traffic to connect with processes that are running in\n containers on the fleet.

" } }, - "com.amazonaws.gamelift#ContainerDefinitionInput": { + "com.amazonaws.gamelift#ContainerAttribute": { "type": "structure", "members": { "ContainerName": { "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A string that uniquely identifies the container definition within a container\n group.

", - "smithy.api#required": {} - } - }, - "ImageUri": { - "target": "com.amazonaws.gamelift#ImageUriString", - "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The location of a container image that $short; will copy and deploy to a container fleet.\n Images in Amazon Elastic Container Registry private repositories are supported. The repository must be in the same\n Amazon Web Services account and Amazon Web Services Region where you're creating the container group definition. For\n limits on image size, see Amazon GameLift endpoints and quotas. You can use any of the following image URI formats:

\n
    \n
  • \n

    Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository\n ID]\n

    \n
  • \n
  • \n

    Image ID and digest: [AWS account].dkr.ecr.[AWS\n region].amazonaws.com/[repository ID]@[digest]\n

    \n
  • \n
  • \n

    Image ID and tag: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository\n ID]:[tag]\n

    \n
  • \n
", - "smithy.api#required": {} - } - }, - "MemoryLimits": { - "target": "com.amazonaws.gamelift#ContainerMemoryLimits", - "traits": { - "smithy.api#documentation": "

The amount of memory to make available to the container. If you don't specify memory\n limits for this container, then it shares the container group's total memory allocation.

\n

\n Related data type: \n ContainerGroupDefinition$TotalMemoryLimit\n

" - } - }, - "PortConfiguration": { - "target": "com.amazonaws.gamelift#ContainerPortConfiguration", - "traits": { - "smithy.api#documentation": "

A set of ports that Amazon GameLift can assign to processes in the container. All processes that\n accept inbound traffic connections, including game server processes, must be assigned a port\n from this set. The set of ports must be large enough to assign one to each process in the\n container that needs one. If the container includes your game server, include enough ports to\n assign one port to each concurrent server process (as defined in a container fleet's RuntimeConfiguration). For more details, see Networking for container\n fleets.

\n

Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container\n ports to externally accessible connection ports, which are assigned as needed from the\n container fleet's ConnectionPortRange.

" - } - }, - "Cpu": { - "target": "com.amazonaws.gamelift#ContainerCpu", - "traits": { - "smithy.api#documentation": "

The number of CPU units to reserve for this container. The container can use more resources\n when needed, if available. Note: 1 vCPU unit equals 1024 CPU\n units. If you don't reserve CPU units for this container, then it shares the total CPU limit\n for the container group. This property is similar to the Amazon ECS container definition parameter \n environment (Amazon Elastic Container Service Developer Guide).\n

\n

\n Related data type: \n ContainerGroupDefinition$TotalCpuLimit\n

" - } - }, - "HealthCheck": { - "target": "com.amazonaws.gamelift#ContainerHealthCheck", - "traits": { - "smithy.api#documentation": "

Configuration for a non-terminal health check. A container automatically restarts if it\n stops functioning. This parameter lets you define additional reasons to consider a container\n unhealthy and restart it. You can set a health check for any container except for the\n essential container in the replica container group. If an essential container in the daemon\n group fails a health check, the entire container group is restarted.

" - } - }, - "Command": { - "target": "com.amazonaws.gamelift#ContainerCommandStringList", - "traits": { - "smithy.api#documentation": "

A command to pass to the container on startup. Add multiple arguments as additional\n strings in the array. See the ContainerDefinition command parameter in the Amazon Elastic Container Service API\n reference.\n

" - } - }, - "Essential": { - "target": "com.amazonaws.gamelift#BooleanModel", - "traits": { - "smithy.api#documentation": "

Specifies whether the container is vital for the container group to function properly.\n If an essential container fails, it causes the entire container group to restart. Each\n container group must have an essential container.

\n

\n Replica container groups - A replica group must have\n exactly one essential container. Use the following to configure an essential replica\n container:

\n
    \n
  • \n

    Choose a container is running your game server and the Amazon GameLift Agent.

    \n
  • \n
  • \n

    Include a port configuration. This container runs your game server processes, and each\n process requires a container port to allow access to game clients.

    \n
  • \n
  • \n

    Don't configure a health check. The Agent handles this task for the essential replica\n container.

    \n
  • \n
\n

\n Daemon container groups - A daemon group must have at\n least one essential container.

\n

\n

" - } - }, - "EntryPoint": { - "target": "com.amazonaws.gamelift#ContainerEntryPointList", - "traits": { - "smithy.api#documentation": "

An entry point to pass to the container on startup. Add multiple arguments as additional\n strings in the array. See the ContainerDefinition::entryPoint parameter in the Amazon Elastic Container Service API\n Reference.

" - } - }, - "WorkingDirectory": { - "target": "com.amazonaws.gamelift#NonZeroAnd255MaxString", - "traits": { - "smithy.api#documentation": "

The directory in the container where commands are run. See the ContainerDefinition::workingDirectory parameter in the Amazon Elastic Container Service API\n Reference.

" - } - }, - "Environment": { - "target": "com.amazonaws.gamelift#ContainerEnvironmentList", - "traits": { - "smithy.api#documentation": "

A set of environment variables to pass to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API\n Reference.

" + "smithy.api#documentation": "

The identifier for a container that's running in a compute.

" } }, - "DependsOn": { - "target": "com.amazonaws.gamelift#ContainerDependencyList", + "ContainerRuntimeId": { + "target": "com.amazonaws.gamelift#NonEmptyString", "traits": { - "smithy.api#documentation": "

Sets up dependencies between this container and the status of other containers in the same\n container group. A container can have dependencies on multiple different containers.

\n

You can use dependencies\n to establish a startup/shutdown sequence across the container group. A container startup\n dependency is reversed on shutdown.

\n

For example, you might specify that SideCarContainerB has a START dependency\n on SideCarContainerA. This dependency means that SideCarContainerB can't start until after\n SideCarContainerA has started. This dependency is reversed on shutdown, which means that\n SideCarContainerB must shut down before SideCarContainerA can shut down.

" + "smithy.api#documentation": "

The runtime ID for the container that's running in a compute. This value is unique within\n the compute.

" } } }, "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Describes a container's configuration, resources, and start instructions. Use this data\n type to create a container group definition. For the properties of a container that's been\n deployed to a fleet, see ContainerDefinition. You can't change these properties after you've created the container group definition. If you need a container group with different properties, then you must create a new one. \n

\n

\n Used with: \n CreateContainerGroupDefinition\n

" + "smithy.api#documentation": "

A unique identifier for a container in a container fleet compute.

\n

\n Returned by:\n DescribeCompute\n

" } }, - "com.amazonaws.gamelift#ContainerDefinitionInputList": { + "com.amazonaws.gamelift#ContainerAttributes": { "type": "list", "member": { - "target": "com.amazonaws.gamelift#ContainerDefinitionInput" + "target": "com.amazonaws.gamelift#ContainerAttribute" }, "traits": { "smithy.api#length": { @@ -1044,15 +861,15 @@ } } }, - "com.amazonaws.gamelift#ContainerDefinitionList": { + "com.amazonaws.gamelift#ContainerCommandStringList": { "type": "list", "member": { - "target": "com.amazonaws.gamelift#ContainerDefinition" + "target": "com.amazonaws.gamelift#NonZeroAnd255MaxString" }, "traits": { "smithy.api#length": { "min": 1, - "max": 10 + "max": 20 } } }, @@ -1077,7 +894,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

A container's dependency on another container in the same container group. The dependency\n impacts how the dependent container is able to start or shut down based the status of the\n other container.

\n

For example, ContainerA is configured with the following dependency: a START\n dependency on ContainerB. This means that ContainerA can't start until ContainerB has started.\n It also means that ContainerA must shut down before ContainerB.

\n

\n Part of:\n ContainerDefinition\n

" + "smithy.api#documentation": "

A container's dependency on another container in the same container group. The dependency\n impacts how the dependent container is able to start or shut down based the status of the\n other container.

\n

For example, ContainerA is configured with the following dependency: a\n START dependency on ContainerB. This means that\n ContainerA can't start until ContainerB has\n started. It also means that ContainerA must shut down before\n ContainerB.

\n

eiifcbfhgrdurhnucnufkgbnbnnerrvbtjvljdetkehcPart of:\n GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput\n

" } }, "com.amazonaws.gamelift#ContainerDependencyCondition": { @@ -1121,18 +938,6 @@ } } }, - "com.amazonaws.gamelift#ContainerEntryPointList": { - "type": "list", - "member": { - "target": "com.amazonaws.gamelift#NonZeroAndMaxString" - }, - "traits": { - "smithy.api#length": { - "min": 1, - "max": 20 - } - } - }, "com.amazonaws.gamelift#ContainerEnvironment": { "type": "structure", "members": { @@ -1154,7 +959,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

An environment variable to set inside a container, in the form of a key-value pair.\n

\n

\n Related data type: \n ContainerDefinition$Environment\n

" + "smithy.api#documentation": "

An environment variable to set inside a container, in the form of a key-value pair.\n

\n

\n Part of:\n GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput\n

" } }, "com.amazonaws.gamelift#ContainerEnvironmentList": { @@ -1169,245 +974,476 @@ } } }, - "com.amazonaws.gamelift#ContainerGroupDefinition": { + "com.amazonaws.gamelift#ContainerFleet": { "type": "structure", "members": { - "ContainerGroupDefinitionArn": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinitionArn", + "FleetId": { + "target": "com.amazonaws.gamelift#FleetId", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) that is assigned to an Amazon GameLift ContainerGroupDefinition resource. It uniquely identifies \nthe resource across all Amazon Web Services Regions. Format is \narn:aws:gamelift:::containergroupdefinition/[container group definition name].

" + "smithy.api#documentation": "

A unique identifier for the container fleet to retrieve.

" } }, - "CreationTime": { - "target": "com.amazonaws.gamelift#Timestamp", + "FleetArn": { + "target": "com.amazonaws.gamelift#FleetArn", "traits": { - "smithy.api#documentation": "

A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. In a GameLift fleet ARN, the resource ID matches the FleetId\n value.

" } }, - "OperatingSystem": { - "target": "com.amazonaws.gamelift#ContainerOperatingSystem", + "FleetRoleArn": { + "target": "com.amazonaws.gamelift#ArnStringModel", "traits": { - "smithy.api#documentation": "

The platform required for all containers in the container group definition.

\n \n

Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in \n the Amazon Linux 2 FAQs. \n For game servers\n that are hosted on AL2 and use Amazon GameLift server SDK 4.x., first update the\n game server build to server SDK 5.x, and then deploy to AL2023 instances. See\n \n Migrate to Amazon GameLift server SDK version 5.\n

\n
" + "smithy.api#documentation": "

The unique identifier for an Identity and Access Management (IAM) role with permissions to run your\n containers on resources that are managed by Amazon GameLift. See Set up an IAM service\n role. This fleet property can't be changed.

" } }, - "Name": { + "GameServerContainerGroupDefinitionName": { "target": "com.amazonaws.gamelift#ContainerGroupDefinitionName", "traits": { - "smithy.api#documentation": "

A descriptive identifier for the container group definition. The name value is unique in an Amazon Web Services Region.

" + "smithy.api#documentation": "

The name of the fleet's game server container group definition, which describes how to\n deploy containers with your game server build and support software onto each fleet\n instance.

" } }, - "SchedulingStrategy": { - "target": "com.amazonaws.gamelift#ContainerSchedulingStrategy", + "GameServerContainerGroupDefinitionArn": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionArn", "traits": { - "smithy.api#documentation": "

The method for deploying the container group across fleet instances. A replica container\n group might have multiple copies on each fleet instance. A daemon container group maintains\n only one copy per fleet instance.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that is assigned to the fleet's game server container group. The ARN value\n also identifies the specific container group definition version in use.

" } }, - "TotalMemoryLimit": { - "target": "com.amazonaws.gamelift#ContainerTotalMemoryLimit", + "PerInstanceContainerGroupDefinitionName": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionName", + "traits": { + "smithy.api#documentation": "

The name of the fleet's per-instance container group definition.

" + } + }, + "PerInstanceContainerGroupDefinitionArn": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionArn", "traits": { - "smithy.api#documentation": "

The amount of memory (in MiB) on a fleet instance to allocate for the container group. All\n containers in the group share these resources.

\n

You can set additional limits for each ContainerDefinition in\n the group. If individual containers have limits, this value must meet the following\n requirements:

\n
    \n
  • \n

    Equal to or greater than the sum of all container-specific soft memory limits in the group.

    \n
  • \n
  • \n

    Equal to or greater than any container-specific hard limits in the group.

    \n
  • \n
\n

For more details on memory allocation, see the Container fleet design\n guide.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that is assigned to the fleet's per-instance container group. The ARN value\n also identifies the specific container group definition version in use.

" } }, - "TotalCpuLimit": { - "target": "com.amazonaws.gamelift#ContainerTotalCpuLimit", + "InstanceConnectionPortRange": { + "target": "com.amazonaws.gamelift#ConnectionPortRange" + }, + "InstanceInboundPermissions": { + "target": "com.amazonaws.gamelift#IpPermissionsList", "traits": { - "smithy.api#documentation": "

The amount of CPU units on a fleet instance to allocate for the container group. All\n containers in the group share these resources. This property is an integer value in CPU units \n (1 vCPU is equal to 1024 CPU units).

\n

You can set additional limits for each ContainerDefinition in\n the group. If individual containers have limits, this value must be equal to or greater than the sum of all\n container-specific CPU limits in the group.

\n

For more details on memory allocation, see the Container fleet design\n guide.

" + "smithy.api#documentation": "

The IP address ranges and port settings that allow inbound traffic to access game\n server processes and other processes on this fleet.

" } }, - "ContainerDefinitions": { - "target": "com.amazonaws.gamelift#ContainerDefinitionList", + "GameServerContainerGroupsPerInstance": { + "target": "com.amazonaws.gamelift#GameServerContainerGroupsPerInstance", "traits": { - "smithy.api#documentation": "

\n The set of container definitions that are included in the container group.\n

" + "smithy.api#documentation": "

The number of times to replicate the game server container group on each fleet\n instance.

" } }, - "Status": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinitionStatus", + "MaximumGameServerContainerGroupsPerInstance": { + "target": "com.amazonaws.gamelift#MaximumGameServerContainerGroupsPerInstance", "traits": { - "smithy.api#documentation": "

Current status of the container group definition resource. Values include:

\n
    \n
  • \n

    \n COPYING -- Amazon GameLift is in the process of making copies of all container\n images that are defined in the group. While in this state, the resource can't be used to\n create a container fleet.

    \n
  • \n
  • \n

    \n READY -- Amazon GameLift has copied the registry images for all containers that\n are defined in the group. You can use a container group definition in this status to\n create a container fleet.

    \n
  • \n
  • \n

    \n FAILED -- Amazon GameLift failed to create a valid container group definition\n resource. For more details on the cause of the failure, see StatusReason. A\n container group definition resource in failed status will be deleted within a few\n minutes.

    \n
  • \n
" + "smithy.api#documentation": "

The calculated maximum number of game server container group that can be deployed on\n each fleet instance. The calculation depends on the resource needs of the container\n group and the CPU and memory resources of the fleet's instance type.

" } }, - "StatusReason": { + "InstanceType": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

Additional information about a container group definition that's in FAILED\n status. Possible reasons include:

\n
    \n
  • \n

    An internal issue prevented Amazon GameLift from creating\n the container group definition resource. Delete the failed resource and call \n CreateContainerGroupDefinitionagain.

    \n
  • \n
  • \n

    An access-denied message means that you don't have permissions to access the container image on ECR. See \n \n IAM permission examples\n for help setting up required IAM permissions for Amazon GameLift.

    \n
  • \n
  • \n

    The ImageUri value for at least one\n of the containers in the container group definition was invalid or not found in the current\n Amazon Web Services account.

    \n
  • \n
  • \n

    At least one\n of the container images referenced in the container group definition exceeds the \n allowed size. For size limits, see \n Amazon GameLift endpoints and quotas.

    \n
  • \n
  • \n

    At least one of the container images referenced in the \n container group definition uses a different operating system than the one defined for the container group.

    \n
  • \n
" + "smithy.api#documentation": "

The Amazon EC2 instance type to use for all instances in the fleet. Instance type\n determines the computing resources and processing power that's available to host your\n game servers. This includes including CPU, memory, storage, and networking capacity. You\n can't update this fleet property.

" + } + }, + "BillingType": { + "target": "com.amazonaws.gamelift#ContainerFleetBillingType", + "traits": { + "smithy.api#documentation": "

Indicates whether the fleet uses On-Demand or Spot instances for this fleet. Learn\n more about when to use On-Demand versus Spot Instances. You can't update this fleet\n property.

\n

By default, this property is set to ON_DEMAND.

" + } + }, + "Description": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A meaningful description of the container fleet.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.gamelift#Timestamp", + "traits": { + "smithy.api#documentation": "

A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + } + }, + "MetricGroups": { + "target": "com.amazonaws.gamelift#MetricGroupList", + "traits": { + "smithy.api#documentation": "

The name of an Amazon Web Services CloudWatch metric group to add this fleet to. Metric groups\n aggregate metrics for multiple fleets.

" + } + }, + "NewGameSessionProtectionPolicy": { + "target": "com.amazonaws.gamelift#ProtectionPolicy", + "traits": { + "smithy.api#documentation": "

Determines whether Amazon GameLift can shut down game sessions on the fleet that are actively\n running and hosting players. Amazon GameLift might prompt an instance shutdown when scaling down\n fleet capacity or when retiring unhealthy instances. You can also set game session\n protection for individual game sessions using UpdateGameSession.

\n
    \n
  • \n

    \n NoProtection -- Game sessions can be shut down\n during active gameplay.

    \n
  • \n
  • \n

    \n FullProtection -- Game sessions in\n ACTIVE status can't be shut down.

    \n
  • \n
" + } + }, + "GameSessionCreationLimitPolicy": { + "target": "com.amazonaws.gamelift#GameSessionCreationLimitPolicy", + "traits": { + "smithy.api#documentation": "

A policy that limits the number of game sessions that each individual player can create\n on instances in this fleet. The limit applies for a specified span of time.

" + } + }, + "Status": { + "target": "com.amazonaws.gamelift#ContainerFleetStatus", + "traits": { + "smithy.api#documentation": "

The current status of the container fleet.

\n
    \n
  • \n

    \n PENDING -- A new container fleet has been requested.

    \n
  • \n
  • \n

    \n CREATING -- A new container fleet resource is being created.

    \n
  • \n
  • \n

    \n CREATED -- A new container fleet resource has been created. No fleet instances\n have been deployed.

    \n
  • \n
  • \n

    \n ACTIVATING -- New container fleet instances are being deployed.

    \n
  • \n
  • \n

    \n ACTIVE -- The container fleet has been deployed and is ready to host game\n sessions.

    \n
  • \n
  • \n

    \n UPDATING -- Updates to the container fleet is being updated. A deployment is in\n progress.

    \n
  • \n
" + } + }, + "DeploymentDetails": { + "target": "com.amazonaws.gamelift#DeploymentDetails", + "traits": { + "smithy.api#documentation": "

Information about the most recent deployment for the container fleet.

" + } + }, + "LogConfiguration": { + "target": "com.amazonaws.gamelift#LogConfiguration", + "traits": { + "smithy.api#documentation": "

The method that is used to collect container logs for the fleet. Amazon GameLift saves all\n standard output for each container in logs, including game session logs.

\n
    \n
  • \n

    \n CLOUDWATCH -- Send logs to an Amazon CloudWatch log group that you define. Each container\n emits a log stream, which is organized in the log group.

    \n
  • \n
  • \n

    \n S3 -- Store logs in an Amazon S3 bucket that you define.

    \n
  • \n
  • \n

    \n NONE -- Don't collect container logs.

    \n
  • \n
" + } + }, + "LocationAttributes": { + "target": "com.amazonaws.gamelift#ContainerFleetLocationAttributesList", + "traits": { + "smithy.api#documentation": "

Information about the container fleet's remote locations where fleet instances are\n deployed.

" } } }, "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The properties that describe a container group resource. Container group definition\n properties can't be updated. To change a property, create a new container group\n definition.

\n

\n Used with:\n CreateContainerGroupDefinition\n

\n

\n Returned by:\n DescribeContainerGroupDefinition, ListContainerGroupDefinitions\n

" + "smithy.api#documentation": "

Describes an Amazon GameLift managed container fleet.

" } }, - "com.amazonaws.gamelift#ContainerGroupDefinitionArn": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 512 + "com.amazonaws.gamelift#ContainerFleetBillingType": { + "type": "enum", + "members": { + "ON_DEMAND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ON_DEMAND" + } }, - "smithy.api#pattern": "^arn:.*:containergroupdefinition\\/containergroupdefinition-[a-zA-Z0-9-]+$" + "SPOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SPOT" + } + } } }, - "com.amazonaws.gamelift#ContainerGroupDefinitionList": { + "com.amazonaws.gamelift#ContainerFleetList": { "type": "list", "member": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinition" - } - }, - "com.amazonaws.gamelift#ContainerGroupDefinitionName": { - "type": "string", + "target": "com.amazonaws.gamelift#ContainerFleet" + }, "traits": { "smithy.api#length": { - "min": 1, - "max": 128 - }, - "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$" + "min": 1 + } } }, - "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 1, - "max": 512 + "com.amazonaws.gamelift#ContainerFleetLocationAttributes": { + "type": "structure", + "members": { + "Location": { + "target": "com.amazonaws.gamelift#LocationStringModel", + "traits": { + "smithy.api#documentation": "

A location identifier.

" + } }, - "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$|^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+$" - } - }, - "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArnLimitedList": { - "type": "list", - "member": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn" + "Status": { + "target": "com.amazonaws.gamelift#ContainerFleetLocationStatus", + "traits": { + "smithy.api#documentation": "

The status of fleet activity in the location.

\n
    \n
  • \n

    \n PENDING -- A new container fleet has been requested.

    \n
  • \n
  • \n

    \n CREATING -- A new container fleet resource is being created.\n

    \n
  • \n
  • \n

    \n CREATED -- A new container fleet resource has been created. No\n fleet instances have been deployed.

    \n
  • \n
  • \n

    \n ACTIVATING -- New container fleet instances are being\n deployed.

    \n
  • \n
  • \n

    \n ACTIVE -- The container fleet has been deployed and is ready to\n host game sessions.

    \n
  • \n
  • \n

    \n UPDATING -- Updates to the container fleet is being updated. A\n deployment is in progress.

    \n
  • \n
" + } + } }, "traits": { - "smithy.api#length": { - "min": 1, - "max": 2 - } + "smithy.api#documentation": "

Details about a location in a multi-location container fleet.

" } }, - "com.amazonaws.gamelift#ContainerGroupDefinitionPropertiesList": { + "com.amazonaws.gamelift#ContainerFleetLocationAttributesList": { "type": "list", "member": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinitionProperty" + "target": "com.amazonaws.gamelift#ContainerFleetLocationAttributes" } }, - "com.amazonaws.gamelift#ContainerGroupDefinitionProperty": { - "type": "structure", + "com.amazonaws.gamelift#ContainerFleetLocationStatus": { + "type": "enum", "members": { - "SchedulingStrategy": { - "target": "com.amazonaws.gamelift#ContainerSchedulingStrategy", + "PENDING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The method for scheduling and maintaining copies of the container group across a container\n fleet.

" + "smithy.api#enumValue": "PENDING" } }, - "ContainerGroupDefinitionName": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinitionName", + "CREATING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The unique identifier for the container group definition.

" + "smithy.api#enumValue": "CREATING" + } + }, + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATED" + } + }, + "ACTIVATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVATING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" } } + } + }, + "com.amazonaws.gamelift#ContainerFleetRemoveAttribute": { + "type": "enum", + "members": { + "PER_INSTANCE_CONTAINER_GROUP_DEFINITION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PER_INSTANCE_CONTAINER_GROUP_DEFINITION" + } + } + } + }, + "com.amazonaws.gamelift#ContainerFleetRemoveAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerFleetRemoveAttribute" }, "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The properties of a container group that is deployed to a container fleet.

\n

\n Part of:\n ContainerGroupsAttributes\n

\n

\n Returned by:\n DescribeFleetAttributes\n

" + "smithy.api#length": { + "min": 1, + "max": 1 + } } }, - "com.amazonaws.gamelift#ContainerGroupDefinitionStatus": { + "com.amazonaws.gamelift#ContainerFleetStatus": { "type": "enum", "members": { - "READY": { + "PENDING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "READY" + "smithy.api#enumValue": "PENDING" } }, - "COPYING": { + "CREATING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "COPYING" + "smithy.api#enumValue": "CREATING" } }, - "FAILED": { + "CREATED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FAILED" + "smithy.api#enumValue": "CREATED" + } + }, + "ACTIVATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVATING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" } } } }, - "com.amazonaws.gamelift#ContainerGroupsAttributes": { + "com.amazonaws.gamelift#ContainerGroupDefinition": { "type": "structure", "members": { - "ContainerGroupDefinitionProperties": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinitionPropertiesList", + "ContainerGroupDefinitionArn": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionArn", "traits": { - "smithy.api#documentation": "

A collection of properties that describe each container group in the fleet. A container fleet is deployed with\n one or more ContainerGroupDefinition resources, which is where these properties are set.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that is assigned to an Amazon GameLift ContainerGroupDefinition resource. It uniquely identifies \nthe resource across all Amazon Web Services Regions. Format is \narn:aws:gamelift:[region]::containergroupdefinition/[container group definition name]:[version].

" } }, - "ConnectionPortRange": { - "target": "com.amazonaws.gamelift#ConnectionPortRange", + "CreationTime": { + "target": "com.amazonaws.gamelift#Timestamp", + "traits": { + "smithy.api#documentation": "

A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + } + }, + "OperatingSystem": { + "target": "com.amazonaws.gamelift#ContainerOperatingSystem", + "traits": { + "smithy.api#documentation": "

The platform that all containers in the container group definition run on.

\n \n

Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in the Amazon Linux 2 FAQs. For game\n servers that are hosted on AL2 and use Amazon GameLift server SDK 4.x, first update the game\n server build to server SDK 5.x, and then deploy to AL2023 instances. See Migrate to\n Amazon GameLift server SDK version 5.\n

\n
" + } + }, + "Name": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A descriptive identifier for the container group definition. The name value is unique in an Amazon Web Services Region.

", + "smithy.api#required": {} + } + }, + "ContainerGroupType": { + "target": "com.amazonaws.gamelift#ContainerGroupType", + "traits": { + "smithy.api#documentation": "

The type of container group. Container group type determines how Amazon GameLift deploys the\n container group on each fleet instance.

" + } + }, + "TotalMemoryLimitMebibytes": { + "target": "com.amazonaws.gamelift#ContainerTotalMemoryLimit", + "traits": { + "smithy.api#documentation": "

The amount of memory (in MiB) on a fleet instance to allocate for the container group. All\n containers in the group share these resources.

\n

You can set a limit for each container definition in the group. If individual containers\n have limits, this total value must be greater than any individual container's memory\n limit.

" + } + }, + "TotalVcpuLimit": { + "target": "com.amazonaws.gamelift#ContainerTotalVcpuLimit", + "traits": { + "smithy.api#documentation": "

The amount of vCPU units on a fleet instance to allocate for the container group (1 vCPU\n is equal to 1024 CPU units). All containers in the group share these resources. You can set a\n limit for each container definition in the group. If individual containers have limits, this\n total value must be equal to or greater than the sum of the limits for each container in the\n group.

" + } + }, + "GameServerContainerDefinition": { + "target": "com.amazonaws.gamelift#GameServerContainerDefinition", + "traits": { + "smithy.api#documentation": "

The definition for the game server container in this group. This property is used only\n when the container group type is GAME_SERVER. This container definition specifies\n a container image with the game server build.

" + } + }, + "SupportContainerDefinitions": { + "target": "com.amazonaws.gamelift#SupportContainerDefinitionList", "traits": { - "smithy.api#documentation": "

A set of ports that allow inbound traffic to connect to processes running in the fleet's\n container groups. Amazon GameLift maps each connection port to a container port, which is assigned to\n a specific container process. A fleet's connection port range can't be changed, but you can\n control access to connection ports by updating a fleet's EC2InboundPermissions\n with UpdateFleetPortSettings.

" + "smithy.api#documentation": "

The set of definitions for support containers in this group. A container group definition\n might have zero support container definitions. Support container can be used in any type of\n container group.

" } }, - "ContainerGroupsPerInstance": { - "target": "com.amazonaws.gamelift#ContainerGroupsPerInstance", + "VersionNumber": { + "target": "com.amazonaws.gamelift#PositiveInteger", "traits": { - "smithy.api#documentation": "

Details about the number of replica container groups that Amazon GameLift deploys to each instance in\n the container fleet.

" + "smithy.api#documentation": "

Indicates the version of a particular container group definition. This number is\n incremented automatically when you update a container group definition. You can view, update,\n or delete individual versions or the entire container group definition.

" + } + }, + "VersionDescription": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

An optional description that was provided for a container group definition update. Each\n version can have a unique description.

" + } + }, + "Status": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionStatus", + "traits": { + "smithy.api#documentation": "

Current status of the container group definition resource. Values include:

\n
    \n
  • \n

    \n COPYING -- Amazon GameLift is in the process of making copies of all container\n images that are defined in the group. While in this state, the resource can't be used to\n create a container fleet.

    \n
  • \n
  • \n

    \n READY -- Amazon GameLift has copied the registry images for all containers that\n are defined in the group. You can use a container group definition in this status to\n create a container fleet.

    \n
  • \n
  • \n

    \n FAILED -- Amazon GameLift failed to create a valid container group definition\n resource. For more details on the cause of the failure, see StatusReason. A\n container group definition resource in failed status will be deleted within a few\n minutes.

    \n
  • \n
" + } + }, + "StatusReason": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

Additional information about a container group definition that's in FAILED\n status. Possible reasons include:

\n
    \n
  • \n

    An internal issue prevented Amazon GameLift from creating\n the container group definition resource. Delete the failed resource and call \n CreateContainerGroupDefinitionagain.

    \n
  • \n
  • \n

    An access-denied message means that you don't have permissions to access the container image on ECR. See \n \n IAM permission examples\n for help setting up required IAM permissions for Amazon GameLift.

    \n
  • \n
  • \n

    The ImageUri value for at least one\n of the containers in the container group definition was invalid or not found in the current\n Amazon Web Services account.

    \n
  • \n
  • \n

    At least one\n of the container images referenced in the container group definition exceeds the \n allowed size. For size limits, see \n Amazon GameLift endpoints and quotas.

    \n
  • \n
  • \n

    At least one of the container images referenced in the \n container group definition uses a different operating system than the one defined for the container group.

    \n
  • \n
" } } }, "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The properties of container groups that are running on a container fleet. Container group\n properties for a fleet can't be changed.

\n

\n Returned by:\n DescribeFleetAttributes, CreateFleet\n

" + "smithy.api#documentation": "

The properties that describe a container group resource. You can update all properties of\n a container group definition properties. Updates to a container group definition are saved as\n new versions.

\n

\n Used with:\n CreateContainerGroupDefinition\n

\n

\n Returned by:\n DescribeContainerGroupDefinition, ListContainerGroupDefinitions, UpdateContainerGroupDefinition\n

" } }, - "com.amazonaws.gamelift#ContainerGroupsConfiguration": { - "type": "structure", + "com.amazonaws.gamelift#ContainerGroupDefinitionArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+(:[0-9]+)?$" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinition" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$|^arn:.*:containergroupdefinition\\/[a-zA-Z0-9\\-]+(:[0-9]+)?$" + } + }, + "com.amazonaws.gamelift#ContainerGroupDefinitionStatus": { + "type": "enum", "members": { - "ContainerGroupDefinitionNames": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArnLimitedList", + "READY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The list of container group definition names to deploy to a new container fleet.

", - "smithy.api#required": {} + "smithy.api#enumValue": "READY" } }, - "ConnectionPortRange": { - "target": "com.amazonaws.gamelift#ConnectionPortRange", + "COPYING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A set of ports to allow inbound traffic, including game clients, to connect to processes\n running in the container fleet.

\n

Connection ports are dynamically mapped to container ports, which are assigned to\n individual processes running in a container. The connection port range must have enough ports\n to map to all container ports across a fleet instance. To calculate the minimum connection\n ports needed, use the following formula:

\n

\n [Total number of container ports as defined for containers in the replica\n container group] * [Desired or calculated number of replica container groups per instance] +\n [Total number of container ports as defined for containers in the daemon container\n group]\n

\n

As a best practice, double the minimum number of connection ports.

\n \n

Use the fleet's EC2InboundPermissions property to control external access to\n connection ports. Set this property to the connection port numbers that you want to open\n access to. See IpPermission for more details.

\n
", - "smithy.api#required": {} + "smithy.api#enumValue": "COPYING" } }, - "DesiredReplicaContainerGroupsPerInstance": { - "target": "com.amazonaws.gamelift#ReplicaContainerGroupsPerInstance", + "FAILED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The number of times to replicate the replica container group on each instance in a container\n fleet. By default, Amazon GameLift calculates the maximum number of replica container groups that can\n fit on a fleet instance (based on CPU and memory resources). Leave this parameter empty if you\n want to use the maximum number, or specify a desired number to override the maximum. The\n desired number is used if it's less than the maximum number.

" + "smithy.api#enumValue": "FAILED" } } - }, - "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Configuration details for a set of container groups, for use when creating a fleet with\n compute type CONTAINER.

\n

\n Used with:\n CreateFleet\n

" } }, - "com.amazonaws.gamelift#ContainerGroupsPerInstance": { - "type": "structure", + "com.amazonaws.gamelift#ContainerGroupType": { + "type": "enum", "members": { - "DesiredReplicaContainerGroupsPerInstance": { - "target": "com.amazonaws.gamelift#ReplicaContainerGroupsPerInstance", + "GAME_SERVER": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The desired number of replica container groups to place on each fleet instance.

" + "smithy.api#enumValue": "GAME_SERVER" } }, - "MaxReplicaContainerGroupsPerInstance": { - "target": "com.amazonaws.gamelift#ReplicaContainerGroupsPerInstance", + "PER_INSTANCE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The maximum possible number of replica container groups that each fleet instance can\n have.

" + "smithy.api#enumValue": "PER_INSTANCE" } } - }, - "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Determines how many replica container groups that Amazon GameLift deploys to each instance in a\n container fleet.

\n

Amazon GameLift calculates the maximum possible replica groups per instance based on the instance\n 's CPU and memory resources. When deploying a fleet, Amazon GameLift places replica container groups\n on each fleet instance based on the following:

\n
    \n
  • \n

    If no desired value is set, Amazon GameLift places the calculated maximum.

    \n
  • \n
  • \n

    If a desired number is set to a value higher than the calculated maximum, fleet\n creation fails..

    \n
  • \n
  • \n

    If a desired number is set to a value lower than the calculated maximum, Amazon GameLift\n places the desired number.

    \n
  • \n
\n

\n Part of:\n ContainerGroupsConfiguration, ContainerGroupsAttributes\n

\n

\n Returned by:\n DescribeFleetAttributes, CreateFleet\n

" } }, "com.amazonaws.gamelift#ContainerHealthCheck": { @@ -1427,16 +1463,10 @@ "smithy.api#documentation": "

The time period (in seconds) between each health check.

" } }, - "Timeout": { - "target": "com.amazonaws.gamelift#ContainerHealthCheckTimeout", - "traits": { - "smithy.api#documentation": "

The time period (in seconds) to wait for a health check to succeed before a failed health\n check is counted.

" - } - }, "Retries": { "target": "com.amazonaws.gamelift#ContainerHealthCheckRetries", "traits": { - "smithy.api#documentation": "

The number of times to retry a failed health check before the container is considered\n unhealthy. The first run of the command does not count as a retry.

" + "smithy.api#documentation": "

The number of times to retry a failed health check before flagging the container\n unhealthy. The first run of the command does not count as a retry.

" } }, "StartPeriod": { @@ -1444,10 +1474,16 @@ "traits": { "smithy.api#documentation": "

The optional grace period (in seconds) to give a container time to bootstrap before the\n first failed health check counts toward the number of retries.

" } + }, + "Timeout": { + "target": "com.amazonaws.gamelift#ContainerHealthCheckTimeout", + "traits": { + "smithy.api#documentation": "

The time period (in seconds) to wait for a health check to succeed before counting a\n failed health check.

" + } } }, "traits": { - "smithy.api#documentation": "

Instructions on when and how to check the health of a container in a container fleet. When\n health check properties are set in a container definition, they override any Docker health\n checks in the container image. For more information on container health checks, see HealthCheck command in the Amazon Elastic Container Service API.

\n

The following example instructions tell the container to wait 100 seconds after launch\n before counting failed health checks, then initiate the health check command every 60 seconds.\n After issuing the health check command, wait 10 seconds for it to succeed. If it fails, retry\n the command 3 times before considering the container to be unhealthy.

\n

\n {\"Command\": [ \"CMD-SHELL\", \"ps cax | grep \"processmanager\" || exit 1\" ], \"Interval\":\n 300, \"Timeout\": 30, \"Retries\": 5, \"StartPeriod\": 100 }\n

\n

\n Part of:\n ContainerDefinition$HealthCheck\n

" + "smithy.api#documentation": "

Instructions on when and how to check the health of a support container in a container\n fleet. These properties override any Docker health checks that are set in the container image.\n For more information on container health checks, see HealthCheck command in the Amazon Elastic Container Service API. Game server\n containers don't have a health check parameter; Amazon GameLift automatically handles health checks\n for these containers.

\n

The following example instructs the container to initiate a health check command every 60\n seconds and wait 10 seconds for it to succeed. If it fails, retry the command 3 times before\n flagging the container as unhealthy. It also tells the container to wait 100 seconds after\n launch before counting failed health checks.

\n

\n {\"Command\": [ \"CMD-SHELL\", \"ps cax | grep \"processmanager\" || exit 1\" ], \"Interval\":\n 60, \"Timeout\": 10, \"Retries\": 3, \"StartPeriod\": 100 }\n

\n

\n Part of:\n SupportContainerDefinition, SupportContainerDefinitionInput\n

" } }, "com.amazonaws.gamelift#ContainerHealthCheckInterval": { @@ -1486,6 +1522,38 @@ } } }, + "com.amazonaws.gamelift#ContainerIdentifier": { + "type": "structure", + "members": { + "ContainerName": { + "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", + "traits": { + "smithy.api#documentation": "

The identifier for a container that's running in a compute.

" + } + }, + "ContainerRuntimeId": { + "target": "com.amazonaws.gamelift#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The runtime ID for the container that's running in a compute. This value is unique within\n the compute. It is returned as a ContainerAttribute value in a\n Compute object.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A unique identifier for a container in a compute on a managed container fleet instance.\n This information makes it possible to remotely connect to a specific container on a fleet\n instance.

\n

\n Related to:\n ContainerAttribute\n

\n

\n Use with: \n GetComputeAccess\n

" + } + }, + "com.amazonaws.gamelift#ContainerIdentifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerIdentifier" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.gamelift#ContainerMemoryLimit": { "type": "integer", "traits": { @@ -1495,24 +1563,61 @@ } } }, - "com.amazonaws.gamelift#ContainerMemoryLimits": { + "com.amazonaws.gamelift#ContainerMountPoint": { "type": "structure", "members": { - "SoftLimit": { - "target": "com.amazonaws.gamelift#ContainerMemoryLimit", + "InstancePath": { + "target": "com.amazonaws.gamelift#InstancePathString", "traits": { - "smithy.api#documentation": "

The amount of memory that is reserved for a container. When the container group's shared\n memory is under contention, the system attempts to maintain the container memory usage at this\n soft limit. However, the container can use more memory when needed, if available. This\n property is similar to the Amazon ECS container definition parameter memoryreservation (Amazon Elastic Container Service Developer Guide).

" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The path to the source file or directory.

", + "smithy.api#required": {} } }, - "HardLimit": { - "target": "com.amazonaws.gamelift#ContainerMemoryLimit", + "ContainerPath": { + "target": "com.amazonaws.gamelift#ContainerPathString", + "traits": { + "smithy.api#documentation": "

The mount path on the container. If this property isn't set, the instance path is\n used.

" + } + }, + "AccessLevel": { + "target": "com.amazonaws.gamelift#ContainerMountPointAccessLevel", "traits": { - "smithy.api#documentation": "

The maximum amount of memory that the container can use. If a container attempts to exceed\n this limit, the container is stopped. This property is similar to the Amazon ECS container\n definition parameter memory in the Amazon Elastic Container Service Developer Guide.\n

" + "smithy.api#documentation": "

The type of access for the container.

" } } }, "traits": { - "smithy.api#documentation": "

Specifies how much memory is available to a container. You can't change this value after\n you create this object.

\n

\n Part of: \n ContainerDefinition$MemoryLimits\n

" + "smithy.api#documentation": "

A mount point that binds a container to a file or directory on the host system.

\n

\n Part of:\n GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput\n

" + } + }, + "com.amazonaws.gamelift#ContainerMountPointAccessLevel": { + "type": "enum", + "members": { + "READ_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READ_ONLY" + } + }, + "READ_AND_WRITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READ_AND_WRITE" + } + } + } + }, + "com.amazonaws.gamelift#ContainerMountPointList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#ContainerMountPoint" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } } }, "com.amazonaws.gamelift#ContainerOperatingSystem": { @@ -1526,6 +1631,16 @@ } } }, + "com.amazonaws.gamelift#ContainerPathString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^(\\/+[^\\/]+\\/*)+$" + } + }, "com.amazonaws.gamelift#ContainerPortConfiguration": { "type": "structure", "members": { @@ -1533,45 +1648,13 @@ "target": "com.amazonaws.gamelift#ContainerPortRangeList", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Specifies one or more ranges of ports on a container.\n These ranges must not overlap.\n

", + "smithy.api#documentation": "

A set of one or more container port number ranges. The ranges can't overlap.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Defines ranges of ports that server processes can connect to.\n

\n

\n Part of:\n ContainerDefinition$PortConfiguration\n

" - } - }, - "com.amazonaws.gamelift#ContainerPortMapping": { - "type": "structure", - "members": { - "ContainerPort": { - "target": "com.amazonaws.gamelift#PortNumber", - "traits": { - "smithy.api#documentation": "

The port opened on the container.

" - } - }, - "ConnectionPort": { - "target": "com.amazonaws.gamelift#PortNumber", - "traits": { - "smithy.api#documentation": "

The port opened on the fleet instance. This is also called the \"host port\".

" - } - }, - "Protocol": { - "target": "com.amazonaws.gamelift#IpProtocol", - "traits": { - "smithy.api#documentation": "

The network protocol that this mapping supports.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Defines how an internal-facing container port is mapped to an external-facing connection\n port on a fleet instance of compute type CONTAINER. Incoming traffic, such as a\n game client, uses a connection port to connect to a process in the container fleet. Amazon GameLift\n directs the inbound traffic to the container port that is assigned to the process, such as a\n game session, running on a container.

\n

\n Part of:\n ContainerAttributes\n

" - } - }, - "com.amazonaws.gamelift#ContainerPortMappingList": { - "type": "list", - "member": { - "target": "com.amazonaws.gamelift#ContainerPortMapping" + "smithy.api#documentation": "

A set of port ranges that can be opened on the container. A process that's running in the\n container can bind to a port number, making it accessible to inbound traffic. Container ports\n map to a container fleet's connection ports.

\n

\n Part of:\n GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput\n

" } }, "com.amazonaws.gamelift#ContainerPortRange": { @@ -1603,7 +1686,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

A set of one or more port numbers that can be opened on the container. \n

\n

\n Part of:\n ContainerPortConfiguration\n

" + "smithy.api#documentation": "

A set of one or more port numbers that can be opened on the container. \n

\n

\n Part of:\n ContainerPortConfiguration\n

" } }, "com.amazonaws.gamelift#ContainerPortRangeList": { @@ -1618,38 +1701,30 @@ } } }, - "com.amazonaws.gamelift#ContainerSchedulingStrategy": { - "type": "enum", - "members": { - "REPLICA": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "REPLICA" - } - }, - "DAEMON": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "DAEMON" - } + "com.amazonaws.gamelift#ContainerTotalMemoryLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 4, + "max": 1024000 } } }, - "com.amazonaws.gamelift#ContainerTotalCpuLimit": { - "type": "integer", + "com.amazonaws.gamelift#ContainerTotalVcpuLimit": { + "type": "double", "traits": { "smithy.api#range": { - "min": 128, - "max": 10240 + "min": 0.125, + "max": 10 } } }, - "com.amazonaws.gamelift#ContainerTotalMemoryLimit": { - "type": "integer", + "com.amazonaws.gamelift#ContainerVcpu": { + "type": "double", "traits": { "smithy.api#range": { - "min": 4, - "max": 1024000 + "min": 0.125, + "max": 10 } } }, @@ -1753,54 +1828,215 @@ { "target": "com.amazonaws.gamelift#InvalidRequestException" }, - { - "target": "com.amazonaws.gamelift#TaggingFailedException" + { + "target": "com.amazonaws.gamelift#TaggingFailedException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an Amazon GameLift build resource for your game server software and stores the software\n for deployment to hosting resources. Combine game server binaries and dependencies into\n a single .zip file

\n \n

Use the CLI command \n upload-build\n to quickly and simply create a new build\n and upload your game build .zip file to Amazon GameLift Amazon S3. This helper command eliminates\n the need to explicitly manage access permissions.

\n
\n

Alternatively, use the CreateBuild action for the following\n scenarios:

\n
    \n
  • \n

    You want to create a build and upload a game build zip file from in an Amazon S3\n location that you control. In this scenario, you need to give Amazon GameLift permission\n to access to the Amazon S3 bucket. With permission in place, call\n CreateBuild and specify a build name, the build's runtime\n operating system, and the Amazon S3 storage location where the build file is\n stored.

    \n
  • \n
  • \n

    You want to create a build and upload a local game build zip file to an Amazon S3\n location that's controlled by Amazon GameLift. (See the upload-build CLI\n command for this scenario.) In this scenario, you need to request temporary\n access credentials to the Amazon GameLift Amazon S3 location. Specify a build name and the\n build's runtime operating system. The response provides an Amazon S3 location and a\n set of temporary access credentials. Use the credentials to upload your build\n files to the specified Amazon S3 location (see Uploading Objects in\n the Amazon S3 Developer Guide). You can't update build files\n after uploading them to Amazon GameLift Amazon S3.

    \n
  • \n
\n

If successful, this action creates a new build resource with a unique build ID and\n places it in INITIALIZED status. When the build reaches READY\n status, you can create fleets with it.

\n

\n Learn more\n

\n

\n Uploading Your\n Game\n

\n

\n Create a Build with Files in Amazon S3\n

\n

\n All APIs by task\n

" + } + }, + "com.amazonaws.gamelift#CreateBuildInput": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A descriptive label that is associated with a build. Build names do not need to be unique. You can change this value later.

" + } + }, + "Version": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

Version information that is associated with a build or script. Version strings do not need to be unique. You can change this value later.

" + } + }, + "StorageLocation": { + "target": "com.amazonaws.gamelift#S3Location", + "traits": { + "smithy.api#documentation": "

Information indicating where your game build files are stored. Use this parameter only\n when creating a build with files stored in an Amazon S3 bucket that you own. The storage\n location must specify an Amazon S3 bucket name and key. The location must also specify a role\n ARN that you set up to allow Amazon GameLift to access your Amazon S3 bucket. The S3 bucket and your\n new build must be in the same Region.

\n

If a StorageLocation is specified, the size of your file can be found in\n your Amazon S3 bucket. Amazon GameLift will report a SizeOnDisk of 0.

" + } + }, + "OperatingSystem": { + "target": "com.amazonaws.gamelift#OperatingSystem", + "traits": { + "smithy.api#documentation": "

The environment that your game server binaries run on. This value determines the type\n of fleet resources that you use for this build. If your game build contains multiple\n executables, they all must run on the same operating system. This parameter is required,\n and there's no default value. You can't change a build's operating system later.

\n \n

Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in \n the Amazon Linux 2 FAQs. \n For game servers\n that are hosted on AL2 and use Amazon GameLift server SDK 4.x., first update the\n game server build to server SDK 5.x, and then deploy to AL2023 instances. See\n \n Migrate to Amazon GameLift server SDK version 5.\n

\n
" + } + }, + "Tags": { + "target": "com.amazonaws.gamelift#TagList", + "traits": { + "smithy.api#documentation": "

A list of labels to assign to the new build resource. Tags are developer defined\n key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access\n management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the\n Amazon Web Services General Reference. Once the resource is created, you can\n use TagResource, UntagResource, and\n ListTagsForResource to add, remove, and view tags. The maximum tag limit\n may be lower than stated. See the Amazon Web Services General Reference for actual tagging\n limits.

" + } + }, + "ServerSdkVersion": { + "target": "com.amazonaws.gamelift#ServerSdkVersion", + "traits": { + "smithy.api#documentation": "

A server SDK version you used when integrating your game server build with Amazon GameLift. For more information see Integrate games\n with custom game servers. By default Amazon GameLift sets this value to\n 4.0.2.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#CreateBuildOutput": { + "type": "structure", + "members": { + "Build": { + "target": "com.amazonaws.gamelift#Build", + "traits": { + "smithy.api#documentation": "

The newly created build resource, including a unique build IDs and status.

" + } + }, + "UploadCredentials": { + "target": "com.amazonaws.gamelift#AwsCredentials", + "traits": { + "smithy.api#documentation": "

This element is returned only when the operation is called without a storage location.\n It contains credentials to use when you are uploading a build file to an Amazon S3 bucket\n that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these\n credentials, call RequestUploadCredentials.

" + } + }, + "StorageLocation": { + "target": "com.amazonaws.gamelift#S3Location", + "traits": { + "smithy.api#documentation": "

Amazon S3 location for your game build file, including bucket name and key.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.gamelift#CreateContainerFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#CreateContainerFleetInput" + }, + "output": { + "target": "com.amazonaws.gamelift#CreateContainerFleetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#ConflictException" + }, + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#LimitExceededException" + }, + { + "target": "com.amazonaws.gamelift#TaggingFailedException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a managed fleet of Amazon Elastic Compute Cloud (Amazon EC2) instances to host your containerized game\n servers. Use this operation to define how to deploy a container architecture onto each\n fleet instance and configure fleet settings. You can create a container fleet in any\n Amazon Web Services Regions that Amazon GameLift supports for multi-location fleets. A container fleet can be\n deployed to a single location or multiple locations. Container fleets are deployed with\n Amazon Linux 2023 as the instance operating system.

\n

Define the fleet's container architecture using container group definitions. Each\n fleet can have one of the following container group types:

\n
    \n
  • \n

    The game server container group runs your game server build and dependent software. Amazon GameLift\n deploys one or more replicas of this container group to each fleet instance. The\n number of replicas depends on the computing capabilities of the fleet instance\n in use.

    \n
  • \n
  • \n

    An optional per-instance container group might be used to run other software that only needs\n to run once per instance, such as background services, logging, or test\n processes. One per-instance container group is deployed to each fleet instance.

    \n
  • \n
\n

Each container group can include the definition for one or more containers. A\n container definition specifies a container image that is stored in an Amazon Elastic Container Registry (Amazon ECR)\n public or private repository.

\n

\n Request options\n

\n

Use this operation to make the following types of requests. Most fleet settings have\n default values, so you can create a working fleet with a minimal configuration and\n default values, which you can customize later.

\n
    \n
  • \n

    Create a fleet with no container groups. You can configure a container fleet and then add\n container group definitions later. In this scenario, no fleet instances are\n deployed, and the fleet can't host game sessions until you add a game server\n container group definition. Provide the following required parameter\n values:

    \n
      \n
    • \n

      \n FleetRoleArn\n

      \n
    • \n
    \n
  • \n
  • \n

    Create a fleet with a game server container group. Provide the following required parameter\n values:

    \n
      \n
    • \n

      \n FleetRoleArn\n

      \n
    • \n
    • \n

      \n GameServerContainerGroupDefinitionName\n

      \n
    • \n
    \n
  • \n
  • \n

    Create a fleet with a game server container group and a per-instance container group. Provide\n the following required parameter values:

    \n
      \n
    • \n

      \n FleetRoleArn\n

      \n
    • \n
    • \n

      \n GameServerContainerGroupDefinitionName\n

      \n
    • \n
    • \n

      \n PerInstanceContainerGroupDefinitionName\n

      \n
    • \n
    \n
  • \n
\n

\n Results\n

\n

If successful, this operation creates a new container fleet resource, places it in\n PENDING status, and initiates the fleet creation workflow. For fleets with container groups, this workflow\n starts a fleet deployment and transitions the status to ACTIVE. Fleets\n without a container group are placed in CREATED status.

\n

You can update most of the properties of a fleet, including container group\n definitions, and deploy the update across all fleet instances. Use a fleet update to\n deploy a new game server version update across the container fleet.

" + } + }, + "com.amazonaws.gamelift#CreateContainerFleetInput": { + "type": "structure", + "members": { + "FleetRoleArn": { + "target": "com.amazonaws.gamelift#ArnStringModel", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier for an Identity and Access Management (IAM) role with permissions to run your\n containers on resources that are managed by Amazon GameLift. Use an IAM service role with the\n GameLiftContainerFleetPolicy managed policy attached. For more\n information, see Set up an IAM service\n role. You can't change this fleet property after the fleet is\n created.

\n

IAM role ARN values use the following pattern: arn:aws:iam::[Amazon Web Services account]:role/[role name].

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A meaningful description of the container fleet.

" + } + }, + "GameServerContainerGroupDefinitionName": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#documentation": "

A container group definition resource that describes how to deploy containers with\n your game server build and support software onto each fleet instance. You can specify\n the container group definition's name to use the latest version. Alternatively, provide\n an ARN value with a specific version number.

\n

Create a container group definition by calling CreateContainerGroupDefinition. This operation creates a ContainerGroupDefinition resource.

" + } + }, + "PerInstanceContainerGroupDefinitionName": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#documentation": "

The name of a container group definition resource that describes a set of axillary\n software. A fleet instance has one process for executables in this container group. A\n per-instance container group is optional. You can update the fleet to add or remove a\n per-instance container group at any time. You can specify the container group\n definition's name to use the latest version. Alternatively, provide an ARN value with a\n specific version number.

\n

Create a container group definition by calling CreateContainerGroupDefinition. \n This operation creates a ContainerGroupDefinition resource.

" + } + }, + "InstanceConnectionPortRange": { + "target": "com.amazonaws.gamelift#ConnectionPortRange", + "traits": { + "smithy.api#documentation": "

The set of port numbers to open on each fleet instance. A fleet's connection ports map\n to container ports that are configured in the fleet's container group definitions.

\n

By default, Amazon GameLift calculates an optimal port range based on your fleet\n configuration. To use the calculated range, don't set this parameter. The values\n are:

\n
    \n
  • \n

    Port range: 4192 to a number calculated based on your fleet configuration.\n Amazon GameLift uses the following formula: 4192 + [# of game server container\n groups per fleet instance] * [# of container ports in the game server\n container group definition] + [# of container ports in the game server\n container group definition]\n

    \n
  • \n
\n

You can also choose to manually set this parameter. When manually setting this\n parameter, you must use port numbers that match the fleet's inbound permissions port\n range.

\n \n

If you set values manually, Amazon GameLift no longer calculates a port range for you,\n even if you later remove the manual settings.

\n
" + } + }, + "InstanceInboundPermissions": { + "target": "com.amazonaws.gamelift#IpPermissionsList", + "traits": { + "smithy.api#documentation": "

The IP address ranges and port settings that allow inbound traffic to access game\n server processes and other processes on this fleet. As a best practice, when remotely\n accessing a fleet instance, we recommend opening ports only when you need them and\n closing them when you're finished.

\n

By default, Amazon GameLift calculates an optimal port range based on your fleet\n configuration. To use the calculated range, don't set this parameter. The values\n are:

\n
    \n
  • \n

    Protocol: UDP

    \n
  • \n
  • \n

    Port range: 4192 to a number calculated based on your fleet configuration. Amazon GameLift uses the\n following formula: 4192 + [# of game server container groups per fleet\n instance] * [# of container ports in the game server container group\n definition] + [# of container ports in the game server container group\n definition]\n

    \n
  • \n
\n

You can also choose to manually set this parameter. When manually setting this\n parameter, you must use port numbers that match the fleet's connection port\n range.

\n \n

If you set values manually, Amazon GameLift no longer calculates a port range for you,\n even if you later remove the manual settings.

\n
" + } + }, + "GameServerContainerGroupsPerInstance": { + "target": "com.amazonaws.gamelift#GameServerContainerGroupsPerInstance", + "traits": { + "smithy.api#documentation": "

The number of times to replicate the game server container group on each fleet\n instance.

\n

By default, Amazon GameLift calculates the maximum number of game server container groups that\n can fit on each instance. This calculation is based on the CPU and memory resources of\n the fleet's instance type). To use the calculated maximum, don't set this parameter. If\n you set this number manually, Amazon GameLift uses your value as long as it's less than the\n calculated maximum.

" + } }, - { - "target": "com.amazonaws.gamelift#UnauthorizedException" - } - ], - "traits": { - "smithy.api#documentation": "

Creates a new Amazon GameLift build resource for your game server binary files. Combine game\n server binaries into a zip file for use with Amazon GameLift.

\n \n

When setting up a new game build for Amazon GameLift, we recommend using the CLI command \n upload-build\n . This helper command combines two tasks: (1) it\n uploads your build files from a file directory to an Amazon GameLift Amazon S3 location, and (2)\n it creates a new build resource.

\n
\n

You can use the CreateBuild operation in the following scenarios:

\n
    \n
  • \n

    Create a new game build with build files that are in an Amazon S3 location under an\n Amazon Web Services account that you control. To use this option, you give Amazon GameLift access to\n the Amazon S3 bucket. With permissions in place, specify a build name, operating\n system, and the Amazon S3 storage location of your game build.

    \n
  • \n
  • \n

    Upload your build files to a Amazon GameLift Amazon S3 location. To use this option,\n specify a build name and operating system. This operation creates a new build\n resource and also returns an Amazon S3 location with temporary access credentials.\n Use the credentials to manually upload your build files to the specified Amazon S3\n location. For more information, see Uploading Objects in\n the Amazon S3 Developer Guide. After you upload build files to\n the Amazon GameLift Amazon S3 location, you can't update them.

    \n
  • \n
\n

If successful, this operation creates a new build resource with a unique build ID and\n places it in INITIALIZED status. A build must be in READY\n status before you can create fleets with it.

\n

\n Learn more\n

\n

\n Uploading Your\n Game\n

\n

\n Create a Build with Files in Amazon S3\n

\n

\n All APIs by task\n

" - } - }, - "com.amazonaws.gamelift#CreateBuildInput": { - "type": "structure", - "members": { - "Name": { + "InstanceType": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

A descriptive label associated with a build. Build names don't need to be unique. You can change this value later.

" + "smithy.api#documentation": "

The Amazon EC2 instance type to use for all instances in the fleet. For multi-location\n fleets, the instance type must be available in the home region and all remote locations.\n Instance type determines the computing resources and processing power that's available\n to host your game servers. This includes including CPU, memory, storage, and networking\n capacity.

\n

By default, Amazon GameLift selects an instance type that fits the needs of your container\n groups and is available in all selected fleet locations. You can also choose to manually\n set this parameter. See Amazon Elastic Compute Cloud\n Instance Types for detailed descriptions of Amazon EC2 instance types.

\n

You can't update this fleet property later.

" } }, - "Version": { - "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "BillingType": { + "target": "com.amazonaws.gamelift#ContainerFleetBillingType", "traits": { - "smithy.api#documentation": "

Version information associated with a build or script. Version strings don't need to be unique. You can change this value later.

" + "smithy.api#documentation": "

Indicates whether to use On-Demand or Spot instances for this fleet. Learn more about\n when to use On-Demand versus Spot Instances. This fleet property can't be changed after the fleet is created.

\n

By default, this property is set to ON_DEMAND.

\n

You can't update this fleet property later.

" } }, - "StorageLocation": { - "target": "com.amazonaws.gamelift#S3Location", + "Locations": { + "target": "com.amazonaws.gamelift#LocationConfigurationList", "traits": { - "smithy.api#documentation": "

Information indicating where your game build files are stored. Use this parameter only\n when creating a build with files stored in an Amazon S3 bucket that you own. The storage\n location must specify an Amazon S3 bucket name and key. The location must also specify a role\n ARN that you set up to allow Amazon GameLift to access your Amazon S3 bucket. The S3 bucket and your\n new build must be in the same Region.

\n

If a StorageLocation is specified, the size of your file can be found in\n your Amazon S3 bucket. Amazon GameLift will report a SizeOnDisk of 0.

" + "smithy.api#documentation": "

A set of locations to deploy container fleet instances to. You can add any Amazon Web Services\n Region or Local Zone that's supported by Amazon GameLift. Provide a list of one or more Amazon Web Services\n Region codes, such as us-west-2, or Local Zone names. Also include the\n fleet's home Region, which is the Amazon Web Services Region where the fleet is created. For a list of\n supported Regions and Local Zones, see Amazon GameLift service\n locations for managed hosting.

" } }, - "OperatingSystem": { - "target": "com.amazonaws.gamelift#OperatingSystem", + "MetricGroups": { + "target": "com.amazonaws.gamelift#MetricGroupList", "traits": { - "smithy.api#documentation": "

The operating system that your game server binaries run on. This value determines the\n type of fleet resources that you use for this build. If your game build contains\n multiple executables, they all must run on the same operating system. You must specify a\n valid operating system in this request. There is no default value. You can't change a\n build's operating system later.

\n \n

Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in \n the Amazon Linux 2 FAQs. \n For game servers\n that are hosted on AL2 and use Amazon GameLift server SDK 4.x., first update the\n game server build to server SDK 5.x, and then deploy to AL2023 instances. See\n \n Migrate to Amazon GameLift server SDK version 5.\n

\n
" + "smithy.api#documentation": "

The name of an Amazon Web Services CloudWatch metric group to add this fleet to. You can use a metric group \n to aggregate metrics for multiple fleets. You can specify an existing metric\n group name or use a new name to create a new metric group. Each fleet can have only one metric group, \n but you can change this value at any time.

" } }, - "Tags": { - "target": "com.amazonaws.gamelift#TagList", + "NewGameSessionProtectionPolicy": { + "target": "com.amazonaws.gamelift#ProtectionPolicy", "traits": { - "smithy.api#documentation": "

A list of labels to assign to the new build resource. Tags are developer defined\n key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access\n management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the\n Amazon Web Services General Reference. Once the resource is created, you can\n use TagResource, UntagResource, and\n ListTagsForResource to add, remove, and view tags. The maximum tag limit\n may be lower than stated. See the Amazon Web Services General Reference for actual tagging\n limits.

" + "smithy.api#documentation": "

Determines whether Amazon GameLift can shut down game sessions on the fleet that are actively\n running and hosting players. Amazon GameLift might prompt an instance shutdown when scaling down\n fleet capacity or when retiring unhealthy instances. You can also set game session\n protection for individual game sessions using UpdateGameSession.

\n
    \n
  • \n

    \n NoProtection -- Game sessions can be shut down\n during active gameplay.

    \n
  • \n
  • \n

    \n FullProtection -- Game sessions in\n ACTIVE status can't be shut down.

    \n
  • \n
\n

By default, this property is set to NoProtection.

" } }, - "ServerSdkVersion": { - "target": "com.amazonaws.gamelift#ServerSdkVersion", + "GameSessionCreationLimitPolicy": { + "target": "com.amazonaws.gamelift#GameSessionCreationLimitPolicy", "traits": { - "smithy.api#documentation": "

A server SDK version you used when integrating your game server build with Amazon GameLift. For more information see Integrate games\n with custom game servers. By default Amazon GameLift sets this value to\n 4.0.2.

" + "smithy.api#documentation": "

A policy that limits the number of game sessions that each individual player can create\n on instances in this fleet. The limit applies for a specified span of time.

" + } + }, + "LogConfiguration": { + "target": "com.amazonaws.gamelift#LogConfiguration", + "traits": { + "smithy.api#documentation": "

A method for collecting container logs for the fleet. Amazon GameLift saves all standard\n output for each container in logs, including game session logs. You can select from the\n following methods:

\n
    \n
  • \n

    \n CLOUDWATCH -- Send logs to an Amazon CloudWatch log group that you define. Each container\n emits a log stream, which is organized in the log group.

    \n
  • \n
  • \n

    \n S3 -- Store logs in an Amazon S3 bucket that you define.

    \n
  • \n
  • \n

    \n NONE -- Don't collect container logs.

    \n
  • \n
\n

By default, this property is set to CLOUDWATCH.

\n

Amazon GameLift requires permissions to send logs other Amazon Web Services services in your account. These permissions are included in the IAM fleet role for this container fleet (see FleetRoleArn).

" + } + }, + "Tags": { + "target": "com.amazonaws.gamelift#TagList", + "traits": { + "smithy.api#documentation": "

A list of labels to assign to the new fleet resource. Tags are developer-defined\n key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access\n management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the\n Amazon Web Services General Reference.

" } } }, @@ -1808,25 +2044,13 @@ "smithy.api#input": {} } }, - "com.amazonaws.gamelift#CreateBuildOutput": { + "com.amazonaws.gamelift#CreateContainerFleetOutput": { "type": "structure", "members": { - "Build": { - "target": "com.amazonaws.gamelift#Build", - "traits": { - "smithy.api#documentation": "

The newly created build resource, including a unique build IDs and status.

" - } - }, - "UploadCredentials": { - "target": "com.amazonaws.gamelift#AwsCredentials", - "traits": { - "smithy.api#documentation": "

This element is returned only when the operation is called without a storage location.\n It contains credentials to use when you are uploading a build file to an Amazon S3 bucket\n that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these\n credentials, call RequestUploadCredentials.

" - } - }, - "StorageLocation": { - "target": "com.amazonaws.gamelift#S3Location", + "ContainerFleet": { + "target": "com.amazonaws.gamelift#ContainerFleet", "traits": { - "smithy.api#documentation": "

Amazon S3 location for your game build file, including bucket name and key.

" + "smithy.api#documentation": "

The properties for the new container fleet, including current status. All fleets are\n initially placed in PENDING status.

" } } }, @@ -1866,7 +2090,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation is used with the Amazon GameLift containers feature, which is currently in public preview. \n

\n

Creates a ContainerGroupDefinition resource that describes a set of\n containers for hosting your game server with Amazon GameLift managed EC2 hosting. An Amazon GameLift container\n group is similar to a container \"task\" and \"pod\". Each container group can have one or more\n containers.

\n

Use container group definitions when you create a container fleet. Container group\n definitions determine how Amazon GameLift deploys your containers to each instance in a container\n fleet.

\n

You can create two types of container groups, based on scheduling strategy:

\n
    \n
  • \n

    A replica container group manages the containers that run\n your game server application and supporting software. Replica container groups might be\n replicated multiple times on each fleet instance, depending on instance resources.

    \n
  • \n
  • \n

    A daemon container group manages containers that run other\n software, such as background services, logging, or test processes. You might use a daemon\n container group for processes that need to run only once per fleet instance, or processes\n that need to persist independently of the replica container group.

    \n
  • \n
\n

To create a container group definition, specify a group name, a list of container\n definitions, and maximum total CPU and memory requirements for the container group. Specify an\n operating system and scheduling strategy or use the default values. When using the Amazon Web Services CLI\n tool, you can pass in your container definitions as a JSON file.

\n \n

This operation requires Identity and Access Management (IAM) permissions to access container images in\n Amazon ECR repositories. See IAM permissions\n for Amazon GameLift for help setting the appropriate permissions.

\n
\n

If successful, this operation creates a new ContainerGroupDefinition resource\n with an ARN value assigned. You can't change the properties of a container group definition.\n Instead, create a new one.

\n

\n Learn more\n

\n " + "smithy.api#documentation": "

Creates a ContainerGroupDefinition that describes a set of containers for\n hosting your game server with Amazon GameLift managed containers hosting. An Amazon GameLift container group\n is similar to a container task or pod. Use container group definitions when you create a\n container fleet with CreateContainerFleet.

\n

A container group definition determines how Amazon GameLift deploys your containers to each\n instance in a container fleet. You can maintain multiple versions of a container group\n definition.

\n

There are two types of container groups:

\n
    \n
  • \n

    A game server container group has the containers that run\n your game server application and supporting software. A game server container group can\n have these container types:

    \n
      \n
    • \n

      Game server container. This container runs your game server. You can define one\n game server container in a game server container group.

      \n
    • \n
    • \n

      Support container. This container runs software in parallel with your game server.\n You can define up to 8 support containers in a game server group.

      \n
    • \n
    \n

    When building a game server container group definition, you can choose to bundle your\n game server executable and all dependent software into a single game server container.\n Alternatively, you can separate the software into one game server container and one or\n more support containers.

    \n

    On a container fleet instance, a game server container group can be deployed multiple\n times (depending on the compute resources of the instance). This means that all containers\n in the container group are replicated together.

    \n
  • \n
  • \n

    A per-instance container group has containers for processes\n that aren't replicated on a container fleet instance. This might include background\n services, logging, test processes, or processes that need to persist independently of the\n game server container group. When building a per-instance container group, you can define\n up to 10 support containers.

    \n
  • \n
\n \n

This operation requires Identity and Access Management (IAM) permissions to access container images in\n Amazon ECR repositories. See IAM permissions\n for Amazon GameLift for help setting the appropriate permissions.

\n
\n

\n Request options\n

\n

Use this operation to make the following types of requests. You can specify values for the\n minimum required parameters and customize optional values later.

\n
    \n
  • \n

    Create a game server container group definition. Provide the following required parameter values:

    \n
      \n
    • \n

      \n Name\n

      \n
    • \n
    • \n

      \n ContainerGroupType (GAME_SERVER)

      \n
    • \n
    • \n

      \n OperatingSystem (omit to use default value)

      \n
    • \n
    • \n

      \n TotalMemoryLimitMebibytes (omit to use default value)

      \n
    • \n
    • \n

      \n TotalVcpuLimit (omit to use default value)

      \n
    • \n
    • \n

      At least one GameServerContainerDefinition\n

      \n
        \n
      • \n

        \n ContainerName\n

        \n
      • \n
      • \n

        \n ImageUrl\n

        \n
      • \n
      • \n

        \n PortConfiguration\n

        \n
      • \n
      • \n

        \n ServerSdkVersion (omit to use default value)

        \n
      • \n
      \n
    • \n
    \n
  • \n
  • \n

    Create a per-instance container group definition. Provide the following required parameter\n values:

    \n
      \n
    • \n

      \n Name\n

      \n
    • \n
    • \n

      \n ContainerGroupType (PER_INSTANCE)

      \n
    • \n
    • \n

      \n OperatingSystem (omit to use default value)

      \n
    • \n
    • \n

      \n TotalMemoryLimitMebibytes (omit to use default value)

      \n
    • \n
    • \n

      \n TotalVcpuLimit (omit to use default value)

      \n
    • \n
    • \n

      At least one SupportContainerDefinition\n

      \n
        \n
      • \n

        \n ContainerName\n

        \n
      • \n
      • \n

        \n ImageUrl\n

        \n
      • \n
      \n
    • \n
    \n
  • \n
\n

\n Results\n

\n

If successful, this request creates a ContainerGroupDefinition resource and\n assigns a unique ARN value. You can update most properties of a container group definition by\n calling UpdateContainerGroupDefinition, and optionally save the update as a new version.

" } }, "com.amazonaws.gamelift#CreateContainerGroupDefinitionInput": { @@ -1880,44 +2104,54 @@ "smithy.api#required": {} } }, - "SchedulingStrategy": { - "target": "com.amazonaws.gamelift#ContainerSchedulingStrategy", + "ContainerGroupType": { + "target": "com.amazonaws.gamelift#ContainerGroupType", "traits": { - "smithy.api#documentation": "

The method for deploying the container group across fleet instances. A replica container\n group might have multiple copies on each fleet instance. A daemon container group has one copy\n per fleet instance. Default value is REPLICA.

" + "smithy.api#documentation": "

The type of container group being defined. Container group type determines how Amazon GameLift \n deploys the container group on each fleet instance.

\n

Default value: GAME_SERVER\n

" } }, - "TotalMemoryLimit": { + "TotalMemoryLimitMebibytes": { "target": "com.amazonaws.gamelift#ContainerTotalMemoryLimit", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The maximum amount of memory (in MiB) to allocate to the container group. All containers in\n the group share this memory. If you specify memory limits for individual containers, set this\n parameter based on the following guidelines. The value must be (1) greater than the sum of the\n soft memory limits for all containers in the group, and (2) greater than any individual\n container's hard memory limit.

", + "smithy.api#documentation": "

The maximum amount of memory (in MiB) to allocate to the container group. All containers in\n the group share this memory. If you specify memory limits for an individual container, the\n total value must be greater than any individual container's memory limit.

\n

Default value: 1024

", "smithy.api#required": {} } }, - "TotalCpuLimit": { - "target": "com.amazonaws.gamelift#ContainerTotalCpuLimit", + "TotalVcpuLimit": { + "target": "com.amazonaws.gamelift#ContainerTotalVcpuLimit", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The maximum amount of CPU units to allocate to the container group. Set this parameter to an\n integer value in CPU units (1 vCPU is equal to 1024 CPU units). All containers in the group\n share this memory. If you specify CPU limits for individual containers, set this parameter\n based on the following guidelines. The value must be equal to or greater than the sum of the\n CPU limits for all containers in the group.

", + "smithy.api#documentation": "

The maximum amount of vCPU units to allocate to the container group (1 vCPU is equal to 1024\n CPU units). All containers in the group share this memory. If you specify vCPU limits for\n individual containers, the total value must be equal to or greater than the sum of the CPU\n limits for all containers in the group.

\n

Default value: 1

", "smithy.api#required": {} } }, - "ContainerDefinitions": { - "target": "com.amazonaws.gamelift#ContainerDefinitionInputList", + "GameServerContainerDefinition": { + "target": "com.amazonaws.gamelift#GameServerContainerDefinitionInput", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

Definitions for all containers in this group. Each container definition identifies the\n container image and specifies configuration settings for the container. See the \n Container fleet design guide for container guidelines.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The definition for the game server container in this group. Define a game server container\n only when the container group type is GAME_SERVER. Game server containers specify\n a container image with your game server build. You can pass in your container definitions as a\n JSON file.

" + } + }, + "SupportContainerDefinitions": { + "target": "com.amazonaws.gamelift#SupportContainerDefinitionInputList", + "traits": { + "smithy.api#documentation": "

One or more definition for support containers in this group. You can define a support\n container in any type of container group. You can pass in your container definitions as a JSON\n file.

" } }, "OperatingSystem": { "target": "com.amazonaws.gamelift#ContainerOperatingSystem", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The platform that is used by containers in the container group definition. All containers in\n a group must run on the same operating system.

\n \n

Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in \n the Amazon Linux 2 FAQs. \n For game servers\n that are hosted on AL2 and use Amazon GameLift server SDK 4.x., first update the\n game server build to server SDK 5.x, and then deploy to AL2023 instances. See\n \n Migrate to Amazon GameLift server SDK version 5.\n

\n
", + "smithy.api#documentation": "

The platform that all containers in the group use. Containers in a group must run on the\n same operating system.

\n

Default value: AMAZON_LINUX_2023\n

\n \n

Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in the Amazon Linux 2 FAQs. For game\n servers that are hosted on AL2 and use Amazon GameLift server SDK 4.x, first update the game\n server build to server SDK 5.x, and then deploy to AL2023 instances. See Migrate to\n Amazon GameLift server SDK version 5.\n

\n
", "smithy.api#required": {} } }, + "VersionDescription": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A description for the initial version of this container group definition.

" + } + }, "Tags": { "target": "com.amazonaws.gamelift#TagList", "traits": { @@ -1935,7 +2169,7 @@ "ContainerGroupDefinition": { "target": "com.amazonaws.gamelift#ContainerGroupDefinition", "traits": { - "smithy.api#documentation": "

The properties of the newly created container group definition resource. You use this resource \n to create a container fleet.

" + "smithy.api#documentation": "

The properties of the new container group definition resource. You can use this resource to\n create a container fleet.

" } } }, @@ -1981,7 +2215,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Creates a fleet of compute resources to host your game servers. Use this operation to\n set up the following types of fleets based on compute type:

\n

\n Managed EC2 fleet\n

\n

An EC2 fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances. Your game server build is\n deployed to each fleet instance. Amazon GameLift manages the fleet's instances and controls the\n lifecycle of game server processes, which host game sessions for players. EC2 fleets can\n have instances in multiple locations. Each instance in the fleet is designated a\n Compute.

\n

To create an EC2 fleet, provide these required parameters:

\n
    \n
  • \n

    Either BuildId or ScriptId\n

    \n
  • \n
  • \n

    \n ComputeType set to EC2 (the default value)

    \n
  • \n
  • \n

    \n EC2InboundPermissions\n

    \n
  • \n
  • \n

    \n EC2InstanceType\n

    \n
  • \n
  • \n

    \n FleetType\n

    \n
  • \n
  • \n

    \n Name\n

    \n
  • \n
  • \n

    \n RuntimeConfiguration with at least one ServerProcesses\n configuration

    \n
  • \n
\n

If successful, this operation creates a new fleet resource and places it in\n NEW status while Amazon GameLift initiates the fleet creation workflow. To debug your fleet, fetch logs, view performance\n metrics or other actions on the fleet, create a development fleet with port 22/3389\n open. As a best practice, we recommend opening ports for remote access only when you\n need them and closing them when you're finished.

\n

When the fleet status is ACTIVE, you can adjust capacity settings and turn autoscaling\n on/off for each location.

\n

\n Managed container fleet\n

\n

A container fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances. Your container architecture\n is deployed to each fleet instance based on the fleet configuration. Amazon GameLift manages the\n containers on each fleet instance and controls the lifecycle of game server processes,\n which host game sessions for players. Container fleets can have instances in multiple\n locations. Each container on an instance that runs game server processes is registered\n as a Compute.

\n

To create a container fleet, provide these required parameters:

\n
    \n
  • \n

    \n ComputeType set to CONTAINER\n

    \n
  • \n
  • \n

    \n ContainerGroupsConfiguration\n

    \n
  • \n
  • \n

    \n EC2InboundPermissions\n

    \n
  • \n
  • \n

    \n EC2InstanceType\n

    \n
  • \n
  • \n

    \n FleetType set to ON_DEMAND\n

    \n
  • \n
  • \n

    \n Name\n

    \n
  • \n
  • \n

    \n RuntimeConfiguration with at least one ServerProcesses\n configuration

    \n
  • \n
\n

If successful, this operation creates a new fleet resource and places it in\n NEW status while Amazon GameLift initiates the fleet creation workflow.

\n

When the fleet status is ACTIVE, you can adjust capacity settings and turn autoscaling\n on/off for each location.

\n

\n Anywhere fleet\n

\n

An Anywhere fleet represents compute resources that are not owned or managed by\n Amazon GameLift. You might create an Anywhere fleet with your local machine for testing, or use\n one to host game servers with on-premises hardware or other game hosting solutions.

\n

To create an Anywhere fleet, provide these required parameters:

\n
    \n
  • \n

    \n ComputeType set to ANYWHERE\n

    \n
  • \n
  • \n

    \n Locations specifying a custom location

    \n
  • \n
  • \n

    \n Name\n

    \n
  • \n
\n

If successful, this operation creates a new fleet resource and places it in\n ACTIVE status. You can register computes with a fleet in\n ACTIVE status.

\n

\n Learn more\n

\n

\n Setting up\n fleets\n

\n

\n Setting up a container fleet\n

\n

\n Debug fleet creation issues\n

\n

\n Multi-location fleets\n

" + "smithy.api#documentation": "

Creates a fleet of compute resources to host your game servers. Use this operation to\n set up the following types of fleets based on compute type:

\n

\n Managed EC2 fleet\n

\n

An EC2 fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) instances. Your game server build is\n deployed to each fleet instance. Amazon GameLift manages the fleet's instances and controls the\n lifecycle of game server processes, which host game sessions for players. EC2 fleets can\n have instances in multiple locations. Each instance in the fleet is designated a\n Compute.

\n

To create an EC2 fleet, provide these required parameters:

\n
    \n
  • \n

    Either BuildId or ScriptId\n

    \n
  • \n
  • \n

    \n ComputeType set to EC2 (the default value)

    \n
  • \n
  • \n

    \n EC2InboundPermissions\n

    \n
  • \n
  • \n

    \n EC2InstanceType\n

    \n
  • \n
  • \n

    \n FleetType\n

    \n
  • \n
  • \n

    \n Name\n

    \n
  • \n
  • \n

    \n RuntimeConfiguration with at least one ServerProcesses\n configuration

    \n
  • \n
\n

If successful, this operation creates a new fleet resource and places it in\n NEW status while Amazon GameLift initiates the fleet creation workflow. To debug your fleet, fetch logs, view performance\n metrics or other actions on the fleet, create a development fleet with port 22/3389\n open. As a best practice, we recommend opening ports for remote access only when you\n need them and closing them when you're finished.

\n

When the fleet status is ACTIVE, you can adjust capacity settings and turn autoscaling\n on/off for each location.

\n

\n Anywhere fleet\n

\n

An Anywhere fleet represents compute resources that are not owned or managed by\n Amazon GameLift. You might create an Anywhere fleet with your local machine for testing, or use\n one to host game servers with on-premises hardware or other game hosting solutions.

\n

To create an Anywhere fleet, provide these required parameters:

\n
    \n
  • \n

    \n ComputeType set to ANYWHERE\n

    \n
  • \n
  • \n

    \n Locations specifying a custom location

    \n
  • \n
  • \n

    \n Name\n

    \n
  • \n
\n

If successful, this operation creates a new fleet resource and places it in\n ACTIVE status. You can register computes with a fleet in\n ACTIVE status.

\n

\n Learn more\n

\n

\n Setting up\n fleets\n

\n

\n Debug fleet creation issues\n

\n

\n Multi-location fleets\n

" } }, "com.amazonaws.gamelift#CreateFleetInput": { @@ -2034,13 +2268,13 @@ "EC2InstanceType": { "target": "com.amazonaws.gamelift#EC2InstanceType", "traits": { - "smithy.api#documentation": "

The Amazon GameLift-supported Amazon EC2 instance type to use with EC2 and container fleets.\n Instance type determines the computing resources that will be used to host your game\n servers, including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for\n detailed descriptions of Amazon EC2 instance types.

" + "smithy.api#documentation": "

The Amazon GameLift-supported Amazon EC2 instance type to use with managed EC2 fleets.\n Instance type determines the computing resources that will be used to host your game\n servers, including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for\n detailed descriptions of Amazon EC2 instance types.

" } }, "EC2InboundPermissions": { "target": "com.amazonaws.gamelift#IpPermissionsList", "traits": { - "smithy.api#documentation": "

The IP address ranges and port settings that allow inbound traffic to access game\n server processes and other processes on this fleet. Set this parameter for EC2 and container \n fleets. You can leave this parameter empty when creating the fleet, but you must call \n UpdateFleetPortSettings to set it before players can connect to game sessions. \n As a best practice, we recommend \n opening ports for remote access only when you need them and closing them when you're finished. \n For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges.

\n

To manage inbound access for a container fleet, set this parameter to the same port\n numbers that you set for the fleet's connection port range. During the life of the\n fleet, update this parameter to control which connection ports are open to inbound\n traffic.

" + "smithy.api#documentation": "

The IP address ranges and port settings that allow inbound traffic to access game\n server processes and other processes on this fleet. Set this parameter for managed EC2 \n fleets. You can leave this parameter empty when creating the fleet, but you must call \n UpdateFleetPortSettings to set it before players can connect to game sessions. \n As a best practice, we recommend \n opening ports for remote access only when you need them and closing them when you're finished. \n For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges.

" } }, "NewGameSessionProtectionPolicy": { @@ -2052,7 +2286,7 @@ "RuntimeConfiguration": { "target": "com.amazonaws.gamelift#RuntimeConfiguration", "traits": { - "smithy.api#documentation": "

Instructions for how to launch and run server processes on the fleet. Set runtime\n configuration for EC2 fleets and container fleets. For an Anywhere fleets, set this\n parameter only if the fleet is running the Amazon GameLift Agent. The runtime configuration\n defines one or more server process configurations. Each server process identifies a game\n executable or Realtime script file and the number of processes to run concurrently.

\n \n

This parameter replaces the parameters ServerLaunchPath and\n ServerLaunchParameters, which are still supported for backward\n compatibility.

\n
" + "smithy.api#documentation": "

Instructions for how to launch and run server processes on the fleet. Set runtime\n configuration for managed EC2 fleets. For an Anywhere fleets, set this\n parameter only if the fleet is running the Amazon GameLift Agent. The runtime configuration\n defines one or more server process configurations. Each server process identifies a game\n executable or Realtime script file and the number of processes to run concurrently.

\n \n

This parameter replaces the parameters ServerLaunchPath and\n ServerLaunchParameters, which are still supported for backward\n compatibility.

\n
" } }, "ResourceCreationLimitPolicy": { @@ -2088,7 +2322,7 @@ "InstanceRoleArn": { "target": "com.amazonaws.gamelift#NonEmptyString", "traits": { - "smithy.api#documentation": "

A unique identifier for an IAM role with access permissions to other Amazon Web Services services. \n Any application that runs on an instance in the fleet--including install scripts, server processes, and other \n processes--can use these permissions to interact with Amazon Web Services resources that you own or have access to.\n For more information about using the role with your game server builds, see \n \n Communicate with other Amazon Web Services resources from your fleets. This fleet property can't be changed after the fleet is created.

" + "smithy.api#documentation": "

A unique identifier for an IAM role that manages access to your Amazon Web Services services. \n With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, \n including install scripts, server processes, and daemons (background processes). Create a role or look up a role's \n ARN by using the IAM dashboard in the Amazon Web Services Management Console.\n Learn more about using on-box credentials for your game servers at \n \n Access external resources from a game server. This fleet property can't be changed after the fleet is created.

" } }, "CertificateConfiguration": { @@ -2112,7 +2346,7 @@ "ComputeType": { "target": "com.amazonaws.gamelift#ComputeType", "traits": { - "smithy.api#documentation": "

The type of compute resource used to host your game servers.

\n
    \n
  • \n

    \n EC2 – The game server build is deployed to Amazon EC2 instances for\n cloud hosting. This is the default setting.

    \n
  • \n
  • \n

    \n CONTAINER – Container images with your game server build and\n supporting software are deployed to Amazon EC2 instances for cloud hosting. With this\n compute type, you must specify the ContainerGroupsConfiguration\n parameter.

    \n
  • \n
  • \n

    \n ANYWHERE – Game servers or container images with your game server\n and supporting software are deployed to compute resources that are provided and\n managed by you. With this compute type, you can also set the\n AnywhereConfiguration parameter.

    \n
  • \n
" + "smithy.api#documentation": "

The type of compute resource used to host your game servers.

\n
    \n
  • \n

    \n EC2 – The game server build is deployed to Amazon EC2 instances for\n cloud hosting. This is the default setting.

    \n
  • \n
  • \n

    \n ANYWHERE – Your game server\n and supporting software is deployed to compute resources that are provided and\n managed by you. With this compute type, you can also set the\n AnywhereConfiguration parameter.

    \n
  • \n
" } }, "AnywhereConfiguration": { @@ -2126,12 +2360,6 @@ "traits": { "smithy.api#documentation": "

Prompts Amazon GameLift to generate a shared credentials file for the IAM role\n that's defined in InstanceRoleArn. The shared credentials file is stored on\n each fleet instance and refreshed as needed. Use shared credentials for applications\n that are deployed along with the game server executable, if the game server is\n integrated with server SDK version 5.x. For more information about using shared\n credentials, see Communicate\n with other Amazon Web Services resources from your fleets.

" } - }, - "ContainerGroupsConfiguration": { - "target": "com.amazonaws.gamelift#ContainerGroupsConfiguration", - "traits": { - "smithy.api#documentation": "

The container groups to deploy to instances in the container fleet and other fleet-level\n configuration settings. Use the CreateContainerGroupDefinition action\n to create container groups. A container fleet must have exactly one replica container\n group, and can optionally have one daemon container group. You can't change this\n property after you create the fleet.

" - } } }, "traits": { @@ -2176,7 +2404,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Adds remote locations to an EC2 or container fleet and begins populating the new\n locations with instances. The new instances conform to the fleet's instance type,\n auto-scaling, and other configuration settings.

\n \n

You can't add remote locations to a fleet that resides in an Amazon Web Services Region that\n doesn't support multiple locations. Fleets created prior to March 2021 can't support\n multiple locations.

\n
\n

To add fleet locations, specify the fleet to be updated and provide a list of one or\n more locations.

\n

If successful, this operation returns the list of added locations with their status\n set to NEW. Amazon GameLift initiates the process of starting an instance in each\n added location. You can track the status of each new location by monitoring location\n creation events using DescribeFleetEvents.

\n

\n Learn more\n

\n

\n Setting up\n fleets\n

\n

\n Update fleet locations\n

\n

\n \n Amazon GameLift service locations for managed hosting.

" + "smithy.api#documentation": "

Adds remote locations to a managed EC2 fleet or managed container fleet and begins populating the new\n locations with instances. The new instances conform to the fleet's instance type,\n auto-scaling, and other configuration settings.

\n \n

You can't add remote locations to a fleet that resides in an Amazon Web Services Region that\n doesn't support multiple locations. Fleets created prior to March 2021 can't support\n multiple locations.

\n
\n

To add fleet locations, specify the fleet to be updated and provide a list of one or\n more locations.

\n

If successful, this operation returns the list of added locations with their status\n set to NEW. Amazon GameLift initiates the process of starting an instance in each\n added location. You can track the status of each new location by monitoring location\n creation events using DescribeFleetEvents.

\n

\n Learn more\n

\n

\n Setting up\n fleets\n

\n

\n Update fleet locations\n

\n

\n \n Amazon GameLift service locations for managed hosting.

" } }, "com.amazonaws.gamelift#CreateFleetLocationsInput": { @@ -2481,7 +2709,7 @@ "GameSessionData": { "target": "com.amazonaws.gamelift#LargeGameSessionData", "traits": { - "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session).

" + "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session. For more information, see Start a game session.

" } }, "Location": { @@ -2555,13 +2783,13 @@ "TimeoutInSeconds": { "target": "com.amazonaws.gamelift#WholeNumber", "traits": { - "smithy.api#documentation": "

The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status. By default, this property is set to 600.

" + "smithy.api#documentation": "

The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

" } }, "PlayerLatencyPolicies": { "target": "com.amazonaws.gamelift#PlayerLatencyPolicyList", "traits": { - "smithy.api#documentation": "

A set of policies that act as a sliding cap on player latency. FleetIQ works to\n deliver low latency for most players in a game session. These policies ensure that no\n individual player can be placed into a game with unreasonably high latency. Use multiple\n policies to gradually relax latency requirements a step at a time. Multiple policies are applied based on their\n maximum allowed latency, starting with the lowest value.

" + "smithy.api#documentation": "

A set of policies that enforce a sliding cap on player latency when processing game sessions placement requests. \n\tUse multiple policies to gradually relax the cap over time if Amazon GameLift can't make a placement.\n\t Policies are evaluated in order starting with the lowest maximum latency value.

" } }, "Destinations": { @@ -2781,7 +3009,7 @@ "AdditionalPlayerCount": { "target": "com.amazonaws.gamelift#WholeNumber", "traits": { - "smithy.api#documentation": "

The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies \n a match for a single 10-person team, and the additional player count is set to 2, 10 players will be selected for the match and 2 more player slots will be open for future players. This parameter is not used if FlexMatchMode is set to\n STANDALONE.

" + "smithy.api#documentation": "

The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies \n a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used if FlexMatchMode is set to\n STANDALONE.

" } }, "CustomEventData": { @@ -2799,7 +3027,7 @@ "GameSessionData": { "target": "com.amazonaws.gamelift#GameSessionData", "traits": { - "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is\n created for a successful match. This parameter is not used if FlexMatchMode\n is set to STANDALONE.

" + "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session. For more information, see Start a game session. This information is added to the new GameSession object that is\n created for a successful match. This parameter is not used if FlexMatchMode\n is set to STANDALONE.

" } }, "BackfillMode": { @@ -3098,7 +3326,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new script record for your Realtime Servers script. Realtime scripts are JavaScript that\n provide configuration settings and optional custom game logic for your game. The script\n is deployed when you create a Realtime Servers fleet to host your game sessions. Script logic is\n executed during an active game session.

\n

To create a new script record, specify a script name and provide the script file(s).\n The script files and all dependencies must be zipped into a single file. You can pull\n the zip file from either of these locations:

\n
    \n
  • \n

    A locally available directory. Use the ZipFile parameter\n for this option.

    \n
  • \n
  • \n

    An Amazon Simple Storage Service (Amazon S3) bucket under your Amazon Web Services account. Use the\n StorageLocation parameter for this option. You'll need\n to have an Identity Access Management (IAM) role that allows the Amazon GameLift service\n to access your S3 bucket.

    \n
  • \n
\n

If the call is successful, a new script record is created with a unique script ID. If\n the script file is provided as a local file, the file is uploaded to an Amazon GameLift-owned S3\n bucket and the script record's storage location reflects this location. If the script\n file is provided as an S3 bucket, Amazon GameLift accesses the file at this storage location as\n needed for deployment.

\n

\n Learn more\n

\n

\n Amazon GameLift Realtime Servers\n

\n

\n Set Up a Role for Amazon GameLift Access\n

\n

\n Related actions\n

\n

\n All APIs by task\n

" + "smithy.api#documentation": "

Creates a script resource for your Realtime Servers script. Realtime scripts are JavaScript files\n that provide configuration settings and optional custom game logic for your game. Script\n logic is executed during an active game session. To deploy Realtime Servers for hosting, create an\n Amazon GameLift managed fleet with the script.

\n

To create a script resource, specify a script name and provide the script file(s). The\n script files and all dependencies must be combined into a single .zip file. You can\n upload the .zip file from either of these locations:

\n
    \n
  • \n

    A locally available directory. Use the ZipFile parameter\n for this option.

    \n
  • \n
  • \n

    An Amazon Simple Storage Service (Amazon S3) bucket under your Amazon Web Services account. Use the\n StorageLocation parameter for this option. You'll need\n to have an Identity Access Management (IAM) role that allows the Amazon GameLift service\n to access your S3 bucket.

    \n
  • \n
\n

If the call is successful, Amazon GameLift creates a new script resource with a unique script\n ID. The script is uploaded to an Amazon S3 bucket that is owned by Amazon GameLift.

\n

\n Learn more\n

\n

\n Amazon GameLift Realtime Servers\n

\n

\n Set Up a Role for Amazon GameLift Access\n

\n

\n Related actions\n

\n

\n All APIs by task\n

" } }, "com.amazonaws.gamelift#CreateScriptInput": { @@ -3107,13 +3335,13 @@ "Name": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

A descriptive label that is associated with a script. Script names don't need to be unique. You can use UpdateScript to\n change this value later.

" + "smithy.api#documentation": "

A descriptive label that is associated with a script. Script names do not need to be unique. You can use UpdateScript to\n change this value later.

" } }, "Version": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

Version information associated with a build or script. Version strings don't need to be unique. You can use UpdateScript to\n change this value later.

" + "smithy.api#documentation": "

Version information that is associated with a build or script. Version strings do not need to be unique. You can use UpdateScript to\n change this value later.

" } }, "StorageLocation": { @@ -3401,13 +3629,68 @@ "smithy.api#input": {} } }, + "com.amazonaws.gamelift#DeleteContainerFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#DeleteContainerFleetInput" + }, + "output": { + "target": "com.amazonaws.gamelift#DeleteContainerFleetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#TaggingFailedException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes all resources and information related to a container fleet and shuts down\n currently running fleet instances, including those in remote locations. The container\n fleet must be in ACTIVE status to be deleted.

\n

To delete a fleet, specify the fleet ID to be terminated. During the deletion process,\n the fleet status is changed to DELETING.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n Fleets\n

" + } + }, + "com.amazonaws.gamelift#DeleteContainerFleetInput": { + "type": "structure", + "members": { + "FleetId": { + "target": "com.amazonaws.gamelift#FleetIdOrArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier for the container fleet to delete. You can use either the fleet ID\n or ARN value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#DeleteContainerFleetOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.gamelift#DeleteContainerGroupDefinition": { "type": "operation", "input": { "target": "com.amazonaws.gamelift#DeleteContainerGroupDefinitionInput" }, "output": { - "target": "smithy.api#Unit" + "target": "com.amazonaws.gamelift#DeleteContainerGroupDefinitionOutput" }, "errors": [ { @@ -3430,7 +3713,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation is used with the Amazon GameLift containers feature, which is currently in public preview. \n

\n

Deletes a container group definition resource. You can delete a container group definition\n if there are no fleets using the definition.

\n

To delete a container group definition, identify the resource to delete.

\n

\n Learn more\n

\n " + "smithy.api#documentation": "

Deletes a container group definition. You can delete a container group definition if there\n are no fleets using the definition.

\n

\n Request options:\n

\n
    \n
  • \n

    Delete an entire container group definition, including all versions. Specify the\n container group definition name, or use an ARN value without the version number.

    \n
  • \n
  • \n

    Delete a particular version. Specify the container group definition name and a version\n number, or use an ARN value that includes the version number.

    \n
  • \n
  • \n

    Keep the newest versions and delete all older versions. Specify the container group\n definition name and the number of versions to retain. For example, set\n VersionCountToRetain to 5 to delete all but the five most recent\n versions.

    \n
  • \n
\n

\n Learn more\n

\n " } }, "com.amazonaws.gamelift#DeleteContainerGroupDefinitionInput": { @@ -3443,12 +3726,31 @@ "smithy.api#documentation": "

The unique identifier for the container group definition to delete. You can use either the Name or ARN\n value.

", "smithy.api#required": {} } + }, + "VersionNumber": { + "target": "com.amazonaws.gamelift#PositiveInteger", + "traits": { + "smithy.api#documentation": "

The specific version to delete.

" + } + }, + "VersionCountToRetain": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

The number of most recent versions to keep while deleting all older versions.

" + } } }, "traits": { "smithy.api#input": {} } }, + "com.amazonaws.gamelift#DeleteContainerGroupDefinitionOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.gamelift#DeleteFleet": { "type": "operation", "input": { @@ -3863,6 +4165,9 @@ }, { "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { @@ -4013,43 +4318,174 @@ { "target": "com.amazonaws.gamelift#NotFoundException" }, - { - "target": "com.amazonaws.gamelift#UnauthorizedException" - } - ], - "traits": { - "smithy.api#documentation": "

Removes a VPC peering connection. To delete the connection, you must have a valid\n authorization for the VPC peering connection that you want to delete..

\n

Once a valid authorization exists, call this operation from the Amazon Web Services account that is\n used to manage the Amazon GameLift fleets. Identify the connection to delete by the connection ID\n and fleet ID. If successful, the connection is removed.

\n

\n Related actions\n

\n

\n All APIs by task\n

" - } - }, - "com.amazonaws.gamelift#DeleteVpcPeeringConnectionInput": { - "type": "structure", - "members": { - "FleetId": { - "target": "com.amazonaws.gamelift#FleetId", + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes a VPC peering connection. To delete the connection, you must have a valid\n authorization for the VPC peering connection that you want to delete..

\n

Once a valid authorization exists, call this operation from the Amazon Web Services account that is\n used to manage the Amazon GameLift fleets. Identify the connection to delete by the connection ID\n and fleet ID. If successful, the connection is removed.

\n

\n Related actions\n

\n

\n All APIs by task\n

" + } + }, + "com.amazonaws.gamelift#DeleteVpcPeeringConnectionInput": { + "type": "structure", + "members": { + "FleetId": { + "target": "com.amazonaws.gamelift#FleetId", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier for the fleet. This fleet specified must match the fleet referenced in the VPC peering\n connection record. You can use either the fleet ID or ARN value.

", + "smithy.api#required": {} + } + }, + "VpcPeeringConnectionId": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier for a VPC peering connection.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#DeleteVpcPeeringConnectionOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.gamelift#DeploymentConfiguration": { + "type": "structure", + "members": { + "ProtectionStrategy": { + "target": "com.amazonaws.gamelift#DeploymentProtectionStrategy", + "traits": { + "smithy.api#documentation": "

Determines how fleet deployment activity affects active game sessions on the fleet.\n With protection, a deployment honors game session protection, and delays actions that\n would interrupt a protected active game session until the game session ends. Without\n protection, deployment activity can shut down all running tasks, including active game\n sessions, regardless of game session protection.

" + } + }, + "MinimumHealthyPercentage": { + "target": "com.amazonaws.gamelift#MinimumHealthyPercentage", + "traits": { + "smithy.api#documentation": "

Sets a minimum level of healthy tasks to maintain during deployment activity.

" + } + }, + "ImpairmentStrategy": { + "target": "com.amazonaws.gamelift#DeploymentImpairmentStrategy", + "traits": { + "smithy.api#documentation": "

Determines what actions to take if a deployment fails. If the fleet is multi-location,\n this strategy applies across all fleet locations. With a rollback strategy, updated\n fleet instances are rolled back to the last successful deployment. Alternatively, you\n can maintain a few impaired containers for the purpose of debugging, while all other\n tasks return to the last successful deployment.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Set of rules for processing a deployment for a container fleet update.

" + } + }, + "com.amazonaws.gamelift#DeploymentDetails": { + "type": "structure", + "members": { + "LatestDeploymentId": { + "target": "com.amazonaws.gamelift#DeploymentId", + "traits": { + "smithy.api#documentation": "

A unique identifier for a fleet deployment.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about the most recent deployment for the container fleet.

" + } + }, + "com.amazonaws.gamelift#DeploymentId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\-]+$" + } + }, + "com.amazonaws.gamelift#DeploymentImpairmentStrategy": { + "type": "enum", + "members": { + "MAINTAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAINTAIN" + } + }, + "ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK" + } + } + } + }, + "com.amazonaws.gamelift#DeploymentProtectionStrategy": { + "type": "enum", + "members": { + "WITH_PROTECTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WITH_PROTECTION" + } + }, + "IGNORE_PROTECTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IGNORE_PROTECTION" + } + } + } + }, + "com.amazonaws.gamelift#DeploymentStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "IMPAIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPAIRED" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_IN_PROGRESS" + } + }, + "ROLLBACK_COMPLETE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A unique identifier for the fleet. This fleet specified must match the fleet referenced in the VPC peering\n connection record. You can use either the fleet ID or ARN value.

", - "smithy.api#required": {} + "smithy.api#enumValue": "ROLLBACK_COMPLETE" } }, - "VpcPeeringConnectionId": { - "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "CANCELLED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A unique identifier for a VPC peering connection.

", - "smithy.api#required": {} + "smithy.api#enumValue": "CANCELLED" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" } } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.gamelift#DeleteVpcPeeringConnectionOutput": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} } }, "com.amazonaws.gamelift#DeregisterCompute": { @@ -4075,7 +4511,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Removes a compute resource from an Amazon GameLift Anywhere fleet or container fleet.\n Deregistered computes can no longer host game sessions through Amazon GameLift.

\n

For an Anywhere fleet or a container fleet that's running the Amazon GameLift Agent, the Agent\n handles all compute registry tasks for you. For an Anywhere fleet that doesn't use the\n Agent, call this operation to deregister fleet computes.

\n

To deregister a compute, call this operation from the compute that's being\n deregistered and specify the compute name and the fleet ID.

" + "smithy.api#documentation": "

Removes a compute resource from an Amazon GameLift Anywhere fleet.\n Deregistered computes can no longer host game sessions through Amazon GameLift.

\n

For an Anywhere fleet that's running the Amazon GameLift Agent, the Agent\n handles all compute registry tasks for you. For an Anywhere fleet that doesn't use the\n Agent, call this operation to deregister fleet computes.

\n

To deregister a compute, call this operation from the compute that's being\n deregistered and specify the compute name and the fleet ID.

" } }, "com.amazonaws.gamelift#DeregisterComputeInput": { @@ -4093,7 +4529,7 @@ "target": "com.amazonaws.gamelift#ComputeNameOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The unique identifier of the compute resource to deregister. For an Anywhere fleet\n compute, use the registered compute name. For a container fleet, use the compute name\n (for example,\n a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9)\n or the compute ARN.

", + "smithy.api#documentation": "

The unique identifier of the compute resource to deregister. For an Anywhere fleet\n compute, use the registered compute name.

", "smithy.api#required": {} } } @@ -4291,10 +4727,13 @@ }, { "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves properties for a compute resource in an Amazon GameLift fleet. To get a list of all\n computes in a fleet, call ListCompute.

\n

To request information on a specific compute, provide the fleet ID and compute\n name.

\n

If successful, this operation returns details for the requested compute resource.\n Depending on the fleet's compute type, the result includes the following information:

\n
    \n
  • \n

    For EC2 fleets, this operation returns information about the EC2\n instance.

    \n
  • \n
  • \n

    For ANYWHERE fleets, this operation returns information about the\n registered compute.

    \n
  • \n
  • \n

    For CONTAINER fleets, this operation returns information about\n the container that's registered as a compute, and the instance it's running on.\n The compute name is the container name.

    \n
  • \n
" + "smithy.api#documentation": "

Retrieves properties for a compute resource in an Amazon GameLift fleet. To get a list of all\n computes in a fleet, call ListCompute.

\n

To request information on a specific compute, provide the fleet ID and compute\n name.

\n

If successful, this operation returns details for the requested compute resource.\n Depending on the fleet's compute type, the result includes the following information:

\n
    \n
  • \n

    For managed EC2 fleets, this operation returns information about the EC2\n instance.

    \n
  • \n
  • \n

    For Anywhere fleets, this operation returns information about the\n registered compute.

    \n
  • \n
" } }, "com.amazonaws.gamelift#DescribeComputeInput": { @@ -4312,7 +4751,7 @@ "target": "com.amazonaws.gamelift#ComputeNameOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The unique identifier of the compute resource to retrieve properties for. For an\n Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance, use\n the instance ID. For a container fleet, use the compute name (for example,\n a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9)\n or the compute ARN.

", + "smithy.api#documentation": "

The unique identifier of the compute resource to retrieve properties for. For an\n Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance, use\n the instance ID.

", "smithy.api#required": {} } } @@ -4335,6 +4774,65 @@ "smithy.api#output": {} } }, + "com.amazonaws.gamelift#DescribeContainerFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#DescribeContainerFleetInput" + }, + "output": { + "target": "com.amazonaws.gamelift#DescribeContainerFleetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves the properties for a container fleet. When requesting attributes for\n multiple fleets, use the pagination parameters to retrieve results as a set of\n sequential pages.

\n

\n Request options\n

\n
    \n
  • \n

    Get container fleet properties for a single fleet. Provide either the fleet ID or ARN value.

    \n
  • \n
\n

\n Results\n

\n

If successful, a ContainerFleet object is returned. This object includes\n the fleet properties, including information about the most recent deployment.

\n \n

Some API operations limit the number of fleet IDs that allowed in one request. If\n a request exceeds this limit, the request fails and the error message contains the\n maximum allowed number.

\n
" + } + }, + "com.amazonaws.gamelift#DescribeContainerFleetInput": { + "type": "structure", + "members": { + "FleetId": { + "target": "com.amazonaws.gamelift#FleetIdOrArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier for the container fleet to retrieve. You can use either the fleet\n ID or ARN value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#DescribeContainerFleetOutput": { + "type": "structure", + "members": { + "ContainerFleet": { + "target": "com.amazonaws.gamelift#ContainerFleet", + "traits": { + "smithy.api#documentation": "

The properties for the requested container fleet, including current status.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.gamelift#DescribeContainerGroupDefinition": { "type": "operation", "input": { @@ -4361,7 +4859,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation is used with the Amazon GameLift containers feature, which is currently in public preview. \n

\n

Retrieves the properties of a container group definition, including all container\n definitions in the group.

\n

To retrieve a container group definition, provide a resource identifier. If successful,\n this operation returns the complete properties of the container group definition.

\n

\n Learn more\n

\n " + "smithy.api#documentation": "

Retrieves the properties of a container group definition, including all container\n definitions in the group.

\n

\n Request options:\n

\n
    \n
  • \n

    Retrieve the latest version of a container group definition. Specify the container\n group definition name only, or use an ARN value without a version number.

    \n
  • \n
  • \n

    Retrieve a particular version. Specify the container group definition name and a\n version number, or use an ARN value that includes the version number.

    \n
  • \n
\n

\n Results:\n

\n

If successful, this operation returns the complete properties of a container group\n definition version.

\n

\n Learn more\n

\n " } }, "com.amazonaws.gamelift#DescribeContainerGroupDefinitionInput": { @@ -4374,6 +4872,12 @@ "smithy.api#documentation": "

The unique identifier for the container group definition to retrieve properties for. You can use either the Name or\n ARN value.

", "smithy.api#required": {} } + }, + "VersionNumber": { + "target": "com.amazonaws.gamelift#PositiveInteger", + "traits": { + "smithy.api#documentation": "

The specific version to retrieve.

" + } } }, "traits": { @@ -4477,7 +4981,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves core fleet-wide properties for fleets in an Amazon Web Services Region. Properties include the computing\n hardware and deployment configuration for instances in the fleet.

\n

You can use this operation in the following ways:

\n
    \n
  • \n

    To get attributes for specific fleets, provide a list of fleet IDs or fleet ARNs.

    \n
  • \n
  • \n

    To get attributes for all fleets, do not provide a fleet identifier.

    \n
  • \n
\n

When requesting attributes for multiple fleets, use the pagination parameters to\n retrieve results as a set of sequential pages.

\n

If successful, a FleetAttributes object is returned for each fleet\n requested, unless the fleet identifier is not found.

\n \n

Some API operations limit the number of fleet IDs that allowed in one request. If\n a request exceeds this limit, the request fails and the error message contains the\n maximum allowed number.

\n
\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

", + "smithy.api#documentation": "

Retrieves core fleet-wide properties for fleets in an Amazon Web Services Region. Properties include the computing\n hardware and deployment configuration for instances in the fleet.

\n

You can use this operation in the following ways:

\n
    \n
  • \n

    To get attributes for specific fleets, provide a list of fleet IDs or fleet ARNs.

    \n
  • \n
  • \n

    To get attributes for all fleets, do not provide a fleet identifier.

    \n
  • \n
\n

When requesting attributes for multiple fleets, use the pagination parameters to\n retrieve results as a set of sequential pages.

\n

If successful, a FleetAttributes object is returned for each fleet\n requested, unless the fleet identifier is not found.

\n \n

Some API operations limit the number of fleet IDs that allowed in one request. If\n a request exceeds this limit, the request fails and the error message contains the\n maximum allowed number.

\n
\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4552,10 +5056,13 @@ }, { "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves the resource capacity settings for one or more fleets. For a container\n fleet, this operation also returns counts for replica container groups.

\n

With multi-location fleets, this operation retrieves data for the fleet's home Region\n only. To retrieve capacity for remote locations, see \n DescribeFleetLocationCapacity.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To get capacity data for one or more specific fleets, provide a list of fleet\n IDs or fleet ARNs.

    \n
  • \n
  • \n

    To get capacity data for all fleets, do not provide a fleet identifier.\n

    \n
  • \n
\n

When requesting multiple fleets, use the pagination parameters to retrieve results as\n a set of sequential pages.

\n

If successful, a FleetCapacity object is returned for each requested\n fleet ID. Each FleetCapacity object includes a Location\n property, which is set to the fleet's home Region. Capacity values are returned only for\n fleets that currently exist.

\n \n

Some API operations may limit the number of fleet IDs that are allowed in one\n request. If a request exceeds this limit, the request fails and the error message\n includes the maximum allowed.

\n
\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n GameLift metrics for fleets\n

", + "smithy.api#documentation": "

Retrieves the resource capacity settings for one or more fleets. For a container\n fleet, this operation also returns counts for game server container groups.

\n

With multi-location fleets, this operation retrieves data for the fleet's home Region\n only. To retrieve capacity for remote locations, see \n DescribeFleetLocationCapacity.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To get capacity data for one or more specific fleets, provide a list of fleet\n IDs or fleet ARNs.

    \n
  • \n
  • \n

    To get capacity data for all fleets, do not provide a fleet identifier.\n

    \n
  • \n
\n

When requesting multiple fleets, use the pagination parameters to retrieve results as\n a set of sequential pages.

\n

If successful, a FleetCapacity object is returned for each requested\n fleet ID. Each FleetCapacity object includes a Location\n property, which is set to the fleet's home Region. Capacity values are returned only for\n fleets that currently exist.

\n \n

Some API operations may limit the number of fleet IDs that are allowed in one\n request. If a request exceeds this limit, the request fails and the error message\n includes the maximum allowed.

\n
\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n GameLift metrics for fleets\n

", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4610,6 +5117,77 @@ "smithy.api#output": {} } }, + "com.amazonaws.gamelift#DescribeFleetDeployment": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#DescribeFleetDeploymentInput" + }, + "output": { + "target": "com.amazonaws.gamelift#DescribeFleetDeploymentOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves information about a managed container fleet deployment.

\n

\n Request options\n

\n
    \n
  • \n

    Get information about the latest deployment for a specific fleet. Provide the\n fleet ID or ARN.

    \n
  • \n
  • \n

    Get information about a specific deployment. Provide the fleet ID or ARN and\n the deployment ID.

    \n
  • \n
\n

\n Results\n

\n

If successful, a FleetDeployment object is returned.

" + } + }, + "com.amazonaws.gamelift#DescribeFleetDeploymentInput": { + "type": "structure", + "members": { + "FleetId": { + "target": "com.amazonaws.gamelift#FleetIdOrArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier for the container fleet. You can use either the fleet ID or ARN\n value.

", + "smithy.api#required": {} + } + }, + "DeploymentId": { + "target": "com.amazonaws.gamelift#DeploymentId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the deployment to return information for.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#DescribeFleetDeploymentOutput": { + "type": "structure", + "members": { + "FleetDeployment": { + "target": "com.amazonaws.gamelift#FleetDeployment", + "traits": { + "smithy.api#documentation": "

The requested deployment information.

" + } + }, + "LocationalDeployments": { + "target": "com.amazonaws.gamelift#LocationalDeployments", + "traits": { + "smithy.api#documentation": "

If the deployment is for a multi-location fleet, the requests returns the deployment\n status in each fleet location.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.gamelift#DescribeFleetEvents": { "type": "operation", "input": { @@ -4630,6 +5208,9 @@ }, { "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { @@ -4828,7 +5409,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves the resource capacity settings for a fleet location. The data returned\n includes the current capacity (number of EC2 instances) and some scaling settings for\n the requested fleet location. For a container fleet, this operation also returns counts\n for replica container groups.

\n

Use this operation to retrieve capacity information for a fleet's remote location or\n home Region (you can also retrieve home Region capacity by calling\n DescribeFleetCapacity).

\n

To retrieve capacity data, identify a fleet and location.

\n

If successful, a FleetCapacity object is returned for the requested fleet\n location.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n Amazon GameLift service locations for managed hosting

\n

\n GameLift metrics for fleets\n

" + "smithy.api#documentation": "

Retrieves the resource capacity settings for a fleet location. The data returned\n includes the current capacity (number of EC2 instances) and some scaling settings for\n the requested fleet location. For a managed container fleet, this operation also returns counts\n for game server container groups.

\n

Use this operation to retrieve capacity information for a fleet's remote location or\n home Region (you can also retrieve home Region capacity by calling\n DescribeFleetCapacity).

\n

To retrieve capacity data, identify a fleet and location.

\n

If successful, a FleetCapacity object is returned for the requested fleet\n location.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n Amazon GameLift service locations for managed hosting

\n

\n GameLift metrics for fleets\n

" } }, "com.amazonaws.gamelift#DescribeFleetLocationCapacityInput": { @@ -4962,7 +5543,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a fleet's inbound connection permissions. Connection permissions specify IP\n addresses and port settings that incoming traffic can use to access server processes in\n the fleet. Game server processes that are running in the fleet must use a port that\n falls within this range. To connect to game server processes on a container fleet, the\n port settings should include one or more of the fleet's connection ports.

\n

Use this operation in the following ways:

\n
    \n
  • \n

    To retrieve the port settings for a fleet, identify the fleet's unique\n identifier.

    \n
  • \n
  • \n

    To check the status of recent updates to a fleet remote location, specify the\n fleet ID and a location. Port setting updates can take time to propagate across\n all locations.

    \n
  • \n
\n

If successful, a set of IpPermission objects is returned for the\n requested fleet ID. When specifying a location, this operation returns a pending status.\n If the requested fleet has been deleted, the result set is empty.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" + "smithy.api#documentation": "

Retrieves a fleet's inbound connection permissions. Inbound permissions specify IP\n addresses and port settings that incoming traffic can use to access server processes in\n the fleet. Game server processes that are running in the fleet must use a port that\n falls within this range. To connect to game server processes on a managed container fleet, the\n port settings should include one or more of the container fleet's connection ports.

\n

Use this operation in the following ways:

\n
    \n
  • \n

    To retrieve the port settings for a fleet, identify the fleet's unique\n identifier.

    \n
  • \n
  • \n

    To check the status of recent updates to a fleet remote location, specify the\n fleet ID and a location. Port setting updates can take time to propagate across\n all locations.

    \n
  • \n
\n

If successful, a set of IpPermission objects is returned for the\n requested fleet ID. When specifying a location, this operation returns a pending status.\n If the requested fleet has been deleted, the result set is empty.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" } }, "com.amazonaws.gamelift#DescribeFleetPortSettingsInput": { @@ -6087,7 +6668,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a fleet's runtime configuration settings. The runtime configuration\n determines which server processes run, and how, on computes in the fleet. For managed\n EC2 fleets, the runtime configuration describes server processes that run on each fleet\n instance. For container fleets, the runtime configuration describes server processes\n that run in each replica container group. You can update a fleet's runtime configuration\n at any time using UpdateRuntimeConfiguration.

\n

To get the current runtime configuration for a fleet, provide the fleet ID.

\n

If successful, a RuntimeConfiguration object is returned for the\n requested fleet. If the requested fleet has been deleted, the result set is\n empty.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n Running multiple\n processes on a fleet\n

" + "smithy.api#documentation": "

Retrieves a fleet's runtime configuration settings. The runtime configuration\n determines which server processes run, and how they run, and how many run concurrently \n on computes in managed EC2 and Anywhere fleets. You can update a fleet's runtime configuration\n at any time using UpdateRuntimeConfiguration.

\n

To get the current runtime configuration for a fleet, provide the fleet ID.

\n

If successful, a RuntimeConfiguration object is returned for the\n requested fleet. If the requested fleet has been deleted, the result set is\n empty.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

\n

\n Running multiple\n processes on a fleet\n

" } }, "com.amazonaws.gamelift#DescribeRuntimeConfigurationInput": { @@ -7575,7 +8156,7 @@ "EventCode": { "target": "com.amazonaws.gamelift#EventCode", "traits": { - "smithy.api#documentation": "

The type of event being logged.

\n

\n Fleet state transition events:\n

\n
    \n
  • \n

    FLEET_CREATED -- A fleet resource was successfully created with a status of\n NEW. Event messaging includes the fleet ID.

    \n
  • \n
  • \n

    FLEET_STATE_DOWNLOADING -- Fleet status changed from NEW to\n DOWNLOADING. Amazon GameLift is downloading the compressed build and\n running install scripts.

    \n
  • \n
  • \n

    FLEET_STATE_VALIDATING -- Fleet status changed from DOWNLOADING\n to VALIDATING. Amazon GameLift has successfully installed build and is now\n validating the build files.

    \n
  • \n
  • \n

    FLEET_STATE_BUILDING -- Fleet status changed from VALIDATING to\n BUILDING. Amazon GameLift has successfully verified the build files and\n is now launching a fleet instance.

    \n
  • \n
  • \n

    FLEET_STATE_ACTIVATING -- Fleet status changed from BUILDING to\n ACTIVATING. Amazon GameLift is launching a game server process on the\n fleet instance and is testing its connectivity with the Amazon GameLift service.

    \n
  • \n
  • \n

    FLEET_STATE_ACTIVE -- The fleet's status changed from ACTIVATING\n to ACTIVE. The fleet is now ready to host game sessions.

    \n
  • \n
  • \n

    FLEET_STATE_ERROR -- The Fleet's status changed to ERROR.\n Describe the fleet event message for more details.

    \n
  • \n
\n

\n Fleet creation events (ordered by fleet creation\n activity):\n

\n
    \n
  • \n

    FLEET_BINARY_DOWNLOAD_FAILED -- The build failed to download to the fleet\n instance.

    \n
  • \n
  • \n

    FLEET_CREATION_EXTRACTING_BUILD -- The game server build was successfully\n downloaded to an instance, and Amazon GameLiftis now extracting the build files from the\n uploaded build. Failure at this stage prevents a fleet from moving to ACTIVE\n status. Logs for this stage display a list of the files that are extracted and\n saved on the instance. Access the logs by using the URL in\n PreSignedLogUrl.

    \n
  • \n
  • \n

    FLEET_CREATION_RUNNING_INSTALLER -- The game server build files were\n successfully extracted, and Amazon GameLift is now running the build's install script\n (if one is included). Failure in this stage prevents a fleet from moving to\n ACTIVE status. Logs for this stage list the installation steps and whether or\n not the install completed successfully. Access the logs by using the URL in\n PreSignedLogUrl.

    \n
  • \n
  • \n

    FLEET_CREATION_COMPLETED_INSTALLER -- The game server build files were\n successfully installed and validation of the installation will begin\n soon.

    \n
  • \n
  • \n

    FLEET_CREATION_FAILED_INSTALLER -- The installed failed while attempting to\n install the build files. This event indicates that the failure occurred before\n Amazon GameLift could start validation.

    \n
  • \n
  • \n

    FLEET_CREATION_VALIDATING_RUNTIME_CONFIG -- The build process was successful,\n and the GameLift is now verifying that the game server launch paths, which are\n specified in the fleet's runtime configuration, exist. If any listed launch path\n exists, Amazon GameLift tries to launch a game server process and waits for the process\n to report ready. Failures in this stage prevent a fleet from moving to\n ACTIVE status. Logs for this stage list the launch paths in the\n runtime configuration and indicate whether each is found. Access the logs by\n using the URL in PreSignedLogUrl.

    \n
  • \n
  • \n

    FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the runtime\n configuration failed because the executable specified in a launch path does not\n exist on the instance.

    \n
  • \n
  • \n

    FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the runtime\n configuration failed because the executable specified in a launch path failed to\n run on the fleet instance.

    \n
  • \n
  • \n

    FLEET_VALIDATION_TIMED_OUT -- Validation of the fleet at the end of creation\n timed out. Try fleet creation again.

    \n
  • \n
  • \n

    FLEET_ACTIVATION_FAILED -- The fleet failed to successfully complete one of\n the steps in the fleet activation process. This event code indicates that the\n game build was successfully downloaded to a fleet instance, built, and\n validated, but was not able to start a server process. For more information, see\n Debug Fleet Creation Issues.

    \n
  • \n
  • \n

    FLEET_ACTIVATION_FAILED_NO_INSTANCES -- Fleet creation was not able to obtain\n any instances based on the input fleet attributes. Try again at a different time\n or choose a different combination of fleet attributes such as fleet type,\n instance type, etc.

    \n
  • \n
  • \n

    FLEET_INITIALIZATION_FAILED -- A generic exception occurred during fleet\n creation. Describe the fleet event message for more details.

    \n
  • \n
\n

\n VPC peering events:\n

\n
    \n
  • \n

    FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been established\n between the VPC for an Amazon GameLift fleet and a VPC in your Amazon Web Services account.

    \n
  • \n
  • \n

    FLEET_VPC_PEERING_FAILED -- A requested VPC peering connection has failed.\n Event details and status information provide additional detail. A common reason\n for peering failure is that the two VPCs have overlapping CIDR blocks of IPv4\n addresses. To resolve this, change the CIDR block for the VPC in your Amazon Web Services\n account. For more information on VPC peering failures, see https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html\n

    \n
  • \n
  • \n

    FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been successfully\n deleted.

    \n
  • \n
\n

\n Spot instance events:\n

\n
    \n
  • \n

    INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a\n two-minute notification.

    \n
  • \n
  • \n

    INSTANCE_RECYCLED -- A spot instance was determined to have a high risk \n of interruption and is scheduled to be recycled once it has no active \n game sessions.

    \n
  • \n
\n

\n Server process events:\n

\n
    \n
  • \n

    SERVER_PROCESS_INVALID_PATH -- The game server executable or script could not\n be found based on the Fleet runtime configuration. Check that the launch path is\n correct based on the operating system of the Fleet.

    \n
  • \n
  • \n

    SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT -- The server process did not call\n InitSDK() within the time expected (5 minutes). Check your game\n session log to see why InitSDK() was not called in time.

    \n
  • \n
  • \n

    SERVER_PROCESS_PROCESS_READY_TIMEOUT -- The server process did not call\n ProcessReady() within the time expected (5 minutes) after\n calling InitSDK(). Check your game session log to see why\n ProcessReady() was not called in time.

    \n
  • \n
  • \n

    SERVER_PROCESS_CRASHED -- The server process exited without calling\n ProcessEnding(). Check your game session log to see why\n ProcessEnding() was not called.

    \n
  • \n
  • \n

    SERVER_PROCESS_TERMINATED_UNHEALTHY -- The server process did not report a\n valid health check for too long and was therefore terminated by GameLift. Check\n your game session log to see if the thread became stuck processing a synchronous\n task for too long.

    \n
  • \n
  • \n

    SERVER_PROCESS_FORCE_TERMINATED -- The server process did not exit cleanly\n within the time expected after OnProcessTerminate() was sent. Check\n your game session log to see why termination took longer than expected.

    \n
  • \n
  • \n

    SERVER_PROCESS_PROCESS_EXIT_TIMEOUT -- The server process did not exit cleanly\n within the time expected (30 seconds) after calling\n ProcessEnding(). Check your game session log to see why termination\n took longer than expected.

    \n
  • \n
\n

\n Game session events:\n

\n
    \n
  • \n

    GAME_SESSION_ACTIVATION_TIMEOUT -- GameSession failed to activate within the\n expected time. Check your game session log to see why\n ActivateGameSession() took longer to complete than\n expected.

    \n
  • \n
\n

\n Other fleet events:\n

\n
    \n
  • \n

    FLEET_SCALING_EVENT -- A change was made to the fleet's capacity settings\n (desired instances, minimum/maximum scaling limits). Event messaging includes\n the new capacity settings.

    \n
  • \n
  • \n

    FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made to the\n fleet's game session protection policy setting. Event messaging includes both\n the old and new policy setting.

    \n
  • \n
  • \n

    FLEET_DELETED -- A request to delete a fleet was initiated.

    \n
  • \n
  • \n

    GENERIC_EVENT -- An unspecified event has occurred.

    \n
  • \n
" + "smithy.api#documentation": "

The type of event being logged.

\n

\n Fleet state transition events:\n

\n
    \n
  • \n

    FLEET_CREATED -- A fleet resource was successfully created with a status of\n NEW. Event messaging includes the fleet ID.

    \n
  • \n
  • \n

    FLEET_STATE_DOWNLOADING -- Fleet status changed from NEW to\n DOWNLOADING. Amazon GameLift is downloading the compressed build and\n running install scripts.

    \n
  • \n
  • \n

    FLEET_STATE_VALIDATING -- Fleet status changed from DOWNLOADING\n to VALIDATING. Amazon GameLift has successfully installed build and is now\n validating the build files.

    \n
  • \n
  • \n

    FLEET_STATE_BUILDING -- Fleet status changed from VALIDATING to\n BUILDING. Amazon GameLift has successfully verified the build files and\n is now launching a fleet instance.

    \n
  • \n
  • \n

    FLEET_STATE_ACTIVATING -- Fleet status changed from BUILDING to\n ACTIVATING. Amazon GameLift is launching a game server process on the\n fleet instance and is testing its connectivity with the Amazon GameLift service.

    \n
  • \n
  • \n

    FLEET_STATE_ACTIVE -- The fleet's status changed from ACTIVATING\n to ACTIVE. The fleet is now ready to host game sessions.

    \n
  • \n
  • \n

    FLEET_STATE_ERROR -- The Fleet's status changed to ERROR.\n Describe the fleet event message for more details.

    \n
  • \n
\n

\n Fleet creation events (ordered by fleet creation\n activity):\n

\n
    \n
  • \n

    FLEET_BINARY_DOWNLOAD_FAILED -- The build failed to download to the fleet\n instance.

    \n
  • \n
  • \n

    FLEET_CREATION_EXTRACTING_BUILD -- The game server build was successfully\n downloaded to an instance, and Amazon GameLiftis now extracting the build files from the\n uploaded build. Failure at this stage prevents a fleet from moving to ACTIVE\n status. Logs for this stage display a list of the files that are extracted and\n saved on the instance. Access the logs by using the URL in\n PreSignedLogUrl.

    \n
  • \n
  • \n

    FLEET_CREATION_RUNNING_INSTALLER -- The game server build files were\n successfully extracted, and Amazon GameLift is now running the build's install script\n (if one is included). Failure in this stage prevents a fleet from moving to\n ACTIVE status. Logs for this stage list the installation steps and whether or\n not the install completed successfully. Access the logs by using the URL in\n PreSignedLogUrl.

    \n
  • \n
  • \n

    FLEET_CREATION_COMPLETED_INSTALLER -- The game server build files were\n successfully installed and validation of the installation will begin\n soon.

    \n
  • \n
  • \n

    FLEET_CREATION_FAILED_INSTALLER -- The installed failed while attempting to\n install the build files. This event indicates that the failure occurred before\n Amazon GameLift could start validation.

    \n
  • \n
  • \n

    FLEET_CREATION_VALIDATING_RUNTIME_CONFIG -- The build process was successful,\n and the GameLift is now verifying that the game server launch paths, which are\n specified in the fleet's runtime configuration, exist. If any listed launch path\n exists, Amazon GameLift tries to launch a game server process and waits for the process\n to report ready. Failures in this stage prevent a fleet from moving to\n ACTIVE status. Logs for this stage list the launch paths in the\n runtime configuration and indicate whether each is found. Access the logs by\n using the URL in PreSignedLogUrl.

    \n
  • \n
  • \n

    FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the runtime\n configuration failed because the executable specified in a launch path does not\n exist on the instance.

    \n
  • \n
  • \n

    FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the runtime\n configuration failed because the executable specified in a launch path failed to\n run on the fleet instance.

    \n
  • \n
  • \n

    FLEET_VALIDATION_TIMED_OUT -- Validation of the fleet at the end of creation\n timed out. Try fleet creation again.

    \n
  • \n
  • \n

    FLEET_ACTIVATION_FAILED -- The fleet failed to successfully complete one of\n the steps in the fleet activation process. This event code indicates that the\n game build was successfully downloaded to a fleet instance, built, and\n validated, but was not able to start a server process. For more information, see\n Debug Fleet Creation Issues.

    \n
  • \n
  • \n

    FLEET_ACTIVATION_FAILED_NO_INSTANCES -- Fleet creation was not able to obtain\n any instances based on the input fleet attributes. Try again at a different time\n or choose a different combination of fleet attributes such as fleet type,\n instance type, etc.

    \n
  • \n
  • \n

    FLEET_INITIALIZATION_FAILED -- A generic exception occurred during fleet\n creation. Describe the fleet event message for more details.

    \n
  • \n
\n

\n VPC peering events:\n

\n
    \n
  • \n

    FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been established\n between the VPC for an Amazon GameLift fleet and a VPC in your Amazon Web Services account.

    \n
  • \n
  • \n

    FLEET_VPC_PEERING_FAILED -- A requested VPC peering connection has failed.\n Event details and status information provide additional detail. A common reason\n for peering failure is that the two VPCs have overlapping CIDR blocks of IPv4\n addresses. To resolve this, change the CIDR block for the VPC in your Amazon Web Services\n account. For more information on VPC peering failures, see https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html\n

    \n
  • \n
  • \n

    FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been successfully\n deleted.

    \n
  • \n
\n

\n Container group events:\n

\n
    \n
  • \n

    CONTAINER_GROUP_REGISTRATION_FAILED – A game server container group started, but \n timed out before calling RegisterCompute.

    \n
  • \n
  • \n

    CONTAINER_GROUP_CRASHED A game server container group started and terminated without \n calling RegisterCompute.

    \n
  • \n
\n

\n Spot instance events:\n

\n
    \n
  • \n

    INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a\n two-minute notification.

    \n
  • \n
  • \n

    INSTANCE_RECYCLED -- A spot instance was determined to have a high risk \n of interruption and is scheduled to be recycled once it has no active \n game sessions.

    \n
  • \n
\n

\n Server process events:\n

\n
    \n
  • \n

    SERVER_PROCESS_INVALID_PATH -- The game server executable or script could not\n be found based on the Fleet runtime configuration. Check that the launch path is\n correct based on the operating system of the Fleet.

    \n
  • \n
  • \n

    SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT -- The server process did not call\n InitSDK() within the time expected (5 minutes). Check your game\n session log to see why InitSDK() was not called in time.

    \n
  • \n
  • \n

    SERVER_PROCESS_PROCESS_READY_TIMEOUT -- The server process did not call\n ProcessReady() within the time expected (5 minutes) after\n calling InitSDK(). Check your game session log to see why\n ProcessReady() was not called in time.

    \n
  • \n
  • \n

    SERVER_PROCESS_CRASHED -- The server process exited without calling\n ProcessEnding(). Check your game session log to see why\n ProcessEnding() was not called.

    \n
  • \n
  • \n

    SERVER_PROCESS_TERMINATED_UNHEALTHY -- The server process did not report a\n valid health check for too long and was therefore terminated by GameLift. Check\n your game session log to see if the thread became stuck processing a synchronous\n task for too long.

    \n
  • \n
  • \n

    SERVER_PROCESS_FORCE_TERMINATED -- The server process did not exit cleanly\n within the time expected after OnProcessTerminate() was sent. Check\n your game session log to see why termination took longer than expected.

    \n
  • \n
  • \n

    SERVER_PROCESS_PROCESS_EXIT_TIMEOUT -- The server process did not exit cleanly\n within the time expected (30 seconds) after calling\n ProcessEnding(). Check your game session log to see why termination\n took longer than expected.

    \n
  • \n
\n

\n Game session events:\n

\n
    \n
  • \n

    GAME_SESSION_ACTIVATION_TIMEOUT -- GameSession failed to activate within the\n expected time. Check your game session log to see why\n ActivateGameSession() took longer to complete than\n expected.

    \n
  • \n
\n

\n Other fleet events:\n

\n
    \n
  • \n

    FLEET_SCALING_EVENT -- A change was made to the fleet's capacity settings\n (desired instances, minimum/maximum scaling limits). Event messaging includes\n the new capacity settings.

    \n
  • \n
  • \n

    FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made to the\n fleet's game session protection policy setting. Event messaging includes both\n the old and new policy setting.

    \n
  • \n
  • \n

    FLEET_DELETED -- A request to delete a fleet was initiated.

    \n
  • \n
  • \n

    GENERIC_EVENT -- An unspecified event has occurred.

    \n
  • \n
" } }, "Message": { @@ -7670,6 +8251,30 @@ "smithy.api#enumValue": "FLEET_STATE_ERROR" } }, + "FLEET_STATE_PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_STATE_PENDING" + } + }, + "FLEET_STATE_CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_STATE_CREATING" + } + }, + "FLEET_STATE_CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_STATE_CREATED" + } + }, + "FLEET_STATE_UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_STATE_UPDATING" + } + }, "FLEET_INITIALIZATION_FAILED": { "target": "smithy.api#Unit", "traits": { @@ -7760,6 +8365,18 @@ "smithy.api#enumValue": "SERVER_PROCESS_PROCESS_EXIT_TIMEOUT" } }, + "SERVER_PROCESS_SDK_INITIALIZATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVER_PROCESS_SDK_INITIALIZATION_FAILED" + } + }, + "SERVER_PROCESS_MISCONFIGURED_CONTAINER_PORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVER_PROCESS_MISCONFIGURED_CONTAINER_PORT" + } + }, "GAME_SESSION_ACTIVATION_TIMEOUT": { "target": "smithy.api#Unit", "traits": { @@ -7772,58 +8389,142 @@ "smithy.api#enumValue": "FLEET_CREATION_EXTRACTING_BUILD" } }, - "FLEET_CREATION_RUNNING_INSTALLER": { + "FLEET_CREATION_RUNNING_INSTALLER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_CREATION_RUNNING_INSTALLER" + } + }, + "FLEET_CREATION_VALIDATING_RUNTIME_CONFIG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_CREATION_VALIDATING_RUNTIME_CONFIG" + } + }, + "FLEET_VPC_PEERING_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_VPC_PEERING_SUCCEEDED" + } + }, + "FLEET_VPC_PEERING_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_VPC_PEERING_FAILED" + } + }, + "FLEET_VPC_PEERING_DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_VPC_PEERING_DELETED" + } + }, + "INSTANCE_INTERRUPTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSTANCE_INTERRUPTED" + } + }, + "INSTANCE_RECYCLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSTANCE_RECYCLED" + } + }, + "INSTANCE_REPLACED_UNHEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSTANCE_REPLACED_UNHEALTHY" + } + }, + "FLEET_CREATION_COMPLETED_INSTALLER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_CREATION_COMPLETED_INSTALLER" + } + }, + "FLEET_CREATION_FAILED_INSTALLER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FLEET_CREATION_FAILED_INSTALLER" + } + }, + "COMPUTE_LOG_UPLOAD_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPUTE_LOG_UPLOAD_FAILED" + } + }, + "GAME_SERVER_CONTAINER_GROUP_CRASHED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GAME_SERVER_CONTAINER_GROUP_CRASHED" + } + }, + "PER_INSTANCE_CONTAINER_GROUP_CRASHED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PER_INSTANCE_CONTAINER_GROUP_CRASHED" + } + }, + "GAME_SERVER_CONTAINER_GROUP_REPLACED_UNHEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GAME_SERVER_CONTAINER_GROUP_REPLACED_UNHEALTHY" + } + }, + "LOCATION_STATE_PENDING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FLEET_CREATION_RUNNING_INSTALLER" + "smithy.api#enumValue": "LOCATION_STATE_PENDING" } }, - "FLEET_CREATION_VALIDATING_RUNTIME_CONFIG": { + "LOCATION_STATE_CREATING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FLEET_CREATION_VALIDATING_RUNTIME_CONFIG" + "smithy.api#enumValue": "LOCATION_STATE_CREATING" } }, - "FLEET_VPC_PEERING_SUCCEEDED": { + "LOCATION_STATE_CREATED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FLEET_VPC_PEERING_SUCCEEDED" + "smithy.api#enumValue": "LOCATION_STATE_CREATED" } }, - "FLEET_VPC_PEERING_FAILED": { + "LOCATION_STATE_ACTIVATING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FLEET_VPC_PEERING_FAILED" + "smithy.api#enumValue": "LOCATION_STATE_ACTIVATING" } }, - "FLEET_VPC_PEERING_DELETED": { + "LOCATION_STATE_ACTIVE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FLEET_VPC_PEERING_DELETED" + "smithy.api#enumValue": "LOCATION_STATE_ACTIVE" } }, - "INSTANCE_INTERRUPTED": { + "LOCATION_STATE_UPDATING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INSTANCE_INTERRUPTED" + "smithy.api#enumValue": "LOCATION_STATE_UPDATING" } }, - "INSTANCE_RECYCLED": { + "LOCATION_STATE_ERROR": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "INSTANCE_RECYCLED" + "smithy.api#enumValue": "LOCATION_STATE_ERROR" } }, - "FLEET_CREATION_COMPLETED_INSTALLER": { + "LOCATION_STATE_DELETING": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FLEET_CREATION_COMPLETED_INSTALLER" + "smithy.api#enumValue": "LOCATION_STATE_DELETING" } }, - "FLEET_CREATION_FAILED_INSTALLER": { + "LOCATION_STATE_DELETED": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "FLEET_CREATION_FAILED_INSTALLER" + "smithy.api#enumValue": "LOCATION_STATE_DELETED" } } } @@ -7906,7 +8607,11 @@ "com.amazonaws.gamelift#FleetArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:.*:fleet\\/fleet-\\S+$" + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^arn:.*:[a-z]*fleet\\/[a-z]*fleet-[a-zA-Z0-9\\-]+$" } }, "com.amazonaws.gamelift#FleetAttributes": { @@ -7933,7 +8638,7 @@ "InstanceType": { "target": "com.amazonaws.gamelift#EC2InstanceType", "traits": { - "smithy.api#documentation": "

The Amazon EC2 instance type that the fleet uses. Instance type determines the computing\n resources of each instance in the fleet, including CPU, memory, storage, and networking\n capacity. See Amazon Elastic Compute Cloud Instance\n Types for detailed descriptions. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" + "smithy.api#documentation": "

The Amazon EC2 instance type that the fleet uses. Instance type determines the computing\n resources of each instance in the fleet, including CPU, memory, storage, and networking\n capacity. See Amazon Elastic Compute Cloud Instance\n Types for detailed descriptions. This attribute is used with\n fleets where ComputeType is \"EC2\".

" } }, "Description": { @@ -8011,13 +8716,13 @@ "NewGameSessionProtectionPolicy": { "target": "com.amazonaws.gamelift#ProtectionPolicy", "traits": { - "smithy.api#documentation": "

The type of game session protection to set on all new instances that are started in\n the fleet. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

\n
    \n
  • \n

    \n NoProtection -- The game session can be\n terminated during a scale-down event.

    \n
  • \n
  • \n

    \n FullProtection -- If the game session is in an\n ACTIVE status, it cannot be terminated during a scale-down\n event.

    \n
  • \n
" + "smithy.api#documentation": "

The type of game session protection to set on all new instances that are started in\n the fleet. This attribute is used with\n fleets where ComputeType is \"EC2\".

\n
    \n
  • \n

    \n NoProtection -- The game session can be\n terminated during a scale-down event.

    \n
  • \n
  • \n

    \n FullProtection -- If the game session is in an\n ACTIVE status, it cannot be terminated during a scale-down\n event.

    \n
  • \n
" } }, "OperatingSystem": { "target": "com.amazonaws.gamelift#OperatingSystem", "traits": { - "smithy.api#documentation": "

The operating system of the fleet's computing resources. A fleet's operating system is\n determined by the OS of the build or script that is deployed on this fleet.\n This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

\n \n

Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in \n the Amazon Linux 2 FAQs. \n For game servers\n that are hosted on AL2 and use Amazon GameLift server SDK 4.x., first update the\n game server build to server SDK 5.x, and then deploy to AL2023 instances. See\n \n Migrate to Amazon GameLift server SDK version 5.\n

\n
" + "smithy.api#documentation": "

The operating system of the fleet's computing resources. A fleet's operating system is\n determined by the OS of the build or script that is deployed on this fleet.\n This attribute is used with\n fleets where ComputeType is \"EC2\".

\n \n

Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in the Amazon Linux 2 FAQs.\n For game servers that are hosted on AL2 and use Amazon GameLift server SDK 4.x,\n first update the game server build to server SDK 5.x, and then deploy to AL2023\n instances. See \n Migrate to Amazon GameLift server SDK version 5.\n

\n
" } }, "ResourceCreationLimitPolicy": { @@ -8026,19 +8731,19 @@ "MetricGroups": { "target": "com.amazonaws.gamelift#MetricGroupList", "traits": { - "smithy.api#documentation": "

Name of a metric group that metrics for this fleet are added to. In Amazon CloudWatch,\n you can view aggregated metrics for fleets that are in a metric group. A fleet can be\n included in only one metric group at a time. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" + "smithy.api#documentation": "

Name of a metric group that metrics for this fleet are added to. In Amazon CloudWatch,\n you can view aggregated metrics for fleets that are in a metric group. A fleet can be\n included in only one metric group at a time. This attribute is used with\n fleets where ComputeType is \"EC2\".

" } }, "StoppedActions": { "target": "com.amazonaws.gamelift#FleetActionList", "traits": { - "smithy.api#documentation": "

A list of fleet activity that has been suspended using StopFleetActions. \n This includes fleet auto-scaling. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" + "smithy.api#documentation": "

A list of fleet activity that has been suspended using StopFleetActions. \n This includes fleet auto-scaling. This attribute is used with\n fleets where ComputeType is \"EC2\".

" } }, "InstanceRoleArn": { "target": "com.amazonaws.gamelift#NonEmptyString", "traits": { - "smithy.api#documentation": "

A unique identifier for an IAM role with access permissions to other Amazon Web Services services. \n Any application that runs on an instance in the fleet--including install scripts, server processes, and other \n processes--can use these permissions to interact with Amazon Web Services resources that you own or have access to.\n For more information about using the role with your game server builds, see \n \n Communicate with other Amazon Web Services resources from your fleets. This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" + "smithy.api#documentation": "

A unique identifier for an IAM role that manages access to your Amazon Web Services services. \n With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, \n including install scripts, server processes, and daemons (background processes). Create a role or look up a role's \n ARN by using the IAM dashboard in the Amazon Web Services Management Console.\n Learn more about using on-box credentials for your game servers at \n \n Access external resources from a game server. This attribute is used with\n fleets where ComputeType is \"EC2\".

" } }, "CertificateConfiguration": { @@ -8056,24 +8761,18 @@ "AnywhereConfiguration": { "target": "com.amazonaws.gamelift#AnywhereConfiguration", "traits": { - "smithy.api#documentation": "

\n This property is used with the Amazon GameLift containers feature, which is currently in public preview. A set of attributes that describe the container groups that are deployed on the fleet.\n These attributes are included for fleets with compute type CONTAINER only.\n This attribute is used with fleets where ComputeType is \"Container\".

" + "smithy.api#documentation": "

Amazon GameLift Anywhere configuration options.

" } }, "InstanceRoleCredentialsProvider": { "target": "com.amazonaws.gamelift#InstanceRoleCredentialsProvider", "traits": { - "smithy.api#documentation": "

Indicates that fleet instances maintain a shared credentials file for the IAM role\n defined in InstanceRoleArn. Shared credentials allow applications that are\n deployed with the game server executable to communicate with other Amazon Web Services resources. This property is used \n only when the game server is integrated with the\n server SDK version 5.x. For more information about using shared credentials, see Communicate\n with other Amazon Web Services resources from your fleets.\n This attribute is used with\n fleets where ComputeType is \"EC2\" or \"Container\".

" - } - }, - "ContainerGroupsAttributes": { - "target": "com.amazonaws.gamelift#ContainerGroupsAttributes", - "traits": { - "smithy.api#documentation": "

A set of properties that describe the container groups that are deployed to the fleet.\n These attributes are included for fleets with compute type\n CONTAINER.

" + "smithy.api#documentation": "

Indicates that fleet instances maintain a shared credentials file for the IAM role\n defined in InstanceRoleArn. Shared credentials allow applications that are\n deployed with the game server executable to communicate with other Amazon Web Services resources. This property is used \n only when the game server is integrated with the\n server SDK version 5.x. For more information about using shared credentials, see Communicate\n with other Amazon Web Services resources from your fleets.\n This attribute is used with\n fleets where ComputeType is \"EC2\".

" } } }, "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Describes an Amazon GameLift fleet of game hosting resources. Attributes differ based on\n the fleet's compute type, as follows:

\n
    \n
  • \n

    EC2 fleet attributes identify a Build resource (for fleets with \n customer game server builds) or a Script resource (for Realtime Servers fleets).

    \n
  • \n
  • \n

    Container fleets have ContainerGroupsAttributes, which identify\n the fleet's ContainerGroupDefinition resources.

    \n
  • \n
  • \n

    Amazon GameLift Anywhere fleets have an abbreviated set of attributes, because most fleet configurations\n are set directly on the fleet's computes. Attributes include fleet identifiers and descriptive\n properties, creation/termination time, and fleet status.

    \n
  • \n
\n

\n Returned by:\n DescribeFleetAttributes\n

" + "smithy.api#documentation": "

Describes an Amazon GameLift fleet of game hosting resources. Attributes differ based on\n the fleet's compute type, as follows:

\n
    \n
  • \n

    EC2 fleet attributes identify a Build resource (for fleets with \n customer game server builds) or a Script resource (for Realtime Servers fleets).

    \n
  • \n
  • \n

    Amazon GameLift Anywhere fleets have an abbreviated set of attributes, because most fleet configurations\n are set directly on the fleet's computes. Attributes include fleet identifiers and descriptive\n properties, creation/termination time, and fleet status.

    \n
  • \n
\n

\n Returned by:\n DescribeFleetAttributes\n

" } }, "com.amazonaws.gamelift#FleetAttributesList": { @@ -8082,6 +8781,16 @@ "target": "com.amazonaws.gamelift#FleetAttributes" } }, + "com.amazonaws.gamelift#FleetBinaryArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9:/-]+$" + } + }, "com.amazonaws.gamelift#FleetCapacity": { "type": "structure", "members": { @@ -8115,15 +8824,15 @@ "smithy.api#documentation": "

The fleet location for the instance count information, expressed as an Amazon Web Services Region\n code, such as us-west-2.

" } }, - "ReplicaContainerGroupCounts": { - "target": "com.amazonaws.gamelift#ReplicaContainerGroupCounts", + "GameServerContainerGroupCounts": { + "target": "com.amazonaws.gamelift#GameServerContainerGroupCounts", "traits": { - "smithy.api#documentation": "

\n This property is used with the Amazon GameLift containers feature, which is currently in public preview. The number and status of replica container groups in a container fleet.

" + "smithy.api#documentation": "

The number and status of game server container groups deployed in a container fleet.

" } } }, "traits": { - "smithy.api#documentation": "

Current resource capacity settings for managed EC2 fleets and container fleets. For\n multi-location fleets, location values might refer to a fleet's remote location or its\n home Region.

\n

\n Returned by:\n DescribeFleetCapacity, DescribeFleetLocationCapacity, UpdateFleetCapacity\n

" + "smithy.api#documentation": "

Current resource capacity settings for managed EC2 fleets and managed container fleets. For\n multi-location fleets, location values might refer to a fleet's remote location or its\n home Region.

\n

\n Returned by:\n DescribeFleetCapacity, DescribeFleetLocationCapacity, UpdateFleetCapacity\n

" } }, "com.amazonaws.gamelift#FleetCapacityExceededException": { @@ -8144,10 +8853,82 @@ "target": "com.amazonaws.gamelift#FleetCapacity" } }, + "com.amazonaws.gamelift#FleetDeployment": { + "type": "structure", + "members": { + "DeploymentId": { + "target": "com.amazonaws.gamelift#DeploymentId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the deployment.

" + } + }, + "FleetId": { + "target": "com.amazonaws.gamelift#FleetId", + "traits": { + "smithy.api#documentation": "

A unique identifier for the container fleet.

" + } + }, + "GameServerBinaryArn": { + "target": "com.amazonaws.gamelift#FleetBinaryArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the version of the game server container group definition\n that is being deployed.

" + } + }, + "RollbackGameServerBinaryArn": { + "target": "com.amazonaws.gamelift#FleetBinaryArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the version of the game server container group definition to\n roll back to if deployment fails.

" + } + }, + "PerInstanceBinaryArn": { + "target": "com.amazonaws.gamelift#FleetBinaryArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the version of the per-instance container group definition\n that is being deployed.

" + } + }, + "RollbackPerInstanceBinaryArn": { + "target": "com.amazonaws.gamelift#FleetBinaryArn", + "traits": { + "smithy.api#documentation": "

The unique identifier for the version of the per-instance container group definition\n to roll back to if deployment fails.

" + } + }, + "DeploymentStatus": { + "target": "com.amazonaws.gamelift#DeploymentStatus", + "traits": { + "smithy.api#documentation": "

The status of fleet deployment activity in the location.

\n
    \n
  • \n

    \n IN_PROGRESS -- The deployment is in progress.

    \n
  • \n
  • \n

    \n IMPAIRED -- The deployment failed and the fleet has some impaired\n containers.

    \n
  • \n
  • \n

    \n COMPLETE -- The deployment has completed successfully.

    \n
  • \n
  • \n

    \n ROLLBACK_IN_PROGRESS -- The deployment failed and rollback has\n been initiated.

    \n
  • \n
  • \n

    \n ROLLBACK_IN_COMPLETE -- The deployment failed and rollback has\n been completed.

    \n
  • \n
  • \n

    \n CANCELLED -- The deployment was cancelled.

    \n
  • \n
" + } + }, + "DeploymentConfiguration": { + "target": "com.amazonaws.gamelift#DeploymentConfiguration", + "traits": { + "smithy.api#documentation": "

Instructions for how to deploy updates to a container fleet and what actions to take\n if the deployment fails.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.gamelift#Timestamp", + "traits": { + "smithy.api#documentation": "

A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a container fleet deployment with updates to the fleet.

" + } + }, + "com.amazonaws.gamelift#FleetDeployments": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#FleetDeployment" + } + }, "com.amazonaws.gamelift#FleetId": { "type": "string", "traits": { - "smithy.api#pattern": "^fleet-\\S+$" + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-z]*fleet-[a-zA-Z0-9\\-]+$" } }, "com.amazonaws.gamelift#FleetIdList": { @@ -8164,7 +8945,11 @@ "com.amazonaws.gamelift#FleetIdOrArn": { "type": "string", "traits": { - "smithy.api#pattern": "^fleet-\\S+|^arn:.*:fleet\\/fleet-\\S+$" + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[a-z]*fleet-[a-zA-Z0-9\\-]+$|^arn:.*:[a-z]*fleet\\/[a-z]*fleet-[a-zA-Z0-9\\-]+$" } }, "com.amazonaws.gamelift#FleetIdOrArnList": { @@ -8355,6 +9140,9 @@ { "target": "com.amazonaws.gamelift#CreateBuild" }, + { + "target": "com.amazonaws.gamelift#CreateContainerFleet" + }, { "target": "com.amazonaws.gamelift#CreateContainerGroupDefinition" }, @@ -8403,6 +9191,9 @@ { "target": "com.amazonaws.gamelift#DeleteBuild" }, + { + "target": "com.amazonaws.gamelift#DeleteContainerFleet" + }, { "target": "com.amazonaws.gamelift#DeleteContainerGroupDefinition" }, @@ -8454,6 +9245,9 @@ { "target": "com.amazonaws.gamelift#DescribeCompute" }, + { + "target": "com.amazonaws.gamelift#DescribeContainerFleet" + }, { "target": "com.amazonaws.gamelift#DescribeContainerGroupDefinition" }, @@ -8466,6 +9260,9 @@ { "target": "com.amazonaws.gamelift#DescribeFleetCapacity" }, + { + "target": "com.amazonaws.gamelift#DescribeFleetDeployment" + }, { "target": "com.amazonaws.gamelift#DescribeFleetEvents" }, @@ -8556,9 +9353,18 @@ { "target": "com.amazonaws.gamelift#ListCompute" }, + { + "target": "com.amazonaws.gamelift#ListContainerFleets" + }, { "target": "com.amazonaws.gamelift#ListContainerGroupDefinitions" }, + { + "target": "com.amazonaws.gamelift#ListContainerGroupDefinitionVersions" + }, + { + "target": "com.amazonaws.gamelift#ListFleetDeployments" + }, { "target": "com.amazonaws.gamelift#ListFleets" }, @@ -8634,6 +9440,12 @@ { "target": "com.amazonaws.gamelift#UpdateBuild" }, + { + "target": "com.amazonaws.gamelift#UpdateContainerFleet" + }, + { + "target": "com.amazonaws.gamelift#UpdateContainerGroupDefinition" + }, { "target": "com.amazonaws.gamelift#UpdateFleetAttributes" }, @@ -9755,6 +10567,161 @@ "smithy.api#pattern": "\\S" } }, + "com.amazonaws.gamelift#GameServerContainerDefinition": { + "type": "structure", + "members": { + "ContainerName": { + "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", + "traits": { + "smithy.api#documentation": "

The container definition identifier. Container names are unique within a container group\n definition.

" + } + }, + "DependsOn": { + "target": "com.amazonaws.gamelift#ContainerDependencyList", + "traits": { + "smithy.api#documentation": "

Indicates that the container relies on the status of other containers in the same\n container group during startup and shutdown sequences. A container might have dependencies on\n multiple containers.

" + } + }, + "MountPoints": { + "target": "com.amazonaws.gamelift#ContainerMountPointList", + "traits": { + "smithy.api#documentation": "

A mount point that binds a path inside the container to a file or directory on the host\n system and lets it access the file or directory.

" + } + }, + "EnvironmentOverride": { + "target": "com.amazonaws.gamelift#ContainerEnvironmentList", + "traits": { + "smithy.api#documentation": "

A set of environment variables that's passed to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "ImageUri": { + "target": "com.amazonaws.gamelift#ImageUriString", + "traits": { + "smithy.api#documentation": "

The URI to the image that Amazon GameLift uses when deploying this container to a container fleet.\n For a more specific identifier, see ResolvedImageDigest.

" + } + }, + "PortConfiguration": { + "target": "com.amazonaws.gamelift#ContainerPortConfiguration", + "traits": { + "smithy.api#documentation": "

The set of ports that are available to bind to processes in the container. For example, a\n game server process requires a container port to allow game clients to connect to it.\n Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container\n ports to externally accessible connection ports, which are assigned as needed from the\n container fleet's ConnectionPortRange.

" + } + }, + "ResolvedImageDigest": { + "target": "com.amazonaws.gamelift#Sha256", + "traits": { + "smithy.api#documentation": "

A unique and immutable identifier for the container image. The digest is a SHA 256 hash of\n the container image manifest.

" + } + }, + "ServerSdkVersion": { + "target": "com.amazonaws.gamelift#ServerSdkVersion", + "traits": { + "smithy.api#documentation": "

The Amazon GameLift server SDK version that the game server is integrated with. Only game servers\n using 5.2.0 or higher are compatible with container fleets.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the game server container in an existing game server container group. A game\n server container identifies a container image with your game server build. A game server\n container is automatically considered essential; if an essential container fails, the entire\n container group restarts.

\n

You can update a container definition and deploy the updates to an existing fleet. When\n creating or updating a game server container group definition, use the property GameServerContainerDefinitionInput.

\n

\n Part of:\n ContainerGroupDefinition\n

\n

\n Returned by:\n DescribeContainerGroupDefinition, ListContainerGroupDefinitions, UpdateContainerGroupDefinition\n

" + } + }, + "com.amazonaws.gamelift#GameServerContainerDefinitionInput": { + "type": "structure", + "members": { + "ContainerName": { + "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A string that uniquely identifies the container definition within a container\n group.

", + "smithy.api#required": {} + } + }, + "DependsOn": { + "target": "com.amazonaws.gamelift#ContainerDependencyList", + "traits": { + "smithy.api#documentation": "

Establishes dependencies between this container and the status of other containers in the\n same container group. A container can have dependencies on multiple different containers.

\n

You can use dependencies to establish a startup/shutdown sequence across the container\n group. For example, you might specify that ContainerB has a\n START dependency on ContainerA. This dependency means that\n ContainerB can't start until after ContainerA has\n started. This dependency is reversed on shutdown, which means that\n ContainerB must shut down before ContainerA can\n shut down.

" + } + }, + "MountPoints": { + "target": "com.amazonaws.gamelift#ContainerMountPointList", + "traits": { + "smithy.api#documentation": "

A mount point that binds a path inside the container to a file or directory on the host\n system and lets it access the file or directory.

" + } + }, + "EnvironmentOverride": { + "target": "com.amazonaws.gamelift#ContainerEnvironmentList", + "traits": { + "smithy.api#documentation": "

A set of environment variables to pass to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "ImageUri": { + "target": "com.amazonaws.gamelift#ImageUriString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The location of the container image to deploy to a container fleet. Provide an image in an\n Amazon Elastic Container Registry public or private repository. The repository must be in the same Amazon Web Services account and\n Amazon Web Services Region where you're creating the container group definition. For limits on image size,\n see Amazon GameLift endpoints and\n quotas. You can use any of the following image URI formats:

\n
    \n
  • \n

    Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository\n ID]\n

    \n
  • \n
  • \n

    Image ID and digest: [AWS account].dkr.ecr.[AWS\n region].amazonaws.com/[repository ID]@[digest]\n

    \n
  • \n
  • \n

    Image ID and tag: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository\n ID]:[tag]\n

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "PortConfiguration": { + "target": "com.amazonaws.gamelift#ContainerPortConfiguration", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A set of ports that Amazon GameLift can assign to processes in the container. Processes, must be\n assigned a container port to accept inbound traffic connections. For example, a game server\n process requires a container port to allow game clients to connect to it. Container ports\n aren't directly accessed by inbound traffic. Instead, Amazon GameLift maps container ports to\n externally accessible connection ports (see the container fleet property\n ConnectionPortRange).

", + "smithy.api#required": {} + } + }, + "ServerSdkVersion": { + "target": "com.amazonaws.gamelift#ServerSdkVersion", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon GameLift server SDK version that the game server is integrated with. Only game servers\n using 5.2.0 or higher are compatible with container fleets.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes the configuration for a container that runs your game server executable. This\n definition includes container configuration, resources, and start instructions. Use this data\n type when creating or updating a game server container group definition. For properties of a\n deployed container, see GameServerContainerDefinition. A game server\n container is automatically considered essential; if an essential container fails, the entire\n container group restarts.

\n

\n Use with: \n CreateContainerGroupDefinition, UpdateContainerGroupDefinition\n

" + } + }, + "com.amazonaws.gamelift#GameServerContainerGroupCounts": { + "type": "structure", + "members": { + "PENDING": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

The number of container groups that are starting up but haven't yet registered.

" + } + }, + "ACTIVE": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

\n The number of container groups that have active game sessions.\n

" + } + }, + "IDLE": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

\n The number of container groups that have no active game sessions.\n

" + } + }, + "TERMINATING": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

The number of container groups that are in the process of shutting down.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The number and status of game server container groups that are deployed across a container fleet. \n Combine this count with the number of server processes that each game server container group runs \n to learn how many game sessions the fleet is capable of hosting concurrently. For example, if a \n fleet has 50 game server container groups, and the game server container in each group runs 1 game server \n process, then the fleet has the capacity to run host 50 game sessions at a time.

\n

\n Returned by:\n DescribeFleetCapacity, DescribeFleetLocationCapacity\n

" + } + }, + "com.amazonaws.gamelift#GameServerContainerGroupsPerInstance": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 5000 + } + } + }, "com.amazonaws.gamelift#GameServerData": { "type": "string", "traits": { @@ -10775,7 +11742,7 @@ "GameSessionData": { "target": "com.amazonaws.gamelift#LargeGameSessionData", "traits": { - "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session).

" + "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session. For more information, see Start a game session.

" } }, "MatchmakerData": { @@ -10842,6 +11809,26 @@ "smithy.api#documentation": "

Connection information for a new game session that is created in response to a start\n matchmaking request. Once a match is made, the FlexMatch engine creates a new game session\n for it. This information, including the game session endpoint and player sessions for\n each player in the original matchmaking request, is added to the matchmaking\n ticket.

" } }, + "com.amazonaws.gamelift#GameSessionCreationLimitPolicy": { + "type": "structure", + "members": { + "NewGameSessionsPerCreator": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

A policy that puts limits on the number of game sessions that a player can create\n within a specified span of time. With this policy, you can control players' ability to\n consume available resources.

\n

The policy evaluates when a player tries to create a new game session. On receiving a\n CreateGameSession request, Amazon GameLift checks that the player (identified\n by CreatorId) has created fewer than game session limit in the specified\n time period.

" + } + }, + "PolicyPeriodInMinutes": { + "target": "com.amazonaws.gamelift#WholeNumber", + "traits": { + "smithy.api#documentation": "

The time span used in evaluating the resource creation limit policy.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A policy that puts limits on the number of game sessions that a player can create\n within a specified span of time. With this policy, you can control players' ability to\n consume available resources.

\n

The policy is evaluated when a player tries to create a new game session. On receiving\n a CreateGameSession request, Amazon GameLift checks that the player (identified by\n CreatorId) has created fewer than game session limit in the specified\n time period.

" + } + }, "com.amazonaws.gamelift#GameSessionData": { "type": "string", "traits": { @@ -10913,7 +11900,7 @@ "Status": { "target": "com.amazonaws.gamelift#GameSessionPlacementState", "traits": { - "smithy.api#documentation": "

Current status of the game session placement request.

\n
    \n
  • \n

    \n PENDING -- The placement request is \n in the queue waiting to be processed. Game session properties are not\n yet final.

    \n
  • \n
  • \n

    \n FULFILLED -- A new game session has been \n successfully placed. Game session properties are now final.

    \n
  • \n
  • \n

    \n CANCELLED -- The placement request was\n canceled.

    \n
  • \n
  • \n

    \n TIMED_OUT -- A new game session was not\n successfully created before the time limit expired. You can resubmit the\n placement request as needed.

    \n
  • \n
  • \n

    \n FAILED -- Amazon GameLift is not able to complete the\n process of placing the game session. Common reasons are the game session\n terminated before the placement process was completed, or an unexpected internal\n error.

    \n
  • \n
" + "smithy.api#documentation": "

Current status of the game session placement request.

\n
    \n
  • \n

    \n PENDING -- The placement request is \n in the queue waiting to be processed. Game session properties are not\n yet final.

    \n
  • \n
  • \n

    \n FULFILLED -- A new game session has been \n successfully placed. Game session properties are now final.

    \n
  • \n
  • \n

    \n CANCELLED -- The placement request was\n canceled.

    \n
  • \n
  • \n

    \n TIMED_OUT -- A new game session was not\n successfully created before the time limit expired. You can resubmit as a new\n placement request as needed.

    \n
  • \n
  • \n

    \n FAILED -- Amazon GameLift is not able to complete the\n process of placing the game session. Common reasons are the game session\n terminated before the placement process was completed, or an unexpected internal\n error.

    \n
  • \n
" } }, "GameProperties": { @@ -10955,7 +11942,7 @@ "PlayerLatencies": { "target": "com.amazonaws.gamelift#PlayerLatencyList", "traits": { - "smithy.api#documentation": "

A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to Amazon Web Services Regions.

" + "smithy.api#documentation": "

A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to @aws; Regions.

" } }, "StartTime": { @@ -10997,7 +11984,7 @@ "GameSessionData": { "target": "com.amazonaws.gamelift#LargeGameSessionData", "traits": { - "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the \n GameSession object with a request to start a new game session (see Start a Game Session).

" + "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session. For more information, see Start a game session.

" } }, "MatchmakerData": { @@ -11064,13 +12051,13 @@ "TimeoutInSeconds": { "target": "com.amazonaws.gamelift#WholeNumber", "traits": { - "smithy.api#documentation": "

The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status. By default, this property is set to 600.

" + "smithy.api#documentation": "

The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

" } }, "PlayerLatencyPolicies": { "target": "com.amazonaws.gamelift#PlayerLatencyPolicyList", "traits": { - "smithy.api#documentation": "

A set of policies that act as a sliding cap on player latency. FleetIQ works to\n deliver low latency for most players in a game session. These policies ensure that no\n individual player can be placed into a game with unreasonably high latency. Use multiple\n policies to gradually relax latency requirements a step at a time. Multiple policies are applied based on their\n maximum allowed latency, starting with the lowest value.

" + "smithy.api#documentation": "

A set of policies that enforce a sliding cap on player latency when processing game sessions placement requests. \n\tUse multiple policies to gradually relax the cap over time if Amazon GameLift can't make a placement.\n\t Policies are evaluated in order starting with the lowest maximum latency value.

" } }, "Destinations": { @@ -11236,10 +12223,13 @@ }, { "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Requests authorization to remotely connect to a hosting resource in a Amazon GameLift managed\n fleet. This operation is not used with Amazon GameLift Anywhere fleets

\n

To request access, specify the compute name and the fleet ID. If successful, this\n operation returns a set of temporary Amazon Web Services credentials, including a two-part access key\n and a session token.

\n

\n EC2 fleets\n

\n

With an EC2 fleet (where compute type is EC2), use these credentials with\n Amazon EC2 Systems Manager (SSM) to start a session with the compute. For more details, see Starting a session (CLI) in the Amazon EC2 Systems Manager User\n Guide.

\n

\n Container fleets\n

\n

With a container fleet (where compute type is CONTAINER), use\n these credentials and the target value with SSM to connect to the fleet instance where\n the container is running. After you're connected to the instance, use Docker commands to\n interact with the container.

\n

\n Learn more\n

\n " + "smithy.api#documentation": "

Requests authorization to remotely connect to a hosting resource in a Amazon GameLift managed\n fleet. This operation is not used with Amazon GameLift Anywhere fleets.

\n

\n Request options\n

\n

To request access to a compute, specify the compute name and the fleet ID.

\n

\n Results\n

\n

If successful, this operation returns a set of temporary Amazon Web Services credentials, including\n a two-part access key and a session token.

\n
    \n
  • \n

    With a managed EC2 fleet (where compute type is EC2), use these\n credentials with Amazon EC2 Systems Manager (SSM) to start a session with the compute. For more\n details, see Starting a session (CLI) in the Amazon EC2 Systems Manager User\n Guide.

    \n
  • \n
" } }, "com.amazonaws.gamelift#GetComputeAccessInput": { @@ -11257,7 +12247,7 @@ "target": "com.amazonaws.gamelift#ComputeNameOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A unique identifier for the compute resource that you want to connect to. For an EC2\n fleet compute, use the instance ID. For a container fleet, use the compute name (for\n example,\n a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9)\n or the compute ARN.

", + "smithy.api#documentation": "

A unique identifier for the compute resource that you want to connect to. For an EC2\n fleet compute, use the instance ID. Use\n ListCompute to retrieve compute identifiers.

", "smithy.api#required": {} } } @@ -11302,7 +12292,13 @@ "Target": { "target": "com.amazonaws.gamelift#SessionTarget", "traits": { - "smithy.api#documentation": "

(For container fleets only) The instance ID where the compute resource is\n running.

" + "smithy.api#documentation": "

The instance ID where the compute resource is running.

" + } + }, + "ContainerIdentifiers": { + "target": "com.amazonaws.gamelift#ContainerIdentifierList", + "traits": { + "smithy.api#documentation": "

For a managed container fleet, a list of containers on the compute. Use the container\n runtime ID with Docker commands to connect to a specific container.

" } } }, @@ -11330,10 +12326,13 @@ }, { "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { - "smithy.api#documentation": "

Requests an authentication token from Amazon GameLift for a compute resource in an Amazon GameLift\n Anywhere fleet or container fleet. Game servers that are running on the compute use this\n token to communicate with the Amazon GameLift service, such as when calling the Amazon GameLift server\n SDK action InitSDK(). Authentication tokens are valid for a limited time\n span, so you need to request a fresh token before the current token expires.

\n

Use this operation based on the fleet compute type:

\n
    \n
  • \n

    For EC2 fleets, auth token retrieval and refresh is handled\n automatically. All game servers that are running on all fleet instances have\n access to a valid auth token.

    \n
  • \n
  • \n

    For ANYWHERE and CONTAINER fleets, if you're using\n the Amazon GameLift Agent, auth token retrieval and refresh is handled automatically for\n any container or Anywhere compute where the Agent is running. If you're not\n using the Agent, create a mechanism to retrieve and refresh auth tokens for\n computes that are running game server processes.

    \n
  • \n
\n

\n Learn more\n

\n " + "smithy.api#documentation": "

Requests an authentication token from Amazon GameLift for a compute resource in an Amazon GameLift\n fleet. Game servers that are running on the compute use this token to communicate\n with the Amazon GameLift service, such as when calling the Amazon GameLift server SDK action\n InitSDK(). Authentication tokens are valid for a limited time span, so\n you need to request a fresh token before the current token expires.

\n

\n Request options\n

\n
    \n
  • \n

    For managed EC2 fleets (compute type EC2), auth token retrieval\n and refresh is handled automatically. All game servers that are running on all\n fleet instances have access to a valid auth token.

    \n
  • \n
  • \n

    For Anywhere fleets (compute type ANYWHERE), if you're using the\n Amazon GameLift Agent, auth token retrieval and refresh is handled automatically for any\n compute where the Agent is running. If you're not using\n the Agent, create a mechanism to retrieve and refresh auth tokens for computes\n that are running game server processes.

    \n
  • \n
\n

\n Learn more\n

\n " } }, "com.amazonaws.gamelift#GetComputeAuthTokenInput": { @@ -11351,7 +12350,7 @@ "target": "com.amazonaws.gamelift#ComputeNameOrArn", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The name of the compute resource you are requesting the authentication token for. For\n an Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance,\n use the instance ID. For a container fleet, use the compute name (for example,\n a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9)\n or the compute ARN.

", + "smithy.api#documentation": "

The name of the compute resource you are requesting the authentication token for. For\n an Anywhere fleet compute, use the registered compute name. For an EC2 fleet instance,\n use the instance ID.

", "smithy.api#required": {} } } @@ -11596,7 +12595,7 @@ "DnsName": { "target": "com.amazonaws.gamelift#DnsName", "traits": { - "smithy.api#documentation": "

The DNS identifier assigned to the instance that is running the game session. Values have\n the following format:

\n \n

When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.

" + "smithy.api#documentation": "

The DNS identifier assigned to the instance that is running the game session. Values have\n the following format:

\n \n

When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.

" } }, "OperatingSystem": { @@ -11739,6 +12738,16 @@ "target": "com.amazonaws.gamelift#Instance" } }, + "com.amazonaws.gamelift#InstancePathString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^\\/[\\s\\S]*$" + } + }, "com.amazonaws.gamelift#InstanceRoleCredentialsProvider": { "type": "enum", "members": { @@ -11872,7 +12881,7 @@ } }, "traits": { - "smithy.api#documentation": "

A range of IP addresses and port settings that allow inbound traffic to connect to\n processes on an instance in a fleet. Processes are assigned an IP address/port number\n combination, which must fall into the fleet's allowed ranges. For container fleets, the\n port settings must use the same port numbers as the fleet's connection ports.

\n

For Realtime Servers fleets, Amazon GameLift automatically opens two port ranges, one for TCP messaging\n and one for UDP.

" + "smithy.api#documentation": "

A range of IP addresses and port settings that allow inbound traffic to connect to\n processes on an instance in a fleet. Processes are assigned an IP address/port number\n combination, which must fall into the fleet's allowed ranges. For managed container fleets, the\n port settings must use the same port numbers as the fleet's connection ports.

\n

For Realtime Servers fleets, Amazon GameLift automatically opens two port ranges, one for TCP messaging\n and one for UDP.

" } }, "com.amazonaws.gamelift#IpPermissionsList": { @@ -12158,7 +13167,7 @@ "NextToken": { "target": "com.amazonaws.gamelift#NonEmptyString", "traits": { - "smithy.api#documentation": "

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, don't specify a value.

" + "smithy.api#documentation": "

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } } }, @@ -12203,10 +13212,13 @@ }, { "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves information on the compute resources in an Amazon GameLift fleet.

\n

To request a list of computes, specify the fleet ID. Use the pagination parameters to\n retrieve results in a set of sequential pages.

\n

You can filter the result set by location.

\n

If successful, this operation returns information on all computes in the requested\n fleet. Depending on the fleet's compute type, the result includes the following\n information:

\n
    \n
  • \n

    For EC2 fleets, this operation returns information about the EC2\n instance. Compute names are instance IDs.

    \n
  • \n
  • \n

    For ANYWHERE fleets, this operation returns the compute names and\n details provided when the compute was registered with\n RegisterCompute. The GameLiftServiceSdkEndpoint or\n GameLiftAgentEndpoint is included.

    \n
  • \n
  • \n

    For CONTAINER fleets, this operation returns information about\n containers that are registered as computes, and the instances they're running\n on. Compute names are container names.

    \n
  • \n
", + "smithy.api#documentation": "

Retrieves information on the compute resources in an Amazon GameLift fleet. Use the pagination\n parameters to retrieve results in a set of sequential pages.

\n

\n Request options:\n

\n
    \n
  • \n

    Retrieve a list of all computes in a fleet. Specify a fleet ID.

    \n
  • \n
  • \n

    Retrieve a list of all computes in a specific fleet location. Specify a fleet\n ID and location.

    \n
  • \n
\n

\n Results:\n

\n

If successful, this operation returns information on a set of computes. Depending on\n the type of fleet, the result includes the following information:

\n
    \n
  • \n

    For managed EC2 fleets (compute type EC2), this operation returns\n information about the EC2 instance. Compute names are EC2 instance IDs.

    \n
  • \n
  • \n

    For Anywhere fleets (compute type ANYWHERE), this operation\n returns compute names and details as provided when the compute was registered\n with RegisterCompute. This includes\n GameLiftServiceSdkEndpoint or\n GameLiftAgentEndpoint.

    \n
  • \n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -12229,7 +13241,19 @@ "Location": { "target": "com.amazonaws.gamelift#LocationStringModel", "traits": { - "smithy.api#documentation": "

The name of a location to retrieve compute resources for. For an Amazon GameLift Anywhere\n fleet, use a custom location. For a multi-location EC2 or container fleet, provide a\n Amazon Web Services Region or Local Zone code (for example: us-west-2 or\n us-west-2-lax-1).

" + "smithy.api#documentation": "

The name of a location to retrieve compute resources for. For an Amazon GameLift Anywhere\n fleet, use a custom location. For a managed fleet, provide a\n Amazon Web Services Region or Local Zone code (for example: us-west-2 or\n us-west-2-lax-1).

" + } + }, + "ContainerGroupDefinitionName": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#documentation": "

For computes in a managed container fleet, the name of the deployed container group\n definition.

" + } + }, + "ComputeStatus": { + "target": "com.amazonaws.gamelift#ListComputeInputStatus", + "traits": { + "smithy.api#documentation": "

The status of computes in a managed container fleet, based on the success of the\n latest update deployment.

\n
    \n
  • \n

    \n ACTIVE -- The compute is deployed with the correct container\n definitions. It is ready to process game servers and host game sessions.

    \n
  • \n
  • \n

    \n IMPAIRED -- An update deployment to the compute failed, and the\n compute is deployed with incorrect container definitions.

    \n
  • \n
" } }, "Limit": { @@ -12249,6 +13273,23 @@ "smithy.api#input": {} } }, + "com.amazonaws.gamelift#ListComputeInputStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "IMPAIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMPAIRED" + } + } + } + }, "com.amazonaws.gamelift#ListComputeOutput": { "type": "structure", "members": { @@ -12269,6 +13310,176 @@ "smithy.api#output": {} } }, + "com.amazonaws.gamelift#ListContainerFleets": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#ListContainerFleetsInput" + }, + "output": { + "target": "com.amazonaws.gamelift#ListContainerFleetsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a collection of container fleet resources in an Amazon Web Services Region. For fleets\n that have multiple locations, this operation retrieves fleets based on their home Region\n only.

\n

\n Request options\n

\n
    \n
  • \n

    Get a list of all fleets. Call this operation without specifying a container\n group definition.

    \n
  • \n
  • \n

    Get a list of fleets filtered by container group definition. Provide the\n container group definition name or ARN value.

    \n
  • \n
  • \n

    To get a list of all Realtime Servers fleets with a specific configuration script,\n provide the script ID.

    \n
  • \n
\n

Use the pagination parameters to retrieve results as a set of sequential pages.

\n

If successful, this operation returns a collection of container fleets that match the request\n parameters. A NextToken value is also returned if there are more result pages to\n retrieve.

\n \n

Fleet IDs are returned in no particular order.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ContainerFleets", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.gamelift#ListContainerFleetsInput": { + "type": "structure", + "members": { + "ContainerGroupDefinitionName": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#documentation": "

The container group definition to filter the list on. Use this parameter to retrieve\n only those fleets that use the specified container group definition. You can specify the\n container group definition's name to get fleets with the latest versions. Alternatively,\n provide an ARN value to get fleets with a specific version number.

" + } + }, + "Limit": { + "target": "com.amazonaws.gamelift#PositiveInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" + } + }, + "NextToken": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#ListContainerFleetsOutput": { + "type": "structure", + "members": { + "ContainerFleets": { + "target": "com.amazonaws.gamelift#ContainerFleetList", + "traits": { + "smithy.api#documentation": "

A collection of container fleet objects for all fleets that match the request\n criteria.

" + } + }, + "NextToken": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.gamelift#ListContainerGroupDefinitionVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#ListContainerGroupDefinitionVersionsInput" + }, + "output": { + "target": "com.amazonaws.gamelift#ListContainerGroupDefinitionVersionsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves all versions of a container group definition. Use the pagination parameters to\n retrieve results in a set of sequential pages.

\n

\n Request options:\n

\n
    \n
  • \n

    Get all versions of a specified container group definition. Specify the container\n group definition name or ARN value. (If the ARN value has a version number, it's\n ignored.)

    \n
  • \n
\n

\n Results:\n

\n

If successful, this operation returns the complete properties of a set of container group\n definition versions that match the request.

\n \n

This operation returns the list of container group definitions in descending version\n order (latest first).

\n
\n

\n Learn more\n

\n ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ContainerGroupDefinitions", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.gamelift#ListContainerGroupDefinitionVersionsInput": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The unique identifier for the container group definition to retrieve properties for. You can use either the Name or\n ARN value.

", + "smithy.api#required": {} + } + }, + "Limit": { + "target": "com.amazonaws.gamelift#ListContainerGroupDefinitionVersionsLimit", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" + } + }, + "NextToken": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#ListContainerGroupDefinitionVersionsLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.gamelift#ListContainerGroupDefinitionVersionsOutput": { + "type": "structure", + "members": { + "ContainerGroupDefinitions": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionList", + "traits": { + "smithy.api#documentation": "

A result set of container group definitions that match the request.

" + } + }, + "NextToken": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.gamelift#ListContainerGroupDefinitions": { "type": "operation", "input": { @@ -12292,7 +13503,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation is used with the Amazon GameLift containers feature, which is currently in public preview. \n

\n

Retrieves all container group definitions for the Amazon Web Services account and Amazon Web Services Region that are currently in use. You can filter the result set by the container\n groups' scheduling strategy. Use the pagination parameters to retrieve results in a set of\n sequential pages.

\n \n

This operation returns the list of container group definitions in no particular order.

\n
\n

\n Learn more\n

\n ", + "smithy.api#documentation": "

Retrieves container group definitions for the Amazon Web Services account and Amazon Web Services Region. Use the pagination parameters to retrieve results in a set of sequential\n pages.

\n

This operation returns only the latest version of each definition. To retrieve all\n versions of a container group definition, use ListContainerGroupDefinitionVersions.

\n

\n Request options:\n

\n
    \n
  • \n

    Retrieve the most recent versions of all container group definitions.

    \n
  • \n
  • \n

    Retrieve the most recent versions of all container group definitions, filtered by\n type. Specify the container group type to filter on.

    \n
  • \n
\n

\n Results:\n

\n

If successful, this operation returns the complete properties of a set of container group\n definition versions that match the request.

\n \n

This operation returns the list of container group definitions in no particular order.

\n
\n

\n Learn more\n

\n ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -12304,10 +13515,10 @@ "com.amazonaws.gamelift#ListContainerGroupDefinitionsInput": { "type": "structure", "members": { - "SchedulingStrategy": { - "target": "com.amazonaws.gamelift#ContainerSchedulingStrategy", + "ContainerGroupType": { + "target": "com.amazonaws.gamelift#ContainerGroupType", "traits": { - "smithy.api#documentation": "

The type of container group definitions to retrieve.

\n
    \n
  • \n

    \n DAEMON -- Daemon container groups run background processes and are deployed once\n per fleet instance.

    \n
  • \n
  • \n

    \n REPLICA -- Replica container groups run your game server application and\n supporting software. Replica groups might be deployed multiple times per fleet\n instance.

    \n
  • \n
" + "smithy.api#documentation": "

The type of container group to retrieve. Container group type determines how Amazon GameLift\n deploys the container group on each fleet instance.

" } }, "Limit": { @@ -12317,7 +13528,7 @@ } }, "NextToken": { - "target": "com.amazonaws.gamelift#NonEmptyString", + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { "smithy.api#documentation": "

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } @@ -12332,21 +13543,102 @@ "traits": { "smithy.api#range": { "min": 1, - "max": 10 + "max": 100 + } + } + }, + "com.amazonaws.gamelift#ListContainerGroupDefinitionsOutput": { + "type": "structure", + "members": { + "ContainerGroupDefinitions": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionList", + "traits": { + "smithy.api#documentation": "

A result set of container group definitions that match the request.

" + } + }, + "NextToken": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.gamelift#ListFleetDeployments": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#ListFleetDeploymentsInput" + }, + "output": { + "target": "com.amazonaws.gamelift#ListFleetDeploymentsOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves a collection of container fleet deployments in an Amazon Web Services Region.

\n

\n Request options\n

\n
    \n
  • \n

    Get a list of all deployments. Call this operation without specifying a fleet ID.

    \n
  • \n
  • \n

    Get a list of all deployments for a fleet. Specify the container fleet ID or ARN value.

    \n
  • \n
  • \n

    To get a list of all Realtime Servers fleets with a specific configuration script,\n provide the script ID.

    \n
  • \n
\n

Use the pagination parameters to retrieve results as a set of sequential pages.

\n

\n Results\n

\n

If successful, this operation returns a list of deployments that match the request\n parameters. A NextToken value is also returned if there are more result pages to\n retrieve.

\n \n

Fleet IDs are returned in no particular order.

\n
", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "FleetDeployments", + "pageSize": "Limit" + } + } + }, + "com.amazonaws.gamelift#ListFleetDeploymentsInput": { + "type": "structure", + "members": { + "FleetId": { + "target": "com.amazonaws.gamelift#FleetIdOrArn", + "traits": { + "smithy.api#documentation": "

A unique identifier for the container fleet. You can use either the fleet ID or ARN\n value.

" + } + }, + "Limit": { + "target": "com.amazonaws.gamelift#PositiveInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" + } + }, + "NextToken": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" + } } + }, + "traits": { + "smithy.api#input": {} } }, - "com.amazonaws.gamelift#ListContainerGroupDefinitionsOutput": { + "com.amazonaws.gamelift#ListFleetDeploymentsOutput": { "type": "structure", "members": { - "ContainerGroupDefinitions": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinitionList", + "FleetDeployments": { + "target": "com.amazonaws.gamelift#FleetDeployments", "traits": { - "smithy.api#documentation": "

A result set of container group definitions that match the request.

" + "smithy.api#documentation": "

The requested deployment information.

" } }, "NextToken": { - "target": "com.amazonaws.gamelift#NonEmptyString", + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { "smithy.api#documentation": "

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } @@ -12379,7 +13671,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Retrieves a collection of fleet resources in an Amazon Web Services Region. You can filter the\n result set to find only those fleets that are deployed with a specific build or script.\n For fleets that have multiple locations, this operation retrieves fleets based on their\n home Region only.

\n

You can use operation in the following ways:

\n
    \n
  • \n

    To get a list of all fleets in a Region, don't provide a build or script\n identifier.

    \n
  • \n
  • \n

    To get a list of all fleets where a specific game build is deployed, provide\n the build ID.

    \n
  • \n
  • \n

    To get a list of all Realtime Servers fleets with a specific configuration script,\n provide the script ID.

    \n
  • \n
  • \n

    To get a list of all fleets with a specific container group definition, provide\n the ContainerGroupDefinition ID.

    \n
  • \n
\n

Use the pagination parameters to retrieve results as a set of sequential pages.

\n

If successful, this operation returns a list of fleet IDs that match the request\n parameters. A NextToken value is also returned if there are more result pages to\n retrieve.

\n \n

Fleet IDs are returned in no particular order.

\n
", + "smithy.api#documentation": "

Retrieves a collection of fleet resources in an Amazon Web Services Region. You can filter the\n result set to find only those fleets that are deployed with a specific build or script.\n For fleets that have multiple locations, this operation retrieves fleets based on their\n home Region only.

\n

You can use operation in the following ways:

\n
    \n
  • \n

    To get a list of all fleets in a Region, don't provide a build or script\n identifier.

    \n
  • \n
  • \n

    To get a list of all fleets where a specific game build is deployed, provide\n the build ID.

    \n
  • \n
  • \n

    To get a list of all Realtime Servers fleets with a specific configuration script,\n provide the script ID.

    \n
  • \n
\n

Use the pagination parameters to retrieve results as a set of sequential pages.

\n

If successful, this operation returns a list of fleet IDs that match the request\n parameters. A NextToken value is also returned if there are more result pages to\n retrieve.

\n \n

Fleet IDs are returned in no particular order.

\n
", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -12403,12 +13695,6 @@ "smithy.api#documentation": "

A unique identifier for the Realtime script to request fleets for. Use this parameter to return only fleets using a\n specified script. Use either the script ID or ARN value.

" } }, - "ContainerGroupDefinitionName": { - "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", - "traits": { - "smithy.api#documentation": "

The container group definition name to request fleets for. Use this parameter to\n return only fleets that are deployed with the specified container group\n definition.

" - } - }, "Limit": { "target": "com.amazonaws.gamelift#PositiveInteger", "traits": { @@ -12723,7 +14009,7 @@ "NextToken": { "target": "com.amazonaws.gamelift#NonEmptyString", "traits": { - "smithy.api#documentation": "

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, don't specify a value.

" + "smithy.api#documentation": "

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } } }, @@ -12771,6 +14057,9 @@ }, { "target": "com.amazonaws.gamelift#TaggingFailedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { @@ -12862,7 +14151,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n This data type has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

A remote location where a multi-location fleet can deploy game servers for game\n hosting.

" + "smithy.api#documentation": "

A remote location where a multi-location fleet can deploy game servers for game\n hosting.

" } }, "com.amazonaws.gamelift#LocationConfigurationList": { @@ -12991,6 +14280,88 @@ } } }, + "com.amazonaws.gamelift#LocationalDeployment": { + "type": "structure", + "members": { + "DeploymentStatus": { + "target": "com.amazonaws.gamelift#DeploymentStatus", + "traits": { + "smithy.api#documentation": "

The status of fleet deployment activity in the location.

\n
    \n
  • \n

    \n IN_PROGRESS -- The deployment is in progress.

    \n
  • \n
  • \n

    \n IMPAIRED -- The deployment failed and the fleet has some impaired\n containers.

    \n
  • \n
  • \n

    \n COMPLETE -- The deployment has completed successfully.

    \n
  • \n
  • \n

    \n ROLLBACK_IN_PROGRESS -- The deployment failed and rollback has\n been initiated.

    \n
  • \n
  • \n

    \n ROLLBACK_IN_COMPLETE -- The deployment failed and rollback has\n been completed.

    \n
  • \n
  • \n

    \n CANCELLED -- The deployment was cancelled.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

For a multi-location container fleet, describes the progress of a deployment across\n all fleet locations.

" + } + }, + "com.amazonaws.gamelift#LocationalDeployments": { + "type": "map", + "key": { + "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString" + }, + "value": { + "target": "com.amazonaws.gamelift#LocationalDeployment" + } + }, + "com.amazonaws.gamelift#LogConfiguration": { + "type": "structure", + "members": { + "LogDestination": { + "target": "com.amazonaws.gamelift#LogDestination", + "traits": { + "smithy.api#documentation": "

The type of log collection to use for a fleet.

\n
    \n
  • \n

    \n CLOUDWATCH -- (default value) Send logs to an Amazon CloudWatch log group that you define. Each container emits a log stream, which is organized in the log group.

    \n
  • \n
  • \n

    \n S3 -- Store logs in an Amazon S3 bucket that you define.

    \n
  • \n
  • \n

    \n NONE -- Don't collect container logs.

    \n
  • \n
" + } + }, + "S3BucketName": { + "target": "com.amazonaws.gamelift#NonEmptyString", + "traits": { + "smithy.api#documentation": "

If log destination is S3, logs are sent to the specified Amazon S3 bucket name.

" + } + }, + "LogGroupArn": { + "target": "com.amazonaws.gamelift#LogGroupArnStringModel", + "traits": { + "smithy.api#documentation": "

If log destination is CLOUDWATCH, logs are sent to the specified log group in Amazon CloudWatch.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A method for collecting container logs for the fleet. Amazon GameLift saves all standard\n output for each container in logs, including game session logs. You can select from the\n following methods:

" + } + }, + "com.amazonaws.gamelift#LogDestination": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + }, + "CLOUDWATCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLOUDWATCH" + } + }, + "S3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "S3" + } + } + } + }, + "com.amazonaws.gamelift#LogGroupArnStringModel": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[a-zA-Z0-9:/\\-\\*]+$" + } + }, "com.amazonaws.gamelift#MatchedPlayerSession": { "type": "structure", "members": { @@ -13101,7 +14472,7 @@ "AdditionalPlayerCount": { "target": "com.amazonaws.gamelift#WholeNumber", "traits": { - "smithy.api#documentation": "

The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies \n a match for a single 10-person team, and the additional player count is set to 2, 10 players will be selected for the match and 2 more player slots will be open for future players. This parameter is not used when FlexMatchMode is set to\n STANDALONE.

" + "smithy.api#documentation": "

The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies \n a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used when FlexMatchMode is set to\n STANDALONE.

" } }, "CustomEventData": { @@ -13125,7 +14496,7 @@ "GameSessionData": { "target": "com.amazonaws.gamelift#GameSessionData", "traits": { - "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is\n created for a successful match. This parameter is not used when\n FlexMatchMode is set to STANDALONE.

" + "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session. For more information, see Start a game session. This information is added to the new GameSession object that is\n created for a successful match. This parameter is not used when\n FlexMatchMode is set to STANDALONE.

" } }, "BackfillMode": { @@ -13410,6 +14781,15 @@ } } }, + "com.amazonaws.gamelift#MaximumGameServerContainerGroupsPerInstance": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 5000 + } + } + }, "com.amazonaws.gamelift#MetricGroup": { "type": "string", "traits": { @@ -13508,6 +14888,15 @@ } } }, + "com.amazonaws.gamelift#MinimumHealthyPercentage": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 30, + "max": 75 + } + } + }, "com.amazonaws.gamelift#NonBlankAndLengthConstraintString": { "type": "string", "traits": { @@ -13592,7 +14981,7 @@ } }, "traits": { - "smithy.api#documentation": "

The operation failed because Amazon GameLift has not yet finished validating this compute. We\n recommend attempting 8 to 10 retries over 3 to 5 minutes with exponential\n backoffs and jitter.

", + "smithy.api#documentation": "

The operation failed because Amazon GameLift has not yet finished validating this compute. We\n recommend attempting 8 to 10 retries over 3 to 5 minutes with exponential\n backoffs and jitter.

", "smithy.api#error": "client" } }, @@ -14127,6 +15516,9 @@ }, { "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { @@ -14276,7 +15668,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Registers a compute resource in an Amazon GameLift fleet. Register computes with an Amazon GameLift\n Anywhere fleet or a container fleet.

\n

For an Anywhere fleet or a container fleet that's running the Amazon GameLift Agent, the Agent\n handles all compute registry tasks for you. For an Anywhere fleet that doesn't use the\n Agent, call this operation to register fleet computes.

\n

To register a compute, give the compute a name (must be unique within the\n fleet) and specify the compute resource's DNS name or IP address. Provide a \n fleet ID and a fleet location to associate with the compute being registered. You can\n optionally include the path to a TLS certificate on the compute resource.

\n

If successful, this operation returns compute details, including an Amazon GameLift SDK\n endpoint or Agent endpoint. Game server processes running on the compute can use this\n endpoint to communicate with the Amazon GameLift service. Each server process includes the SDK\n endpoint in its call to the Amazon GameLift server SDK action InitSDK().

\n

To view compute details, call DescribeCompute with the compute name.

\n

\n Learn more\n

\n " + "smithy.api#documentation": "

Registers a compute resource in an Amazon GameLift Anywhere fleet.

\n

For an Anywhere fleet that's running the Amazon GameLift Agent, the Agent\n handles all compute registry tasks for you. For an Anywhere fleet that doesn't use the\n Agent, call this operation to register fleet computes.

\n

To register a compute, give the compute a name (must be unique within the\n fleet) and specify the compute resource's DNS name or IP address. Provide a \n fleet ID and a fleet location to associate with the compute being registered. You can\n optionally include the path to a TLS certificate on the compute resource.

\n

If successful, this operation returns compute details, including an Amazon GameLift SDK\n endpoint or Agent endpoint. Game server processes running on the compute can use this\n endpoint to communicate with the Amazon GameLift service. Each server process includes the SDK\n endpoint in its call to the Amazon GameLift server SDK action InitSDK().

\n

To view compute details, call DescribeCompute with the compute name.

\n

\n Learn more\n

\n " } }, "com.amazonaws.gamelift#RegisterComputeInput": { @@ -14428,47 +15820,6 @@ "smithy.api#output": {} } }, - "com.amazonaws.gamelift#ReplicaContainerGroupCounts": { - "type": "structure", - "members": { - "PENDING": { - "target": "com.amazonaws.gamelift#WholeNumber", - "traits": { - "smithy.api#documentation": "

The number of container groups that are starting up but have not yet registered.

" - } - }, - "ACTIVE": { - "target": "com.amazonaws.gamelift#WholeNumber", - "traits": { - "smithy.api#documentation": "

\n The number of container groups that have active game sessions.\n

" - } - }, - "IDLE": { - "target": "com.amazonaws.gamelift#WholeNumber", - "traits": { - "smithy.api#documentation": "

\n The number of container groups that have no active game sessions.\n

" - } - }, - "TERMINATING": { - "target": "com.amazonaws.gamelift#WholeNumber", - "traits": { - "smithy.api#documentation": "

The number of container groups that are in the process of shutting down.

" - } - } - }, - "traits": { - "smithy.api#documentation": "

\n This data type is used with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

The number and status of replica container groups that are deployed across a fleet with\n compute type CONTAINER. This information, combined with the number of server\n processes being hosted per container group (see RuntimeConfiguration), tells you\n how many game sessions the fleet is currently capable of hosting concurrently.

\n

\n Returned by:\n DescribeFleetCapacity, DescribeFleetLocationCapacity\n

" - } - }, - "com.amazonaws.gamelift#ReplicaContainerGroupsPerInstance": { - "type": "integer", - "traits": { - "smithy.api#range": { - "min": 1, - "max": 5000 - } - } - }, "com.amazonaws.gamelift#RequestUploadCredentials": { "type": "operation", "input": { @@ -14753,7 +16104,7 @@ "MaxConcurrentGameSessionActivations": { "target": "com.amazonaws.gamelift#MaxConcurrentGameSessionActivations", "traits": { - "smithy.api#documentation": "

The number of game sessions in status ACTIVATING to allow on an instance or container.\n This setting limits the instance resources that can be used for new game activations at\n any one time.

" + "smithy.api#documentation": "

The number of game sessions in status ACTIVATING to allow on an instance.\n This setting limits the instance resources that can be used for new game activations at\n any one time.

" } }, "GameSessionActivationTimeoutSeconds": { @@ -14764,7 +16115,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n This data type has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

A set of instructions that define the set of server processes to run on computes in a\n fleet. Server processes run either an executable in a custom game build or a Realtime Servers\n script. Amazon GameLift launches the processes, manages their life cycle, and replaces them as\n needed. Computes check regularly for an updated runtime configuration.

\n

On a container fleet, the Amazon GameLift Agent uses the runtime configuration to manage the\n lifecycle of server processes in a replica container group.

\n

An Amazon GameLift instance is limited to 50 processes running concurrently. To calculate the\n total number of processes defined in a runtime configuration, add the values of the\n ConcurrentExecutions parameter for each server process. Learn more\n about Running Multiple\n Processes on a Fleet.

" + "smithy.api#documentation": "

A set of instructions that define the set of server processes to run on computes in a\n fleet. Server processes run either an executable in a custom game build or a Realtime Servers\n script. Amazon GameLift launches the processes, manages their life cycle, and replaces them as\n needed. Computes check regularly for an updated runtime configuration.

\n

An Amazon GameLift instance is limited to 50 processes running concurrently. To calculate the\n total number of processes defined in a runtime configuration, add the values of the\n ConcurrentExecutions parameter for each server process. Learn more\n about Running Multiple\n Processes on a Fleet.

" } }, "com.amazonaws.gamelift#S3Location": { @@ -14985,13 +16336,13 @@ "Name": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

A descriptive label that is associated with a script. Script names don't need to be unique.

" + "smithy.api#documentation": "

A descriptive label that is associated with a script. Script names do not need to be unique.

" } }, "Version": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

Version information associated with a build or script. Version strings don't need to be unique.

" + "smithy.api#documentation": "

Version information that is associated with a build or script. Version strings do not need to be unique.

" } }, "SizeOnDisk": { @@ -15170,7 +16521,7 @@ "target": "com.amazonaws.gamelift#PositiveInteger", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The number of server processes using this configuration that run concurrently on each\n instance or container..

", + "smithy.api#documentation": "

The number of server processes using this configuration that run concurrently on each\n instance or compute.

", "smithy.api#required": {} } } @@ -15346,7 +16697,7 @@ } ], "traits": { - "smithy.api#documentation": "

Places a request for a new game session in a queue. When processing a placement\n request, Amazon GameLift searches for available resources on the queue's destinations, scanning\n each until it finds resources or the placement request times out.

\n

A game session placement request can also request player sessions. When a new game\n session is successfully created, Amazon GameLift creates a player session for each player\n included in the request.

\n

When placing a game session, by default Amazon GameLift tries each fleet in the order they are\n listed in the queue configuration. Ideally, a queue's destinations are listed in\n preference order.

\n

Alternatively, when requesting a game session with players, you can also provide\n latency data for each player in relevant Regions. Latency data indicates the performance\n lag a player experiences when connected to a fleet in the Region. Amazon GameLift uses latency\n data to reorder the list of destinations to place the game session in a Region with\n minimal lag. If latency data is provided for multiple players, Amazon GameLift calculates each\n Region's average lag for all players and reorders to get the best game play across all\n players.

\n

To place a new game session request, specify the following:

\n
    \n
  • \n

    The queue name and a set of game session properties and settings

    \n
  • \n
  • \n

    A unique ID (such as a UUID) for the placement. You use this ID to track the\n status of the placement request

    \n
  • \n
  • \n

    (Optional) A set of player data and a unique player ID for each player that\n you are joining to the new game session (player data is optional, but if you\n include it, you must also provide a unique ID for each player)

    \n
  • \n
  • \n

    Latency data for all players (if you want to optimize game play for the\n players)

    \n
  • \n
\n

If successful, a new game session placement is created.

\n

To track the status of a placement request, call DescribeGameSessionPlacement and check the request's status. If the status\n is FULFILLED, a new game session has been created and a game session ARN\n and Region are referenced. If the placement request times out, you can resubmit the\n request or retry it with a different queue.

" + "smithy.api#documentation": "

Places a request for a new game session in a queue. When processing a placement\n request, Amazon GameLift searches for available resources on the queue's destinations, scanning\n each until it finds resources or the placement request times out.

\n

A game session placement request can also request player sessions. When a new game\n session is successfully created, Amazon GameLift creates a player session for each player\n included in the request.

\n

When placing a game session, by default Amazon GameLift tries each fleet in the order they are\n listed in the queue configuration. Ideally, a queue's destinations are listed in\n preference order.

\n

Alternatively, when requesting a game session with players, you can also provide\n latency data for each player in relevant Regions. Latency data indicates the performance\n lag a player experiences when connected to a fleet in the Region. Amazon GameLift uses latency\n data to reorder the list of destinations to place the game session in a Region with\n minimal lag. If latency data is provided for multiple players, Amazon GameLift calculates each\n Region's average lag for all players and reorders to get the best game play across all\n players.

\n

To place a new game session request, specify the following:

\n
    \n
  • \n

    The queue name and a set of game session properties and settings

    \n
  • \n
  • \n

    A unique ID (such as a UUID) for the placement. You use this ID to track the\n status of the placement request

    \n
  • \n
  • \n

    (Optional) A set of player data and a unique player ID for each player that\n you are joining to the new game session (player data is optional, but if you\n include it, you must also provide a unique ID for each player)

    \n
  • \n
  • \n

    Latency data for all players (if you want to optimize game play for the\n players)

    \n
  • \n
\n

If successful, a new game session placement is created.

\n

To track the status of a placement request, call DescribeGameSessionPlacement and check the request's status. If the status\n is FULFILLED, a new game session has been created and a game session ARN\n and Region are referenced. If the placement request times out, submit a new request to the same\n queue or a different queue.

" } }, "com.amazonaws.gamelift#StartGameSessionPlacementInput": { @@ -15391,7 +16742,7 @@ "PlayerLatencies": { "target": "com.amazonaws.gamelift#PlayerLatencyList", "traits": { - "smithy.api#documentation": "

A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to Amazon Web Services Regions. This information is used to try to place the new game session where it\n can offer the best possible gameplay experience for the players.

" + "smithy.api#documentation": "

A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to @aws; Regions. This information is used to try to place the new game session where it\n can offer the best possible gameplay experience for the players.

" } }, "DesiredPlayerSessions": { @@ -15403,7 +16754,7 @@ "GameSessionData": { "target": "com.amazonaws.gamelift#LargeGameSessionData", "traits": { - "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the \n GameSession object with a request to start a new game session (see Start a Game Session).

" + "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session. For more information, see Start a game session.

" } } }, @@ -15597,7 +16948,7 @@ } ], "traits": { - "smithy.api#documentation": "

Suspends certain types of activity in a fleet location. Currently, this operation is\n used to stop auto-scaling activity. For multi-location fleets, fleet actions are managed\n separately for each location.

\n

Stopping fleet actions has several potential purposes. It allows you to temporarily\n stop auto-scaling activity but retain your scaling policies for use in the future. For\n multi-location fleets, you can set up fleet-wide auto-scaling, and then opt out of it\n for certain locations.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To stop actions on instances in the fleet's home Region, provide a fleet ID\n and the type of actions to suspend.

    \n
  • \n
  • \n

    To stop actions on instances in one of the fleet's remote locations, provide a\n fleet ID, a location name, and the type of actions to suspend.

    \n
  • \n
\n

If successful, Amazon GameLift no longer initiates scaling events except in response to manual\n changes using UpdateFleetCapacity. To restart fleet actions again, call \n StartFleetActions.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n Fleets\n

" + "smithy.api#documentation": "

Suspends certain types of activity in a fleet location. Currently, this operation is\n used to stop auto-scaling activity. For multi-location fleets, fleet actions are managed\n separately for each location.

\n

Stopping fleet actions has several potential purposes. It allows you to temporarily\n stop auto-scaling activity but retain your scaling policies for use in the future. For\n multi-location fleets, you can set up fleet-wide auto-scaling, and then opt out of it\n for certain locations.

\n

This operation can be used in the following ways:

\n
    \n
  • \n

    To stop actions on instances in the fleet's home Region, provide a fleet ID\n and the type of actions to suspend.

    \n
  • \n
  • \n

    To stop actions on instances in one of the fleet's remote locations, provide a\n fleet ID, a location name, and the type of actions to suspend.

    \n
  • \n
\n

If successful, Amazon GameLift no longer initiates scaling events except in response to manual\n changes using UpdateFleetCapacity. To restart fleet actions again, call \n StartFleetActions.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n Fleets\n

" } }, "com.amazonaws.gamelift#StopFleetActionsInput": { @@ -15718,52 +17069,222 @@ { "target": "com.amazonaws.gamelift#InternalServiceException" }, - { - "target": "com.amazonaws.gamelift#InvalidRequestException" + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Cancels a matchmaking ticket or match backfill ticket that is currently being\n processed. To stop the matchmaking operation, specify the ticket ID. If successful, work\n on the ticket is stopped, and the ticket status is changed to\n CANCELLED.

\n

This call is also used to turn off automatic backfill for an individual game session.\n This is for game sessions that are created with a matchmaking configuration that has\n automatic backfill enabled. The ticket ID is included in the MatchmakerData\n of an updated game session object, which is provided to the game server.

\n \n

If the operation is successful, the service sends back an empty JSON struct with\n the HTTP 200 response (not an empty HTTP body).

\n
\n

\n Learn more\n

\n

\n \n Add FlexMatch to a game client\n

" + } + }, + "com.amazonaws.gamelift#StopMatchmakingInput": { + "type": "structure", + "members": { + "TicketId": { + "target": "com.amazonaws.gamelift#MatchmakingIdStringModel", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier for a matchmaking ticket.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#StopMatchmakingOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.gamelift#StringList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString" + } + }, + "com.amazonaws.gamelift#StringModel": { + "type": "string" + }, + "com.amazonaws.gamelift#SupportContainerDefinition": { + "type": "structure", + "members": { + "ContainerName": { + "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", + "traits": { + "smithy.api#documentation": "

The container definition identifier. Container names are unique within a container group\n definition.

" + } + }, + "DependsOn": { + "target": "com.amazonaws.gamelift#ContainerDependencyList", + "traits": { + "smithy.api#documentation": "

Indicates that the container relies on the status of other containers in the same\n container group during its startup and shutdown sequences. A container might have dependencies\n on multiple containers.

" + } + }, + "MountPoints": { + "target": "com.amazonaws.gamelift#ContainerMountPointList", + "traits": { + "smithy.api#documentation": "

A mount point that binds a path inside the container to a file or directory on the host\n system and lets it access the file or directory.

" + } + }, + "EnvironmentOverride": { + "target": "com.amazonaws.gamelift#ContainerEnvironmentList", + "traits": { + "smithy.api#documentation": "

A set of environment variables that's passed to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "Essential": { + "target": "com.amazonaws.gamelift#BooleanModel", + "traits": { + "smithy.api#documentation": "

Indicates whether the container is vital to the container group. If an essential container\n fails, the entire container group restarts.

" + } + }, + "HealthCheck": { + "target": "com.amazonaws.gamelift#ContainerHealthCheck", + "traits": { + "smithy.api#documentation": "

A configuration for a non-terminal health check. A support container automatically\n restarts if it stops functioning or if it fails this health check.

" + } + }, + "ImageUri": { + "target": "com.amazonaws.gamelift#ImageUriString", + "traits": { + "smithy.api#documentation": "

The URI to the image that Amazon GameLift deploys to a container fleet. For a more specific\n identifier, see ResolvedImageDigest.

" + } + }, + "MemoryHardLimitMebibytes": { + "target": "com.amazonaws.gamelift#ContainerMemoryLimit", + "traits": { + "smithy.api#documentation": "

The amount of memory that Amazon GameLift makes available to the container. If memory limits\n aren't set for an individual container, the container shares the container group's total\n memory allocation.

\n

\n Related data type: \n ContainerGroupDefinition$TotalMemoryLimitMebibytes\n

" + } + }, + "PortConfiguration": { + "target": "com.amazonaws.gamelift#ContainerPortConfiguration", + "traits": { + "smithy.api#documentation": "

A set of ports that allow access to the container from external users. Processes running\n in the container can bind to a one of these ports. Container ports aren't directly accessed by\n inbound traffic. Amazon GameLift maps these container ports to externally accessible connection ports,\n which are assigned as needed from the container fleet's\n ConnectionPortRange.

" + } + }, + "ResolvedImageDigest": { + "target": "com.amazonaws.gamelift#Sha256", + "traits": { + "smithy.api#documentation": "

A unique and immutable identifier for the container image. The digest is a SHA 256 hash of\n the container image manifest.

" + } + }, + "Vcpu": { + "target": "com.amazonaws.gamelift#ContainerVcpu", + "traits": { + "smithy.api#documentation": "

The number of vCPU units that are reserved for the container. If no resources are\n reserved, the container shares the total vCPU limit for the container group.

\n

\n Related data type: \n ContainerGroupDefinition$TotalVcpuLimit\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Describes a support container in a container group. A support container might be in a game\n server container group or a per-instance container group. Support containers don't run game\n server processes.

\n

You can update a support container definition and deploy the updates to an existing fleet.\n When creating or updating a game server container group definition, use the property GameServerContainerDefinitionInput.

\n

\n Part of:\n ContainerGroupDefinition\n

\n

\n Returned by:\n DescribeContainerGroupDefinition, ListContainerGroupDefinitions, UpdateContainerGroupDefinition\n

" + } + }, + "com.amazonaws.gamelift#SupportContainerDefinitionInput": { + "type": "structure", + "members": { + "ContainerName": { + "target": "com.amazonaws.gamelift#NonZeroAnd128MaxAsciiString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A string that uniquely identifies the container definition within a container\n group.

", + "smithy.api#required": {} + } + }, + "DependsOn": { + "target": "com.amazonaws.gamelift#ContainerDependencyList", + "traits": { + "smithy.api#documentation": "

Establishes dependencies between this container and the status of other containers in the\n same container group. A container can have dependencies on multiple different containers.

\n

.

\n

You can use dependencies to establish a startup/shutdown sequence across the container\n group. For example, you might specify that ContainerB has a\n START dependency on ContainerA. This dependency means that\n ContainerB can't start until after ContainerA has\n started. This dependency is reversed on shutdown, which means that\n ContainerB must shut down before ContainerA can\n shut down.

" + } + }, + "MountPoints": { + "target": "com.amazonaws.gamelift#ContainerMountPointList", + "traits": { + "smithy.api#documentation": "

A mount point that binds a path inside the container to a file or directory on the host\n system and lets it access the file or directory.

" + } + }, + "EnvironmentOverride": { + "target": "com.amazonaws.gamelift#ContainerEnvironmentList", + "traits": { + "smithy.api#documentation": "

A set of environment variables to pass to the container on startup. See the ContainerDefinition::environment parameter in the Amazon Elastic Container Service API\n Reference.

" + } + }, + "Essential": { + "target": "com.amazonaws.gamelift#BooleanModel", + "traits": { + "smithy.api#documentation": "

Flags the container as vital for the container group to function properly. If an essential\n container fails, the entire container group restarts. At least one support container in a\n per-instance container group must be essential. When flagging a container as essential, also\n configure a health check so that the container can signal that it's healthy.

" + } }, - { - "target": "com.amazonaws.gamelift#NotFoundException" + "HealthCheck": { + "target": "com.amazonaws.gamelift#ContainerHealthCheck", + "traits": { + "smithy.api#documentation": "

Configuration for a non-terminal health check. A container automatically restarts if it\n stops functioning. With a health check, you can define additional reasons to flag a container\n as unhealthy and restart it. If an essential container fails a health check, the entire\n container group restarts.

" + } }, - { - "target": "com.amazonaws.gamelift#UnsupportedRegionException" - } - ], - "traits": { - "smithy.api#documentation": "

Cancels a matchmaking ticket or match backfill ticket that is currently being\n processed. To stop the matchmaking operation, specify the ticket ID. If successful, work\n on the ticket is stopped, and the ticket status is changed to\n CANCELLED.

\n

This call is also used to turn off automatic backfill for an individual game session.\n This is for game sessions that are created with a matchmaking configuration that has\n automatic backfill enabled. The ticket ID is included in the MatchmakerData\n of an updated game session object, which is provided to the game server.

\n \n

If the operation is successful, the service sends back an empty JSON struct with\n the HTTP 200 response (not an empty HTTP body).

\n
\n

\n Learn more\n

\n

\n \n Add FlexMatch to a game client\n

" - } - }, - "com.amazonaws.gamelift#StopMatchmakingInput": { - "type": "structure", - "members": { - "TicketId": { - "target": "com.amazonaws.gamelift#MatchmakingIdStringModel", + "ImageUri": { + "target": "com.amazonaws.gamelift#ImageUriString", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

A unique identifier for a matchmaking ticket.

", + "smithy.api#documentation": "

The location of the container image to deploy to a container fleet. Provide an image in an\n Amazon Elastic Container Registry public or private repository. The repository must be in the same Amazon Web Services account and\n Amazon Web Services Region where you're creating the container group definition. For limits on image size,\n see Amazon GameLift endpoints and\n quotas. You can use any of the following image URI formats:

\n
    \n
  • \n

    Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository\n ID]\n

    \n
  • \n
  • \n

    Image ID and digest: [AWS account].dkr.ecr.[AWS\n region].amazonaws.com/[repository ID]@[digest]\n

    \n
  • \n
  • \n

    Image ID and tag: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository\n ID]:[tag]\n

    \n
  • \n
", "smithy.api#required": {} } + }, + "MemoryHardLimitMebibytes": { + "target": "com.amazonaws.gamelift#ContainerMemoryLimit", + "traits": { + "smithy.api#documentation": "

A specified amount of memory (in MiB) to reserve for this container. If you don't specify\n a container-specific memory limit, the container shares the container group's total memory\n allocation.

\n

\n Related data type: \n ContainerGroupDefinition TotalMemoryLimitMebibytes\n

" + } + }, + "PortConfiguration": { + "target": "com.amazonaws.gamelift#ContainerPortConfiguration", + "traits": { + "smithy.api#documentation": "

A set of ports that Amazon GameLift can assign to processes in the container. Any processes that\n accept inbound traffic connections must be assigned a port from this set. The container port\n range must be large enough to assign one to each process in the container that needs one.

\n

Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container\n ports to externally accessible connection ports, which are assigned as needed from the\n container fleet's ConnectionPortRange.

" + } + }, + "Vcpu": { + "target": "com.amazonaws.gamelift#ContainerVcpu", + "traits": { + "smithy.api#documentation": "

The number of vCPU units to reserve for this container. The container can use more\n resources when needed, if available. If you don't reserve CPU units for this container, it\n shares the container group's total vCPU limit.

\n

\n Related data type: \n ContainerGroupDefinition TotalCpuLimit\n

" + } } }, "traits": { - "smithy.api#input": {} + "smithy.api#documentation": "

Describes a support container in a container group. You can define a support container in\n either a game server container group or a per-instance container group. Support containers\n don't run game server processes.

\n

This definition includes container configuration, resources, and start instructions. Use\n this data type when creating or updating a container group definition. For properties of a\n deployed support container, see SupportContainerDefinition.

\n

\n Use with: \n CreateContainerGroupDefinition, UpdateContainerGroupDefinition\n

" } }, - "com.amazonaws.gamelift#StopMatchmakingOutput": { - "type": "structure", - "members": {}, + "com.amazonaws.gamelift#SupportContainerDefinitionInputList": { + "type": "list", + "member": { + "target": "com.amazonaws.gamelift#SupportContainerDefinitionInput" + }, "traits": { - "smithy.api#output": {} + "smithy.api#length": { + "min": 0, + "max": 10 + } } }, - "com.amazonaws.gamelift#StringList": { + "com.amazonaws.gamelift#SupportContainerDefinitionList": { "type": "list", "member": { - "target": "com.amazonaws.gamelift#NonZeroAndMaxString" + "target": "com.amazonaws.gamelift#SupportContainerDefinition" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } } }, - "com.amazonaws.gamelift#StringModel": { - "type": "string" - }, "com.amazonaws.gamelift#SuspendGameServerGroup": { "type": "operation", "input": { @@ -15905,6 +17426,9 @@ }, { "target": "com.amazonaws.gamelift#TaggingFailedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { @@ -16054,6 +17578,9 @@ }, { "target": "com.amazonaws.gamelift#TaggingFailedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" } ], "traits": { @@ -16205,13 +17732,13 @@ "Name": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

A descriptive label associated with a build. Build names don't need to be unique.

" + "smithy.api#documentation": "

A descriptive label that is associated with a build. Build names do not need to be unique.

" } }, "Version": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

Version information associated with a build or script. Version strings don't need to be unique.

" + "smithy.api#documentation": "

Version information that is associated with a build or script. Version strings do not need to be unique.

" } } }, @@ -16233,6 +17760,253 @@ "smithy.api#output": {} } }, + "com.amazonaws.gamelift#UpdateContainerFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#UpdateContainerFleetInput" + }, + "output": { + "target": "com.amazonaws.gamelift#UpdateContainerFleetOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#LimitExceededException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#NotReadyException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the properties of a managed container fleet. Depending on the properties being\n updated, this operation might initiate a fleet deployment. You can track deployments for\n a fleet using DescribeFleetDeployment.

\n

\n Request options\n

\n

As with CreateContainerFleet, many fleet properties use common defaults or are\n calculated based on the fleet's container group definitions.

\n
    \n
  • \n

    Update fleet properties that result in a fleet deployment. Include only those\n properties that you want to change. Specify deployment configuration\n settings.

    \n
  • \n
  • \n

    Update fleet properties that don't result in a fleet deployment. Include only\n those properties that you want to change.

    \n
  • \n
\n

Changes to the following properties initiate a fleet deployment:

\n
    \n
  • \n

    \n GameServerContainerGroupDefinition\n

    \n
  • \n
  • \n

    \n PerInstanceContainerGroupDefinition\n

    \n
  • \n
  • \n

    \n GameServerContainerGroupsPerInstance\n

    \n
  • \n
  • \n

    \n InstanceInboundPermissions\n

    \n
  • \n
  • \n

    \n InstanceConnectionPortRange\n

    \n
  • \n
  • \n

    \n LogConfiguration\n

    \n
  • \n
\n

\n Results\n

\n

If successful, this operation updates the container fleet resource, and might initiate\n a new deployment of fleet resources using the deployment configuration provided. A\n deployment replaces existing fleet instances with new instances that are deployed with\n the updated fleet properties. The fleet is placed in UPDATING status until\n the deployment is complete, then return to ACTIVE.

\n

You can have only one update deployment active at a time for a fleet. If a second\n update request initiates a deployment while another deployment is in progress, the first\n deployment is cancelled.

" + } + }, + "com.amazonaws.gamelift#UpdateContainerFleetInput": { + "type": "structure", + "members": { + "FleetId": { + "target": "com.amazonaws.gamelift#FleetIdOrArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A unique identifier for the container fleet to update. You can use either the fleet ID\n or ARN value.

", + "smithy.api#required": {} + } + }, + "GameServerContainerGroupDefinitionName": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#documentation": "

The name or ARN value of a new game server container group definition to deploy on the\n fleet. If you're updating the fleet to a specific version of a container group\n definition, use the ARN value and include the version number. If you're updating the\n fleet to the latest version of a container group definition, you can use the name value.\n You can't remove a fleet's game server container group definition, you can only update\n or replace it with another definition.

\n

Update a container group definition by calling UpdateContainerGroupDefinition. This operation creates a ContainerGroupDefinition resource with an incremented version.

" + } + }, + "PerInstanceContainerGroupDefinitionName": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#documentation": "

The name or ARN value of a new per-instance container group definition to deploy on\n the fleet. If you're updating the fleet to a specific version of a container group\n definition, use the ARN value and include the version number. If you're updating the\n fleet to the latest version of a container group definition, you can use the name\n value.

\n

Update a container group definition by calling UpdateContainerGroupDefinition. This operation creates a ContainerGroupDefinition resource with an incremented version.

\n

To remove a fleet's per-instance container group definition, leave this parameter empty\n and use the parameter RemoveAttributes.

" + } + }, + "GameServerContainerGroupsPerInstance": { + "target": "com.amazonaws.gamelift#GameServerContainerGroupsPerInstance", + "traits": { + "smithy.api#documentation": "

The number of times to replicate the game server container group on each fleet\n instance. By default, Amazon GameLift calculates the maximum number of game server container\n groups that can fit on each instance. You can remove this property value to use the\n calculated value, or set it manually. If you set this number manually, Amazon GameLift uses your\n value as long as it's less than the calculated maximum.

" + } + }, + "InstanceConnectionPortRange": { + "target": "com.amazonaws.gamelift#ConnectionPortRange", + "traits": { + "smithy.api#documentation": "

A revised set of port numbers to open on each fleet instance. By default, Amazon GameLift\n calculates an optimal port range based on your fleet configuration. If you previously\n set this parameter manually, you can't reset this to use the calculated settings.

" + } + }, + "InstanceInboundPermissionAuthorizations": { + "target": "com.amazonaws.gamelift#IpPermissionsList", + "traits": { + "smithy.api#documentation": "

A set of ports to add to the container fleet's inbound permissions.

" + } + }, + "InstanceInboundPermissionRevocations": { + "target": "com.amazonaws.gamelift#IpPermissionsList", + "traits": { + "smithy.api#documentation": "

A set of ports to remove from the container fleet's inbound permissions.

" + } + }, + "DeploymentConfiguration": { + "target": "com.amazonaws.gamelift#DeploymentConfiguration", + "traits": { + "smithy.api#documentation": "

Instructions for how to deploy updates to a container fleet, if the fleet update\n initiates a deployment. The deployment configuration lets you determine how to replace\n fleet instances and what actions to take if the deployment fails.

" + } + }, + "Description": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A meaningful description of the container fleet.

" + } + }, + "MetricGroups": { + "target": "com.amazonaws.gamelift#MetricGroupList", + "traits": { + "smithy.api#documentation": "

The name of an Amazon Web Services CloudWatch metric group to add this fleet to.

" + } + }, + "NewGameSessionProtectionPolicy": { + "target": "com.amazonaws.gamelift#ProtectionPolicy", + "traits": { + "smithy.api#documentation": "

The game session protection policy to apply to all new game sessions that are started\n in this fleet. Game sessions that already exist are not affected.

" + } + }, + "GameSessionCreationLimitPolicy": { + "target": "com.amazonaws.gamelift#GameSessionCreationLimitPolicy", + "traits": { + "smithy.api#documentation": "

A policy that limits the number of game sessions that each individual player can create\n on instances in this fleet. The limit applies for a specified span of time.

" + } + }, + "LogConfiguration": { + "target": "com.amazonaws.gamelift#LogConfiguration", + "traits": { + "smithy.api#documentation": "

The method for collecting container logs for the fleet.

" + } + }, + "RemoveAttributes": { + "target": "com.amazonaws.gamelift#ContainerFleetRemoveAttributeList", + "traits": { + "smithy.api#documentation": "

If set, this update removes a fleet's per-instance container group definition. You\n can't remove a fleet's game server container group definition.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#UpdateContainerFleetOutput": { + "type": "structure", + "members": { + "ContainerFleet": { + "target": "com.amazonaws.gamelift#ContainerFleet", + "traits": { + "smithy.api#documentation": "

A collection of container fleet objects for all fleets that match the request\n criteria.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.gamelift#UpdateContainerGroupDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.gamelift#UpdateContainerGroupDefinitionInput" + }, + "output": { + "target": "com.amazonaws.gamelift#UpdateContainerGroupDefinitionOutput" + }, + "errors": [ + { + "target": "com.amazonaws.gamelift#InternalServiceException" + }, + { + "target": "com.amazonaws.gamelift#InvalidRequestException" + }, + { + "target": "com.amazonaws.gamelift#LimitExceededException" + }, + { + "target": "com.amazonaws.gamelift#NotFoundException" + }, + { + "target": "com.amazonaws.gamelift#UnauthorizedException" + }, + { + "target": "com.amazonaws.gamelift#UnsupportedRegionException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates properties in an existing container group definition. This operation doesn't\n replace the definition. Instead, it creates a new version of the definition and saves it\n separately. You can access all versions that you choose to retain.

\n

The only property you can't update is the container group type.

\n

\n Request options:\n

\n
    \n
  • \n

    Update based on the latest version of the container group definition. Specify the\n container group definition name only, or use an ARN value without a version number.\n Provide updated values for the properties that you want to change only. All other values\n remain the same as the latest version.

    \n
  • \n
  • \n

    Update based on a specific version of the container group definition. Specify the\n container group definition name and a source version number, or use an ARN value with a\n version number. Provide updated values for the properties that you want to change only.\n All other values remain the same as the source version.

    \n
  • \n
  • \n

    Change a game server container definition. Provide the updated container\n definition.

    \n
  • \n
  • \n

    Add or change a support container definition. Provide a complete set of container\n definitions, including the updated definition.

    \n
  • \n
  • \n

    Remove a support container definition. Provide a complete set of container\n definitions, excluding the definition to remove. If the container group has only one\n support container definition, provide an empty set.

    \n
  • \n
\n

\n Results:\n

\n

If successful, this operation returns the complete properties of the new container group\n definition version.

\n

If the container group definition version is used in an active fleets, the update\n automatically initiates a new fleet deployment of the new version. You can track a fleet's \n deployments using ListFleetDeployments.

" + } + }, + "com.amazonaws.gamelift#UpdateContainerGroupDefinitionInput": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinitionNameOrArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

A descriptive identifier for the container group definition. The name value must be unique in an Amazon Web Services Region.

", + "smithy.api#required": {} + } + }, + "GameServerContainerDefinition": { + "target": "com.amazonaws.gamelift#GameServerContainerDefinitionInput", + "traits": { + "smithy.api#documentation": "

An updated definition for the game server container in this group. Define a game server\n container only when the container group type is GAME_SERVER. You can pass in your\n container definitions as a JSON file.

" + } + }, + "SupportContainerDefinitions": { + "target": "com.amazonaws.gamelift#SupportContainerDefinitionInputList", + "traits": { + "smithy.api#documentation": "

One or more definitions for support containers in this group. You can define a support\n container in any type of container group. You can pass in your container definitions as a JSON\n file.

" + } + }, + "TotalMemoryLimitMebibytes": { + "target": "com.amazonaws.gamelift#ContainerTotalMemoryLimit", + "traits": { + "smithy.api#documentation": "

The maximum amount of memory (in MiB) to allocate to the container group. All containers in\n the group share this memory. If you specify memory limits for an individual container, the\n total value must be greater than any individual container's memory limit.

" + } + }, + "TotalVcpuLimit": { + "target": "com.amazonaws.gamelift#ContainerTotalVcpuLimit", + "traits": { + "smithy.api#documentation": "

The maximum amount of vCPU units to allocate to the container group (1 vCPU is equal to 1024\n CPU units). All containers in the group share this memory. If you specify vCPU limits for\n individual containers, the total value must be equal to or greater than the sum of the CPU\n limits for all containers in the group.

" + } + }, + "VersionDescription": { + "target": "com.amazonaws.gamelift#NonZeroAndMaxString", + "traits": { + "smithy.api#documentation": "

A description for this update to the container group definition.

" + } + }, + "SourceVersionNumber": { + "target": "com.amazonaws.gamelift#PositiveInteger", + "traits": { + "smithy.api#documentation": "

The container group definition version to update. The new version starts with values from\n the source version, and then updates values included in this request.

" + } + }, + "OperatingSystem": { + "target": "com.amazonaws.gamelift#ContainerOperatingSystem", + "traits": { + "smithy.api#documentation": "

The platform that all containers in the group use. Containers in a group must run on the\n same operating system.

\n \n

Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in the Amazon Linux 2 FAQs. For game\n servers that are hosted on AL2 and use Amazon GameLift server SDK 4.x, first update the game\n server build to server SDK 5.x, and then deploy to AL2023 instances. See Migrate to\n Amazon GameLift server SDK version 5.\n

\n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.gamelift#UpdateContainerGroupDefinitionOutput": { + "type": "structure", + "members": { + "ContainerGroupDefinition": { + "target": "com.amazonaws.gamelift#ContainerGroupDefinition", + "traits": { + "smithy.api#documentation": "

The properties of the updated container group definition version.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.gamelift#UpdateFleetAttributes": { "type": "operation", "input": { @@ -16294,7 +18068,7 @@ "NewGameSessionProtectionPolicy": { "target": "com.amazonaws.gamelift#ProtectionPolicy", "traits": { - "smithy.api#documentation": "

The game session protection policy to apply to all new game sessions created in this\n fleet. Game sessions that already exist are not affected. You can set protection for\n individual game sessions using UpdateGameSession .

\n
    \n
  • \n

    \n NoProtection -- The game session can be\n terminated during a scale-down event.

    \n
  • \n
  • \n

    \n FullProtection -- If the game session is in an\n ACTIVE status, it cannot be terminated during a scale-down\n event.

    \n
  • \n
" + "smithy.api#documentation": "

The game session protection policy to apply to all new game sessions created in this\n fleet. Game sessions that already exist are not affected. You can set protection for\n individual game sessions using UpdateGameSession.

\n
    \n
  • \n

    \n NoProtection -- The game session can be\n terminated during a scale-down event.

    \n
  • \n
  • \n

    \n FullProtection -- If the game session is in an\n ACTIVE status, it cannot be terminated during a scale-down\n event.

    \n
  • \n
" } }, "ResourceCreationLimitPolicy": { @@ -16375,7 +18149,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.\n

\n

Updates capacity settings for a managed EC2 fleet or container fleet. For these\n fleets, you adjust capacity by changing the number of instances in the fleet. Fleet\n capacity determines the number of game sessions and players that the fleet can host\n based on its configuration. For fleets with multiple locations, use this operation to\n manage capacity settings in each location individually.

\n

Use this operation to set these fleet capacity properties:

\n
    \n
  • \n

    Minimum/maximum size: Set hard limits on the number of Amazon EC2 instances allowed. If Amazon GameLift receives a \n request--either through manual update or automatic scaling--it won't change the capacity \n to a value outside of this range.

    \n
  • \n
  • \n

    Desired capacity: As an alternative to automatic scaling, manually set the number of Amazon EC2 \n instances to be maintained. \n Before changing a fleet's desired capacity, check the maximum capacity of the\n fleet's Amazon EC2 instance type by calling DescribeEC2InstanceLimits.

    \n
  • \n
\n

To update capacity for a fleet's home Region, or if the fleet has no remote\n locations, omit the Location parameter. The fleet must be in\n ACTIVE status.

\n

To update capacity for a fleet's remote location, set the\n Location parameter to the location to update. The location must be in\n ACTIVE status.

\n

If successful, Amazon GameLift updates the capacity settings and returns the identifiers for\n the updated fleet and/or location. If a requested change to desired capacity exceeds the\n instance type's limit, the LimitExceeded exception occurs.

\n

Updates often prompt an immediate change in fleet capacity, such as when current\n capacity is different than the new desired capacity or outside the new limits. In this\n scenario, Amazon GameLift automatically initiates steps to add or remove instances in the fleet\n location. You can track a fleet's current capacity by calling DescribeFleetCapacity or DescribeFleetLocationCapacity.

\n

\n Learn more\n

\n

\n Scaling fleet\n capacity\n

" + "smithy.api#documentation": "

Updates capacity settings for a managed EC2 fleet or managed container fleet. For these\n fleets, you adjust capacity by changing the number of instances in the fleet. Fleet\n capacity determines the number of game sessions and players that the fleet can host\n based on its configuration. For fleets with multiple locations, use this operation to\n manage capacity settings in each location individually.

\n

Use this operation to set these fleet capacity properties:

\n
    \n
  • \n

    Minimum/maximum size: Set hard limits on the number of Amazon EC2 instances allowed. If Amazon GameLift receives a \n request--either through manual update or automatic scaling--it won't change the capacity \n to a value outside of this range.

    \n
  • \n
  • \n

    Desired capacity: As an alternative to automatic scaling, manually set the number of Amazon EC2 \n instances to be maintained. \n Before changing a fleet's desired capacity, check the maximum capacity of the\n fleet's Amazon EC2 instance type by calling DescribeEC2InstanceLimits.

    \n
  • \n
\n

To update capacity for a fleet's home Region, or if the fleet has no remote\n locations, omit the Location parameter. The fleet must be in\n ACTIVE status.

\n

To update capacity for a fleet's remote location, set the\n Location parameter to the location to update. The location must be in\n ACTIVE status.

\n

If successful, Amazon GameLift updates the capacity settings and returns the identifiers for\n the updated fleet and/or location. If a requested change to desired capacity exceeds the\n instance type's limit, the LimitExceeded exception occurs.

\n

Updates often prompt an immediate change in fleet capacity, such as when current\n capacity is different than the new desired capacity or outside the new limits. In this\n scenario, Amazon GameLift automatically initiates steps to add or remove instances in the fleet\n location. You can track a fleet's current capacity by calling DescribeFleetCapacity or DescribeFleetLocationCapacity.

\n

\n Learn more\n

\n

\n Scaling fleet\n capacity\n

" } }, "com.amazonaws.gamelift#UpdateFleetCapacityInput": { @@ -16436,7 +18210,7 @@ "Location": { "target": "com.amazonaws.gamelift#LocationStringModel", "traits": { - "smithy.api#documentation": "

The remote location being updated, expressed as an Amazon Web Services Region code, such as\n us-west-2.

" + "smithy.api#documentation": "

The remote location being updated, expressed as an Amazon Web Services Region code, such as\n us-west-2.

" } } }, @@ -16821,13 +18595,13 @@ "TimeoutInSeconds": { "target": "com.amazonaws.gamelift#WholeNumber", "traits": { - "smithy.api#documentation": "

The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status. By default, this property is set to 600.

" + "smithy.api#documentation": "

The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

" } }, "PlayerLatencyPolicies": { "target": "com.amazonaws.gamelift#PlayerLatencyPolicyList", "traits": { - "smithy.api#documentation": "

A set of policies that act as a sliding cap on player latency. FleetIQ works to\n deliver low latency for most players in a game session. These policies ensure that no\n individual player can be placed into a game with unreasonably high latency. Use multiple\n policies to gradually relax latency requirements a step at a time. Multiple policies are applied based on their\n maximum allowed latency, starting with the lowest value. When updating policies, provide a complete collection of policies.

" + "smithy.api#documentation": "

A set of policies that enforce a sliding cap on player latency when processing game sessions placement requests. \n\tUse multiple policies to gradually relax the cap over time if Amazon GameLift can't make a placement.\n\t Policies are evaluated in order starting with the lowest maximum latency value. When updating policies, provide a complete collection of policies.

" } }, "Destinations": { @@ -16961,7 +18735,7 @@ "AdditionalPlayerCount": { "target": "com.amazonaws.gamelift#WholeNumber", "traits": { - "smithy.api#documentation": "

The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies \n a match for a single 10-person team, and the additional player count is set to 2, 10 players will be selected for the match and 2 more player slots will be open for future players. This parameter is not used if FlexMatchMode is set to\n STANDALONE.

" + "smithy.api#documentation": "

The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies \n a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used if FlexMatchMode is set to\n STANDALONE.

" } }, "CustomEventData": { @@ -16979,7 +18753,7 @@ "GameSessionData": { "target": "com.amazonaws.gamelift#GameSessionData", "traits": { - "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session). This information is added to the game session\n that is created for a successful match. This parameter is not used if\n FlexMatchMode is set to STANDALONE.

" + "smithy.api#documentation": "

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session. For more information, see Start a game session. This information is added to the game session\n that is created for a successful match. This parameter is not used if\n FlexMatchMode is set to STANDALONE.

" } }, "BackfillMode": { @@ -17042,7 +18816,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the runtime configuration for the specified fleet. The runtime configuration\n tells Amazon GameLift how to launch server processes on computes in the fleet. For managed EC2\n fleets, it determines what server processes to run on each fleet instance. For container\n fleets, it describes what server processes to run in each replica container group. You\n can update a fleet's runtime configuration at any time after the fleet is created; it\n does not need to be in ACTIVE status.

\n

To update runtime configuration, specify the fleet ID and provide a\n RuntimeConfiguration with an updated set of server process\n configurations.

\n

If successful, the fleet's runtime configuration settings are updated. Fleet computes\n that run game server processes regularly check for and receive updated runtime\n configurations. The computes immediately take action to comply with the new\n configuration by launching new server processes or by not replacing existing processes\n when they shut down. Updating a fleet's runtime configuration never affects existing\n server processes.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" + "smithy.api#documentation": "

Updates the runtime configuration for the specified fleet. The runtime configuration\n tells Amazon GameLift how to launch server processes on computes in managed EC2 and Anywhere fleets. You\n can update a fleet's runtime configuration at any time after the fleet is created; it\n does not need to be in ACTIVE status.

\n

To update runtime configuration, specify the fleet ID and provide a\n RuntimeConfiguration with an updated set of server process\n configurations.

\n

If successful, the fleet's runtime configuration settings are updated. Fleet computes\n that run game server processes regularly check for and receive updated runtime\n configurations. The computes immediately take action to comply with the new\n configuration by launching new server processes or by not replacing existing processes\n when they shut down. Updating a fleet's runtime configuration never affects existing\n server processes.

\n

\n Learn more\n

\n

\n Setting up Amazon GameLift\n fleets\n

" } }, "com.amazonaws.gamelift#UpdateRuntimeConfigurationInput": { @@ -17123,13 +18897,13 @@ "Name": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

A descriptive label that is associated with a script. Script names don't need to be unique.

" + "smithy.api#documentation": "

A descriptive label that is associated with a script. Script names do not need to be unique.

" } }, "Version": { "target": "com.amazonaws.gamelift#NonZeroAndMaxString", "traits": { - "smithy.api#documentation": "

Version information associated with a build or script. Version strings don't need to be unique.

" + "smithy.api#documentation": "

Version information that is associated with a build or script. Version strings do not need to be unique.

" } }, "StorageLocation": { diff --git a/codegen/sdk-codegen/aws-models/payment-cryptography.json b/codegen/sdk-codegen/aws-models/payment-cryptography.json index e588cb15cc5..34c9f70680a 100644 --- a/codegen/sdk-codegen/aws-models/payment-cryptography.json +++ b/codegen/sdk-codegen/aws-models/payment-cryptography.json @@ -2113,7 +2113,7 @@ ], "traits": { "aws.api#controlPlane": {}, - "smithy.api#documentation": "

Lists the aliases for all keys in the caller's Amazon Web Services account and Amazon Web Services Region. You can filter the list of aliases. For more information, see Using aliases in the Amazon Web Services Payment Cryptography User Guide.

\n

This is a paginated operation, which means that each response might contain only a subset of all the aliases. When the response contains only a subset of aliases, it includes a NextToken value.\n Use this value in a subsequent ListAliases request to get more aliases. When you receive a response with no NextToken (or an empty or null value), that means there are no more aliases to get.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", + "smithy.api#documentation": "

Lists the aliases for all keys in the caller's Amazon Web Services account and Amazon Web Services Region. You can filter the aliases by keyARN. For more information, see Using aliases in the Amazon Web Services Payment Cryptography User Guide.

\n

This is a paginated operation, which means that each response might contain only a subset of all the aliases. When the response contains only a subset of aliases, it includes a NextToken value.\n Use this value in a subsequent ListAliases request to get more aliases. When you receive a response with no NextToken (or an empty or null value), that means there are no more aliases to get.

\n

\n Cross-account use: This operation can't be used across different Amazon Web Services accounts.

\n

\n Related operations:\n

\n ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -2126,6 +2126,12 @@ "com.amazonaws.paymentcryptography#ListAliasesInput": { "type": "structure", "members": { + "KeyArn": { + "target": "com.amazonaws.paymentcryptography#KeyArn", + "traits": { + "smithy.api#documentation": "

The keyARN for which you want to list all aliases.

" + } + }, "NextToken": { "target": "com.amazonaws.paymentcryptography#NextToken", "traits": { @@ -3419,7 +3425,9 @@ "Value": { "target": "com.amazonaws.paymentcryptography#TagValue", "traits": { - "smithy.api#documentation": "

The value of the tag.

" + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The value of the tag.

", + "smithy.api#required": {} } } }, @@ -3520,7 +3528,7 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 0, + "min": 1, "max": 256 } } @@ -3582,7 +3590,8 @@ "min": 2, "max": 4096 }, - "smithy.api#pattern": "^[0-9A-F]+$" + "smithy.api#pattern": "^[0-9A-F]+$", + "smithy.api#sensitive": {} } }, "com.amazonaws.paymentcryptography#TrustedCertificatePublicKey": { @@ -3816,7 +3825,8 @@ "min": 16, "max": 4096 }, - "smithy.api#pattern": "^[0-9A-F]+$" + "smithy.api#pattern": "^[0-9A-F]+$", + "smithy.api#sensitive": {} } }, "com.amazonaws.paymentcryptography#WrappedKeyMaterialFormat": { diff --git a/codegen/sdk-codegen/aws-models/rds.json b/codegen/sdk-codegen/aws-models/rds.json index 9b3af7257ed..292b9650661 100644 --- a/codegen/sdk-codegen/aws-models/rds.json +++ b/codegen/sdk-codegen/aws-models/rds.json @@ -4519,7 +4519,7 @@ "EngineLifecycleSupport": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The life cycle type for this DB cluster.

\n \n

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. \n At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, \n creating the DB cluster will fail if the DB major version is past its end of standard support date.

\n
\n

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, \n you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

\n \n

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

\n

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled\n

\n

Default: open-source-rds-extended-support\n

" + "smithy.api#documentation": "

The life cycle type for this DB cluster.

\n \n

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. \n At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, \n creating the DB cluster will fail if the DB major version is past its end of standard support date.

\n
\n

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, \n you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

\n \n

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

\n

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled\n

\n

Default: open-source-rds-extended-support\n

" } } }, @@ -27074,7 +27074,7 @@ "EngineLifecycleSupport": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The life cycle type for this DB cluster.

\n \n

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. \n At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, \n RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.

\n
\n

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, \n you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

\n \n

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

\n

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled\n

\n

Default: open-source-rds-extended-support\n

" + "smithy.api#documentation": "

The life cycle type for this DB cluster.

\n \n

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. \n At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, \n RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.

\n
\n

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, \n you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

\n \n

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

\n

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled\n

\n

Default: open-source-rds-extended-support\n

" } } }, @@ -27439,7 +27439,7 @@ "EngineLifecycleSupport": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The life cycle type for this DB cluster.

\n \n

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. \n At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, \n RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.

\n
\n

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, \n you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

\n \n

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

\n

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled\n

\n

Default: open-source-rds-extended-support\n

" + "smithy.api#documentation": "

The life cycle type for this DB cluster.

\n \n

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. \n At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, \n RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.

\n
\n

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, \n you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

\n \n

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

\n

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled\n

\n

Default: open-source-rds-extended-support\n

" } } }, @@ -27798,7 +27798,7 @@ "EngineLifecycleSupport": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

The life cycle type for this DB cluster.

\n \n

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. \n At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, \n RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.

\n
\n

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, \n you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

\n \n

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

\n

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled\n

\n

Default: open-source-rds-extended-support\n

" + "smithy.api#documentation": "

The life cycle type for this DB cluster.

\n \n

By default, this value is set to open-source-rds-extended-support, which enrolls your DB cluster into Amazon RDS Extended Support. \n At the end of standard support, you can avoid charges for Extended Support by setting the value to open-source-rds-extended-support-disabled. In this case, \n RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.

\n
\n

You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, \n you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:

\n \n

Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters

\n

Valid Values: open-source-rds-extended-support | open-source-rds-extended-support-disabled\n

\n

Default: open-source-rds-extended-support\n

" } } }, From 8a44a42100db1bd0c23d06b74d0f20816ba1806e Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Tue, 12 Nov 2024 19:26:16 +0000 Subject: [PATCH 10/20] Update endpoints model --- .../software/amazon/smithy/aws/go/codegen/endpoints.json | 1 + 1 file changed, 1 insertion(+) diff --git a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json index cfbb599d6a0..40b98a6d900 100644 --- a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json +++ b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json @@ -11528,6 +11528,7 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "kinesisanalytics-fips.ca-central-1.amazonaws.com", From c96e678745d7f854e69686ccb9284803e9c4115c Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Tue, 12 Nov 2024 19:45:36 +0000 Subject: [PATCH 11/20] Regenerated Clients --- .../18e4a35cbe7d43bc90a35e0d5da4f75a.json | 8 + .../5d830cbeeecd474fbdda500e84658c1b.json | 8 + .../9503de551b9743b6b67cd2077a3fd9fe.json | 8 + .../b167503de3914475bd4308d710486b13.json | 8 + .../c3e126caecbf4123a4f5ccbb9dc0a2a0.json | 8 + .../f4da35714b524c008a1ff49ac33b2961.json | 8 + service/codebuild/api_op_CreateFleet.go | 15 + service/codebuild/api_op_UpdateFleet.go | 15 + service/codebuild/types/enums.go | 6 + service/codebuild/types/types.go | 15 + .../api_op_ResetEnabledControl.go | 158 + .../api_op_UpdateEnabledControl.go | 9 +- service/controltower/deserializers.go | 174 + service/controltower/generated.json | 1 + service/controltower/serializers.go | 81 + .../api_op_ResetEnabledControl.go.snap | 41 + service/controltower/snapshot_test.go | 24 + service/controltower/types/enums.go | 2 + service/controltower/validators.go | 39 + .../fis/api_op_CreateExperimentTemplate.go | 3 + .../fis/api_op_UpdateExperimentTemplate.go | 3 + service/fis/deserializers.go | 779 ++- service/fis/serializers.go | 146 + service/fis/types/enums.go | 25 + service/fis/types/types.go | 264 + service/gamelift/api_op_CreateBuild.go | 64 +- .../gamelift/api_op_CreateContainerFleet.go | 401 ++ .../api_op_CreateContainerGroupDefinition.go | 183 +- service/gamelift/api_op_CreateFleet.go | 106 +- .../gamelift/api_op_CreateFleetLocations.go | 10 +- service/gamelift/api_op_CreateGameSession.go | 4 +- .../gamelift/api_op_CreateGameSessionQueue.go | 12 +- .../api_op_CreateMatchmakingConfiguration.go | 14 +- service/gamelift/api_op_CreateScript.go | 30 +- .../gamelift/api_op_DeleteContainerFleet.go | 164 + .../api_op_DeleteContainerGroupDefinition.go | 24 +- service/gamelift/api_op_DeregisterCompute.go | 21 +- service/gamelift/api_op_DescribeCompute.go | 19 +- .../gamelift/api_op_DescribeContainerFleet.go | 174 + ...api_op_DescribeContainerGroupDefinition.go | 23 +- .../api_op_DescribeFleetAttributes.go | 4 - .../gamelift/api_op_DescribeFleetCapacity.go | 6 +- .../api_op_DescribeFleetDeployment.go | 177 + .../api_op_DescribeFleetLocationCapacity.go | 4 +- .../api_op_DescribeFleetPortSettings.go | 12 +- .../api_op_DescribeRuntimeConfiguration.go | 8 +- service/gamelift/api_op_GetComputeAccess.go | 46 +- .../gamelift/api_op_GetComputeAuthToken.go | 33 +- service/gamelift/api_op_ListBuilds.go | 2 +- service/gamelift/api_op_ListCompute.go | 53 +- .../gamelift/api_op_ListContainerFleets.go | 287 + ...op_ListContainerGroupDefinitionVersions.go | 290 + .../api_op_ListContainerGroupDefinitions.go | 36 +- .../gamelift/api_op_ListFleetDeployments.go | 284 + service/gamelift/api_op_ListFleets.go | 12 - service/gamelift/api_op_ListScripts.go | 2 +- service/gamelift/api_op_RegisterCompute.go | 14 +- .../api_op_StartGameSessionPlacement.go | 14 +- service/gamelift/api_op_UpdateBuild.go | 8 +- .../gamelift/api_op_UpdateContainerFleet.go | 271 + .../api_op_UpdateContainerGroupDefinition.go | 237 + .../gamelift/api_op_UpdateFleetCapacity.go | 15 +- .../gamelift/api_op_UpdateGameSessionQueue.go | 14 +- .../api_op_UpdateMatchmakingConfiguration.go | 14 +- .../api_op_UpdateRuntimeConfiguration.go | 4 +- service/gamelift/api_op_UpdateScript.go | 6 +- service/gamelift/deserializers.go | 4709 ++++++++++++----- service/gamelift/generated.json | 9 + service/gamelift/serializers.go | 1538 +++++- .../api_op_CreateContainerFleet.go.snap | 41 + .../api_op_DeleteContainerFleet.go.snap | 41 + .../api_op_DescribeContainerFleet.go.snap | 41 + .../api_op_DescribeFleetDeployment.go.snap | 41 + .../api_op_ListContainerFleets.go.snap | 40 + ...stContainerGroupDefinitionVersions.go.snap | 41 + .../api_op_ListFleetDeployments.go.snap | 40 + .../api_op_UpdateContainerFleet.go.snap | 41 + ..._op_UpdateContainerGroupDefinition.go.snap | 41 + service/gamelift/snapshot_test.go | 216 + service/gamelift/types/enums.go | 293 +- service/gamelift/types/types.go | 1622 +++--- service/gamelift/validators.go | 540 +- .../internal/endpoints/endpoints.go | 3 + .../internal/endpoints/endpoints.go | 3 + .../paymentcryptography/api_op_ListAliases.go | 5 +- service/paymentcryptography/serializers.go | 5 + service/paymentcryptography/types/types.go | 2 + service/paymentcryptography/validators.go | 3 + service/rds/api_op_CreateDBCluster.go | 2 +- service/rds/api_op_RestoreDBClusterFromS3.go | 2 +- .../api_op_RestoreDBClusterFromSnapshot.go | 2 +- .../api_op_RestoreDBClusterToPointInTime.go | 2 +- 92 files changed, 11570 insertions(+), 2703 deletions(-) create mode 100644 .changelog/18e4a35cbe7d43bc90a35e0d5da4f75a.json create mode 100644 .changelog/5d830cbeeecd474fbdda500e84658c1b.json create mode 100644 .changelog/9503de551b9743b6b67cd2077a3fd9fe.json create mode 100644 .changelog/b167503de3914475bd4308d710486b13.json create mode 100644 .changelog/c3e126caecbf4123a4f5ccbb9dc0a2a0.json create mode 100644 .changelog/f4da35714b524c008a1ff49ac33b2961.json create mode 100644 service/controltower/api_op_ResetEnabledControl.go create mode 100644 service/controltower/snapshot/api_op_ResetEnabledControl.go.snap create mode 100644 service/gamelift/api_op_CreateContainerFleet.go create mode 100644 service/gamelift/api_op_DeleteContainerFleet.go create mode 100644 service/gamelift/api_op_DescribeContainerFleet.go create mode 100644 service/gamelift/api_op_DescribeFleetDeployment.go create mode 100644 service/gamelift/api_op_ListContainerFleets.go create mode 100644 service/gamelift/api_op_ListContainerGroupDefinitionVersions.go create mode 100644 service/gamelift/api_op_ListFleetDeployments.go create mode 100644 service/gamelift/api_op_UpdateContainerFleet.go create mode 100644 service/gamelift/api_op_UpdateContainerGroupDefinition.go create mode 100644 service/gamelift/snapshot/api_op_CreateContainerFleet.go.snap create mode 100644 service/gamelift/snapshot/api_op_DeleteContainerFleet.go.snap create mode 100644 service/gamelift/snapshot/api_op_DescribeContainerFleet.go.snap create mode 100644 service/gamelift/snapshot/api_op_DescribeFleetDeployment.go.snap create mode 100644 service/gamelift/snapshot/api_op_ListContainerFleets.go.snap create mode 100644 service/gamelift/snapshot/api_op_ListContainerGroupDefinitionVersions.go.snap create mode 100644 service/gamelift/snapshot/api_op_ListFleetDeployments.go.snap create mode 100644 service/gamelift/snapshot/api_op_UpdateContainerFleet.go.snap create mode 100644 service/gamelift/snapshot/api_op_UpdateContainerGroupDefinition.go.snap diff --git a/.changelog/18e4a35cbe7d43bc90a35e0d5da4f75a.json b/.changelog/18e4a35cbe7d43bc90a35e0d5da4f75a.json new file mode 100644 index 00000000000..555ccfc0d84 --- /dev/null +++ b/.changelog/18e4a35cbe7d43bc90a35e0d5da4f75a.json @@ -0,0 +1,8 @@ +{ + "id": "18e4a35c-be7d-43bc-90a3-5e0d5da4f75a", + "type": "feature", + "description": "Added ResetEnabledControl API.", + "modules": [ + "service/controltower" + ] +} \ No newline at end of file diff --git a/.changelog/5d830cbeeecd474fbdda500e84658c1b.json b/.changelog/5d830cbeeecd474fbdda500e84658c1b.json new file mode 100644 index 00000000000..2357a79367d --- /dev/null +++ b/.changelog/5d830cbeeecd474fbdda500e84658c1b.json @@ -0,0 +1,8 @@ +{ + "id": "5d830cbe-eecd-474f-bdda-500e84658c1b", + "type": "feature", + "description": "Updated ListAliases API with KeyArn filter.", + "modules": [ + "service/paymentcryptography" + ] +} \ No newline at end of file diff --git a/.changelog/9503de551b9743b6b67cd2077a3fd9fe.json b/.changelog/9503de551b9743b6b67cd2077a3fd9fe.json new file mode 100644 index 00000000000..75eddaa31b9 --- /dev/null +++ b/.changelog/9503de551b9743b6b67cd2077a3fd9fe.json @@ -0,0 +1,8 @@ +{ + "id": "9503de55-1b97-43b6-b67c-d2077a3fd9fe", + "type": "feature", + "description": "Amazon GameLift releases container fleets support for general availability. Deploy Linux-based containerized game server software for hosting on Amazon GameLift.", + "modules": [ + "service/gamelift" + ] +} \ No newline at end of file diff --git a/.changelog/b167503de3914475bd4308d710486b13.json b/.changelog/b167503de3914475bd4308d710486b13.json new file mode 100644 index 00000000000..3503982b21e --- /dev/null +++ b/.changelog/b167503de3914475bd4308d710486b13.json @@ -0,0 +1,8 @@ +{ + "id": "b167503d-e391-4475-bd43-08d710486b13", + "type": "documentation", + "description": "Updates Amazon RDS documentation for Amazon RDS Extended Support for Amazon Aurora MySQL.", + "modules": [ + "service/rds" + ] +} \ No newline at end of file diff --git a/.changelog/c3e126caecbf4123a4f5ccbb9dc0a2a0.json b/.changelog/c3e126caecbf4123a4f5ccbb9dc0a2a0.json new file mode 100644 index 00000000000..bad36180f63 --- /dev/null +++ b/.changelog/c3e126caecbf4123a4f5ccbb9dc0a2a0.json @@ -0,0 +1,8 @@ +{ + "id": "c3e126ca-ecbf-4123-a4f5-ccbb9dc0a2a0", + "type": "feature", + "description": "AWS CodeBuild now supports non-containerized Linux and Windows builds on Reserved Capacity.", + "modules": [ + "service/codebuild" + ] +} \ No newline at end of file diff --git a/.changelog/f4da35714b524c008a1ff49ac33b2961.json b/.changelog/f4da35714b524c008a1ff49ac33b2961.json new file mode 100644 index 00000000000..fdb23d68b56 --- /dev/null +++ b/.changelog/f4da35714b524c008a1ff49ac33b2961.json @@ -0,0 +1,8 @@ +{ + "id": "f4da3571-4b52-4c00-8a1f-f49ac33b2961", + "type": "feature", + "description": "This release adds support for generating experiment reports with the experiment report configuration", + "modules": [ + "service/fis" + ] +} \ No newline at end of file diff --git a/service/codebuild/api_op_CreateFleet.go b/service/codebuild/api_op_CreateFleet.go index 9ac6a61b197..dcc00d5657d 100644 --- a/service/codebuild/api_op_CreateFleet.go +++ b/service/codebuild/api_op_CreateFleet.go @@ -112,11 +112,21 @@ type CreateFleetInput struct { // (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), // EU (Frankfurt), and South America (São Paulo). // + // - The environment type ARM_EC2 is available only in regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia + // Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America + // (São Paulo), and Asia Pacific (Mumbai). + // // - The environment type LINUX_CONTAINER is available only in regions US East // (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), // Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South // America (São Paulo), and Asia Pacific (Mumbai). // + // - The environment type LINUX_EC2 is available only in regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia + // Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America + // (São Paulo), and Asia Pacific (Mumbai). + // // - The environment type LINUX_GPU_CONTAINER is available only in regions US // East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU // (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney). @@ -129,6 +139,11 @@ type CreateFleetInput struct { // US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific // (Sydney). // + // - The environment type WINDOWS_EC2 is available only in regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia + // Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America + // (São Paulo), and Asia Pacific (Mumbai). + // // - The environment type WINDOWS_SERVER_2019_CONTAINER is available only in // regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific // (Sydney), Asia Pacific (Tokyo), Asia Pacific (Mumbai) and EU (Ireland). diff --git a/service/codebuild/api_op_UpdateFleet.go b/service/codebuild/api_op_UpdateFleet.go index 7e56ef98db1..51ab16730ba 100644 --- a/service/codebuild/api_op_UpdateFleet.go +++ b/service/codebuild/api_op_UpdateFleet.go @@ -117,11 +117,21 @@ type UpdateFleetInput struct { // (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), // EU (Frankfurt), and South America (São Paulo). // + // - The environment type ARM_EC2 is available only in regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia + // Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America + // (São Paulo), and Asia Pacific (Mumbai). + // // - The environment type LINUX_CONTAINER is available only in regions US East // (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), // Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South // America (São Paulo), and Asia Pacific (Mumbai). // + // - The environment type LINUX_EC2 is available only in regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia + // Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America + // (São Paulo), and Asia Pacific (Mumbai). + // // - The environment type LINUX_GPU_CONTAINER is available only in regions US // East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU // (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney). @@ -134,6 +144,11 @@ type UpdateFleetInput struct { // US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific // (Sydney). // + // - The environment type WINDOWS_EC2 is available only in regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia + // Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America + // (São Paulo), and Asia Pacific (Mumbai). + // // - The environment type WINDOWS_SERVER_2019_CONTAINER is available only in // regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific // (Sydney), Asia Pacific (Tokyo), Asia Pacific (Mumbai) and EU (Ireland). diff --git a/service/codebuild/types/enums.go b/service/codebuild/types/enums.go index bd31915bf02..a4d3d80f42c 100644 --- a/service/codebuild/types/enums.go +++ b/service/codebuild/types/enums.go @@ -299,6 +299,9 @@ const ( EnvironmentTypeWindowsServer2019Container EnvironmentType = "WINDOWS_SERVER_2019_CONTAINER" EnvironmentTypeLinuxLambdaContainer EnvironmentType = "LINUX_LAMBDA_CONTAINER" EnvironmentTypeArmLambdaContainer EnvironmentType = "ARM_LAMBDA_CONTAINER" + EnvironmentTypeLinuxEc2 EnvironmentType = "LINUX_EC2" + EnvironmentTypeArmEc2 EnvironmentType = "ARM_EC2" + EnvironmentTypeWindowsEc2 EnvironmentType = "WINDOWS_EC2" EnvironmentTypeMacArm EnvironmentType = "MAC_ARM" ) @@ -315,6 +318,9 @@ func (EnvironmentType) Values() []EnvironmentType { "WINDOWS_SERVER_2019_CONTAINER", "LINUX_LAMBDA_CONTAINER", "ARM_LAMBDA_CONTAINER", + "LINUX_EC2", + "ARM_EC2", + "WINDOWS_EC2", "MAC_ARM", } } diff --git a/service/codebuild/types/types.go b/service/codebuild/types/types.go index af3e392b957..2a6c1a28418 100644 --- a/service/codebuild/types/types.go +++ b/service/codebuild/types/types.go @@ -1007,11 +1007,21 @@ type Fleet struct { // (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), // EU (Frankfurt), and South America (São Paulo). // + // - The environment type ARM_EC2 is available only in regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia + // Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America + // (São Paulo), and Asia Pacific (Mumbai). + // // - The environment type LINUX_CONTAINER is available only in regions US East // (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), // Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South // America (São Paulo), and Asia Pacific (Mumbai). // + // - The environment type LINUX_EC2 is available only in regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia + // Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America + // (São Paulo), and Asia Pacific (Mumbai). + // // - The environment type LINUX_GPU_CONTAINER is available only in regions US // East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU // (Frankfurt), Asia Pacific (Tokyo), and Asia Pacific (Sydney). @@ -1024,6 +1034,11 @@ type Fleet struct { // US East (N. Virginia), US East (Ohio), US West (Oregon), and Asia Pacific // (Sydney). // + // - The environment type WINDOWS_EC2 is available only in regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), EU (Ireland), EU (Frankfurt), Asia + // Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific (Sydney), South America + // (São Paulo), and Asia Pacific (Mumbai). + // // - The environment type WINDOWS_SERVER_2019_CONTAINER is available only in // regions US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific // (Sydney), Asia Pacific (Tokyo), Asia Pacific (Mumbai) and EU (Ireland). diff --git a/service/controltower/api_op_ResetEnabledControl.go b/service/controltower/api_op_ResetEnabledControl.go new file mode 100644 index 00000000000..fc242beaf7f --- /dev/null +++ b/service/controltower/api_op_ResetEnabledControl.go @@ -0,0 +1,158 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package controltower + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Resets an enabled control. +func (c *Client) ResetEnabledControl(ctx context.Context, params *ResetEnabledControlInput, optFns ...func(*Options)) (*ResetEnabledControlOutput, error) { + if params == nil { + params = &ResetEnabledControlInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ResetEnabledControl", params, optFns, c.addOperationResetEnabledControlMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ResetEnabledControlOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ResetEnabledControlInput struct { + + // The ARN of the enabled control to be reset. + // + // This member is required. + EnabledControlIdentifier *string + + noSmithyDocumentSerde +} + +type ResetEnabledControlOutput struct { + + // The operation identifier for this ResetEnabledControl operation. + // + // This member is required. + OperationIdentifier *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationResetEnabledControlMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpResetEnabledControl{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpResetEnabledControl{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ResetEnabledControl"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpResetEnabledControlValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opResetEnabledControl(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opResetEnabledControl(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ResetEnabledControl", + } +} diff --git a/service/controltower/api_op_UpdateEnabledControl.go b/service/controltower/api_op_UpdateEnabledControl.go index 4016ca02595..fc16c4145e1 100644 --- a/service/controltower/api_op_UpdateEnabledControl.go +++ b/service/controltower/api_op_UpdateEnabledControl.go @@ -20,10 +20,11 @@ import ( // If the enabled control shows an EnablementStatus of FAILED, Amazon Web Services // Control Tower updates the control to match any valid parameters that you supply. // -// If the DriftSummary status for the control shows as DRIFTED, you cannot call -// this API. Instead, you can update the control by calling DisableControl and -// again calling EnableControl , or you can run an extending governance operation. -// For usage examples, see the [Controls Reference Guide]. +// If the DriftSummary status for the control shows as DRIFTED , you cannot call +// this API. Instead, you can update the control by calling the ResetEnabledControl +// API. Alternatively, you can call DisableControl and then call EnableControl +// again. Also, you can run an extending governance operation to repair drift. For +// usage examples, see the [Controls Reference Guide]. // // [Controls Reference Guide]: https://docs.aws.amazon.com/controltower/latest/controlreference/control-api-examples-short.html func (c *Client) UpdateEnabledControl(ctx context.Context, params *UpdateEnabledControlInput, optFns ...func(*Options)) (*UpdateEnabledControlOutput, error) { diff --git a/service/controltower/deserializers.go b/service/controltower/deserializers.go index 2616a888f05..bf9aa10e778 100644 --- a/service/controltower/deserializers.go +++ b/service/controltower/deserializers.go @@ -3619,6 +3619,180 @@ func awsRestjson1_deserializeOpDocumentResetEnabledBaselineOutput(v **ResetEnabl return nil } +type awsRestjson1_deserializeOpResetEnabledControl struct { +} + +func (*awsRestjson1_deserializeOpResetEnabledControl) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpResetEnabledControl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorResetEnabledControl(response, &metadata) + } + output := &ResetEnabledControlOutput{} + 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_deserializeOpDocumentResetEnabledControlOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorResetEnabledControl(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(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_deserializeOpDocumentResetEnabledControlOutput(v **ResetEnabledControlOutput, 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 *ResetEnabledControlOutput + if *v == nil { + sv = &ResetEnabledControlOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "operationIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OperationIdentifier to be of type string, got %T instead", value) + } + sv.OperationIdentifier = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpResetLandingZone struct { } diff --git a/service/controltower/generated.json b/service/controltower/generated.json index 97470e2319a..6b491b3c901 100644 --- a/service/controltower/generated.json +++ b/service/controltower/generated.json @@ -29,6 +29,7 @@ "api_op_ListLandingZones.go", "api_op_ListTagsForResource.go", "api_op_ResetEnabledBaseline.go", + "api_op_ResetEnabledControl.go", "api_op_ResetLandingZone.go", "api_op_TagResource.go", "api_op_UntagResource.go", diff --git a/service/controltower/serializers.go b/service/controltower/serializers.go index 067079740d0..b89f4f1763e 100644 --- a/service/controltower/serializers.go +++ b/service/controltower/serializers.go @@ -1833,6 +1833,87 @@ func awsRestjson1_serializeOpDocumentResetEnabledBaselineInput(v *ResetEnabledBa return nil } +type awsRestjson1_serializeOpResetEnabledControl struct { +} + +func (*awsRestjson1_serializeOpResetEnabledControl) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpResetEnabledControl) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ResetEnabledControlInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/reset-enabled-control") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentResetEnabledControlInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsResetEnabledControlInput(v *ResetEnabledControlInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentResetEnabledControlInput(v *ResetEnabledControlInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EnabledControlIdentifier != nil { + ok := object.Key("enabledControlIdentifier") + ok.String(*v.EnabledControlIdentifier) + } + + return nil +} + type awsRestjson1_serializeOpResetLandingZone struct { } diff --git a/service/controltower/snapshot/api_op_ResetEnabledControl.go.snap b/service/controltower/snapshot/api_op_ResetEnabledControl.go.snap new file mode 100644 index 00000000000..5a1ec5a9338 --- /dev/null +++ b/service/controltower/snapshot/api_op_ResetEnabledControl.go.snap @@ -0,0 +1,41 @@ +ResetEnabledControl + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/controltower/snapshot_test.go b/service/controltower/snapshot_test.go index f79366b00ee..d6233bb3a6d 100644 --- a/service/controltower/snapshot_test.go +++ b/service/controltower/snapshot_test.go @@ -314,6 +314,18 @@ func TestCheckSnapshot_ResetEnabledBaseline(t *testing.T) { } } +func TestCheckSnapshot_ResetEnabledControl(t *testing.T) { + svc := New(Options{}) + _, err := svc.ResetEnabledControl(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ResetEnabledControl") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ResetLandingZone(t *testing.T) { svc := New(Options{}) _, err := svc.ResetLandingZone(context.Background(), nil, func(o *Options) { @@ -637,6 +649,18 @@ func TestUpdateSnapshot_ResetEnabledBaseline(t *testing.T) { } } +func TestUpdateSnapshot_ResetEnabledControl(t *testing.T) { + svc := New(Options{}) + _, err := svc.ResetEnabledControl(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ResetEnabledControl") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ResetLandingZone(t *testing.T) { svc := New(Options{}) _, err := svc.ResetLandingZone(context.Background(), nil, func(o *Options) { diff --git a/service/controltower/types/enums.go b/service/controltower/types/enums.go index 7d9d88a756a..6fd526c902c 100644 --- a/service/controltower/types/enums.go +++ b/service/controltower/types/enums.go @@ -74,6 +74,7 @@ const ( ControlOperationTypeEnableControl ControlOperationType = "ENABLE_CONTROL" ControlOperationTypeDisableControl ControlOperationType = "DISABLE_CONTROL" ControlOperationTypeUpdateEnabledControl ControlOperationType = "UPDATE_ENABLED_CONTROL" + ControlOperationTypeResetEnabledControl ControlOperationType = "RESET_ENABLED_CONTROL" ) // Values returns all known values for ControlOperationType. Note that this can be @@ -85,6 +86,7 @@ func (ControlOperationType) Values() []ControlOperationType { "ENABLE_CONTROL", "DISABLE_CONTROL", "UPDATE_ENABLED_CONTROL", + "RESET_ENABLED_CONTROL", } } diff --git a/service/controltower/validators.go b/service/controltower/validators.go index 3a315f67b8c..7fbb5e22ca3 100644 --- a/service/controltower/validators.go +++ b/service/controltower/validators.go @@ -310,6 +310,26 @@ func (m *validateOpResetEnabledBaseline) HandleInitialize(ctx context.Context, i return next.HandleInitialize(ctx, in) } +type validateOpResetEnabledControl struct { +} + +func (*validateOpResetEnabledControl) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpResetEnabledControl) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ResetEnabledControlInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpResetEnabledControlInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpResetLandingZone struct { } @@ -490,6 +510,10 @@ func addOpResetEnabledBaselineValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpResetEnabledBaseline{}, middleware.After) } +func addOpResetEnabledControlValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpResetEnabledControl{}, middleware.After) +} + func addOpResetLandingZoneValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpResetLandingZone{}, middleware.After) } @@ -834,6 +858,21 @@ func validateOpResetEnabledBaselineInput(v *ResetEnabledBaselineInput) error { } } +func validateOpResetEnabledControlInput(v *ResetEnabledControlInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ResetEnabledControlInput"} + if v.EnabledControlIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("EnabledControlIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpResetLandingZoneInput(v *ResetLandingZoneInput) error { if v == nil { return nil diff --git a/service/fis/api_op_CreateExperimentTemplate.go b/service/fis/api_op_CreateExperimentTemplate.go index 4f9371bc7fe..442178c592c 100644 --- a/service/fis/api_op_CreateExperimentTemplate.go +++ b/service/fis/api_op_CreateExperimentTemplate.go @@ -77,6 +77,9 @@ type CreateExperimentTemplateInput struct { // The experiment options for the experiment template. ExperimentOptions *types.CreateExperimentTemplateExperimentOptionsInput + // The experiment report configuration for the experiment template. + ExperimentReportConfiguration *types.CreateExperimentTemplateReportConfigurationInput + // The configuration for experiment logging. LogConfiguration *types.CreateExperimentTemplateLogConfigurationInput diff --git a/service/fis/api_op_UpdateExperimentTemplate.go b/service/fis/api_op_UpdateExperimentTemplate.go index 9b08e61d2a7..88cd78a2064 100644 --- a/service/fis/api_op_UpdateExperimentTemplate.go +++ b/service/fis/api_op_UpdateExperimentTemplate.go @@ -43,6 +43,9 @@ type UpdateExperimentTemplateInput struct { // The experiment options for the experiment template. ExperimentOptions *types.UpdateExperimentTemplateExperimentOptionsInput + // The experiment report configuration for the experiment template. + ExperimentReportConfiguration *types.UpdateExperimentTemplateReportConfigurationInput + // The configuration for experiment logging. LogConfiguration *types.UpdateExperimentTemplateLogConfigurationInput diff --git a/service/fis/deserializers.go b/service/fis/deserializers.go index ec4ed81f9ee..37d154c23f7 100644 --- a/service/fis/deserializers.go +++ b/service/fis/deserializers.go @@ -4576,6 +4576,16 @@ func awsRestjson1_deserializeDocumentExperiment(v **types.Experiment, value inte return err } + case "experimentReport": + if err := awsRestjson1_deserializeDocumentExperimentReport(&sv.ExperimentReport, value); err != nil { + return err + } + + case "experimentReportConfiguration": + if err := awsRestjson1_deserializeDocumentExperimentReportConfiguration(&sv.ExperimentReportConfiguration, value); err != nil { + return err + } + case "experimentTemplateId": if value != nil { jtv, ok := value.(string) @@ -5102,16 +5112,492 @@ func awsRestjson1_deserializeDocumentExperimentLogConfiguration(v **types.Experi return err } - default: - _, _ = key, value + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentOptions(v **types.ExperimentOptions, 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.ExperimentOptions + if *v == nil { + sv = &types.ExperimentOptions{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "accountTargeting": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AccountTargeting to be of type string, got %T instead", value) + } + sv.AccountTargeting = types.AccountTargeting(jtv) + } + + case "actionsMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ActionsMode to be of type string, got %T instead", value) + } + sv.ActionsMode = types.ActionsMode(jtv) + } + + case "emptyTargetResolutionMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EmptyTargetResolutionMode to be of type string, got %T instead", value) + } + sv.EmptyTargetResolutionMode = types.EmptyTargetResolutionMode(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReport(v **types.ExperimentReport, 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.ExperimentReport + if *v == nil { + sv = &types.ExperimentReport{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "s3Reports": + if err := awsRestjson1_deserializeDocumentExperimentReportS3ReportList(&sv.S3Reports, value); err != nil { + return err + } + + case "state": + if err := awsRestjson1_deserializeDocumentExperimentReportState(&sv.State, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReportConfiguration(v **types.ExperimentReportConfiguration, 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.ExperimentReportConfiguration + if *v == nil { + sv = &types.ExperimentReportConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "dataSources": + if err := awsRestjson1_deserializeDocumentExperimentReportConfigurationDataSources(&sv.DataSources, value); err != nil { + return err + } + + case "outputs": + if err := awsRestjson1_deserializeDocumentExperimentReportConfigurationOutputs(&sv.Outputs, value); err != nil { + return err + } + + case "postExperimentDuration": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReportConfigurationDuration to be of type string, got %T instead", value) + } + sv.PostExperimentDuration = ptr.String(jtv) + } + + case "preExperimentDuration": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReportConfigurationDuration to be of type string, got %T instead", value) + } + sv.PreExperimentDuration = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReportConfigurationCloudWatchDashboard(v **types.ExperimentReportConfigurationCloudWatchDashboard, 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.ExperimentReportConfigurationCloudWatchDashboard + if *v == nil { + sv = &types.ExperimentReportConfigurationCloudWatchDashboard{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "dashboardIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReportConfigurationCloudWatchDashboardIdentifier to be of type string, got %T instead", value) + } + sv.DashboardIdentifier = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReportConfigurationCloudWatchDashboardList(v *[]types.ExperimentReportConfigurationCloudWatchDashboard, 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.ExperimentReportConfigurationCloudWatchDashboard + if *v == nil { + cv = []types.ExperimentReportConfigurationCloudWatchDashboard{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ExperimentReportConfigurationCloudWatchDashboard + destAddr := &col + if err := awsRestjson1_deserializeDocumentExperimentReportConfigurationCloudWatchDashboard(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReportConfigurationDataSources(v **types.ExperimentReportConfigurationDataSources, 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.ExperimentReportConfigurationDataSources + if *v == nil { + sv = &types.ExperimentReportConfigurationDataSources{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "cloudWatchDashboards": + if err := awsRestjson1_deserializeDocumentExperimentReportConfigurationCloudWatchDashboardList(&sv.CloudWatchDashboards, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReportConfigurationOutputs(v **types.ExperimentReportConfigurationOutputs, 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.ExperimentReportConfigurationOutputs + if *v == nil { + sv = &types.ExperimentReportConfigurationOutputs{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "s3Configuration": + if err := awsRestjson1_deserializeDocumentExperimentReportConfigurationOutputsS3Configuration(&sv.S3Configuration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReportConfigurationOutputsS3Configuration(v **types.ExperimentReportConfigurationOutputsS3Configuration, 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.ExperimentReportConfigurationOutputsS3Configuration + if *v == nil { + sv = &types.ExperimentReportConfigurationOutputsS3Configuration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "bucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3BucketName to be of type string, got %T instead", value) + } + sv.BucketName = ptr.String(jtv) + } + + case "prefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3ObjectKey to be of type string, got %T instead", value) + } + sv.Prefix = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReportError(v **types.ExperimentReportError, 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.ExperimentReportError + if *v == nil { + sv = &types.ExperimentReportError{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "code": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExperimentReportErrorCode to be of type string, got %T instead", value) + } + sv.Code = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReportS3Report(v **types.ExperimentReportS3Report, 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.ExperimentReportS3Report + if *v == nil { + sv = &types.ExperimentReportS3Report{} + } 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 ExperimentReportS3ReportArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "reportType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ExperimentReportS3ReportType to be of type string, got %T instead", value) + } + sv.ReportType = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentReportS3ReportList(v *[]types.ExperimentReportS3Report, 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.ExperimentReportS3Report + if *v == nil { + cv = []types.ExperimentReportS3Report{} + } else { + cv = *v + } + for _, value := range shape { + var col types.ExperimentReportS3Report + destAddr := &col + if err := awsRestjson1_deserializeDocumentExperimentReportS3Report(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentExperimentOptions(v **types.ExperimentOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentExperimentReportState(v **types.ExperimentReportState, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5124,40 +5610,36 @@ func awsRestjson1_deserializeDocumentExperimentOptions(v **types.ExperimentOptio return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ExperimentOptions + var sv *types.ExperimentReportState if *v == nil { - sv = &types.ExperimentOptions{} + sv = &types.ExperimentReportState{} } else { sv = *v } for key, value := range shape { switch key { - case "accountTargeting": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AccountTargeting to be of type string, got %T instead", value) - } - sv.AccountTargeting = types.AccountTargeting(jtv) + case "error": + if err := awsRestjson1_deserializeDocumentExperimentReportError(&sv.Error, value); err != nil { + return err } - case "actionsMode": + case "reason": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ActionsMode to be of type string, got %T instead", value) + return fmt.Errorf("expected ExperimentReportReason to be of type string, got %T instead", value) } - sv.ActionsMode = types.ActionsMode(jtv) + sv.Reason = ptr.String(jtv) } - case "emptyTargetResolutionMode": + case "status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EmptyTargetResolutionMode to be of type string, got %T instead", value) + return fmt.Errorf("expected ExperimentReportStatus to be of type string, got %T instead", value) } - sv.EmptyTargetResolutionMode = types.EmptyTargetResolutionMode(jtv) + sv.Status = types.ExperimentReportStatus(jtv) } default: @@ -5949,6 +6431,11 @@ func awsRestjson1_deserializeDocumentExperimentTemplate(v **types.ExperimentTemp return err } + case "experimentReportConfiguration": + if err := awsRestjson1_deserializeDocumentExperimentTemplateReportConfiguration(&sv.ExperimentReportConfiguration, value); err != nil { + return err + } + case "id": if value != nil { jtv, ok := value.(string) @@ -6375,6 +6862,211 @@ func awsRestjson1_deserializeDocumentExperimentTemplateLogConfiguration(v **type return nil } +func awsRestjson1_deserializeDocumentExperimentTemplateReportConfiguration(v **types.ExperimentTemplateReportConfiguration, 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.ExperimentTemplateReportConfiguration + if *v == nil { + sv = &types.ExperimentTemplateReportConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "dataSources": + if err := awsRestjson1_deserializeDocumentExperimentTemplateReportConfigurationDataSources(&sv.DataSources, value); err != nil { + return err + } + + case "outputs": + if err := awsRestjson1_deserializeDocumentExperimentTemplateReportConfigurationOutputs(&sv.Outputs, value); err != nil { + return err + } + + case "postExperimentDuration": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReportConfigurationDuration to be of type string, got %T instead", value) + } + sv.PostExperimentDuration = ptr.String(jtv) + } + + case "preExperimentDuration": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReportConfigurationDuration to be of type string, got %T instead", value) + } + sv.PreExperimentDuration = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentTemplateReportConfigurationCloudWatchDashboard(v **types.ExperimentTemplateReportConfigurationCloudWatchDashboard, 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.ExperimentTemplateReportConfigurationCloudWatchDashboard + if *v == nil { + sv = &types.ExperimentTemplateReportConfigurationCloudWatchDashboard{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "dashboardIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReportConfigurationCloudWatchDashboardIdentifier to be of type string, got %T instead", value) + } + sv.DashboardIdentifier = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentTemplateReportConfigurationCloudWatchDashboardList(v *[]types.ExperimentTemplateReportConfigurationCloudWatchDashboard, 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.ExperimentTemplateReportConfigurationCloudWatchDashboard + if *v == nil { + cv = []types.ExperimentTemplateReportConfigurationCloudWatchDashboard{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ExperimentTemplateReportConfigurationCloudWatchDashboard + destAddr := &col + if err := awsRestjson1_deserializeDocumentExperimentTemplateReportConfigurationCloudWatchDashboard(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentTemplateReportConfigurationDataSources(v **types.ExperimentTemplateReportConfigurationDataSources, 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.ExperimentTemplateReportConfigurationDataSources + if *v == nil { + sv = &types.ExperimentTemplateReportConfigurationDataSources{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "cloudWatchDashboards": + if err := awsRestjson1_deserializeDocumentExperimentTemplateReportConfigurationCloudWatchDashboardList(&sv.CloudWatchDashboards, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentTemplateReportConfigurationOutputs(v **types.ExperimentTemplateReportConfigurationOutputs, 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.ExperimentTemplateReportConfigurationOutputs + if *v == nil { + sv = &types.ExperimentTemplateReportConfigurationOutputs{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "s3Configuration": + if err := awsRestjson1_deserializeDocumentReportConfigurationS3Output(&sv.S3Configuration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentExperimentTemplateS3LogConfiguration(v **types.ExperimentTemplateS3LogConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6891,6 +7583,55 @@ func awsRestjson1_deserializeDocumentExperimentTemplateTargetParameterMap(v *map return nil } +func awsRestjson1_deserializeDocumentReportConfigurationS3Output(v **types.ReportConfigurationS3Output, 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.ReportConfigurationS3Output + if *v == nil { + sv = &types.ReportConfigurationS3Output{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "bucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3BucketName to be of type string, got %T instead", value) + } + sv.BucketName = ptr.String(jtv) + } + + case "prefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3ObjectKey to be of type string, got %T instead", value) + } + sv.Prefix = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentResolvedTarget(v **types.ResolvedTarget, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/fis/serializers.go b/service/fis/serializers.go index fcb8518898e..a3e7ea08efb 100644 --- a/service/fis/serializers.go +++ b/service/fis/serializers.go @@ -112,6 +112,13 @@ func awsRestjson1_serializeOpDocumentCreateExperimentTemplateInput(v *CreateExpe } } + if v.ExperimentReportConfiguration != nil { + ok := object.Key("experimentReportConfiguration") + if err := awsRestjson1_serializeDocumentCreateExperimentTemplateReportConfigurationInput(v.ExperimentReportConfiguration, ok); err != nil { + return err + } + } + if v.LogConfiguration != nil { ok := object.Key("logConfiguration") if err := awsRestjson1_serializeDocumentCreateExperimentTemplateLogConfigurationInput(v.LogConfiguration, ok); err != nil { @@ -1968,6 +1975,13 @@ func awsRestjson1_serializeOpDocumentUpdateExperimentTemplateInput(v *UpdateExpe } } + if v.ExperimentReportConfiguration != nil { + ok := object.Key("experimentReportConfiguration") + if err := awsRestjson1_serializeDocumentUpdateExperimentTemplateReportConfigurationInput(v.ExperimentReportConfiguration, ok); err != nil { + return err + } + } + if v.LogConfiguration != nil { ok := object.Key("logConfiguration") if err := awsRestjson1_serializeDocumentUpdateExperimentTemplateLogConfigurationInput(v.LogConfiguration, ok); err != nil { @@ -2296,6 +2310,37 @@ func awsRestjson1_serializeDocumentCreateExperimentTemplateLogConfigurationInput return nil } +func awsRestjson1_serializeDocumentCreateExperimentTemplateReportConfigurationInput(v *types.CreateExperimentTemplateReportConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DataSources != nil { + ok := object.Key("dataSources") + if err := awsRestjson1_serializeDocumentExperimentTemplateReportConfigurationDataSourcesInput(v.DataSources, ok); err != nil { + return err + } + } + + if v.Outputs != nil { + ok := object.Key("outputs") + if err := awsRestjson1_serializeDocumentExperimentTemplateReportConfigurationOutputsInput(v.Outputs, ok); err != nil { + return err + } + } + + if v.PostExperimentDuration != nil { + ok := object.Key("postExperimentDuration") + ok.String(*v.PostExperimentDuration) + } + + if v.PreExperimentDuration != nil { + ok := object.Key("preExperimentDuration") + ok.String(*v.PreExperimentDuration) + } + + return nil +} + func awsRestjson1_serializeDocumentCreateExperimentTemplateStopConditionInput(v *types.CreateExperimentTemplateStopConditionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2430,6 +2475,34 @@ func awsRestjson1_serializeDocumentExperimentTemplateCloudWatchLogsLogConfigurat return nil } +func awsRestjson1_serializeDocumentExperimentTemplateReportConfigurationDataSourcesInput(v *types.ExperimentTemplateReportConfigurationDataSourcesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CloudWatchDashboards != nil { + ok := object.Key("cloudWatchDashboards") + if err := awsRestjson1_serializeDocumentReportConfigurationCloudWatchDashboardInputList(v.CloudWatchDashboards, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentExperimentTemplateReportConfigurationOutputsInput(v *types.ExperimentTemplateReportConfigurationOutputsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.S3Configuration != nil { + ok := object.Key("s3Configuration") + if err := awsRestjson1_serializeDocumentReportConfigurationS3OutputInput(v.S3Configuration, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentExperimentTemplateS3LogConfigurationInput(v *types.ExperimentTemplateS3LogConfigurationInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2501,6 +2574,48 @@ func awsRestjson1_serializeDocumentExperimentTemplateTargetParameterMap(v map[st return nil } +func awsRestjson1_serializeDocumentReportConfigurationCloudWatchDashboardInput(v *types.ReportConfigurationCloudWatchDashboardInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DashboardIdentifier != nil { + ok := object.Key("dashboardIdentifier") + ok.String(*v.DashboardIdentifier) + } + + return nil +} + +func awsRestjson1_serializeDocumentReportConfigurationCloudWatchDashboardInputList(v []types.ReportConfigurationCloudWatchDashboardInput, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentReportConfigurationCloudWatchDashboardInput(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentReportConfigurationS3OutputInput(v *types.ReportConfigurationS3OutputInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BucketName != nil { + ok := object.Key("bucketName") + ok.String(*v.BucketName) + } + + if v.Prefix != nil { + ok := object.Key("prefix") + ok.String(*v.Prefix) + } + + return nil +} + func awsRestjson1_serializeDocumentResourceArnList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -2625,6 +2740,37 @@ func awsRestjson1_serializeDocumentUpdateExperimentTemplateLogConfigurationInput return nil } +func awsRestjson1_serializeDocumentUpdateExperimentTemplateReportConfigurationInput(v *types.UpdateExperimentTemplateReportConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DataSources != nil { + ok := object.Key("dataSources") + if err := awsRestjson1_serializeDocumentExperimentTemplateReportConfigurationDataSourcesInput(v.DataSources, ok); err != nil { + return err + } + } + + if v.Outputs != nil { + ok := object.Key("outputs") + if err := awsRestjson1_serializeDocumentExperimentTemplateReportConfigurationOutputsInput(v.Outputs, ok); err != nil { + return err + } + } + + if v.PostExperimentDuration != nil { + ok := object.Key("postExperimentDuration") + ok.String(*v.PostExperimentDuration) + } + + if v.PreExperimentDuration != nil { + ok := object.Key("preExperimentDuration") + ok.String(*v.PreExperimentDuration) + } + + return nil +} + func awsRestjson1_serializeDocumentUpdateExperimentTemplateStopConditionInput(v *types.UpdateExperimentTemplateStopConditionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/fis/types/enums.go b/service/fis/types/enums.go index e39dcf46181..daeec1340de 100644 --- a/service/fis/types/enums.go +++ b/service/fis/types/enums.go @@ -92,6 +92,31 @@ func (ExperimentActionStatus) Values() []ExperimentActionStatus { } } +type ExperimentReportStatus string + +// Enum values for ExperimentReportStatus +const ( + ExperimentReportStatusPending ExperimentReportStatus = "pending" + ExperimentReportStatusRunning ExperimentReportStatus = "running" + ExperimentReportStatusCompleted ExperimentReportStatus = "completed" + ExperimentReportStatusCancelled ExperimentReportStatus = "cancelled" + ExperimentReportStatusFailed ExperimentReportStatus = "failed" +) + +// Values returns all known values for ExperimentReportStatus. 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 (ExperimentReportStatus) Values() []ExperimentReportStatus { + return []ExperimentReportStatus{ + "pending", + "running", + "completed", + "cancelled", + "failed", + } +} + type ExperimentStatus string // Enum values for ExperimentStatus diff --git a/service/fis/types/types.go b/service/fis/types/types.go index 5752d501498..f0cddcea6d9 100644 --- a/service/fis/types/types.go +++ b/service/fis/types/types.go @@ -134,6 +134,26 @@ type CreateExperimentTemplateLogConfigurationInput struct { noSmithyDocumentSerde } +// Specifies the configuration for experiment reports. +type CreateExperimentTemplateReportConfigurationInput struct { + + // The data sources for the experiment report. + DataSources *ExperimentTemplateReportConfigurationDataSourcesInput + + // The output destinations of the experiment report. + Outputs *ExperimentTemplateReportConfigurationOutputsInput + + // The duration after the experiment end time for the data sources to include in + // the report. + PostExperimentDuration *string + + // The duration before the experiment start time for the data sources to include + // in the report. + PreExperimentDuration *string + + noSmithyDocumentSerde +} + // Specifies a stop condition for an experiment template. type CreateExperimentTemplateStopConditionInput struct { @@ -215,6 +235,12 @@ type Experiment struct { // The experiment options for the experiment. ExperimentOptions *ExperimentOptions + // The experiment report for the experiment. + ExperimentReport *ExperimentReport + + // The experiment report configuration for the experiment. + ExperimentReportConfiguration *ExperimentReportConfiguration + // The ID of the experiment template. ExperimentTemplateId *string @@ -347,6 +373,119 @@ type ExperimentOptions struct { noSmithyDocumentSerde } +// Describes the experiment report. +type ExperimentReport struct { + + // The S3 destination of the experiment report. + S3Reports []ExperimentReportS3Report + + // The state of the experiment report. + State *ExperimentReportState + + noSmithyDocumentSerde +} + +// Describes the report configuration for the experiment. For more information, +// see [Experiment report configurations for AWS FIS]. +// +// [Experiment report configurations for AWS FIS]: https://docs.aws.amazon.com/fis/latest/userguide/experiment-report-configuration +type ExperimentReportConfiguration struct { + + // The data sources for the experiment report. + DataSources *ExperimentReportConfigurationDataSources + + // The output destinations of the experiment report. + Outputs *ExperimentReportConfigurationOutputs + + // The duration after the experiment end time for the data sources to include in + // the report. + PostExperimentDuration *string + + // The duration before the experiment start time for the data sources to include + // in the report. + PreExperimentDuration *string + + noSmithyDocumentSerde +} + +// Specifies the CloudWatch dashboard to include in the experiment report. The +// dashboard widgets will be captured as snapshot graphs within the report. +type ExperimentReportConfigurationCloudWatchDashboard struct { + + // The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the + // experiment report. + DashboardIdentifier *string + + noSmithyDocumentSerde +} + +// Describes the data sources for the experiment report. +type ExperimentReportConfigurationDataSources struct { + + // The CloudWatch dashboards to include as data sources in the experiment report. + CloudWatchDashboards []ExperimentReportConfigurationCloudWatchDashboard + + noSmithyDocumentSerde +} + +// Describes the output destinations of the experiment report. +type ExperimentReportConfigurationOutputs struct { + + // The S3 destination for the experiment report. + S3Configuration *ExperimentReportConfigurationOutputsS3Configuration + + noSmithyDocumentSerde +} + +// Specifies the S3 destination for the experiment report. +type ExperimentReportConfigurationOutputsS3Configuration struct { + + // The name of the S3 bucket where the experiment report will be stored. + BucketName *string + + // The prefix of the S3 bucket where the experiment report will be stored. + Prefix *string + + noSmithyDocumentSerde +} + +// Describes the error when experiment report generation has failed. +type ExperimentReportError struct { + + // The error code for the failed experiment report generation. + Code *string + + noSmithyDocumentSerde +} + +// Describes the S3 destination for the report. +type ExperimentReportS3Report struct { + + // The Amazon Resource Name (ARN) of the generated report. + Arn *string + + // The report type for the experiment report. + ReportType *string + + noSmithyDocumentSerde +} + +// Describes the state of the experiment report generation. +type ExperimentReportState struct { + + // The error information of the experiment when the experiment report generation + // has failed. + Error *ExperimentReportError + + // The reason for the state of the experiment report generation. + Reason *string + + // The state of the experiment report generation. + Status ExperimentReportStatus + + noSmithyDocumentSerde +} + // Describes the configuration for experiment logging to Amazon S3. type ExperimentS3LogConfiguration struct { @@ -497,6 +636,9 @@ type ExperimentTemplate struct { // The experiment options for an experiment template. ExperimentOptions *ExperimentTemplateExperimentOptions + // Describes the report configuration for the experiment template. + ExperimentReportConfiguration *ExperimentTemplateReportConfiguration + // The ID of the experiment template. Id *string @@ -594,6 +736,74 @@ type ExperimentTemplateLogConfiguration struct { noSmithyDocumentSerde } +// Describes the experiment report configuration. For more information, see [Experiment report configurations for AWS FIS]. +// +// [Experiment report configurations for AWS FIS]: https://docs.aws.amazon.com/fis/latest/userguide/experiment-report-configuration +type ExperimentTemplateReportConfiguration struct { + + // The data sources for the experiment report. + DataSources *ExperimentTemplateReportConfigurationDataSources + + // Describes the output destinations of the experiment report. + Outputs *ExperimentTemplateReportConfigurationOutputs + + // The duration after the experiment end time for the data sources to include in + // the report. + PostExperimentDuration *string + + // The duration before the experiment start time for the data sources to include + // in the report. + PreExperimentDuration *string + + noSmithyDocumentSerde +} + +// The CloudWatch dashboards to include as data sources in the experiment report. +type ExperimentTemplateReportConfigurationCloudWatchDashboard struct { + + // The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the + // experiment report. + DashboardIdentifier *string + + noSmithyDocumentSerde +} + +// Describes the data sources for the experiment report. +type ExperimentTemplateReportConfigurationDataSources struct { + + // The CloudWatch dashboards to include as data sources in the experiment report. + CloudWatchDashboards []ExperimentTemplateReportConfigurationCloudWatchDashboard + + noSmithyDocumentSerde +} + +// Specifies the data sources for the experiment report. +type ExperimentTemplateReportConfigurationDataSourcesInput struct { + + // The CloudWatch dashboards to include as data sources in the experiment report. + CloudWatchDashboards []ReportConfigurationCloudWatchDashboardInput + + noSmithyDocumentSerde +} + +// The output destinations of the experiment report. +type ExperimentTemplateReportConfigurationOutputs struct { + + // The S3 destination for the experiment report. + S3Configuration *ReportConfigurationS3Output + + noSmithyDocumentSerde +} + +// Specifies the outputs for the experiment templates. +type ExperimentTemplateReportConfigurationOutputsInput struct { + + // The S3 destination for the experiment report. + S3Configuration *ReportConfigurationS3OutputInput + + noSmithyDocumentSerde +} + // Describes the configuration for experiment logging to Amazon S3. type ExperimentTemplateS3LogConfiguration struct { @@ -712,6 +922,40 @@ type ExperimentTemplateTargetInputFilter struct { noSmithyDocumentSerde } +// Specifies the CloudWatch dashboard for the experiment report. +type ReportConfigurationCloudWatchDashboardInput struct { + + // The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the + // experiment report. + DashboardIdentifier *string + + noSmithyDocumentSerde +} + +// Describes the S3 destination for the experiment report. +type ReportConfigurationS3Output struct { + + // The name of the S3 bucket where the experiment report will be stored. + BucketName *string + + // The prefix of the S3 bucket where the experiment report will be stored. + Prefix *string + + noSmithyDocumentSerde +} + +// Specifies the S3 destination for the experiment report. +type ReportConfigurationS3OutputInput struct { + + // The name of the S3 bucket where the experiment report will be stored. + BucketName *string + + // The prefix of the S3 bucket where the experiment report will be stored. + Prefix *string + + noSmithyDocumentSerde +} + // Describes a resolved target. type ResolvedTarget struct { @@ -879,6 +1123,26 @@ type UpdateExperimentTemplateLogConfigurationInput struct { noSmithyDocumentSerde } +// Specifies the input for the experiment report configuration. +type UpdateExperimentTemplateReportConfigurationInput struct { + + // The data sources for the experiment report. + DataSources *ExperimentTemplateReportConfigurationDataSourcesInput + + // Describes the output destinations of the experiment report. + Outputs *ExperimentTemplateReportConfigurationOutputsInput + + // The duration after the experiment end time for the data sources to include in + // the report. + PostExperimentDuration *string + + // The duration before the experiment start time for the data sources to include + // in the report. + PreExperimentDuration *string + + noSmithyDocumentSerde +} + // Specifies a stop condition for an experiment. You can define a stop condition // as a CloudWatch alarm. type UpdateExperimentTemplateStopConditionInput struct { diff --git a/service/gamelift/api_op_CreateBuild.go b/service/gamelift/api_op_CreateBuild.go index 936a2b71797..4729493ee3f 100644 --- a/service/gamelift/api_op_CreateBuild.go +++ b/service/gamelift/api_op_CreateBuild.go @@ -11,33 +11,35 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new Amazon GameLift build resource for your game server binary files. -// Combine game server binaries into a zip file for use with Amazon GameLift. +// Creates an Amazon GameLift build resource for your game server software and +// stores the software for deployment to hosting resources. Combine game server +// binaries and dependencies into a single .zip file // -// When setting up a new game build for Amazon GameLift, we recommend using the -// CLI command [upload-build]. This helper command combines two tasks: (1) it uploads your build -// files from a file directory to an Amazon GameLift Amazon S3 location, and (2) it -// creates a new build resource. +// Use the CLI command [upload-build] to quickly and simply create a new build and upload your +// game build .zip file to Amazon GameLift Amazon S3. This helper command +// eliminates the need to explicitly manage access permissions. // -// You can use the CreateBuild operation in the following scenarios: +// Alternatively, use the CreateBuild action for the following scenarios: // -// - Create a new game build with build files that are in an Amazon S3 location -// under an Amazon Web Services account that you control. To use this option, you -// give Amazon GameLift access to the Amazon S3 bucket. With permissions in place, -// specify a build name, operating system, and the Amazon S3 storage location of -// your game build. +// - You want to create a build and upload a game build zip file from in an +// Amazon S3 location that you control. In this scenario, you need to give Amazon +// GameLift permission to access to the Amazon S3 bucket. With permission in place, +// call CreateBuild and specify a build name, the build's runtime operating +// system, and the Amazon S3 storage location where the build file is stored. // -// - Upload your build files to a Amazon GameLift Amazon S3 location. To use -// this option, specify a build name and operating system. This operation creates a -// new build resource and also returns an Amazon S3 location with temporary access -// credentials. Use the credentials to manually upload your build files to the -// specified Amazon S3 location. For more information, see [Uploading Objects]in the Amazon S3 -// Developer Guide. After you upload build files to the Amazon GameLift Amazon S3 -// location, you can't update them. +// - You want to create a build and upload a local game build zip file to an +// Amazon S3 location that's controlled by Amazon GameLift. (See the upload-build +// CLI command for this scenario.) In this scenario, you need to request temporary +// access credentials to the Amazon GameLift Amazon S3 location. Specify a build +// name and the build's runtime operating system. The response provides an Amazon +// S3 location and a set of temporary access credentials. Use the credentials to +// upload your build files to the specified Amazon S3 location (see [Uploading Objects]in the +// Amazon S3 Developer Guide). You can't update build files after uploading them to +// Amazon GameLift Amazon S3. // -// If successful, this operation creates a new build resource with a unique build -// ID and places it in INITIALIZED status. A build must be in READY status before -// you can create fleets with it. +// If successful, this action creates a new build resource with a unique build ID +// and places it in INITIALIZED status. When the build reaches READY status, you +// can create fleets with it. // // # Learn more // @@ -69,15 +71,15 @@ func (c *Client) CreateBuild(ctx context.Context, params *CreateBuildInput, optF type CreateBuildInput struct { - // A descriptive label associated with a build. Build names don't need to be - // unique. You can change this value later. + // A descriptive label that is associated with a build. Build names do not need to + // be unique. You can change this value later. Name *string - // The operating system that your game server binaries run on. This value - // determines the type of fleet resources that you use for this build. If your game - // build contains multiple executables, they all must run on the same operating - // system. You must specify a valid operating system in this request. There is no - // default value. You can't change a build's operating system later. + // The environment that your game server binaries run on. This value determines + // the type of fleet resources that you use for this build. If your game build + // contains multiple executables, they all must run on the same operating system. + // This parameter is required, and there's no default value. You can't change a + // build's operating system later. // // Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details // in the [Amazon Linux 2 FAQs]. For game servers that are hosted on AL2 and use Amazon GameLift server @@ -120,8 +122,8 @@ type CreateBuildInput struct { // [ListTagsForResource]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListTagsForResource.html Tags []types.Tag - // Version information associated with a build or script. Version strings don't - // need to be unique. You can change this value later. + // Version information that is associated with a build or script. Version strings + // do not need to be unique. You can change this value later. Version *string noSmithyDocumentSerde diff --git a/service/gamelift/api_op_CreateContainerFleet.go b/service/gamelift/api_op_CreateContainerFleet.go new file mode 100644 index 00000000000..22986b56889 --- /dev/null +++ b/service/gamelift/api_op_CreateContainerFleet.go @@ -0,0 +1,401 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a managed fleet of Amazon Elastic Compute Cloud (Amazon EC2) instances +// to host your containerized game servers. Use this operation to define how to +// deploy a container architecture onto each fleet instance and configure fleet +// settings. You can create a container fleet in any Amazon Web Services Regions +// that Amazon GameLift supports for multi-location fleets. A container fleet can +// be deployed to a single location or multiple locations. Container fleets are +// deployed with Amazon Linux 2023 as the instance operating system. +// +// Define the fleet's container architecture using container group definitions. +// Each fleet can have one of the following container group types: +// +// - The game server container group runs your game server build and dependent +// software. Amazon GameLift deploys one or more replicas of this container group +// to each fleet instance. The number of replicas depends on the computing +// capabilities of the fleet instance in use. +// +// - An optional per-instance container group might be used to run other +// software that only needs to run once per instance, such as background services, +// logging, or test processes. One per-instance container group is deployed to each +// fleet instance. +// +// Each container group can include the definition for one or more containers. A +// container definition specifies a container image that is stored in an Amazon +// Elastic Container Registry (Amazon ECR) public or private repository. +// +// # Request options +// +// Use this operation to make the following types of requests. Most fleet settings +// have default values, so you can create a working fleet with a minimal +// configuration and default values, which you can customize later. +// +// - Create a fleet with no container groups. You can configure a container +// fleet and then add container group definitions later. In this scenario, no fleet +// instances are deployed, and the fleet can't host game sessions until you add a +// game server container group definition. Provide the following required parameter +// values: +// +// - FleetRoleArn +// +// - Create a fleet with a game server container group. Provide the following +// required parameter values: +// +// - FleetRoleArn +// +// - GameServerContainerGroupDefinitionName +// +// - Create a fleet with a game server container group and a per-instance +// container group. Provide the following required parameter values: +// +// - FleetRoleArn +// +// - GameServerContainerGroupDefinitionName +// +// - PerInstanceContainerGroupDefinitionName +// +// # Results +// +// If successful, this operation creates a new container fleet resource, places it +// in PENDING status, and initiates the [fleet creation workflow]. For fleets with container groups, this +// workflow starts a fleet deployment and transitions the status to ACTIVE . Fleets +// without a container group are placed in CREATED status. +// +// You can update most of the properties of a fleet, including container group +// definitions, and deploy the update across all fleet instances. Use a fleet +// update to deploy a new game server version update across the container fleet. +// +// [fleet creation workflow]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-all.html#fleets-creation-workflow +func (c *Client) CreateContainerFleet(ctx context.Context, params *CreateContainerFleetInput, optFns ...func(*Options)) (*CreateContainerFleetOutput, error) { + if params == nil { + params = &CreateContainerFleetInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateContainerFleet", params, optFns, c.addOperationCreateContainerFleetMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateContainerFleetOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateContainerFleetInput struct { + + // The unique identifier for an Identity and Access Management (IAM) role with + // permissions to run your containers on resources that are managed by Amazon + // GameLift. Use an IAM service role with the GameLiftContainerFleetPolicy managed + // policy attached. For more information, see [Set up an IAM service role]. You can't change this fleet + // property after the fleet is created. + // + // IAM role ARN values use the following pattern: arn:aws:iam::[Amazon Web + // Services account]:role/[role name] . + // + // [Set up an IAM service role]: https://docs.aws.amazon.com/gamelift/latest/developerguide/setting-up-role.html + // + // This member is required. + FleetRoleArn *string + + // Indicates whether to use On-Demand or Spot instances for this fleet. Learn more + // about when to use [On-Demand versus Spot Instances]. This fleet property can't be changed after the fleet is + // created. + // + // By default, this property is set to ON_DEMAND . + // + // You can't update this fleet property later. + // + // [On-Demand versus Spot Instances]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot + BillingType types.ContainerFleetBillingType + + // A meaningful description of the container fleet. + Description *string + + // A container group definition resource that describes how to deploy containers + // with your game server build and support software onto each fleet instance. You + // can specify the container group definition's name to use the latest version. + // Alternatively, provide an ARN value with a specific version number. + // + // Create a container group definition by calling CreateContainerGroupDefinition. This operation creates a ContainerGroupDefinition + // resource. + GameServerContainerGroupDefinitionName *string + + // The number of times to replicate the game server container group on each fleet + // instance. + // + // By default, Amazon GameLift calculates the maximum number of game server + // container groups that can fit on each instance. This calculation is based on the + // CPU and memory resources of the fleet's instance type). To use the calculated + // maximum, don't set this parameter. If you set this number manually, Amazon + // GameLift uses your value as long as it's less than the calculated maximum. + GameServerContainerGroupsPerInstance *int32 + + // A policy that limits the number of game sessions that each individual player + // can create on instances in this fleet. The limit applies for a specified span of + // time. + GameSessionCreationLimitPolicy *types.GameSessionCreationLimitPolicy + + // The set of port numbers to open on each fleet instance. A fleet's connection + // ports map to container ports that are configured in the fleet's container group + // definitions. + // + // By default, Amazon GameLift calculates an optimal port range based on your + // fleet configuration. To use the calculated range, don't set this parameter. The + // values are: + // + // - Port range: 4192 to a number calculated based on your fleet configuration. + // Amazon GameLift uses the following formula: 4192 + [# of game server + // container groups per fleet instance] * [# of container ports in the game server + // container group definition] + [# of container ports in the game server container + // group definition] + // + // You can also choose to manually set this parameter. When manually setting this + // parameter, you must use port numbers that match the fleet's inbound permissions + // port range. + // + // If you set values manually, Amazon GameLift no longer calculates a port range + // for you, even if you later remove the manual settings. + InstanceConnectionPortRange *types.ConnectionPortRange + + // The IP address ranges and port settings that allow inbound traffic to access + // game server processes and other processes on this fleet. As a best practice, + // when remotely accessing a fleet instance, we recommend opening ports only when + // you need them and closing them when you're finished. + // + // By default, Amazon GameLift calculates an optimal port range based on your + // fleet configuration. To use the calculated range, don't set this parameter. The + // values are: + // + // - Protocol: UDP + // + // - Port range: 4192 to a number calculated based on your fleet configuration. + // Amazon GameLift uses the following formula: 4192 + [# of game server + // container groups per fleet instance] * [# of container ports in the game server + // container group definition] + [# of container ports in the game server container + // group definition] + // + // You can also choose to manually set this parameter. When manually setting this + // parameter, you must use port numbers that match the fleet's connection port + // range. + // + // If you set values manually, Amazon GameLift no longer calculates a port range + // for you, even if you later remove the manual settings. + InstanceInboundPermissions []types.IpPermission + + // The Amazon EC2 instance type to use for all instances in the fleet. For + // multi-location fleets, the instance type must be available in the home region + // and all remote locations. Instance type determines the computing resources and + // processing power that's available to host your game servers. This includes + // including CPU, memory, storage, and networking capacity. + // + // By default, Amazon GameLift selects an instance type that fits the needs of + // your container groups and is available in all selected fleet locations. You can + // also choose to manually set this parameter. See [Amazon Elastic Compute Cloud Instance Types]for detailed descriptions of + // Amazon EC2 instance types. + // + // You can't update this fleet property later. + // + // [Amazon Elastic Compute Cloud Instance Types]: http://aws.amazon.com/ec2/instance-types/ + InstanceType *string + + // A set of locations to deploy container fleet instances to. You can add any + // Amazon Web Services Region or Local Zone that's supported by Amazon GameLift. + // Provide a list of one or more Amazon Web Services Region codes, such as + // us-west-2 , or Local Zone names. Also include the fleet's home Region, which is + // the Amazon Web Services Region where the fleet is created. For a list of + // supported Regions and Local Zones, see [Amazon GameLift service locations]for managed hosting. + // + // [Amazon GameLift service locations]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-regions.html + Locations []types.LocationConfiguration + + // A method for collecting container logs for the fleet. Amazon GameLift saves all + // standard output for each container in logs, including game session logs. You can + // select from the following methods: + // + // - CLOUDWATCH -- Send logs to an Amazon CloudWatch log group that you define. + // Each container emits a log stream, which is organized in the log group. + // + // - S3 -- Store logs in an Amazon S3 bucket that you define. + // + // - NONE -- Don't collect container logs. + // + // By default, this property is set to CLOUDWATCH . + // + // Amazon GameLift requires permissions to send logs other Amazon Web Services + // services in your account. These permissions are included in the IAM fleet role + // for this container fleet (see FleetRoleArn) . + LogConfiguration *types.LogConfiguration + + // The name of an Amazon Web Services CloudWatch metric group to add this fleet + // to. You can use a metric group to aggregate metrics for multiple fleets. You can + // specify an existing metric group name or use a new name to create a new metric + // group. Each fleet can have only one metric group, but you can change this value + // at any time. + MetricGroups []string + + // Determines whether Amazon GameLift can shut down game sessions on the fleet + // that are actively running and hosting players. Amazon GameLift might prompt an + // instance shutdown when scaling down fleet capacity or when retiring unhealthy + // instances. You can also set game session protection for individual game sessions + // using UpdateGameSession. + // + // - NoProtection -- Game sessions can be shut down during active gameplay. + // + // - FullProtection -- Game sessions in ACTIVE status can't be shut down. + // + // By default, this property is set to NoProtection . + NewGameSessionProtectionPolicy types.ProtectionPolicy + + // The name of a container group definition resource that describes a set of + // axillary software. A fleet instance has one process for executables in this + // container group. A per-instance container group is optional. You can update the + // fleet to add or remove a per-instance container group at any time. You can + // specify the container group definition's name to use the latest version. + // Alternatively, provide an ARN value with a specific version number. + // + // Create a container group definition by calling CreateContainerGroupDefinition. This operation creates a ContainerGroupDefinition + // resource. + PerInstanceContainerGroupDefinitionName *string + + // A list of labels to assign to the new fleet resource. Tags are + // developer-defined key-value pairs. Tagging Amazon Web Services resources are + // useful for resource management, access management and cost allocation. For more + // information, see [Tagging Amazon Web Services Resources]in the Amazon Web Services General Reference. + // + // [Tagging Amazon Web Services Resources]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateContainerFleetOutput struct { + + // The properties for the new container fleet, including current status. All + // fleets are initially placed in PENDING status. + ContainerFleet *types.ContainerFleet + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateContainerFleetMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateContainerFleet{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateContainerFleet{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateContainerFleet"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpCreateContainerFleetValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateContainerFleet(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCreateContainerFleet(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateContainerFleet", + } +} diff --git a/service/gamelift/api_op_CreateContainerGroupDefinition.go b/service/gamelift/api_op_CreateContainerGroupDefinition.go index 58b734a129f..d08d3774397 100644 --- a/service/gamelift/api_op_CreateContainerGroupDefinition.go +++ b/service/gamelift/api_op_CreateContainerGroupDefinition.go @@ -11,57 +11,102 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is used with the Amazon GameLift containers feature, which is +// Creates a ContainerGroupDefinition that describes a set of containers for +// hosting your game server with Amazon GameLift managed containers hosting. An +// Amazon GameLift container group is similar to a container task or pod. Use +// container group definitions when you create a container fleet with CreateContainerFleet. // -// currently in public preview. +// A container group definition determines how Amazon GameLift deploys your +// containers to each instance in a container fleet. You can maintain multiple +// versions of a container group definition. // -// Creates a ContainerGroupDefinition resource that describes a set of containers -// for hosting your game server with Amazon GameLift managed EC2 hosting. An Amazon -// GameLift container group is similar to a container "task" and "pod". Each -// container group can have one or more containers. +// There are two types of container groups: // -// Use container group definitions when you create a container fleet. Container -// group definitions determine how Amazon GameLift deploys your containers to each -// instance in a container fleet. +// - A game server container group has the containers that run your game server +// application and supporting software. A game server container group can have +// these container types: // -// You can create two types of container groups, based on scheduling strategy: +// - Game server container. This container runs your game server. You can define +// one game server container in a game server container group. // -// - A replica container group manages the containers that run your game server -// application and supporting software. Replica container groups might be -// replicated multiple times on each fleet instance, depending on instance -// resources. +// - Support container. This container runs software in parallel with your game +// server. You can define up to 8 support containers in a game server group. // -// - A daemon container group manages containers that run other software, such -// as background services, logging, or test processes. You might use a daemon -// container group for processes that need to run only once per fleet instance, or -// processes that need to persist independently of the replica container group. +// When building a game server container group definition, you can choose to // -// To create a container group definition, specify a group name, a list of -// container definitions, and maximum total CPU and memory requirements for the -// container group. Specify an operating system and scheduling strategy or use the -// default values. When using the Amazon Web Services CLI tool, you can pass in -// your container definitions as a JSON file. +// bundle your game server executable and all dependent software into a single game +// server container. Alternatively, you can separate the software into one game +// server container and one or more support containers. +// +// On a container fleet instance, a game server container group can be deployed +// +// multiple times (depending on the compute resources of the instance). This means +// that all containers in the container group are replicated together. +// +// - A per-instance container group has containers for processes that aren't +// replicated on a container fleet instance. This might include background +// services, logging, test processes, or processes that need to persist +// independently of the game server container group. When building a per-instance +// container group, you can define up to 10 support containers. // // This operation requires Identity and Access Management (IAM) permissions to // access container images in Amazon ECR repositories. See [IAM permissions for Amazon GameLift]for help setting the // appropriate permissions. // -// If successful, this operation creates a new ContainerGroupDefinition resource -// with an ARN value assigned. You can't change the properties of a container group -// definition. Instead, create a new one. +// # Request options +// +// Use this operation to make the following types of requests. You can specify +// values for the minimum required parameters and customize optional values later. +// +// - Create a game server container group definition. Provide the following +// required parameter values: +// +// - Name +// +// - ContainerGroupType ( GAME_SERVER ) +// +// - OperatingSystem (omit to use default value) +// +// - TotalMemoryLimitMebibytes (omit to use default value) +// +// - TotalVcpuLimit (omit to use default value) +// +// - At least one GameServerContainerDefinition +// +// - ContainerName +// +// - ImageUrl +// +// - PortConfiguration +// +// - ServerSdkVersion (omit to use default value) +// +// - Create a per-instance container group definition. Provide the following +// required parameter values: +// +// - Name +// +// - ContainerGroupType ( PER_INSTANCE ) // -// # Learn more +// - OperatingSystem (omit to use default value) // -// [Create a container group definition] +// - TotalMemoryLimitMebibytes (omit to use default value) // -// [Container fleet design guide] +// - TotalVcpuLimit (omit to use default value) // -// [Create a container definition as a JSON file] +// - At least one SupportContainerDefinition +// +// - ContainerName +// +// - ImageUrl +// +// # Results +// +// If successful, this request creates a ContainerGroupDefinition resource and +// assigns a unique ARN value. You can update most properties of a container group +// definition by calling UpdateContainerGroupDefinition, and optionally save the update as a new version. // -// [Create a container definition as a JSON file]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-definitions.html#containers-definitions-create -// [Create a container group definition]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-create-groups.html // [IAM permissions for Amazon GameLift]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-iam-policy-examples.html -// [Container fleet design guide]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet.html func (c *Client) CreateContainerGroupDefinition(ctx context.Context, params *CreateContainerGroupDefinitionInput, optFns ...func(*Options)) (*CreateContainerGroupDefinitionOutput, error) { if params == nil { params = &CreateContainerGroupDefinitionInput{} @@ -79,27 +124,20 @@ func (c *Client) CreateContainerGroupDefinition(ctx context.Context, params *Cre type CreateContainerGroupDefinitionInput struct { - // Definitions for all containers in this group. Each container definition - // identifies the container image and specifies configuration settings for the - // container. See the [Container fleet design guide]for container guidelines. - // - // [Container fleet design guide]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet.html - // - // This member is required. - ContainerDefinitions []types.ContainerDefinitionInput - // A descriptive identifier for the container group definition. The name value // must be unique in an Amazon Web Services Region. // // This member is required. Name *string - // The platform that is used by containers in the container group definition. All - // containers in a group must run on the same operating system. + // The platform that all containers in the group use. Containers in a group must + // run on the same operating system. + // + // Default value: AMAZON_LINUX_2023 // // Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details // in the [Amazon Linux 2 FAQs]. For game servers that are hosted on AL2 and use Amazon GameLift server - // SDK 4.x., first update the game server build to server SDK 5.x, and then deploy + // SDK 4.x, first update the game server build to server SDK 5.x, and then deploy // to AL2023 instances. See [Migrate to Amazon GameLift server SDK version 5.] // // [Amazon Linux 2 FAQs]: https://aws.amazon.com/amazon-linux-2/faqs/ @@ -108,30 +146,42 @@ type CreateContainerGroupDefinitionInput struct { // This member is required. OperatingSystem types.ContainerOperatingSystem - // The maximum amount of CPU units to allocate to the container group. Set this - // parameter to an integer value in CPU units (1 vCPU is equal to 1024 CPU units). - // All containers in the group share this memory. If you specify CPU limits for - // individual containers, set this parameter based on the following guidelines. The - // value must be equal to or greater than the sum of the CPU limits for all - // containers in the group. + // The maximum amount of memory (in MiB) to allocate to the container group. All + // containers in the group share this memory. If you specify memory limits for an + // individual container, the total value must be greater than any individual + // container's memory limit. + // + // Default value: 1024 // // This member is required. - TotalCpuLimit *int32 + TotalMemoryLimitMebibytes *int32 - // The maximum amount of memory (in MiB) to allocate to the container group. All - // containers in the group share this memory. If you specify memory limits for - // individual containers, set this parameter based on the following guidelines. The - // value must be (1) greater than the sum of the soft memory limits for all - // containers in the group, and (2) greater than any individual container's hard - // memory limit. + // The maximum amount of vCPU units to allocate to the container group (1 vCPU is + // equal to 1024 CPU units). All containers in the group share this memory. If you + // specify vCPU limits for individual containers, the total value must be equal to + // or greater than the sum of the CPU limits for all containers in the group. + // + // Default value: 1 // // This member is required. - TotalMemoryLimit *int32 + TotalVcpuLimit *float64 - // The method for deploying the container group across fleet instances. A replica - // container group might have multiple copies on each fleet instance. A daemon - // container group has one copy per fleet instance. Default value is REPLICA . - SchedulingStrategy types.ContainerSchedulingStrategy + // The type of container group being defined. Container group type determines how + // Amazon GameLift deploys the container group on each fleet instance. + // + // Default value: GAME_SERVER + ContainerGroupType types.ContainerGroupType + + // The definition for the game server container in this group. Define a game + // server container only when the container group type is GAME_SERVER . Game server + // containers specify a container image with your game server build. You can pass + // in your container definitions as a JSON file. + GameServerContainerDefinition *types.GameServerContainerDefinitionInput + + // One or more definition for support containers in this group. You can define a + // support container in any type of container group. You can pass in your container + // definitions as a JSON file. + SupportContainerDefinitions []types.SupportContainerDefinitionInput // A list of labels to assign to the container group definition resource. Tags are // developer-defined key-value pairs. Tagging Amazon Web Services resources are @@ -141,13 +191,16 @@ type CreateContainerGroupDefinitionInput struct { // [Tagging Amazon Web Services Resources]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tags []types.Tag + // A description for the initial version of this container group definition. + VersionDescription *string + noSmithyDocumentSerde } type CreateContainerGroupDefinitionOutput struct { - // The properties of the newly created container group definition resource. You - // use this resource to create a container fleet. + // The properties of the new container group definition resource. You can use this + // resource to create a container fleet. ContainerGroupDefinition *types.ContainerGroupDefinition // Metadata pertaining to the operation's result. diff --git a/service/gamelift/api_op_CreateFleet.go b/service/gamelift/api_op_CreateFleet.go index 3f1b08a7a11..fb2d5de0412 100644 --- a/service/gamelift/api_op_CreateFleet.go +++ b/service/gamelift/api_op_CreateFleet.go @@ -11,10 +11,6 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // Creates a fleet of compute resources to host your game servers. Use this // operation to set up the following types of fleets based on compute type: // @@ -51,38 +47,6 @@ import ( // When the fleet status is ACTIVE, you can adjust capacity settings and turn // autoscaling on/off for each location. // -// # Managed container fleet -// -// A container fleet is a set of Amazon Elastic Compute Cloud (Amazon EC2) -// instances. Your container architecture is deployed to each fleet instance based -// on the fleet configuration. Amazon GameLift manages the containers on each fleet -// instance and controls the lifecycle of game server processes, which host game -// sessions for players. Container fleets can have instances in multiple locations. -// Each container on an instance that runs game server processes is registered as a -// Compute . -// -// To create a container fleet, provide these required parameters: -// -// - ComputeType set to CONTAINER -// -// - ContainerGroupsConfiguration -// -// - EC2InboundPermissions -// -// - EC2InstanceType -// -// - FleetType set to ON_DEMAND -// -// - Name -// -// - RuntimeConfiguration with at least one ServerProcesses configuration -// -// If successful, this operation creates a new fleet resource and places it in NEW -// status while Amazon GameLift initiates the [fleet creation workflow]. -// -// When the fleet status is ACTIVE, you can adjust capacity settings and turn -// autoscaling on/off for each location. -// // # Anywhere fleet // // An Anywhere fleet represents compute resources that are not owned or managed by @@ -105,14 +69,11 @@ import ( // // [Setting up fleets] // -// [Setting up a container fleet] -// // [Debug fleet creation issues] // // [Multi-location fleets] // // [fleet creation workflow]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-all.html#fleets-creation-workflow -// [Setting up a container fleet]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-build-fleet.html // [Multi-location fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html // [Debug fleet creation issues]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html#fleets-creating-debug-creation // [Setting up fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html @@ -172,44 +133,27 @@ type CreateFleetInput struct { // - EC2 – The game server build is deployed to Amazon EC2 instances for cloud // hosting. This is the default setting. // - // - CONTAINER – Container images with your game server build and supporting - // software are deployed to Amazon EC2 instances for cloud hosting. With this - // compute type, you must specify the ContainerGroupsConfiguration parameter. - // - // - ANYWHERE – Game servers or container images with your game server and - // supporting software are deployed to compute resources that are provided and - // managed by you. With this compute type, you can also set the - // AnywhereConfiguration parameter. + // - ANYWHERE – Your game server and supporting software is deployed to compute + // resources that are provided and managed by you. With this compute type, you can + // also set the AnywhereConfiguration parameter. ComputeType types.ComputeType - // The container groups to deploy to instances in the container fleet and other - // fleet-level configuration settings. Use the CreateContainerGroupDefinitionaction to create container groups. - // A container fleet must have exactly one replica container group, and can - // optionally have one daemon container group. You can't change this property after - // you create the fleet. - ContainerGroupsConfiguration *types.ContainerGroupsConfiguration - // A description for the fleet. Description *string // The IP address ranges and port settings that allow inbound traffic to access // game server processes and other processes on this fleet. Set this parameter for - // EC2 and container fleets. You can leave this parameter empty when creating the - // fleet, but you must call UpdateFleetPortSettingsto set it before players can connect to game sessions. - // As a best practice, we recommend opening ports for remote access only when you - // need them and closing them when you're finished. For Realtime Servers fleets, - // Amazon GameLift automatically sets TCP and UDP ranges. - // - // To manage inbound access for a container fleet, set this parameter to the same - // port numbers that you set for the fleet's connection port range. During the life - // of the fleet, update this parameter to control which connection ports are open - // to inbound traffic. + // managed EC2 fleets. You can leave this parameter empty when creating the fleet, + // but you must call UpdateFleetPortSettingsto set it before players can connect to game sessions. As a + // best practice, we recommend opening ports for remote access only when you need + // them and closing them when you're finished. For Realtime Servers fleets, Amazon + // GameLift automatically sets TCP and UDP ranges. EC2InboundPermissions []types.IpPermission - // The Amazon GameLift-supported Amazon EC2 instance type to use with EC2 and - // container fleets. Instance type determines the computing resources that will be - // used to host your game servers, including CPU, memory, storage, and networking - // capacity. See [Amazon Elastic Compute Cloud Instance Types]for detailed descriptions of Amazon EC2 instance types. + // The Amazon GameLift-supported Amazon EC2 instance type to use with managed EC2 + // fleets. Instance type determines the computing resources that will be used to + // host your game servers, including CPU, memory, storage, and networking capacity. + // See [Amazon Elastic Compute Cloud Instance Types]for detailed descriptions of Amazon EC2 instance types. // // [Amazon Elastic Compute Cloud Instance Types]: http://aws.amazon.com/ec2/instance-types/ EC2InstanceType types.EC2InstanceType @@ -221,14 +165,16 @@ type CreateFleetInput struct { // [On-Demand versus Spot Instances]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot FleetType types.FleetType - // A unique identifier for an IAM role with access permissions to other Amazon Web - // Services services. Any application that runs on an instance in the - // fleet--including install scripts, server processes, and other processes--can use - // these permissions to interact with Amazon Web Services resources that you own or - // have access to. For more information about using the role with your game server - // builds, see [Communicate with other Amazon Web Services resources from your fleets]. This fleet property can't be changed after the fleet is created. + // A unique identifier for an IAM role that manages access to your Amazon Web + // Services services. With an instance role ARN set, any application that runs on + // an instance in this fleet can assume the role, including install scripts, server + // processes, and daemons (background processes). Create a role or look up a role's + // ARN by using the [IAM dashboard]in the Amazon Web Services Management Console. Learn more + // about using on-box credentials for your game servers at [Access external resources from a game server]. This fleet property + // can't be changed after the fleet is created. // - // [Communicate with other Amazon Web Services resources from your fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html + // [IAM dashboard]: https://console.aws.amazon.com/iam/ + // [Access external resources from a game server]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html InstanceRoleArn *string // Prompts Amazon GameLift to generate a shared credentials file for the IAM role @@ -297,11 +243,11 @@ type CreateFleetInput struct { ResourceCreationLimitPolicy *types.ResourceCreationLimitPolicy // Instructions for how to launch and run server processes on the fleet. Set - // runtime configuration for EC2 fleets and container fleets. For an Anywhere - // fleets, set this parameter only if the fleet is running the Amazon GameLift - // Agent. The runtime configuration defines one or more server process - // configurations. Each server process identifies a game executable or Realtime - // script file and the number of processes to run concurrently. + // runtime configuration for managed EC2 fleets. For an Anywhere fleets, set this + // parameter only if the fleet is running the Amazon GameLift Agent. The runtime + // configuration defines one or more server process configurations. Each server + // process identifies a game executable or Realtime script file and the number of + // processes to run concurrently. // // This parameter replaces the parameters ServerLaunchPath and // ServerLaunchParameters , which are still supported for backward compatibility. diff --git a/service/gamelift/api_op_CreateFleetLocations.go b/service/gamelift/api_op_CreateFleetLocations.go index f308c6ffc89..474a4c8a19e 100644 --- a/service/gamelift/api_op_CreateFleetLocations.go +++ b/service/gamelift/api_op_CreateFleetLocations.go @@ -11,13 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// -// Adds remote locations to an EC2 or container fleet and begins populating the -// new locations with instances. The new instances conform to the fleet's instance -// type, auto-scaling, and other configuration settings. +// Adds remote locations to a managed EC2 fleet or managed container fleet and +// begins populating the new locations with instances. The new instances conform to +// the fleet's instance type, auto-scaling, and other configuration settings. // // You can't add remote locations to a fleet that resides in an Amazon Web // Services Region that doesn't support multiple locations. Fleets created prior to diff --git a/service/gamelift/api_op_CreateGameSession.go b/service/gamelift/api_op_CreateGameSession.go index f1004068d1e..6bdea4d078a 100644 --- a/service/gamelift/api_op_CreateGameSession.go +++ b/service/gamelift/api_op_CreateGameSession.go @@ -111,9 +111,9 @@ type CreateGameSessionInput struct { // A set of custom game session properties, formatted as a single string value. // This data is passed to a game server process with a request to start a new game - // session (see [Start a Game Session]). + // session. For more information, see [Start a game session]. // - // [Start a Game Session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession + // [Start a game session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession GameSessionData *string // This parameter is deprecated. Use IdempotencyToken instead. diff --git a/service/gamelift/api_op_CreateGameSessionQueue.go b/service/gamelift/api_op_CreateGameSessionQueue.go index a8ab3e5bd43..78f5543e982 100644 --- a/service/gamelift/api_op_CreateGameSessionQueue.go +++ b/service/gamelift/api_op_CreateGameSessionQueue.go @@ -104,12 +104,10 @@ type CreateGameSessionQueueInput struct { // [Setting up notifications for game session placement]: https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html NotificationTarget *string - // A set of policies that act as a sliding cap on player latency. FleetIQ works to - // deliver low latency for most players in a game session. These policies ensure - // that no individual player can be placed into a game with unreasonably high - // latency. Use multiple policies to gradually relax latency requirements a step at - // a time. Multiple policies are applied based on their maximum allowed latency, - // starting with the lowest value. + // A set of policies that enforce a sliding cap on player latency when processing + // game sessions placement requests. Use multiple policies to gradually relax the + // cap over time if Amazon GameLift can't make a placement. Policies are evaluated + // in order starting with the lowest maximum latency value. PlayerLatencyPolicies []types.PlayerLatencyPolicy // Custom settings to use when prioritizing destinations and locations for game @@ -128,7 +126,7 @@ type CreateGameSessionQueueInput struct { // The maximum time, in seconds, that a new game session placement request remains // in the queue. When a request exceeds this time, the game session placement - // changes to a TIMED_OUT status. By default, this property is set to 600 . + // changes to a TIMED_OUT status. TimeoutInSeconds *int32 noSmithyDocumentSerde diff --git a/service/gamelift/api_op_CreateMatchmakingConfiguration.go b/service/gamelift/api_op_CreateMatchmakingConfiguration.go index 86f060ac2a8..d50513ebfae 100644 --- a/service/gamelift/api_op_CreateMatchmakingConfiguration.go +++ b/service/gamelift/api_op_CreateMatchmakingConfiguration.go @@ -91,9 +91,9 @@ type CreateMatchmakingConfigurationInput struct { // The number of player slots in a match to keep open for future players. For // example, if the configuration's rule set specifies a match for a single - // 10-person team, and the additional player count is set to 2, 10 players will be - // selected for the match and 2 more player slots will be open for future players. - // This parameter is not used if FlexMatchMode is set to STANDALONE . + // 12-person team, and the additional player count is set to 2, only 10 players are + // selected for the match. This parameter is not used if FlexMatchMode is set to + // STANDALONE . AdditionalPlayerCount *int32 // The method used to backfill game sessions that are created with this @@ -133,11 +133,11 @@ type CreateMatchmakingConfigurationInput struct { // A set of custom game session properties, formatted as a single string value. // This data is passed to a game server process with a request to start a new game - // session (see [Start a Game Session]). This information is added to the new GameSession object that is - // created for a successful match. This parameter is not used if FlexMatchMode is - // set to STANDALONE . + // session. For more information, see [Start a game session]. This information is added to the new + // GameSession object that is created for a successful match. This parameter is not + // used if FlexMatchMode is set to STANDALONE . // - // [Start a Game Session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession + // [Start a game session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession GameSessionData *string // The Amazon Resource Name ([ARN] ) that is assigned to a Amazon GameLift game session diff --git a/service/gamelift/api_op_CreateScript.go b/service/gamelift/api_op_CreateScript.go index 751a05a060c..1ebb3b9e5d7 100644 --- a/service/gamelift/api_op_CreateScript.go +++ b/service/gamelift/api_op_CreateScript.go @@ -11,15 +11,15 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new script record for your Realtime Servers script. Realtime scripts -// are JavaScript that provide configuration settings and optional custom game -// logic for your game. The script is deployed when you create a Realtime Servers -// fleet to host your game sessions. Script logic is executed during an active game -// session. +// Creates a script resource for your Realtime Servers script. Realtime scripts +// are JavaScript files that provide configuration settings and optional custom +// game logic for your game. Script logic is executed during an active game +// session. To deploy Realtime Servers for hosting, create an Amazon GameLift +// managed fleet with the script. // -// To create a new script record, specify a script name and provide the script -// file(s). The script files and all dependencies must be zipped into a single -// file. You can pull the zip file from either of these locations: +// To create a script resource, specify a script name and provide the script +// file(s). The script files and all dependencies must be combined into a single +// .zip file. You can upload the .zip file from either of these locations: // // - A locally available directory. Use the ZipFile parameter for this option. // @@ -28,11 +28,9 @@ import ( // to have an Identity Access Management (IAM) role that allows the Amazon GameLift // service to access your S3 bucket. // -// If the call is successful, a new script record is created with a unique script -// ID. If the script file is provided as a local file, the file is uploaded to an -// Amazon GameLift-owned S3 bucket and the script record's storage location -// reflects this location. If the script file is provided as an S3 bucket, Amazon -// GameLift accesses the file at this storage location as needed for deployment. +// If the call is successful, Amazon GameLift creates a new script resource with a +// unique script ID. The script is uploaded to an Amazon S3 bucket that is owned by +// Amazon GameLift. // // # Learn more // @@ -64,7 +62,7 @@ func (c *Client) CreateScript(ctx context.Context, params *CreateScriptInput, op type CreateScriptInput struct { - // A descriptive label that is associated with a script. Script names don't need + // A descriptive label that is associated with a script. Script names do not need // to be unique. You can use [UpdateScript]to change this value later. // // [UpdateScript]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateScript.html @@ -94,8 +92,8 @@ type CreateScriptInput struct { // [ListTagsForResource]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListTagsForResource.html Tags []types.Tag - // Version information associated with a build or script. Version strings don't - // need to be unique. You can use [UpdateScript]to change this value later. + // Version information that is associated with a build or script. Version strings + // do not need to be unique. You can use [UpdateScript]to change this value later. // // [UpdateScript]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateScript.html Version *string diff --git a/service/gamelift/api_op_DeleteContainerFleet.go b/service/gamelift/api_op_DeleteContainerFleet.go new file mode 100644 index 00000000000..2df29724350 --- /dev/null +++ b/service/gamelift/api_op_DeleteContainerFleet.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes all resources and information related to a container fleet and shuts +// down currently running fleet instances, including those in remote locations. The +// container fleet must be in ACTIVE status to be deleted. +// +// To delete a fleet, specify the fleet ID to be terminated. During the deletion +// process, the fleet status is changed to DELETING . +// +// # Learn more +// +// [Setting up Amazon GameLift Fleets] +// +// [Setting up Amazon GameLift Fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html +func (c *Client) DeleteContainerFleet(ctx context.Context, params *DeleteContainerFleetInput, optFns ...func(*Options)) (*DeleteContainerFleetOutput, error) { + if params == nil { + params = &DeleteContainerFleetInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteContainerFleet", params, optFns, c.addOperationDeleteContainerFleetMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteContainerFleetOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteContainerFleetInput struct { + + // A unique identifier for the container fleet to delete. You can use either the + // fleet ID or ARN value. + // + // This member is required. + FleetId *string + + noSmithyDocumentSerde +} + +type DeleteContainerFleetOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteContainerFleetMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDeleteContainerFleet{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDeleteContainerFleet{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteContainerFleet"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDeleteContainerFleetValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteContainerFleet(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteContainerFleet(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteContainerFleet", + } +} diff --git a/service/gamelift/api_op_DeleteContainerGroupDefinition.go b/service/gamelift/api_op_DeleteContainerGroupDefinition.go index 8bb7f88d830..0efb4003e0e 100644 --- a/service/gamelift/api_op_DeleteContainerGroupDefinition.go +++ b/service/gamelift/api_op_DeleteContainerGroupDefinition.go @@ -10,14 +10,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is used with the Amazon GameLift containers feature, which is +// Deletes a container group definition. You can delete a container group +// definition if there are no fleets using the definition. // -// currently in public preview. +// Request options: // -// Deletes a container group definition resource. You can delete a container group -// definition if there are no fleets using the definition. +// - Delete an entire container group definition, including all versions. +// Specify the container group definition name, or use an ARN value without the +// version number. +// +// - Delete a particular version. Specify the container group definition name +// and a version number, or use an ARN value that includes the version number. // -// To delete a container group definition, identify the resource to delete. +// - Keep the newest versions and delete all older versions. Specify the +// container group definition name and the number of versions to retain. For +// example, set VersionCountToRetain to 5 to delete all but the five most recent +// versions. // // # Learn more // @@ -47,6 +55,12 @@ type DeleteContainerGroupDefinitionInput struct { // This member is required. Name *string + // The number of most recent versions to keep while deleting all older versions. + VersionCountToRetain *int32 + + // The specific version to delete. + VersionNumber *int32 + noSmithyDocumentSerde } diff --git a/service/gamelift/api_op_DeregisterCompute.go b/service/gamelift/api_op_DeregisterCompute.go index 75fd2da907d..7bd49dd0cc8 100644 --- a/service/gamelift/api_op_DeregisterCompute.go +++ b/service/gamelift/api_op_DeregisterCompute.go @@ -10,18 +10,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers +// Removes a compute resource from an Amazon GameLift Anywhere fleet. Deregistered +// computes can no longer host game sessions through Amazon GameLift. // -// feature, which is currently in public preview. -// -// Removes a compute resource from an Amazon GameLift Anywhere fleet or container -// fleet. Deregistered computes can no longer host game sessions through Amazon -// GameLift. -// -// For an Anywhere fleet or a container fleet that's running the Amazon GameLift -// Agent, the Agent handles all compute registry tasks for you. For an Anywhere -// fleet that doesn't use the Agent, call this operation to deregister fleet -// computes. +// For an Anywhere fleet that's running the Amazon GameLift Agent, the Agent +// handles all compute registry tasks for you. For an Anywhere fleet that doesn't +// use the Agent, call this operation to deregister fleet computes. // // To deregister a compute, call this operation from the compute that's being // deregistered and specify the compute name and the fleet ID. @@ -43,10 +37,7 @@ func (c *Client) DeregisterCompute(ctx context.Context, params *DeregisterComput type DeregisterComputeInput struct { // The unique identifier of the compute resource to deregister. For an Anywhere - // fleet compute, use the registered compute name. For a container fleet, use the - // compute name (for example, - // a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9 ) or the - // compute ARN. + // fleet compute, use the registered compute name. // // This member is required. ComputeName *string diff --git a/service/gamelift/api_op_DescribeCompute.go b/service/gamelift/api_op_DescribeCompute.go index 42fb194ed39..d97af95a436 100644 --- a/service/gamelift/api_op_DescribeCompute.go +++ b/service/gamelift/api_op_DescribeCompute.go @@ -11,10 +11,6 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // Retrieves properties for a compute resource in an Amazon GameLift fleet. To get // a list of all computes in a fleet, call ListCompute. // @@ -25,14 +21,11 @@ import ( // resource. Depending on the fleet's compute type, the result includes the // following information: // -// - For EC2 fleets, this operation returns information about the EC2 instance. -// -// - For ANYWHERE fleets, this operation returns information about the registered -// compute. +// - For managed EC2 fleets, this operation returns information about the EC2 +// instance. // -// - For CONTAINER fleets, this operation returns information about the container -// that's registered as a compute, and the instance it's running on. The compute -// name is the container name. +// - For Anywhere fleets, this operation returns information about the +// registered compute. func (c *Client) DescribeCompute(ctx context.Context, params *DescribeComputeInput, optFns ...func(*Options)) (*DescribeComputeOutput, error) { if params == nil { params = &DescribeComputeInput{} @@ -52,9 +45,7 @@ type DescribeComputeInput struct { // The unique identifier of the compute resource to retrieve properties for. For // an Anywhere fleet compute, use the registered compute name. For an EC2 fleet - // instance, use the instance ID. For a container fleet, use the compute name (for - // example, a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9 ) - // or the compute ARN. + // instance, use the instance ID. // // This member is required. ComputeName *string diff --git a/service/gamelift/api_op_DescribeContainerFleet.go b/service/gamelift/api_op_DescribeContainerFleet.go new file mode 100644 index 00000000000..83ed8ceed68 --- /dev/null +++ b/service/gamelift/api_op_DescribeContainerFleet.go @@ -0,0 +1,174 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves the properties for a container fleet. When requesting attributes for +// multiple fleets, use the pagination parameters to retrieve results as a set of +// sequential pages. +// +// Request options +// +// - Get container fleet properties for a single fleet. Provide either the fleet +// ID or ARN value. +// +// # Results +// +// If successful, a ContainerFleet object is returned. This object includes the +// fleet properties, including information about the most recent deployment. +// +// Some API operations limit the number of fleet IDs that allowed in one request. +// If a request exceeds this limit, the request fails and the error message +// contains the maximum allowed number. +func (c *Client) DescribeContainerFleet(ctx context.Context, params *DescribeContainerFleetInput, optFns ...func(*Options)) (*DescribeContainerFleetOutput, error) { + if params == nil { + params = &DescribeContainerFleetInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeContainerFleet", params, optFns, c.addOperationDescribeContainerFleetMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeContainerFleetOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeContainerFleetInput struct { + + // A unique identifier for the container fleet to retrieve. You can use either the + // fleet ID or ARN value. + // + // This member is required. + FleetId *string + + noSmithyDocumentSerde +} + +type DescribeContainerFleetOutput struct { + + // The properties for the requested container fleet, including current status. + ContainerFleet *types.ContainerFleet + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeContainerFleetMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeContainerFleet{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeContainerFleet{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeContainerFleet"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDescribeContainerFleetValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeContainerFleet(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeContainerFleet(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeContainerFleet", + } +} diff --git a/service/gamelift/api_op_DescribeContainerGroupDefinition.go b/service/gamelift/api_op_DescribeContainerGroupDefinition.go index 8c9014227f6..3c3c5256198 100644 --- a/service/gamelift/api_op_DescribeContainerGroupDefinition.go +++ b/service/gamelift/api_op_DescribeContainerGroupDefinition.go @@ -11,16 +11,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// // Retrieves the properties of a container group definition, including all // container definitions in the group. // -// To retrieve a container group definition, provide a resource identifier. If -// successful, this operation returns the complete properties of the container -// group definition. +// Request options: +// +// - Retrieve the latest version of a container group definition. Specify the +// container group definition name only, or use an ARN value without a version +// number. +// +// - Retrieve a particular version. Specify the container group definition name +// and a version number, or use an ARN value that includes the version number. +// +// Results: +// +// If successful, this operation returns the complete properties of a container +// group definition version. // // # Learn more // @@ -50,6 +56,9 @@ type DescribeContainerGroupDefinitionInput struct { // This member is required. Name *string + // The specific version to retrieve. + VersionNumber *int32 + noSmithyDocumentSerde } diff --git a/service/gamelift/api_op_DescribeFleetAttributes.go b/service/gamelift/api_op_DescribeFleetAttributes.go index 32bc9f1be09..b3e4187b2dd 100644 --- a/service/gamelift/api_op_DescribeFleetAttributes.go +++ b/service/gamelift/api_op_DescribeFleetAttributes.go @@ -11,10 +11,6 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // Retrieves core fleet-wide properties for fleets in an Amazon Web Services // Region. Properties include the computing hardware and deployment configuration // for instances in the fleet. diff --git a/service/gamelift/api_op_DescribeFleetCapacity.go b/service/gamelift/api_op_DescribeFleetCapacity.go index fdcf46d1dc9..6611c1599fa 100644 --- a/service/gamelift/api_op_DescribeFleetCapacity.go +++ b/service/gamelift/api_op_DescribeFleetCapacity.go @@ -11,12 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // Retrieves the resource capacity settings for one or more fleets. For a -// container fleet, this operation also returns counts for replica container +// container fleet, this operation also returns counts for game server container // groups. // // With multi-location fleets, this operation retrieves data for the fleet's home diff --git a/service/gamelift/api_op_DescribeFleetDeployment.go b/service/gamelift/api_op_DescribeFleetDeployment.go new file mode 100644 index 00000000000..8c7b2a0410e --- /dev/null +++ b/service/gamelift/api_op_DescribeFleetDeployment.go @@ -0,0 +1,177 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves information about a managed container fleet deployment. +// +// Request options +// +// - Get information about the latest deployment for a specific fleet. Provide +// the fleet ID or ARN. +// +// - Get information about a specific deployment. Provide the fleet ID or ARN +// and the deployment ID. +// +// # Results +// +// If successful, a FleetDeployment object is returned. +func (c *Client) DescribeFleetDeployment(ctx context.Context, params *DescribeFleetDeploymentInput, optFns ...func(*Options)) (*DescribeFleetDeploymentOutput, error) { + if params == nil { + params = &DescribeFleetDeploymentInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeFleetDeployment", params, optFns, c.addOperationDescribeFleetDeploymentMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeFleetDeploymentOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeFleetDeploymentInput struct { + + // A unique identifier for the container fleet. You can use either the fleet ID or + // ARN value. + // + // This member is required. + FleetId *string + + // A unique identifier for the deployment to return information for. + DeploymentId *string + + noSmithyDocumentSerde +} + +type DescribeFleetDeploymentOutput struct { + + // The requested deployment information. + FleetDeployment *types.FleetDeployment + + // If the deployment is for a multi-location fleet, the requests returns the + // deployment status in each fleet location. + LocationalDeployments map[string]types.LocationalDeployment + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeFleetDeploymentMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeFleetDeployment{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeFleetDeployment{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeFleetDeployment"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDescribeFleetDeploymentValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeFleetDeployment(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeFleetDeployment(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeFleetDeployment", + } +} diff --git a/service/gamelift/api_op_DescribeFleetLocationCapacity.go b/service/gamelift/api_op_DescribeFleetLocationCapacity.go index 22d44a66391..47d9fe6c7be 100644 --- a/service/gamelift/api_op_DescribeFleetLocationCapacity.go +++ b/service/gamelift/api_op_DescribeFleetLocationCapacity.go @@ -13,8 +13,8 @@ import ( // Retrieves the resource capacity settings for a fleet location. The data // returned includes the current capacity (number of EC2 instances) and some -// scaling settings for the requested fleet location. For a container fleet, this -// operation also returns counts for replica container groups. +// scaling settings for the requested fleet location. For a managed container +// fleet, this operation also returns counts for game server container groups. // // Use this operation to retrieve capacity information for a fleet's remote // location or home Region (you can also retrieve home Region capacity by calling diff --git a/service/gamelift/api_op_DescribeFleetPortSettings.go b/service/gamelift/api_op_DescribeFleetPortSettings.go index 8838d42d7ff..74f43961326 100644 --- a/service/gamelift/api_op_DescribeFleetPortSettings.go +++ b/service/gamelift/api_op_DescribeFleetPortSettings.go @@ -11,12 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Retrieves a fleet's inbound connection permissions. Connection permissions -// specify IP addresses and port settings that incoming traffic can use to access -// server processes in the fleet. Game server processes that are running in the -// fleet must use a port that falls within this range. To connect to game server -// processes on a container fleet, the port settings should include one or more of -// the fleet's connection ports. +// Retrieves a fleet's inbound connection permissions. Inbound permissions specify +// IP addresses and port settings that incoming traffic can use to access server +// processes in the fleet. Game server processes that are running in the fleet must +// use a port that falls within this range. To connect to game server processes on +// a managed container fleet, the port settings should include one or more of the +// container fleet's connection ports. // // Use this operation in the following ways: // diff --git a/service/gamelift/api_op_DescribeRuntimeConfiguration.go b/service/gamelift/api_op_DescribeRuntimeConfiguration.go index f008711f276..16eb4ce6fef 100644 --- a/service/gamelift/api_op_DescribeRuntimeConfiguration.go +++ b/service/gamelift/api_op_DescribeRuntimeConfiguration.go @@ -12,11 +12,9 @@ import ( ) // Retrieves a fleet's runtime configuration settings. The runtime configuration -// determines which server processes run, and how, on computes in the fleet. For -// managed EC2 fleets, the runtime configuration describes server processes that -// run on each fleet instance. For container fleets, the runtime configuration -// describes server processes that run in each replica container group. You can -// update a fleet's runtime configuration at any time using UpdateRuntimeConfiguration. +// determines which server processes run, and how they run, and how many run +// concurrently on computes in managed EC2 and Anywhere fleets. You can update a +// fleet's runtime configuration at any time using UpdateRuntimeConfiguration. // // To get the current runtime configuration for a fleet, provide the fleet ID. // diff --git a/service/gamelift/api_op_GetComputeAccess.go b/service/gamelift/api_op_GetComputeAccess.go index 19cc8e2640f..2f3be6ccacd 100644 --- a/service/gamelift/api_op_GetComputeAccess.go +++ b/service/gamelift/api_op_GetComputeAccess.go @@ -11,39 +11,23 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // Requests authorization to remotely connect to a hosting resource in a Amazon // GameLift managed fleet. This operation is not used with Amazon GameLift Anywhere -// fleets -// -// To request access, specify the compute name and the fleet ID. If successful, -// this operation returns a set of temporary Amazon Web Services credentials, -// including a two-part access key and a session token. +// fleets. // -// # EC2 fleets +// # Request options // -// With an EC2 fleet (where compute type is EC2 ), use these credentials with -// Amazon EC2 Systems Manager (SSM) to start a session with the compute. For more -// details, see [Starting a session (CLI)]in the Amazon EC2 Systems Manager User Guide. +// To request access to a compute, specify the compute name and the fleet ID. // -// # Container fleets +// # Results // -// With a container fleet (where compute type is CONTAINER ), use these credentials -// and the target value with SSM to connect to the fleet instance where the -// container is running. After you're connected to the instance, use Docker -// commands to interact with the container. +// If successful, this operation returns a set of temporary Amazon Web Services +// credentials, including a two-part access key and a session token. // -// # Learn more +// - With a managed EC2 fleet (where compute type is EC2 ), use these credentials +// with Amazon EC2 Systems Manager (SSM) to start a session with the compute. For +// more details, see [Starting a session (CLI)]in the Amazon EC2 Systems Manager User Guide. // -// [Remotely connect to fleet instances] -// -// [Debug fleet issues] -// -// [Remotely connect to fleet instances]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-remote-access.html -// [Debug fleet issues]: https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html // [Starting a session (CLI)]: https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html#sessions-start-cli func (c *Client) GetComputeAccess(ctx context.Context, params *GetComputeAccessInput, optFns ...func(*Options)) (*GetComputeAccessOutput, error) { if params == nil { @@ -63,10 +47,7 @@ func (c *Client) GetComputeAccess(ctx context.Context, params *GetComputeAccessI type GetComputeAccessInput struct { // A unique identifier for the compute resource that you want to connect to. For - // an EC2 fleet compute, use the instance ID. For a container fleet, use the - // compute name (for example, - // a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9 ) or the - // compute ARN. + // an EC2 fleet compute, use the instance ID. Use ListComputeto retrieve compute identifiers. // // This member is required. ComputeName *string @@ -93,6 +74,10 @@ type GetComputeAccessOutput struct { // either a compute name or an instance ID. ComputeName *string + // For a managed container fleet, a list of containers on the compute. Use the + // container runtime ID with Docker commands to connect to a specific container. + ContainerIdentifiers []types.ContainerIdentifier + // A set of temporary Amazon Web Services credentials for use when connecting to // the compute resource with Amazon EC2 Systems Manager (SSM). Credentials *types.AwsCredentials @@ -107,8 +92,7 @@ type GetComputeAccessOutput struct { // The ID of the fleet that holds the compute resource to be accessed. FleetId *string - // (For container fleets only) The instance ID where the compute resource is - // running. + // The instance ID where the compute resource is running. Target *string // Metadata pertaining to the operation's result. diff --git a/service/gamelift/api_op_GetComputeAuthToken.go b/service/gamelift/api_op_GetComputeAuthToken.go index 9c5df10a88c..b7fb77bfd89 100644 --- a/service/gamelift/api_op_GetComputeAuthToken.go +++ b/service/gamelift/api_op_GetComputeAuthToken.go @@ -12,23 +12,23 @@ import ( ) // Requests an authentication token from Amazon GameLift for a compute resource in -// an Amazon GameLift Anywhere fleet or container fleet. Game servers that are -// running on the compute use this token to communicate with the Amazon GameLift -// service, such as when calling the Amazon GameLift server SDK action InitSDK() . -// Authentication tokens are valid for a limited time span, so you need to request -// a fresh token before the current token expires. +// an Amazon GameLift fleet. Game servers that are running on the compute use this +// token to communicate with the Amazon GameLift service, such as when calling the +// Amazon GameLift server SDK action InitSDK() . Authentication tokens are valid +// for a limited time span, so you need to request a fresh token before the current +// token expires. // -// Use this operation based on the fleet compute type: +// Request options // -// - For EC2 fleets, auth token retrieval and refresh is handled automatically. -// All game servers that are running on all fleet instances have access to a valid -// auth token. +// - For managed EC2 fleets (compute type EC2 ), auth token retrieval and refresh +// is handled automatically. All game servers that are running on all fleet +// instances have access to a valid auth token. // -// - For ANYWHERE and CONTAINER fleets, if you're using the Amazon GameLift -// Agent, auth token retrieval and refresh is handled automatically for any -// container or Anywhere compute where the Agent is running. If you're not using -// the Agent, create a mechanism to retrieve and refresh auth tokens for computes -// that are running game server processes. +// - For Anywhere fleets (compute type ANYWHERE ), if you're using the Amazon +// GameLift Agent, auth token retrieval and refresh is handled automatically for +// any compute where the Agent is running. If you're not using the Agent, create a +// mechanism to retrieve and refresh auth tokens for computes that are running game +// server processes. // // # Learn more // @@ -61,10 +61,7 @@ type GetComputeAuthTokenInput struct { // The name of the compute resource you are requesting the authentication token // for. For an Anywhere fleet compute, use the registered compute name. For an EC2 - // fleet instance, use the instance ID. For a container fleet, use the compute name - // (for example, - // a123b456c789012d3e4567f8a901b23c/1a234b56-7cd8-9e0f-a1b2-c34d567ef8a9 ) or the - // compute ARN. + // fleet instance, use the instance ID. // // This member is required. ComputeName *string diff --git a/service/gamelift/api_op_ListBuilds.go b/service/gamelift/api_op_ListBuilds.go index 5e7662072f1..bbc9b06cebb 100644 --- a/service/gamelift/api_op_ListBuilds.go +++ b/service/gamelift/api_op_ListBuilds.go @@ -49,7 +49,7 @@ type ListBuildsInput struct { // A token that indicates the start of the next sequential page of results. Use // the token that is returned with a previous call to this operation. To start at - // the beginning of the result set, don't specify a value. + // the beginning of the result set, do not specify a value. NextToken *string // Build status to filter results by. To retrieve all builds, leave this parameter diff --git a/service/gamelift/api_op_ListCompute.go b/service/gamelift/api_op_ListCompute.go index 34e997d3fb7..67e27aa446f 100644 --- a/service/gamelift/api_op_ListCompute.go +++ b/service/gamelift/api_op_ListCompute.go @@ -11,31 +11,28 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers +// Retrieves information on the compute resources in an Amazon GameLift fleet. Use +// the pagination parameters to retrieve results in a set of sequential pages. // -// feature, which is currently in public preview. +// Request options: // -// Retrieves information on the compute resources in an Amazon GameLift fleet. +// - Retrieve a list of all computes in a fleet. Specify a fleet ID. // -// To request a list of computes, specify the fleet ID. Use the pagination -// parameters to retrieve results in a set of sequential pages. +// - Retrieve a list of all computes in a specific fleet location. Specify a +// fleet ID and location. // -// You can filter the result set by location. +// Results: // -// If successful, this operation returns information on all computes in the -// requested fleet. Depending on the fleet's compute type, the result includes the -// following information: +// If successful, this operation returns information on a set of computes. +// Depending on the type of fleet, the result includes the following information: // -// - For EC2 fleets, this operation returns information about the EC2 instance. -// Compute names are instance IDs. +// - For managed EC2 fleets (compute type EC2 ), this operation returns +// information about the EC2 instance. Compute names are EC2 instance IDs. // -// - For ANYWHERE fleets, this operation returns the compute names and details -// provided when the compute was registered with RegisterCompute . The -// GameLiftServiceSdkEndpoint or GameLiftAgentEndpoint is included. -// -// - For CONTAINER fleets, this operation returns information about containers -// that are registered as computes, and the instances they're running on. Compute -// names are container names. +// - For Anywhere fleets (compute type ANYWHERE ), this operation returns compute +// names and details as provided when the compute was registered with +// RegisterCompute . This includes GameLiftServiceSdkEndpoint or +// GameLiftAgentEndpoint . func (c *Client) ListCompute(ctx context.Context, params *ListComputeInput, optFns ...func(*Options)) (*ListComputeOutput, error) { if params == nil { params = &ListComputeInput{} @@ -58,14 +55,28 @@ type ListComputeInput struct { // This member is required. FleetId *string + // The status of computes in a managed container fleet, based on the success of + // the latest update deployment. + // + // - ACTIVE -- The compute is deployed with the correct container definitions. It + // is ready to process game servers and host game sessions. + // + // - IMPAIRED -- An update deployment to the compute failed, and the compute is + // deployed with incorrect container definitions. + ComputeStatus types.ListComputeInputStatus + + // For computes in a managed container fleet, the name of the deployed container + // group definition. + ContainerGroupDefinitionName *string + // The maximum number of results to return. Use this parameter with NextToken to // get results as a set of sequential pages. Limit *int32 // The name of a location to retrieve compute resources for. For an Amazon - // GameLift Anywhere fleet, use a custom location. For a multi-location EC2 or - // container fleet, provide a Amazon Web Services Region or Local Zone code (for - // example: us-west-2 or us-west-2-lax-1 ). + // GameLift Anywhere fleet, use a custom location. For a managed fleet, provide a + // Amazon Web Services Region or Local Zone code (for example: us-west-2 or + // us-west-2-lax-1 ). Location *string // A token that indicates the start of the next sequential page of results. Use diff --git a/service/gamelift/api_op_ListContainerFleets.go b/service/gamelift/api_op_ListContainerFleets.go new file mode 100644 index 00000000000..6da6718abf2 --- /dev/null +++ b/service/gamelift/api_op_ListContainerFleets.go @@ -0,0 +1,287 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves a collection of container fleet resources in an Amazon Web Services +// Region. For fleets that have multiple locations, this operation retrieves fleets +// based on their home Region only. +// +// Request options +// +// - Get a list of all fleets. Call this operation without specifying a +// container group definition. +// +// - Get a list of fleets filtered by container group definition. Provide the +// container group definition name or ARN value. +// +// - To get a list of all Realtime Servers fleets with a specific configuration +// script, provide the script ID. +// +// Use the pagination parameters to retrieve results as a set of sequential pages. +// +// If successful, this operation returns a collection of container fleets that +// match the request parameters. A NextToken value is also returned if there are +// more result pages to retrieve. +// +// Fleet IDs are returned in no particular order. +func (c *Client) ListContainerFleets(ctx context.Context, params *ListContainerFleetsInput, optFns ...func(*Options)) (*ListContainerFleetsOutput, error) { + if params == nil { + params = &ListContainerFleetsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListContainerFleets", params, optFns, c.addOperationListContainerFleetsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListContainerFleetsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListContainerFleetsInput struct { + + // The container group definition to filter the list on. Use this parameter to + // retrieve only those fleets that use the specified container group definition. + // You can specify the container group definition's name to get fleets with the + // latest versions. Alternatively, provide an ARN value to get fleets with a + // specific version number. + ContainerGroupDefinitionName *string + + // The maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int32 + + // A token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this operation. To start at + // the beginning of the result set, do not specify a value. + NextToken *string + + noSmithyDocumentSerde +} + +type ListContainerFleetsOutput struct { + + // A collection of container fleet objects for all fleets that match the request + // criteria. + ContainerFleets []types.ContainerFleet + + // A token that indicates where to resume retrieving results on the next call to + // this operation. If no token is returned, these results represent the end of the + // list. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListContainerFleetsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListContainerFleets{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListContainerFleets{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListContainerFleets"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListContainerFleets(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListContainerFleetsPaginatorOptions is the paginator options for +// ListContainerFleets +type ListContainerFleetsPaginatorOptions struct { + // The maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + 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 +} + +// ListContainerFleetsPaginator is a paginator for ListContainerFleets +type ListContainerFleetsPaginator struct { + options ListContainerFleetsPaginatorOptions + client ListContainerFleetsAPIClient + params *ListContainerFleetsInput + nextToken *string + firstPage bool +} + +// NewListContainerFleetsPaginator returns a new ListContainerFleetsPaginator +func NewListContainerFleetsPaginator(client ListContainerFleetsAPIClient, params *ListContainerFleetsInput, optFns ...func(*ListContainerFleetsPaginatorOptions)) *ListContainerFleetsPaginator { + if params == nil { + params = &ListContainerFleetsInput{} + } + + options := ListContainerFleetsPaginatorOptions{} + if params.Limit != nil { + options.Limit = *params.Limit + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListContainerFleetsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListContainerFleetsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListContainerFleets page. +func (p *ListContainerFleetsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListContainerFleetsOutput, 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.Limit = limit + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListContainerFleets(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 +} + +// ListContainerFleetsAPIClient is a client that implements the +// ListContainerFleets operation. +type ListContainerFleetsAPIClient interface { + ListContainerFleets(context.Context, *ListContainerFleetsInput, ...func(*Options)) (*ListContainerFleetsOutput, error) +} + +var _ ListContainerFleetsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListContainerFleets(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListContainerFleets", + } +} diff --git a/service/gamelift/api_op_ListContainerGroupDefinitionVersions.go b/service/gamelift/api_op_ListContainerGroupDefinitionVersions.go new file mode 100644 index 00000000000..a3c60147bb1 --- /dev/null +++ b/service/gamelift/api_op_ListContainerGroupDefinitionVersions.go @@ -0,0 +1,290 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves all versions of a container group definition. Use the pagination +// parameters to retrieve results in a set of sequential pages. +// +// Request options: +// +// - Get all versions of a specified container group definition. Specify the +// container group definition name or ARN value. (If the ARN value has a version +// number, it's ignored.) +// +// Results: +// +// If successful, this operation returns the complete properties of a set of +// container group definition versions that match the request. +// +// This operation returns the list of container group definitions in descending +// version order (latest first). +// +// # Learn more +// +// [Manage a container group definition] +// +// [Manage a container group definition]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-create-groups.html +func (c *Client) ListContainerGroupDefinitionVersions(ctx context.Context, params *ListContainerGroupDefinitionVersionsInput, optFns ...func(*Options)) (*ListContainerGroupDefinitionVersionsOutput, error) { + if params == nil { + params = &ListContainerGroupDefinitionVersionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListContainerGroupDefinitionVersions", params, optFns, c.addOperationListContainerGroupDefinitionVersionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListContainerGroupDefinitionVersionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListContainerGroupDefinitionVersionsInput struct { + + // The unique identifier for the container group definition to retrieve properties + // for. You can use either the Name or ARN value. + // + // This member is required. + Name *string + + // The maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int32 + + // A token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this operation. To start at + // the beginning of the result set, do not specify a value. + NextToken *string + + noSmithyDocumentSerde +} + +type ListContainerGroupDefinitionVersionsOutput struct { + + // A result set of container group definitions that match the request. + ContainerGroupDefinitions []types.ContainerGroupDefinition + + // A token that indicates where to resume retrieving results on the next call to + // this operation. If no token is returned, these results represent the end of the + // list. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListContainerGroupDefinitionVersionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListContainerGroupDefinitionVersions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListContainerGroupDefinitionVersions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListContainerGroupDefinitionVersions"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListContainerGroupDefinitionVersionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListContainerGroupDefinitionVersions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListContainerGroupDefinitionVersionsPaginatorOptions is the paginator options +// for ListContainerGroupDefinitionVersions +type ListContainerGroupDefinitionVersionsPaginatorOptions struct { + // The maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + 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 +} + +// ListContainerGroupDefinitionVersionsPaginator is a paginator for +// ListContainerGroupDefinitionVersions +type ListContainerGroupDefinitionVersionsPaginator struct { + options ListContainerGroupDefinitionVersionsPaginatorOptions + client ListContainerGroupDefinitionVersionsAPIClient + params *ListContainerGroupDefinitionVersionsInput + nextToken *string + firstPage bool +} + +// NewListContainerGroupDefinitionVersionsPaginator returns a new +// ListContainerGroupDefinitionVersionsPaginator +func NewListContainerGroupDefinitionVersionsPaginator(client ListContainerGroupDefinitionVersionsAPIClient, params *ListContainerGroupDefinitionVersionsInput, optFns ...func(*ListContainerGroupDefinitionVersionsPaginatorOptions)) *ListContainerGroupDefinitionVersionsPaginator { + if params == nil { + params = &ListContainerGroupDefinitionVersionsInput{} + } + + options := ListContainerGroupDefinitionVersionsPaginatorOptions{} + if params.Limit != nil { + options.Limit = *params.Limit + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListContainerGroupDefinitionVersionsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListContainerGroupDefinitionVersionsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListContainerGroupDefinitionVersions page. +func (p *ListContainerGroupDefinitionVersionsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListContainerGroupDefinitionVersionsOutput, 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.Limit = limit + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListContainerGroupDefinitionVersions(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 +} + +// ListContainerGroupDefinitionVersionsAPIClient is a client that implements the +// ListContainerGroupDefinitionVersions operation. +type ListContainerGroupDefinitionVersionsAPIClient interface { + ListContainerGroupDefinitionVersions(context.Context, *ListContainerGroupDefinitionVersionsInput, ...func(*Options)) (*ListContainerGroupDefinitionVersionsOutput, error) +} + +var _ ListContainerGroupDefinitionVersionsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListContainerGroupDefinitionVersions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListContainerGroupDefinitionVersions", + } +} diff --git a/service/gamelift/api_op_ListContainerGroupDefinitions.go b/service/gamelift/api_op_ListContainerGroupDefinitions.go index 3872ebd0e22..580313eaa74 100644 --- a/service/gamelift/api_op_ListContainerGroupDefinitions.go +++ b/service/gamelift/api_op_ListContainerGroupDefinitions.go @@ -11,14 +11,24 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is used with the Amazon GameLift containers feature, which is +// Retrieves container group definitions for the Amazon Web Services account and +// Amazon Web Services Region. Use the pagination parameters to retrieve results in +// a set of sequential pages. // -// currently in public preview. +// This operation returns only the latest version of each definition. To retrieve +// all versions of a container group definition, use ListContainerGroupDefinitionVersions. // -// Retrieves all container group definitions for the Amazon Web Services account -// and Amazon Web Services Region that are currently in use. You can filter the -// result set by the container groups' scheduling strategy. Use the pagination -// parameters to retrieve results in a set of sequential pages. +// Request options: +// +// - Retrieve the most recent versions of all container group definitions. +// +// - Retrieve the most recent versions of all container group definitions, +// filtered by type. Specify the container group type to filter on. +// +// Results: +// +// If successful, this operation returns the complete properties of a set of +// container group definition versions that match the request. // // This operation returns the list of container group definitions in no particular // order. @@ -45,6 +55,10 @@ func (c *Client) ListContainerGroupDefinitions(ctx context.Context, params *List type ListContainerGroupDefinitionsInput struct { + // The type of container group to retrieve. Container group type determines how + // Amazon GameLift deploys the container group on each fleet instance. + ContainerGroupType types.ContainerGroupType + // The maximum number of results to return. Use this parameter with NextToken to // get results as a set of sequential pages. Limit *int32 @@ -54,16 +68,6 @@ type ListContainerGroupDefinitionsInput struct { // the beginning of the result set, do not specify a value. NextToken *string - // The type of container group definitions to retrieve. - // - // - DAEMON -- Daemon container groups run background processes and are deployed - // once per fleet instance. - // - // - REPLICA -- Replica container groups run your game server application and - // supporting software. Replica groups might be deployed multiple times per fleet - // instance. - SchedulingStrategy types.ContainerSchedulingStrategy - noSmithyDocumentSerde } diff --git a/service/gamelift/api_op_ListFleetDeployments.go b/service/gamelift/api_op_ListFleetDeployments.go new file mode 100644 index 00000000000..192c372abab --- /dev/null +++ b/service/gamelift/api_op_ListFleetDeployments.go @@ -0,0 +1,284 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves a collection of container fleet deployments in an Amazon Web Services +// Region. +// +// Request options +// +// - Get a list of all deployments. Call this operation without specifying a +// fleet ID. +// +// - Get a list of all deployments for a fleet. Specify the container fleet ID +// or ARN value. +// +// - To get a list of all Realtime Servers fleets with a specific configuration +// script, provide the script ID. +// +// Use the pagination parameters to retrieve results as a set of sequential pages. +// +// # Results +// +// If successful, this operation returns a list of deployments that match the +// request parameters. A NextToken value is also returned if there are more result +// pages to retrieve. +// +// Fleet IDs are returned in no particular order. +func (c *Client) ListFleetDeployments(ctx context.Context, params *ListFleetDeploymentsInput, optFns ...func(*Options)) (*ListFleetDeploymentsOutput, error) { + if params == nil { + params = &ListFleetDeploymentsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListFleetDeployments", params, optFns, c.addOperationListFleetDeploymentsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListFleetDeploymentsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListFleetDeploymentsInput struct { + + // A unique identifier for the container fleet. You can use either the fleet ID or + // ARN value. + FleetId *string + + // The maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int32 + + // A token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this operation. To start at + // the beginning of the result set, do not specify a value. + NextToken *string + + noSmithyDocumentSerde +} + +type ListFleetDeploymentsOutput struct { + + // The requested deployment information. + FleetDeployments []types.FleetDeployment + + // A token that indicates where to resume retrieving results on the next call to + // this operation. If no token is returned, these results represent the end of the + // list. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListFleetDeploymentsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpListFleetDeployments{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListFleetDeployments{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListFleetDeployments"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListFleetDeployments(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListFleetDeploymentsPaginatorOptions is the paginator options for +// ListFleetDeployments +type ListFleetDeploymentsPaginatorOptions struct { + // The maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + 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 +} + +// ListFleetDeploymentsPaginator is a paginator for ListFleetDeployments +type ListFleetDeploymentsPaginator struct { + options ListFleetDeploymentsPaginatorOptions + client ListFleetDeploymentsAPIClient + params *ListFleetDeploymentsInput + nextToken *string + firstPage bool +} + +// NewListFleetDeploymentsPaginator returns a new ListFleetDeploymentsPaginator +func NewListFleetDeploymentsPaginator(client ListFleetDeploymentsAPIClient, params *ListFleetDeploymentsInput, optFns ...func(*ListFleetDeploymentsPaginatorOptions)) *ListFleetDeploymentsPaginator { + if params == nil { + params = &ListFleetDeploymentsInput{} + } + + options := ListFleetDeploymentsPaginatorOptions{} + if params.Limit != nil { + options.Limit = *params.Limit + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListFleetDeploymentsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListFleetDeploymentsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListFleetDeployments page. +func (p *ListFleetDeploymentsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListFleetDeploymentsOutput, 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.Limit = limit + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListFleetDeployments(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 +} + +// ListFleetDeploymentsAPIClient is a client that implements the +// ListFleetDeployments operation. +type ListFleetDeploymentsAPIClient interface { + ListFleetDeployments(context.Context, *ListFleetDeploymentsInput, ...func(*Options)) (*ListFleetDeploymentsOutput, error) +} + +var _ ListFleetDeploymentsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListFleetDeployments(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListFleetDeployments", + } +} diff --git a/service/gamelift/api_op_ListFleets.go b/service/gamelift/api_op_ListFleets.go index 9c39ee72683..744b5211edf 100644 --- a/service/gamelift/api_op_ListFleets.go +++ b/service/gamelift/api_op_ListFleets.go @@ -10,10 +10,6 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // Retrieves a collection of fleet resources in an Amazon Web Services Region. You // can filter the result set to find only those fleets that are deployed with a // specific build or script. For fleets that have multiple locations, this @@ -30,9 +26,6 @@ import ( // - To get a list of all Realtime Servers fleets with a specific configuration // script, provide the script ID. // -// - To get a list of all fleets with a specific container group definition, -// provide the ContainerGroupDefinition ID. -// // Use the pagination parameters to retrieve results as a set of sequential pages. // // If successful, this operation returns a list of fleet IDs that match the @@ -62,11 +55,6 @@ type ListFleetsInput struct { // value. BuildId *string - // The container group definition name to request fleets for. Use this parameter - // to return only fleets that are deployed with the specified container group - // definition. - ContainerGroupDefinitionName *string - // The maximum number of results to return. Use this parameter with NextToken to // get results as a set of sequential pages. Limit *int32 diff --git a/service/gamelift/api_op_ListScripts.go b/service/gamelift/api_op_ListScripts.go index b842ac9cfb7..792f3aa5d25 100644 --- a/service/gamelift/api_op_ListScripts.go +++ b/service/gamelift/api_op_ListScripts.go @@ -47,7 +47,7 @@ type ListScriptsInput struct { // A token that indicates the start of the next sequential page of results. Use // the token that is returned with a previous call to this operation. To start at - // the beginning of the result set, don't specify a value. + // the beginning of the result set, do not specify a value. NextToken *string noSmithyDocumentSerde diff --git a/service/gamelift/api_op_RegisterCompute.go b/service/gamelift/api_op_RegisterCompute.go index 7d14f5b8a2e..bf580b03563 100644 --- a/service/gamelift/api_op_RegisterCompute.go +++ b/service/gamelift/api_op_RegisterCompute.go @@ -11,17 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers +// Registers a compute resource in an Amazon GameLift Anywhere fleet. // -// feature, which is currently in public preview. -// -// Registers a compute resource in an Amazon GameLift fleet. Register computes -// with an Amazon GameLift Anywhere fleet or a container fleet. -// -// For an Anywhere fleet or a container fleet that's running the Amazon GameLift -// Agent, the Agent handles all compute registry tasks for you. For an Anywhere -// fleet that doesn't use the Agent, call this operation to register fleet -// computes. +// For an Anywhere fleet that's running the Amazon GameLift Agent, the Agent +// handles all compute registry tasks for you. For an Anywhere fleet that doesn't +// use the Agent, call this operation to register fleet computes. // // To register a compute, give the compute a name (must be unique within the // fleet) and specify the compute resource's DNS name or IP address. Provide a diff --git a/service/gamelift/api_op_StartGameSessionPlacement.go b/service/gamelift/api_op_StartGameSessionPlacement.go index d662516e31e..5d12412019d 100644 --- a/service/gamelift/api_op_StartGameSessionPlacement.go +++ b/service/gamelift/api_op_StartGameSessionPlacement.go @@ -51,7 +51,7 @@ import ( // To track the status of a placement request, call [DescribeGameSessionPlacement] and check the request's // status. If the status is FULFILLED , a new game session has been created and a // game session ARN and Region are referenced. If the placement request times out, -// you can resubmit the request or retry it with a different queue. +// submit a new request to the same queue or a different queue. // // [DescribeGameSessionPlacement]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeGameSessionPlacement.html func (c *Client) StartGameSessionPlacement(ctx context.Context, params *StartGameSessionPlacementInput, optFns ...func(*Options)) (*StartGameSessionPlacementOutput, error) { @@ -98,10 +98,10 @@ type StartGameSessionPlacementInput struct { GameProperties []types.GameProperty // A set of custom game session properties, formatted as a single string value. - // This data is passed to a game server process in the GameSession object with a - // request to start a new game session (see [Start a Game Session]). + // This data is passed to a game server process with a request to start a new game + // session. For more information, see [Start a game session]. // - // [Start a Game Session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession + // [Start a game session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession GameSessionData *string // A descriptive label that is associated with a game session. Session names do @@ -109,9 +109,9 @@ type StartGameSessionPlacementInput struct { GameSessionName *string // A set of values, expressed in milliseconds, that indicates the amount of - // latency that a player experiences when connected to Amazon Web Services Regions. - // This information is used to try to place the new game session where it can offer - // the best possible gameplay experience for the players. + // latency that a player experiences when connected to @aws; Regions. This + // information is used to try to place the new game session where it can offer the + // best possible gameplay experience for the players. PlayerLatencies []types.PlayerLatency noSmithyDocumentSerde diff --git a/service/gamelift/api_op_UpdateBuild.go b/service/gamelift/api_op_UpdateBuild.go index 8495b05ae5e..42b80fb562d 100644 --- a/service/gamelift/api_op_UpdateBuild.go +++ b/service/gamelift/api_op_UpdateBuild.go @@ -46,12 +46,12 @@ type UpdateBuildInput struct { // This member is required. BuildId *string - // A descriptive label associated with a build. Build names don't need to be - // unique. + // A descriptive label that is associated with a build. Build names do not need to + // be unique. Name *string - // Version information associated with a build or script. Version strings don't - // need to be unique. + // Version information that is associated with a build or script. Version strings + // do not need to be unique. Version *string noSmithyDocumentSerde diff --git a/service/gamelift/api_op_UpdateContainerFleet.go b/service/gamelift/api_op_UpdateContainerFleet.go new file mode 100644 index 00000000000..63a67f0eb3d --- /dev/null +++ b/service/gamelift/api_op_UpdateContainerFleet.go @@ -0,0 +1,271 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates the properties of a managed container fleet. Depending on the +// properties being updated, this operation might initiate a fleet deployment. You +// can track deployments for a fleet using DescribeFleetDeployment. +// +// # Request options +// +// As with CreateContainerFleet, many fleet properties use common defaults or are +// calculated based on the fleet's container group definitions. +// +// - Update fleet properties that result in a fleet deployment. Include only +// those properties that you want to change. Specify deployment configuration +// settings. +// +// - Update fleet properties that don't result in a fleet deployment. Include +// only those properties that you want to change. +// +// Changes to the following properties initiate a fleet deployment: +// +// - GameServerContainerGroupDefinition +// +// - PerInstanceContainerGroupDefinition +// +// - GameServerContainerGroupsPerInstance +// +// - InstanceInboundPermissions +// +// - InstanceConnectionPortRange +// +// - LogConfiguration +// +// # Results +// +// If successful, this operation updates the container fleet resource, and might +// initiate a new deployment of fleet resources using the deployment configuration +// provided. A deployment replaces existing fleet instances with new instances that +// are deployed with the updated fleet properties. The fleet is placed in UPDATING +// status until the deployment is complete, then return to ACTIVE . +// +// You can have only one update deployment active at a time for a fleet. If a +// second update request initiates a deployment while another deployment is in +// progress, the first deployment is cancelled. +func (c *Client) UpdateContainerFleet(ctx context.Context, params *UpdateContainerFleetInput, optFns ...func(*Options)) (*UpdateContainerFleetOutput, error) { + if params == nil { + params = &UpdateContainerFleetInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateContainerFleet", params, optFns, c.addOperationUpdateContainerFleetMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateContainerFleetOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateContainerFleetInput struct { + + // A unique identifier for the container fleet to update. You can use either the + // fleet ID or ARN value. + // + // This member is required. + FleetId *string + + // Instructions for how to deploy updates to a container fleet, if the fleet + // update initiates a deployment. The deployment configuration lets you determine + // how to replace fleet instances and what actions to take if the deployment fails. + DeploymentConfiguration *types.DeploymentConfiguration + + // A meaningful description of the container fleet. + Description *string + + // The name or ARN value of a new game server container group definition to deploy + // on the fleet. If you're updating the fleet to a specific version of a container + // group definition, use the ARN value and include the version number. If you're + // updating the fleet to the latest version of a container group definition, you + // can use the name value. You can't remove a fleet's game server container group + // definition, you can only update or replace it with another definition. + // + // Update a container group definition by calling UpdateContainerGroupDefinition. This operation creates a ContainerGroupDefinition + // resource with an incremented version. + GameServerContainerGroupDefinitionName *string + + // The number of times to replicate the game server container group on each fleet + // instance. By default, Amazon GameLift calculates the maximum number of game + // server container groups that can fit on each instance. You can remove this + // property value to use the calculated value, or set it manually. If you set this + // number manually, Amazon GameLift uses your value as long as it's less than the + // calculated maximum. + GameServerContainerGroupsPerInstance *int32 + + // A policy that limits the number of game sessions that each individual player + // can create on instances in this fleet. The limit applies for a specified span of + // time. + GameSessionCreationLimitPolicy *types.GameSessionCreationLimitPolicy + + // A revised set of port numbers to open on each fleet instance. By default, + // Amazon GameLift calculates an optimal port range based on your fleet + // configuration. If you previously set this parameter manually, you can't reset + // this to use the calculated settings. + InstanceConnectionPortRange *types.ConnectionPortRange + + // A set of ports to add to the container fleet's inbound permissions. + InstanceInboundPermissionAuthorizations []types.IpPermission + + // A set of ports to remove from the container fleet's inbound permissions. + InstanceInboundPermissionRevocations []types.IpPermission + + // The method for collecting container logs for the fleet. + LogConfiguration *types.LogConfiguration + + // The name of an Amazon Web Services CloudWatch metric group to add this fleet + // to. + MetricGroups []string + + // The game session protection policy to apply to all new game sessions that are + // started in this fleet. Game sessions that already exist are not affected. + NewGameSessionProtectionPolicy types.ProtectionPolicy + + // The name or ARN value of a new per-instance container group definition to + // deploy on the fleet. If you're updating the fleet to a specific version of a + // container group definition, use the ARN value and include the version number. If + // you're updating the fleet to the latest version of a container group definition, + // you can use the name value. + // + // Update a container group definition by calling UpdateContainerGroupDefinition. This operation creates a ContainerGroupDefinition + // resource with an incremented version. + // + // To remove a fleet's per-instance container group definition, leave this + // parameter empty and use the parameter RemoveAttributes . + PerInstanceContainerGroupDefinitionName *string + + // If set, this update removes a fleet's per-instance container group definition. + // You can't remove a fleet's game server container group definition. + RemoveAttributes []types.ContainerFleetRemoveAttribute + + noSmithyDocumentSerde +} + +type UpdateContainerFleetOutput struct { + + // A collection of container fleet objects for all fleets that match the request + // criteria. + ContainerFleet *types.ContainerFleet + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateContainerFleetMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateContainerFleet{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateContainerFleet{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateContainerFleet"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdateContainerFleetValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateContainerFleet(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateContainerFleet(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateContainerFleet", + } +} diff --git a/service/gamelift/api_op_UpdateContainerGroupDefinition.go b/service/gamelift/api_op_UpdateContainerGroupDefinition.go new file mode 100644 index 00000000000..0f281e66daa --- /dev/null +++ b/service/gamelift/api_op_UpdateContainerGroupDefinition.go @@ -0,0 +1,237 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package gamelift + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates properties in an existing container group definition. This operation +// doesn't replace the definition. Instead, it creates a new version of the +// definition and saves it separately. You can access all versions that you choose +// to retain. +// +// The only property you can't update is the container group type. +// +// Request options: +// +// - Update based on the latest version of the container group definition. +// Specify the container group definition name only, or use an ARN value without a +// version number. Provide updated values for the properties that you want to +// change only. All other values remain the same as the latest version. +// +// - Update based on a specific version of the container group definition. +// Specify the container group definition name and a source version number, or use +// an ARN value with a version number. Provide updated values for the properties +// that you want to change only. All other values remain the same as the source +// version. +// +// - Change a game server container definition. Provide the updated container +// definition. +// +// - Add or change a support container definition. Provide a complete set of +// container definitions, including the updated definition. +// +// - Remove a support container definition. Provide a complete set of container +// definitions, excluding the definition to remove. If the container group has only +// one support container definition, provide an empty set. +// +// Results: +// +// If successful, this operation returns the complete properties of the new +// container group definition version. +// +// If the container group definition version is used in an active fleets, the +// update automatically initiates a new fleet deployment of the new version. You +// can track a fleet's deployments using ListFleetDeployments. +func (c *Client) UpdateContainerGroupDefinition(ctx context.Context, params *UpdateContainerGroupDefinitionInput, optFns ...func(*Options)) (*UpdateContainerGroupDefinitionOutput, error) { + if params == nil { + params = &UpdateContainerGroupDefinitionInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateContainerGroupDefinition", params, optFns, c.addOperationUpdateContainerGroupDefinitionMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateContainerGroupDefinitionOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateContainerGroupDefinitionInput struct { + + // A descriptive identifier for the container group definition. The name value + // must be unique in an Amazon Web Services Region. + // + // This member is required. + Name *string + + // An updated definition for the game server container in this group. Define a + // game server container only when the container group type is GAME_SERVER . You + // can pass in your container definitions as a JSON file. + GameServerContainerDefinition *types.GameServerContainerDefinitionInput + + // The platform that all containers in the group use. Containers in a group must + // run on the same operating system. + // + // Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details + // in the [Amazon Linux 2 FAQs]. For game servers that are hosted on AL2 and use Amazon GameLift server + // SDK 4.x, first update the game server build to server SDK 5.x, and then deploy + // to AL2023 instances. See [Migrate to Amazon GameLift server SDK version 5.] + // + // [Amazon Linux 2 FAQs]: https://aws.amazon.com/amazon-linux-2/faqs/ + // [Migrate to Amazon GameLift server SDK version 5.]: https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-serversdk5-migration.html + OperatingSystem types.ContainerOperatingSystem + + // The container group definition version to update. The new version starts with + // values from the source version, and then updates values included in this + // request. + SourceVersionNumber *int32 + + // One or more definitions for support containers in this group. You can define a + // support container in any type of container group. You can pass in your container + // definitions as a JSON file. + SupportContainerDefinitions []types.SupportContainerDefinitionInput + + // The maximum amount of memory (in MiB) to allocate to the container group. All + // containers in the group share this memory. If you specify memory limits for an + // individual container, the total value must be greater than any individual + // container's memory limit. + TotalMemoryLimitMebibytes *int32 + + // The maximum amount of vCPU units to allocate to the container group (1 vCPU is + // equal to 1024 CPU units). All containers in the group share this memory. If you + // specify vCPU limits for individual containers, the total value must be equal to + // or greater than the sum of the CPU limits for all containers in the group. + TotalVcpuLimit *float64 + + // A description for this update to the container group definition. + VersionDescription *string + + noSmithyDocumentSerde +} + +type UpdateContainerGroupDefinitionOutput struct { + + // The properties of the updated container group definition version. + ContainerGroupDefinition *types.ContainerGroupDefinition + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateContainerGroupDefinitionMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateContainerGroupDefinition{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateContainerGroupDefinition{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateContainerGroupDefinition"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdateContainerGroupDefinitionValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateContainerGroupDefinition(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateContainerGroupDefinition(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateContainerGroupDefinition", + } +} diff --git a/service/gamelift/api_op_UpdateFleetCapacity.go b/service/gamelift/api_op_UpdateFleetCapacity.go index c6f5994f504..6a8394dd9a5 100644 --- a/service/gamelift/api_op_UpdateFleetCapacity.go +++ b/service/gamelift/api_op_UpdateFleetCapacity.go @@ -10,15 +10,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// -// Updates capacity settings for a managed EC2 fleet or container fleet. For these -// fleets, you adjust capacity by changing the number of instances in the fleet. -// Fleet capacity determines the number of game sessions and players that the fleet -// can host based on its configuration. For fleets with multiple locations, use -// this operation to manage capacity settings in each location individually. +// Updates capacity settings for a managed EC2 fleet or managed container fleet. +// For these fleets, you adjust capacity by changing the number of instances in the +// fleet. Fleet capacity determines the number of game sessions and players that +// the fleet can host based on its configuration. For fleets with multiple +// locations, use this operation to manage capacity settings in each location +// individually. // // Use this operation to set these fleet capacity properties: // diff --git a/service/gamelift/api_op_UpdateGameSessionQueue.go b/service/gamelift/api_op_UpdateGameSessionQueue.go index 6513887c8b0..b6093cb2e7f 100644 --- a/service/gamelift/api_op_UpdateGameSessionQueue.go +++ b/service/gamelift/api_op_UpdateGameSessionQueue.go @@ -67,13 +67,11 @@ type UpdateGameSessionQueueInput struct { // [Setting up notifications for game session placement]: https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html NotificationTarget *string - // A set of policies that act as a sliding cap on player latency. FleetIQ works to - // deliver low latency for most players in a game session. These policies ensure - // that no individual player can be placed into a game with unreasonably high - // latency. Use multiple policies to gradually relax latency requirements a step at - // a time. Multiple policies are applied based on their maximum allowed latency, - // starting with the lowest value. When updating policies, provide a complete - // collection of policies. + // A set of policies that enforce a sliding cap on player latency when processing + // game sessions placement requests. Use multiple policies to gradually relax the + // cap over time if Amazon GameLift can't make a placement. Policies are evaluated + // in order starting with the lowest maximum latency value. When updating policies, + // provide a complete collection of policies. PlayerLatencyPolicies []types.PlayerLatencyPolicy // Custom settings to use when prioritizing destinations and locations for game @@ -85,7 +83,7 @@ type UpdateGameSessionQueueInput struct { // The maximum time, in seconds, that a new game session placement request remains // in the queue. When a request exceeds this time, the game session placement - // changes to a TIMED_OUT status. By default, this property is set to 600 . + // changes to a TIMED_OUT status. TimeoutInSeconds *int32 noSmithyDocumentSerde diff --git a/service/gamelift/api_op_UpdateMatchmakingConfiguration.go b/service/gamelift/api_op_UpdateMatchmakingConfiguration.go index cf397e342d9..3c505609d8d 100644 --- a/service/gamelift/api_op_UpdateMatchmakingConfiguration.go +++ b/service/gamelift/api_op_UpdateMatchmakingConfiguration.go @@ -56,9 +56,9 @@ type UpdateMatchmakingConfigurationInput struct { // The number of player slots in a match to keep open for future players. For // example, if the configuration's rule set specifies a match for a single - // 10-person team, and the additional player count is set to 2, 10 players will be - // selected for the match and 2 more player slots will be open for future players. - // This parameter is not used if FlexMatchMode is set to STANDALONE . + // 12-person team, and the additional player count is set to 2, only 10 players are + // selected for the match. This parameter is not used if FlexMatchMode is set to + // STANDALONE . AdditionalPlayerCount *int32 // The method that is used to backfill game sessions created with this matchmaking @@ -97,11 +97,11 @@ type UpdateMatchmakingConfigurationInput struct { // A set of custom game session properties, formatted as a single string value. // This data is passed to a game server process with a request to start a new game - // session (see [Start a Game Session]). This information is added to the game session that is created - // for a successful match. This parameter is not used if FlexMatchMode is set to - // STANDALONE . + // session. For more information, see [Start a game session]. This information is added to the game + // session that is created for a successful match. This parameter is not used if + // FlexMatchMode is set to STANDALONE . // - // [Start a Game Session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession + // [Start a game session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession GameSessionData *string // The Amazon Resource Name ([ARN] ) that is assigned to a Amazon GameLift game session diff --git a/service/gamelift/api_op_UpdateRuntimeConfiguration.go b/service/gamelift/api_op_UpdateRuntimeConfiguration.go index 92c14e852e6..4f2a95306b6 100644 --- a/service/gamelift/api_op_UpdateRuntimeConfiguration.go +++ b/service/gamelift/api_op_UpdateRuntimeConfiguration.go @@ -13,9 +13,7 @@ import ( // Updates the runtime configuration for the specified fleet. The runtime // configuration tells Amazon GameLift how to launch server processes on computes -// in the fleet. For managed EC2 fleets, it determines what server processes to run -// on each fleet instance. For container fleets, it describes what server processes -// to run in each replica container group. You can update a fleet's runtime +// in managed EC2 and Anywhere fleets. You can update a fleet's runtime // configuration at any time after the fleet is created; it does not need to be in // ACTIVE status. // diff --git a/service/gamelift/api_op_UpdateScript.go b/service/gamelift/api_op_UpdateScript.go index 4cac631db3b..4cc893916c7 100644 --- a/service/gamelift/api_op_UpdateScript.go +++ b/service/gamelift/api_op_UpdateScript.go @@ -59,7 +59,7 @@ type UpdateScriptInput struct { // This member is required. ScriptId *string - // A descriptive label that is associated with a script. Script names don't need + // A descriptive label that is associated with a script. Script names do not need // to be unique. Name *string @@ -73,8 +73,8 @@ type UpdateScriptInput struct { // version. StorageLocation *types.S3Location - // Version information associated with a build or script. Version strings don't - // need to be unique. + // Version information that is associated with a build or script. Version strings + // do not need to be unique. Version *string // A data object containing your Realtime scripts and dependencies as a zip file. diff --git a/service/gamelift/deserializers.go b/service/gamelift/deserializers.go index f6255fa4b20..c9d420ebc95 100644 --- a/service/gamelift/deserializers.go +++ b/service/gamelift/deserializers.go @@ -526,6 +526,135 @@ func awsAwsjson11_deserializeOpErrorCreateBuild(response *smithyhttp.Response, m } } +type awsAwsjson11_deserializeOpCreateContainerFleet struct { +} + +func (*awsAwsjson11_deserializeOpCreateContainerFleet) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpCreateContainerFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorCreateContainerFleet(response, &metadata) + } + output := &CreateContainerFleetOutput{} + 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_deserializeOpDocumentCreateContainerFleetOutput(&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_deserializeOpErrorCreateContainerFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("TaggingFailedException", errorCode): + return awsAwsjson11_deserializeErrorTaggingFailedException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpCreateContainerGroupDefinition struct { } @@ -2513,14 +2642,14 @@ func awsAwsjson11_deserializeOpErrorDeleteBuild(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDeleteContainerGroupDefinition struct { +type awsAwsjson11_deserializeOpDeleteContainerFleet struct { } -func (*awsAwsjson11_deserializeOpDeleteContainerGroupDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDeleteContainerFleet) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteContainerGroupDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteContainerFleet) 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) @@ -2538,21 +2667,43 @@ func (m *awsAwsjson11_deserializeOpDeleteContainerGroupDefinition) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteContainerGroupDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteContainerFleet(response, &metadata) } - output := &DeleteContainerGroupDefinitionOutput{} + output := &DeleteContainerFleetOutput{} 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), + 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_deserializeOpDocumentDeleteContainerFleetOutput(&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_deserializeOpErrorDeleteContainerGroupDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteContainerFleet(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)} @@ -2617,14 +2768,14 @@ func awsAwsjson11_deserializeOpErrorDeleteContainerGroupDefinition(response *smi } } -type awsAwsjson11_deserializeOpDeleteFleet struct { +type awsAwsjson11_deserializeOpDeleteContainerGroupDefinition struct { } -func (*awsAwsjson11_deserializeOpDeleteFleet) ID() string { +func (*awsAwsjson11_deserializeOpDeleteContainerGroupDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteFleet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteContainerGroupDefinition) 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) @@ -2642,21 +2793,43 @@ func (m *awsAwsjson11_deserializeOpDeleteFleet) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFleet(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteContainerGroupDefinition(response, &metadata) } - output := &DeleteFleetOutput{} + output := &DeleteContainerGroupDefinitionOutput{} 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), + 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_deserializeOpDocumentDeleteContainerGroupDefinitionOutput(&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_deserializeOpErrorDeleteFleet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteContainerGroupDefinition(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)} @@ -2696,9 +2869,6 @@ func awsAwsjson11_deserializeOpErrorDeleteFleet(response *smithyhttp.Response, m case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) - case strings.EqualFold("InvalidFleetStatusException", errorCode): - return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) @@ -2711,6 +2881,9 @@ func awsAwsjson11_deserializeOpErrorDeleteFleet(response *smithyhttp.Response, m case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2721,14 +2894,14 @@ func awsAwsjson11_deserializeOpErrorDeleteFleet(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpDeleteFleetLocations struct { +type awsAwsjson11_deserializeOpDeleteFleet struct { } -func (*awsAwsjson11_deserializeOpDeleteFleetLocations) ID() string { +func (*awsAwsjson11_deserializeOpDeleteFleet) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteFleetLocations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteFleet) 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) @@ -2746,43 +2919,21 @@ func (m *awsAwsjson11_deserializeOpDeleteFleetLocations) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFleetLocations(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFleet(response, &metadata) } - output := &DeleteFleetLocationsOutput{} + output := &DeleteFleetOutput{} 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_deserializeOpDocumentDeleteFleetLocationsOutput(&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(), + 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 } return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDeleteFleetLocations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDeleteFleet(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)} @@ -2822,18 +2973,21 @@ func awsAwsjson11_deserializeOpErrorDeleteFleetLocations(response *smithyhttp.Re case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + case strings.EqualFold("InvalidFleetStatusException", errorCode): + return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("TaggingFailedException", errorCode): + return awsAwsjson11_deserializeErrorTaggingFailedException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) - case strings.EqualFold("UnsupportedRegionException", errorCode): - return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2844,14 +2998,14 @@ func awsAwsjson11_deserializeOpErrorDeleteFleetLocations(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpDeleteGameServerGroup struct { +type awsAwsjson11_deserializeOpDeleteFleetLocations struct { } -func (*awsAwsjson11_deserializeOpDeleteGameServerGroup) ID() string { +func (*awsAwsjson11_deserializeOpDeleteFleetLocations) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDeleteGameServerGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDeleteFleetLocations) 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) @@ -2869,7 +3023,130 @@ func (m *awsAwsjson11_deserializeOpDeleteGameServerGroup) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDeleteGameServerGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteFleetLocations(response, &metadata) + } + output := &DeleteFleetLocationsOutput{} + 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_deserializeOpDocumentDeleteFleetLocationsOutput(&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_deserializeOpErrorDeleteFleetLocations(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpDeleteGameServerGroup struct { +} + +func (*awsAwsjson11_deserializeOpDeleteGameServerGroup) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDeleteGameServerGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorDeleteGameServerGroup(response, &metadata) } output := &DeleteGameServerGroupOutput{} out.Result = output @@ -3541,6 +3818,9 @@ func awsAwsjson11_deserializeOpErrorDeleteScalingPolicy(response *smithyhttp.Res case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4460,6 +4740,9 @@ func awsAwsjson11_deserializeOpErrorDescribeCompute(response *smithyhttp.Respons case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4470,14 +4753,14 @@ func awsAwsjson11_deserializeOpErrorDescribeCompute(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpDescribeContainerGroupDefinition struct { +type awsAwsjson11_deserializeOpDescribeContainerFleet struct { } -func (*awsAwsjson11_deserializeOpDescribeContainerGroupDefinition) ID() string { +func (*awsAwsjson11_deserializeOpDescribeContainerFleet) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeContainerGroupDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeContainerFleet) 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) @@ -4495,9 +4778,9 @@ func (m *awsAwsjson11_deserializeOpDescribeContainerGroupDefinition) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeContainerGroupDefinition(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeContainerFleet(response, &metadata) } - output := &DescribeContainerGroupDefinitionOutput{} + output := &DescribeContainerFleetOutput{} out.Result = output var buff [1024]byte @@ -4517,7 +4800,7 @@ func (m *awsAwsjson11_deserializeOpDescribeContainerGroupDefinition) HandleDeser return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeContainerGroupDefinitionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeContainerFleetOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4531,7 +4814,7 @@ func (m *awsAwsjson11_deserializeOpDescribeContainerGroupDefinition) HandleDeser return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeContainerGroupDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeContainerFleet(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)} @@ -4593,14 +4876,14 @@ func awsAwsjson11_deserializeOpErrorDescribeContainerGroupDefinition(response *s } } -type awsAwsjson11_deserializeOpDescribeEC2InstanceLimits struct { +type awsAwsjson11_deserializeOpDescribeContainerGroupDefinition struct { } -func (*awsAwsjson11_deserializeOpDescribeEC2InstanceLimits) ID() string { +func (*awsAwsjson11_deserializeOpDescribeContainerGroupDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeEC2InstanceLimits) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeContainerGroupDefinition) 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) @@ -4618,9 +4901,9 @@ func (m *awsAwsjson11_deserializeOpDescribeEC2InstanceLimits) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEC2InstanceLimits(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeContainerGroupDefinition(response, &metadata) } - output := &DescribeEC2InstanceLimitsOutput{} + output := &DescribeContainerGroupDefinitionOutput{} out.Result = output var buff [1024]byte @@ -4640,7 +4923,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEC2InstanceLimits) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeEC2InstanceLimitsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeContainerGroupDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4654,7 +4937,7 @@ func (m *awsAwsjson11_deserializeOpDescribeEC2InstanceLimits) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeEC2InstanceLimits(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeContainerGroupDefinition(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)} @@ -4697,6 +4980,9 @@ func awsAwsjson11_deserializeOpErrorDescribeEC2InstanceLimits(response *smithyht case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) @@ -4713,14 +4999,14 @@ func awsAwsjson11_deserializeOpErrorDescribeEC2InstanceLimits(response *smithyht } } -type awsAwsjson11_deserializeOpDescribeFleetAttributes struct { +type awsAwsjson11_deserializeOpDescribeEC2InstanceLimits struct { } -func (*awsAwsjson11_deserializeOpDescribeFleetAttributes) ID() string { +func (*awsAwsjson11_deserializeOpDescribeEC2InstanceLimits) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFleetAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeEC2InstanceLimits) 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) @@ -4738,9 +5024,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetAttributes) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetAttributes(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeEC2InstanceLimits(response, &metadata) } - output := &DescribeFleetAttributesOutput{} + output := &DescribeEC2InstanceLimitsOutput{} out.Result = output var buff [1024]byte @@ -4760,7 +5046,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetAttributes) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFleetAttributesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeEC2InstanceLimitsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4774,7 +5060,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetAttributes) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFleetAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeEC2InstanceLimits(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)} @@ -4817,12 +5103,12 @@ func awsAwsjson11_deserializeOpErrorDescribeFleetAttributes(response *smithyhttp case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4833,14 +5119,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFleetAttributes(response *smithyhttp } } -type awsAwsjson11_deserializeOpDescribeFleetCapacity struct { +type awsAwsjson11_deserializeOpDescribeFleetAttributes struct { } -func (*awsAwsjson11_deserializeOpDescribeFleetCapacity) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFleetAttributes) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFleetCapacity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFleetAttributes) 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) @@ -4858,9 +5144,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetCapacity) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetCapacity(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetAttributes(response, &metadata) } - output := &DescribeFleetCapacityOutput{} + output := &DescribeFleetAttributesOutput{} out.Result = output var buff [1024]byte @@ -4880,7 +5166,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetCapacity) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFleetCapacityOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFleetAttributesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4894,7 +5180,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetCapacity) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFleetCapacity(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFleetAttributes(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)} @@ -4953,14 +5239,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFleetCapacity(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpDescribeFleetEvents struct { +type awsAwsjson11_deserializeOpDescribeFleetCapacity struct { } -func (*awsAwsjson11_deserializeOpDescribeFleetEvents) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFleetCapacity) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFleetEvents) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFleetCapacity) 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) @@ -4978,9 +5264,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetEvents) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetEvents(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetCapacity(response, &metadata) } - output := &DescribeFleetEventsOutput{} + output := &DescribeFleetCapacityOutput{} out.Result = output var buff [1024]byte @@ -5000,7 +5286,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetEvents) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFleetEventsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFleetCapacityOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5014,7 +5300,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetEvents) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFleetEvents(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFleetCapacity(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)} @@ -5063,6 +5349,9 @@ func awsAwsjson11_deserializeOpErrorDescribeFleetEvents(response *smithyhttp.Res case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5073,14 +5362,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFleetEvents(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpDescribeFleetLocationAttributes struct { +type awsAwsjson11_deserializeOpDescribeFleetDeployment struct { } -func (*awsAwsjson11_deserializeOpDescribeFleetLocationAttributes) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFleetDeployment) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFleetLocationAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFleetDeployment) 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) @@ -5098,9 +5387,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetLocationAttributes) HandleDeseri } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetLocationAttributes(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetDeployment(response, &metadata) } - output := &DescribeFleetLocationAttributesOutput{} + output := &DescribeFleetDeploymentOutput{} out.Result = output var buff [1024]byte @@ -5120,7 +5409,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetLocationAttributes) HandleDeseri return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFleetLocationAttributesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFleetDeploymentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5134,7 +5423,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetLocationAttributes) HandleDeseri return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFleetLocationAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFleetDeployment(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)} @@ -5196,14 +5485,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFleetLocationAttributes(response *sm } } -type awsAwsjson11_deserializeOpDescribeFleetLocationCapacity struct { +type awsAwsjson11_deserializeOpDescribeFleetEvents struct { } -func (*awsAwsjson11_deserializeOpDescribeFleetLocationCapacity) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFleetEvents) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFleetLocationCapacity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFleetEvents) 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) @@ -5221,9 +5510,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetLocationCapacity) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetLocationCapacity(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetEvents(response, &metadata) } - output := &DescribeFleetLocationCapacityOutput{} + output := &DescribeFleetEventsOutput{} out.Result = output var buff [1024]byte @@ -5243,7 +5532,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetLocationCapacity) HandleDeserial return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFleetLocationCapacityOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFleetEventsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5257,7 +5546,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetLocationCapacity) HandleDeserial return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFleetLocationCapacity(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFleetEvents(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)} @@ -5319,14 +5608,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFleetLocationCapacity(response *smit } } -type awsAwsjson11_deserializeOpDescribeFleetLocationUtilization struct { +type awsAwsjson11_deserializeOpDescribeFleetLocationAttributes struct { } -func (*awsAwsjson11_deserializeOpDescribeFleetLocationUtilization) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFleetLocationAttributes) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFleetLocationUtilization) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFleetLocationAttributes) 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) @@ -5344,9 +5633,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetLocationUtilization) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetLocationUtilization(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetLocationAttributes(response, &metadata) } - output := &DescribeFleetLocationUtilizationOutput{} + output := &DescribeFleetLocationAttributesOutput{} out.Result = output var buff [1024]byte @@ -5366,7 +5655,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetLocationUtilization) HandleDeser return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFleetLocationUtilizationOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFleetLocationAttributesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5380,7 +5669,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetLocationUtilization) HandleDeser return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFleetLocationUtilization(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFleetLocationAttributes(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)} @@ -5442,14 +5731,14 @@ func awsAwsjson11_deserializeOpErrorDescribeFleetLocationUtilization(response *s } } -type awsAwsjson11_deserializeOpDescribeFleetPortSettings struct { +type awsAwsjson11_deserializeOpDescribeFleetLocationCapacity struct { } -func (*awsAwsjson11_deserializeOpDescribeFleetPortSettings) ID() string { +func (*awsAwsjson11_deserializeOpDescribeFleetLocationCapacity) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpDescribeFleetPortSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpDescribeFleetLocationCapacity) 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) @@ -5467,9 +5756,9 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetPortSettings) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetPortSettings(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetLocationCapacity(response, &metadata) } - output := &DescribeFleetPortSettingsOutput{} + output := &DescribeFleetLocationCapacityOutput{} out.Result = output var buff [1024]byte @@ -5489,7 +5778,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetPortSettings) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentDescribeFleetPortSettingsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentDescribeFleetLocationCapacityOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5503,7 +5792,7 @@ func (m *awsAwsjson11_deserializeOpDescribeFleetPortSettings) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorDescribeFleetPortSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorDescribeFleetLocationCapacity(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)} @@ -5565,7 +5854,253 @@ func awsAwsjson11_deserializeOpErrorDescribeFleetPortSettings(response *smithyht } } -type awsAwsjson11_deserializeOpDescribeFleetUtilization struct { +type awsAwsjson11_deserializeOpDescribeFleetLocationUtilization struct { +} + +func (*awsAwsjson11_deserializeOpDescribeFleetLocationUtilization) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDescribeFleetLocationUtilization) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetLocationUtilization(response, &metadata) + } + output := &DescribeFleetLocationUtilizationOutput{} + 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_deserializeOpDocumentDescribeFleetLocationUtilizationOutput(&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_deserializeOpErrorDescribeFleetLocationUtilization(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpDescribeFleetPortSettings struct { +} + +func (*awsAwsjson11_deserializeOpDescribeFleetPortSettings) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpDescribeFleetPortSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorDescribeFleetPortSettings(response, &metadata) + } + output := &DescribeFleetPortSettingsOutput{} + 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_deserializeOpDocumentDescribeFleetPortSettingsOutput(&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_deserializeOpErrorDescribeFleetPortSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpDescribeFleetUtilization struct { } func (*awsAwsjson11_deserializeOpDescribeFleetUtilization) ID() string { @@ -7844,6 +8379,9 @@ func awsAwsjson11_deserializeOpErrorGetComputeAccess(response *smithyhttp.Respon case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -7964,6 +8502,9 @@ func awsAwsjson11_deserializeOpErrorGetComputeAuthToken(response *smithyhttp.Res case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8555,6 +9096,9 @@ func awsAwsjson11_deserializeOpErrorListCompute(response *smithyhttp.Response, m case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8565,14 +9109,14 @@ func awsAwsjson11_deserializeOpErrorListCompute(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpListContainerGroupDefinitions struct { +type awsAwsjson11_deserializeOpListContainerFleets struct { } -func (*awsAwsjson11_deserializeOpListContainerGroupDefinitions) ID() string { +func (*awsAwsjson11_deserializeOpListContainerFleets) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListContainerGroupDefinitions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListContainerFleets) 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) @@ -8590,9 +9134,9 @@ func (m *awsAwsjson11_deserializeOpListContainerGroupDefinitions) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListContainerGroupDefinitions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListContainerFleets(response, &metadata) } - output := &ListContainerGroupDefinitionsOutput{} + output := &ListContainerFleetsOutput{} out.Result = output var buff [1024]byte @@ -8612,7 +9156,7 @@ func (m *awsAwsjson11_deserializeOpListContainerGroupDefinitions) HandleDeserial return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListContainerGroupDefinitionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListContainerFleetsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8626,7 +9170,7 @@ func (m *awsAwsjson11_deserializeOpListContainerGroupDefinitions) HandleDeserial return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListContainerGroupDefinitions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListContainerFleets(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)} @@ -8685,14 +9229,14 @@ func awsAwsjson11_deserializeOpErrorListContainerGroupDefinitions(response *smit } } -type awsAwsjson11_deserializeOpListFleets struct { +type awsAwsjson11_deserializeOpListContainerGroupDefinitions struct { } -func (*awsAwsjson11_deserializeOpListFleets) ID() string { +func (*awsAwsjson11_deserializeOpListContainerGroupDefinitions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListFleets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListContainerGroupDefinitions) 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) @@ -8710,9 +9254,9 @@ func (m *awsAwsjson11_deserializeOpListFleets) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListFleets(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListContainerGroupDefinitions(response, &metadata) } - output := &ListFleetsOutput{} + output := &ListContainerGroupDefinitionsOutput{} out.Result = output var buff [1024]byte @@ -8732,7 +9276,7 @@ func (m *awsAwsjson11_deserializeOpListFleets) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListFleetsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListContainerGroupDefinitionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8746,7 +9290,7 @@ func (m *awsAwsjson11_deserializeOpListFleets) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListFleets(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListContainerGroupDefinitions(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)} @@ -8789,12 +9333,12 @@ func awsAwsjson11_deserializeOpErrorListFleets(response *smithyhttp.Response, me case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8805,14 +9349,14 @@ func awsAwsjson11_deserializeOpErrorListFleets(response *smithyhttp.Response, me } } -type awsAwsjson11_deserializeOpListGameServerGroups struct { +type awsAwsjson11_deserializeOpListContainerGroupDefinitionVersions struct { } -func (*awsAwsjson11_deserializeOpListGameServerGroups) ID() string { +func (*awsAwsjson11_deserializeOpListContainerGroupDefinitionVersions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListGameServerGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListContainerGroupDefinitionVersions) 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) @@ -8830,9 +9374,9 @@ func (m *awsAwsjson11_deserializeOpListGameServerGroups) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListGameServerGroups(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListContainerGroupDefinitionVersions(response, &metadata) } - output := &ListGameServerGroupsOutput{} + output := &ListContainerGroupDefinitionVersionsOutput{} out.Result = output var buff [1024]byte @@ -8852,7 +9396,7 @@ func (m *awsAwsjson11_deserializeOpListGameServerGroups) HandleDeserialize(ctx c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListGameServerGroupsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListContainerGroupDefinitionVersionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8866,7 +9410,7 @@ func (m *awsAwsjson11_deserializeOpListGameServerGroups) HandleDeserialize(ctx c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListGameServerGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListContainerGroupDefinitionVersions(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)} @@ -8909,9 +9453,15 @@ func awsAwsjson11_deserializeOpErrorListGameServerGroups(response *smithyhttp.Re case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8922,14 +9472,14 @@ func awsAwsjson11_deserializeOpErrorListGameServerGroups(response *smithyhttp.Re } } -type awsAwsjson11_deserializeOpListGameServers struct { +type awsAwsjson11_deserializeOpListFleetDeployments struct { } -func (*awsAwsjson11_deserializeOpListGameServers) ID() string { +func (*awsAwsjson11_deserializeOpListFleetDeployments) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListGameServers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListFleetDeployments) 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) @@ -8947,9 +9497,9 @@ func (m *awsAwsjson11_deserializeOpListGameServers) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListGameServers(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListFleetDeployments(response, &metadata) } - output := &ListGameServersOutput{} + output := &ListFleetDeploymentsOutput{} out.Result = output var buff [1024]byte @@ -8969,7 +9519,7 @@ func (m *awsAwsjson11_deserializeOpListGameServers) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListGameServersOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListFleetDeploymentsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8983,7 +9533,7 @@ func (m *awsAwsjson11_deserializeOpListGameServers) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListGameServers(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListFleetDeployments(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)} @@ -9026,9 +9576,15 @@ func awsAwsjson11_deserializeOpErrorListGameServers(response *smithyhttp.Respons case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9039,14 +9595,14 @@ func awsAwsjson11_deserializeOpErrorListGameServers(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpListLocations struct { +type awsAwsjson11_deserializeOpListFleets struct { } -func (*awsAwsjson11_deserializeOpListLocations) ID() string { +func (*awsAwsjson11_deserializeOpListFleets) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListLocations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListFleets) 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) @@ -9064,9 +9620,9 @@ func (m *awsAwsjson11_deserializeOpListLocations) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListLocations(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListFleets(response, &metadata) } - output := &ListLocationsOutput{} + output := &ListFleetsOutput{} out.Result = output var buff [1024]byte @@ -9086,7 +9642,7 @@ func (m *awsAwsjson11_deserializeOpListLocations) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListLocationsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListFleetsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9100,7 +9656,7 @@ func (m *awsAwsjson11_deserializeOpListLocations) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListLocations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListFleets(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)} @@ -9143,6 +9699,9 @@ func awsAwsjson11_deserializeOpErrorListLocations(response *smithyhttp.Response, case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) @@ -9156,14 +9715,14 @@ func awsAwsjson11_deserializeOpErrorListLocations(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpListScripts struct { +type awsAwsjson11_deserializeOpListGameServerGroups struct { } -func (*awsAwsjson11_deserializeOpListScripts) ID() string { +func (*awsAwsjson11_deserializeOpListGameServerGroups) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListScripts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListGameServerGroups) 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) @@ -9181,9 +9740,9 @@ func (m *awsAwsjson11_deserializeOpListScripts) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListScripts(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListGameServerGroups(response, &metadata) } - output := &ListScriptsOutput{} + output := &ListGameServerGroupsOutput{} out.Result = output var buff [1024]byte @@ -9203,7 +9762,7 @@ func (m *awsAwsjson11_deserializeOpListScripts) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListScriptsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListGameServerGroupsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9217,7 +9776,7 @@ func (m *awsAwsjson11_deserializeOpListScripts) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListScripts(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListGameServerGroups(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)} @@ -9273,14 +9832,14 @@ func awsAwsjson11_deserializeOpErrorListScripts(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpListTagsForResource struct { +type awsAwsjson11_deserializeOpListGameServers struct { } -func (*awsAwsjson11_deserializeOpListTagsForResource) ID() string { +func (*awsAwsjson11_deserializeOpListGameServers) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListGameServers) 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) @@ -9298,9 +9857,9 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorListTagsForResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListGameServers(response, &metadata) } - output := &ListTagsForResourceOutput{} + output := &ListGameServersOutput{} out.Result = output var buff [1024]byte @@ -9320,7 +9879,7 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListGameServersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9334,7 +9893,7 @@ func (m *awsAwsjson11_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListGameServers(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)} @@ -9377,11 +9936,8 @@ func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Res case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - - case strings.EqualFold("TaggingFailedException", errorCode): - return awsAwsjson11_deserializeErrorTaggingFailedException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -9393,14 +9949,14 @@ func awsAwsjson11_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpPutScalingPolicy struct { +type awsAwsjson11_deserializeOpListLocations struct { } -func (*awsAwsjson11_deserializeOpPutScalingPolicy) ID() string { +func (*awsAwsjson11_deserializeOpListLocations) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpPutScalingPolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListLocations) 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) @@ -9418,9 +9974,9 @@ func (m *awsAwsjson11_deserializeOpPutScalingPolicy) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorPutScalingPolicy(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListLocations(response, &metadata) } - output := &PutScalingPolicyOutput{} + output := &ListLocationsOutput{} out.Result = output var buff [1024]byte @@ -9440,7 +9996,7 @@ func (m *awsAwsjson11_deserializeOpPutScalingPolicy) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentPutScalingPolicyOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListLocationsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9454,7 +10010,7 @@ func (m *awsAwsjson11_deserializeOpPutScalingPolicy) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorPutScalingPolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListLocations(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)} @@ -9497,9 +10053,6 @@ func awsAwsjson11_deserializeOpErrorPutScalingPolicy(response *smithyhttp.Respon case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) @@ -9513,14 +10066,14 @@ func awsAwsjson11_deserializeOpErrorPutScalingPolicy(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpRegisterCompute struct { +type awsAwsjson11_deserializeOpListScripts struct { } -func (*awsAwsjson11_deserializeOpRegisterCompute) ID() string { +func (*awsAwsjson11_deserializeOpListScripts) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpRegisterCompute) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpListScripts) 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) @@ -9538,9 +10091,9 @@ func (m *awsAwsjson11_deserializeOpRegisterCompute) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorRegisterCompute(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListScripts(response, &metadata) } - output := &RegisterComputeOutput{} + output := &ListScriptsOutput{} out.Result = output var buff [1024]byte @@ -9560,7 +10113,7 @@ func (m *awsAwsjson11_deserializeOpRegisterCompute) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentRegisterComputeOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListScriptsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9574,7 +10127,7 @@ func (m *awsAwsjson11_deserializeOpRegisterCompute) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorRegisterCompute(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListScripts(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)} @@ -9611,21 +10164,12 @@ func awsAwsjson11_deserializeOpErrorRegisterCompute(response *smithyhttp.Respons errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("NotReadyException", errorCode): - return awsAwsjson11_deserializeErrorNotReadyException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) @@ -9639,14 +10183,14 @@ func awsAwsjson11_deserializeOpErrorRegisterCompute(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpRegisterGameServer struct { +type awsAwsjson11_deserializeOpListTagsForResource struct { } -func (*awsAwsjson11_deserializeOpRegisterGameServer) ID() string { +func (*awsAwsjson11_deserializeOpListTagsForResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpRegisterGameServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_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) @@ -9664,9 +10208,9 @@ func (m *awsAwsjson11_deserializeOpRegisterGameServer) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorRegisterGameServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorListTagsForResource(response, &metadata) } - output := &RegisterGameServerOutput{} + output := &ListTagsForResourceOutput{} out.Result = output var buff [1024]byte @@ -9686,7 +10230,7 @@ func (m *awsAwsjson11_deserializeOpRegisterGameServer) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentRegisterGameServerOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentListTagsForResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9700,7 +10244,7 @@ func (m *awsAwsjson11_deserializeOpRegisterGameServer) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorRegisterGameServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorListTagsForResource(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)} @@ -9737,20 +10281,20 @@ func awsAwsjson11_deserializeOpErrorRegisterGameServer(response *smithyhttp.Resp errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("TaggingFailedException", errorCode): + return awsAwsjson11_deserializeErrorTaggingFailedException(response, errorBody) + + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -9762,14 +10306,14 @@ func awsAwsjson11_deserializeOpErrorRegisterGameServer(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpRequestUploadCredentials struct { +type awsAwsjson11_deserializeOpPutScalingPolicy struct { } -func (*awsAwsjson11_deserializeOpRequestUploadCredentials) ID() string { +func (*awsAwsjson11_deserializeOpPutScalingPolicy) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpRequestUploadCredentials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpPutScalingPolicy) 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) @@ -9787,9 +10331,9 @@ func (m *awsAwsjson11_deserializeOpRequestUploadCredentials) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorRequestUploadCredentials(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorPutScalingPolicy(response, &metadata) } - output := &RequestUploadCredentialsOutput{} + output := &PutScalingPolicyOutput{} out.Result = output var buff [1024]byte @@ -9809,7 +10353,7 @@ func (m *awsAwsjson11_deserializeOpRequestUploadCredentials) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentRequestUploadCredentialsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentPutScalingPolicyOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9823,7 +10367,7 @@ func (m *awsAwsjson11_deserializeOpRequestUploadCredentials) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorRequestUploadCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorPutScalingPolicy(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)} @@ -9872,6 +10416,9 @@ func awsAwsjson11_deserializeOpErrorRequestUploadCredentials(response *smithyhtt case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9882,14 +10429,14 @@ func awsAwsjson11_deserializeOpErrorRequestUploadCredentials(response *smithyhtt } } -type awsAwsjson11_deserializeOpResolveAlias struct { +type awsAwsjson11_deserializeOpRegisterCompute struct { } -func (*awsAwsjson11_deserializeOpResolveAlias) ID() string { +func (*awsAwsjson11_deserializeOpRegisterCompute) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpResolveAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpRegisterCompute) 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) @@ -9907,9 +10454,9 @@ func (m *awsAwsjson11_deserializeOpResolveAlias) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorResolveAlias(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorRegisterCompute(response, &metadata) } - output := &ResolveAliasOutput{} + output := &RegisterComputeOutput{} out.Result = output var buff [1024]byte @@ -9929,7 +10476,7 @@ func (m *awsAwsjson11_deserializeOpResolveAlias) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentResolveAliasOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentRegisterComputeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9943,7 +10490,7 @@ func (m *awsAwsjson11_deserializeOpResolveAlias) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorResolveAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorRegisterCompute(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)} @@ -9980,17 +10527,20 @@ func awsAwsjson11_deserializeOpErrorResolveAlias(response *smithyhttp.Response, errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("TerminalRoutingStrategyException", errorCode): - return awsAwsjson11_deserializeErrorTerminalRoutingStrategyException(response, errorBody) + case strings.EqualFold("NotReadyException", errorCode): + return awsAwsjson11_deserializeErrorNotReadyException(response, errorBody) case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) @@ -10005,14 +10555,14 @@ func awsAwsjson11_deserializeOpErrorResolveAlias(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpResumeGameServerGroup struct { +type awsAwsjson11_deserializeOpRegisterGameServer struct { } -func (*awsAwsjson11_deserializeOpResumeGameServerGroup) ID() string { +func (*awsAwsjson11_deserializeOpRegisterGameServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpResumeGameServerGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpRegisterGameServer) 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) @@ -10030,9 +10580,9 @@ func (m *awsAwsjson11_deserializeOpResumeGameServerGroup) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorResumeGameServerGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorRegisterGameServer(response, &metadata) } - output := &ResumeGameServerGroupOutput{} + output := &RegisterGameServerOutput{} out.Result = output var buff [1024]byte @@ -10052,7 +10602,7 @@ func (m *awsAwsjson11_deserializeOpResumeGameServerGroup) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentResumeGameServerGroupOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentRegisterGameServerOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10066,7 +10616,7 @@ func (m *awsAwsjson11_deserializeOpResumeGameServerGroup) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorResumeGameServerGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorRegisterGameServer(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)} @@ -10103,14 +10653,17 @@ func awsAwsjson11_deserializeOpErrorResumeGameServerGroup(response *smithyhttp.R errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): - return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) @@ -10125,14 +10678,14 @@ func awsAwsjson11_deserializeOpErrorResumeGameServerGroup(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpSearchGameSessions struct { +type awsAwsjson11_deserializeOpRequestUploadCredentials struct { } -func (*awsAwsjson11_deserializeOpSearchGameSessions) ID() string { +func (*awsAwsjson11_deserializeOpRequestUploadCredentials) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpSearchGameSessions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpRequestUploadCredentials) 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) @@ -10150,9 +10703,9 @@ func (m *awsAwsjson11_deserializeOpSearchGameSessions) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorSearchGameSessions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorRequestUploadCredentials(response, &metadata) } - output := &SearchGameSessionsOutput{} + output := &RequestUploadCredentialsOutput{} out.Result = output var buff [1024]byte @@ -10172,7 +10725,7 @@ func (m *awsAwsjson11_deserializeOpSearchGameSessions) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentSearchGameSessionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentRequestUploadCredentialsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10186,7 +10739,7 @@ func (m *awsAwsjson11_deserializeOpSearchGameSessions) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorSearchGameSessions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorRequestUploadCredentials(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)} @@ -10232,15 +10785,9 @@ func awsAwsjson11_deserializeOpErrorSearchGameSessions(response *smithyhttp.Resp case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("TerminalRoutingStrategyException", errorCode): - return awsAwsjson11_deserializeErrorTerminalRoutingStrategyException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) - case strings.EqualFold("UnsupportedRegionException", errorCode): - return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10251,14 +10798,14 @@ func awsAwsjson11_deserializeOpErrorSearchGameSessions(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpStartFleetActions struct { +type awsAwsjson11_deserializeOpResolveAlias struct { } -func (*awsAwsjson11_deserializeOpStartFleetActions) ID() string { +func (*awsAwsjson11_deserializeOpResolveAlias) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartFleetActions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpResolveAlias) 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) @@ -10276,9 +10823,9 @@ func (m *awsAwsjson11_deserializeOpStartFleetActions) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartFleetActions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorResolveAlias(response, &metadata) } - output := &StartFleetActionsOutput{} + output := &ResolveAliasOutput{} out.Result = output var buff [1024]byte @@ -10298,7 +10845,7 @@ func (m *awsAwsjson11_deserializeOpStartFleetActions) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartFleetActionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentResolveAliasOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10312,7 +10859,7 @@ func (m *awsAwsjson11_deserializeOpStartFleetActions) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartFleetActions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorResolveAlias(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)} @@ -10358,12 +10905,12 @@ func awsAwsjson11_deserializeOpErrorStartFleetActions(response *smithyhttp.Respo case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("TerminalRoutingStrategyException", errorCode): + return awsAwsjson11_deserializeErrorTerminalRoutingStrategyException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) - case strings.EqualFold("UnsupportedRegionException", errorCode): - return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10374,14 +10921,14 @@ func awsAwsjson11_deserializeOpErrorStartFleetActions(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpStartGameSessionPlacement struct { +type awsAwsjson11_deserializeOpResumeGameServerGroup struct { } -func (*awsAwsjson11_deserializeOpStartGameSessionPlacement) ID() string { +func (*awsAwsjson11_deserializeOpResumeGameServerGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartGameSessionPlacement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpResumeGameServerGroup) 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) @@ -10399,9 +10946,9 @@ func (m *awsAwsjson11_deserializeOpStartGameSessionPlacement) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartGameSessionPlacement(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorResumeGameServerGroup(response, &metadata) } - output := &StartGameSessionPlacementOutput{} + output := &ResumeGameServerGroupOutput{} out.Result = output var buff [1024]byte @@ -10421,7 +10968,7 @@ func (m *awsAwsjson11_deserializeOpStartGameSessionPlacement) HandleDeserialize( return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartGameSessionPlacementOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentResumeGameServerGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10435,7 +10982,7 @@ func (m *awsAwsjson11_deserializeOpStartGameSessionPlacement) HandleDeserialize( return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartGameSessionPlacement(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorResumeGameServerGroup(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)} @@ -10494,14 +11041,14 @@ func awsAwsjson11_deserializeOpErrorStartGameSessionPlacement(response *smithyht } } -type awsAwsjson11_deserializeOpStartMatchBackfill struct { +type awsAwsjson11_deserializeOpSearchGameSessions struct { } -func (*awsAwsjson11_deserializeOpStartMatchBackfill) ID() string { +func (*awsAwsjson11_deserializeOpSearchGameSessions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartMatchBackfill) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpSearchGameSessions) 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) @@ -10519,9 +11066,9 @@ func (m *awsAwsjson11_deserializeOpStartMatchBackfill) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartMatchBackfill(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorSearchGameSessions(response, &metadata) } - output := &StartMatchBackfillOutput{} + output := &SearchGameSessionsOutput{} out.Result = output var buff [1024]byte @@ -10541,7 +11088,7 @@ func (m *awsAwsjson11_deserializeOpStartMatchBackfill) HandleDeserialize(ctx con return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartMatchBackfillOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentSearchGameSessionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10555,7 +11102,7 @@ func (m *awsAwsjson11_deserializeOpStartMatchBackfill) HandleDeserialize(ctx con return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartMatchBackfill(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorSearchGameSessions(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)} @@ -10601,6 +11148,12 @@ func awsAwsjson11_deserializeOpErrorStartMatchBackfill(response *smithyhttp.Resp case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("TerminalRoutingStrategyException", errorCode): + return awsAwsjson11_deserializeErrorTerminalRoutingStrategyException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) @@ -10614,14 +11167,14 @@ func awsAwsjson11_deserializeOpErrorStartMatchBackfill(response *smithyhttp.Resp } } -type awsAwsjson11_deserializeOpStartMatchmaking struct { +type awsAwsjson11_deserializeOpStartFleetActions struct { } -func (*awsAwsjson11_deserializeOpStartMatchmaking) ID() string { +func (*awsAwsjson11_deserializeOpStartFleetActions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStartMatchmaking) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartFleetActions) 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) @@ -10639,9 +11192,9 @@ func (m *awsAwsjson11_deserializeOpStartMatchmaking) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStartMatchmaking(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartFleetActions(response, &metadata) } - output := &StartMatchmakingOutput{} + output := &StartFleetActionsOutput{} out.Result = output var buff [1024]byte @@ -10661,7 +11214,7 @@ func (m *awsAwsjson11_deserializeOpStartMatchmaking) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStartMatchmakingOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartFleetActionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10675,7 +11228,7 @@ func (m *awsAwsjson11_deserializeOpStartMatchmaking) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStartMatchmaking(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartFleetActions(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)} @@ -10721,6 +11274,9 @@ func awsAwsjson11_deserializeOpErrorStartMatchmaking(response *smithyhttp.Respon case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) @@ -10734,14 +11290,14 @@ func awsAwsjson11_deserializeOpErrorStartMatchmaking(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpStopFleetActions struct { +type awsAwsjson11_deserializeOpStartGameSessionPlacement struct { } -func (*awsAwsjson11_deserializeOpStopFleetActions) ID() string { +func (*awsAwsjson11_deserializeOpStartGameSessionPlacement) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopFleetActions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartGameSessionPlacement) 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) @@ -10759,9 +11315,9 @@ func (m *awsAwsjson11_deserializeOpStopFleetActions) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopFleetActions(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartGameSessionPlacement(response, &metadata) } - output := &StopFleetActionsOutput{} + output := &StartGameSessionPlacementOutput{} out.Result = output var buff [1024]byte @@ -10781,7 +11337,7 @@ func (m *awsAwsjson11_deserializeOpStopFleetActions) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopFleetActionsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartGameSessionPlacementOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10795,7 +11351,7 @@ func (m *awsAwsjson11_deserializeOpStopFleetActions) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopFleetActions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartGameSessionPlacement(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)} @@ -10844,9 +11400,6 @@ func awsAwsjson11_deserializeOpErrorStopFleetActions(response *smithyhttp.Respon case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) - case strings.EqualFold("UnsupportedRegionException", errorCode): - return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10857,14 +11410,14 @@ func awsAwsjson11_deserializeOpErrorStopFleetActions(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpStopGameSessionPlacement struct { +type awsAwsjson11_deserializeOpStartMatchBackfill struct { } -func (*awsAwsjson11_deserializeOpStopGameSessionPlacement) ID() string { +func (*awsAwsjson11_deserializeOpStartMatchBackfill) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopGameSessionPlacement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartMatchBackfill) 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) @@ -10882,9 +11435,9 @@ func (m *awsAwsjson11_deserializeOpStopGameSessionPlacement) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopGameSessionPlacement(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartMatchBackfill(response, &metadata) } - output := &StopGameSessionPlacementOutput{} + output := &StartMatchBackfillOutput{} out.Result = output var buff [1024]byte @@ -10904,7 +11457,7 @@ func (m *awsAwsjson11_deserializeOpStopGameSessionPlacement) HandleDeserialize(c return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopGameSessionPlacementOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartMatchBackfillOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10918,7 +11471,7 @@ func (m *awsAwsjson11_deserializeOpStopGameSessionPlacement) HandleDeserialize(c return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopGameSessionPlacement(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartMatchBackfill(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)} @@ -10964,8 +11517,8 @@ func awsAwsjson11_deserializeOpErrorStopGameSessionPlacement(response *smithyhtt case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -10977,14 +11530,14 @@ func awsAwsjson11_deserializeOpErrorStopGameSessionPlacement(response *smithyhtt } } -type awsAwsjson11_deserializeOpStopMatchmaking struct { +type awsAwsjson11_deserializeOpStartMatchmaking struct { } -func (*awsAwsjson11_deserializeOpStopMatchmaking) ID() string { +func (*awsAwsjson11_deserializeOpStartMatchmaking) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpStopMatchmaking) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStartMatchmaking) 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) @@ -11002,9 +11555,9 @@ func (m *awsAwsjson11_deserializeOpStopMatchmaking) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorStopMatchmaking(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStartMatchmaking(response, &metadata) } - output := &StopMatchmakingOutput{} + output := &StartMatchmakingOutput{} out.Result = output var buff [1024]byte @@ -11024,7 +11577,7 @@ func (m *awsAwsjson11_deserializeOpStopMatchmaking) HandleDeserialize(ctx contex return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentStopMatchmakingOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStartMatchmakingOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11038,7 +11591,7 @@ func (m *awsAwsjson11_deserializeOpStopMatchmaking) HandleDeserialize(ctx contex return out, metadata, err } -func awsAwsjson11_deserializeOpErrorStopMatchmaking(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStartMatchmaking(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)} @@ -11097,14 +11650,14 @@ func awsAwsjson11_deserializeOpErrorStopMatchmaking(response *smithyhttp.Respons } } -type awsAwsjson11_deserializeOpSuspendGameServerGroup struct { +type awsAwsjson11_deserializeOpStopFleetActions struct { } -func (*awsAwsjson11_deserializeOpSuspendGameServerGroup) ID() string { +func (*awsAwsjson11_deserializeOpStopFleetActions) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpSuspendGameServerGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopFleetActions) 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) @@ -11122,9 +11675,9 @@ func (m *awsAwsjson11_deserializeOpSuspendGameServerGroup) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorSuspendGameServerGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopFleetActions(response, &metadata) } - output := &SuspendGameServerGroupOutput{} + output := &StopFleetActionsOutput{} out.Result = output var buff [1024]byte @@ -11144,7 +11697,7 @@ func (m *awsAwsjson11_deserializeOpSuspendGameServerGroup) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentSuspendGameServerGroupOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStopFleetActionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11158,7 +11711,7 @@ func (m *awsAwsjson11_deserializeOpSuspendGameServerGroup) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorSuspendGameServerGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopFleetActions(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)} @@ -11207,6 +11760,9 @@ func awsAwsjson11_deserializeOpErrorSuspendGameServerGroup(response *smithyhttp. case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11217,14 +11773,14 @@ func awsAwsjson11_deserializeOpErrorSuspendGameServerGroup(response *smithyhttp. } } -type awsAwsjson11_deserializeOpTagResource struct { +type awsAwsjson11_deserializeOpStopGameSessionPlacement struct { } -func (*awsAwsjson11_deserializeOpTagResource) ID() string { +func (*awsAwsjson11_deserializeOpStopGameSessionPlacement) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopGameSessionPlacement) 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) @@ -11242,9 +11798,9 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorTagResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopGameSessionPlacement(response, &metadata) } - output := &TagResourceOutput{} + output := &StopGameSessionPlacementOutput{} out.Result = output var buff [1024]byte @@ -11264,7 +11820,7 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentTagResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStopGameSessionPlacementOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11278,7 +11834,7 @@ func (m *awsAwsjson11_deserializeOpTagResource) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopGameSessionPlacement(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)} @@ -11324,8 +11880,8 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("TaggingFailedException", errorCode): - return awsAwsjson11_deserializeErrorTaggingFailedException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -11337,14 +11893,14 @@ func awsAwsjson11_deserializeOpErrorTagResource(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpUntagResource struct { +type awsAwsjson11_deserializeOpStopMatchmaking struct { } -func (*awsAwsjson11_deserializeOpUntagResource) ID() string { +func (*awsAwsjson11_deserializeOpStopMatchmaking) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpStopMatchmaking) 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) @@ -11362,9 +11918,9 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUntagResource(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorStopMatchmaking(response, &metadata) } - output := &UntagResourceOutput{} + output := &StopMatchmakingOutput{} out.Result = output var buff [1024]byte @@ -11384,7 +11940,7 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUntagResourceOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentStopMatchmakingOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11398,7 +11954,7 @@ func (m *awsAwsjson11_deserializeOpUntagResource) HandleDeserialize(ctx context. return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorStopMatchmaking(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)} @@ -11444,8 +12000,8 @@ func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("TaggingFailedException", errorCode): - return awsAwsjson11_deserializeErrorTaggingFailedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -11457,14 +12013,14 @@ func awsAwsjson11_deserializeOpErrorUntagResource(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpUpdateAlias struct { +type awsAwsjson11_deserializeOpSuspendGameServerGroup struct { } -func (*awsAwsjson11_deserializeOpUpdateAlias) ID() string { +func (*awsAwsjson11_deserializeOpSuspendGameServerGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpSuspendGameServerGroup) 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) @@ -11482,9 +12038,9 @@ func (m *awsAwsjson11_deserializeOpUpdateAlias) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAlias(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorSuspendGameServerGroup(response, &metadata) } - output := &UpdateAliasOutput{} + output := &SuspendGameServerGroupOutput{} out.Result = output var buff [1024]byte @@ -11504,7 +12060,7 @@ func (m *awsAwsjson11_deserializeOpUpdateAlias) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateAliasOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentSuspendGameServerGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11518,7 +12074,7 @@ func (m *awsAwsjson11_deserializeOpUpdateAlias) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorSuspendGameServerGroup(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)} @@ -11577,14 +12133,14 @@ func awsAwsjson11_deserializeOpErrorUpdateAlias(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpUpdateBuild struct { +type awsAwsjson11_deserializeOpTagResource struct { } -func (*awsAwsjson11_deserializeOpUpdateBuild) ID() string { +func (*awsAwsjson11_deserializeOpTagResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateBuild) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpTagResource) 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) @@ -11602,9 +12158,9 @@ func (m *awsAwsjson11_deserializeOpUpdateBuild) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateBuild(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorTagResource(response, &metadata) } - output := &UpdateBuildOutput{} + output := &TagResourceOutput{} out.Result = output var buff [1024]byte @@ -11624,7 +12180,7 @@ func (m *awsAwsjson11_deserializeOpUpdateBuild) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateBuildOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentTagResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11638,7 +12194,7 @@ func (m *awsAwsjson11_deserializeOpUpdateBuild) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateBuild(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorTagResource(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)} @@ -11684,8 +12240,11 @@ func awsAwsjson11_deserializeOpErrorUpdateBuild(response *smithyhttp.Response, m case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("TaggingFailedException", errorCode): + return awsAwsjson11_deserializeErrorTaggingFailedException(response, errorBody) + + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -11697,14 +12256,14 @@ func awsAwsjson11_deserializeOpErrorUpdateBuild(response *smithyhttp.Response, m } } -type awsAwsjson11_deserializeOpUpdateFleetAttributes struct { +type awsAwsjson11_deserializeOpUntagResource struct { } -func (*awsAwsjson11_deserializeOpUpdateFleetAttributes) ID() string { +func (*awsAwsjson11_deserializeOpUntagResource) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateFleetAttributes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUntagResource) 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) @@ -11722,9 +12281,9 @@ func (m *awsAwsjson11_deserializeOpUpdateFleetAttributes) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFleetAttributes(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUntagResource(response, &metadata) } - output := &UpdateFleetAttributesOutput{} + output := &UntagResourceOutput{} out.Result = output var buff [1024]byte @@ -11744,7 +12303,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFleetAttributes) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateFleetAttributesOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUntagResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11758,7 +12317,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFleetAttributes) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateFleetAttributes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUntagResource(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)} @@ -11795,26 +12354,20 @@ func awsAwsjson11_deserializeOpErrorUpdateFleetAttributes(response *smithyhttp.R errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) - case strings.EqualFold("InvalidFleetStatusException", errorCode): - return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnauthorizedException", errorCode): - return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("TaggingFailedException", errorCode): + return awsAwsjson11_deserializeErrorTaggingFailedException(response, errorBody) + + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -11826,14 +12379,14 @@ func awsAwsjson11_deserializeOpErrorUpdateFleetAttributes(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpUpdateFleetCapacity struct { +type awsAwsjson11_deserializeOpUpdateAlias struct { } -func (*awsAwsjson11_deserializeOpUpdateFleetCapacity) ID() string { +func (*awsAwsjson11_deserializeOpUpdateAlias) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateFleetCapacity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateAlias) 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) @@ -11851,9 +12404,9 @@ func (m *awsAwsjson11_deserializeOpUpdateFleetCapacity) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFleetCapacity(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateAlias(response, &metadata) } - output := &UpdateFleetCapacityOutput{} + output := &UpdateAliasOutput{} out.Result = output var buff [1024]byte @@ -11873,7 +12426,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFleetCapacity) HandleDeserialize(ctx co return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateFleetCapacityOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateAliasOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11887,7 +12440,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFleetCapacity) HandleDeserialize(ctx co return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateFleetCapacity(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateAlias(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)} @@ -11924,30 +12477,18 @@ func awsAwsjson11_deserializeOpErrorUpdateFleetCapacity(response *smithyhttp.Res errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) - case strings.EqualFold("InvalidFleetStatusException", errorCode): - return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) - case strings.EqualFold("UnsupportedRegionException", errorCode): - return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11958,14 +12499,14 @@ func awsAwsjson11_deserializeOpErrorUpdateFleetCapacity(response *smithyhttp.Res } } -type awsAwsjson11_deserializeOpUpdateFleetPortSettings struct { +type awsAwsjson11_deserializeOpUpdateBuild struct { } -func (*awsAwsjson11_deserializeOpUpdateFleetPortSettings) ID() string { +func (*awsAwsjson11_deserializeOpUpdateBuild) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateFleetPortSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateBuild) 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) @@ -11983,9 +12524,9 @@ func (m *awsAwsjson11_deserializeOpUpdateFleetPortSettings) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFleetPortSettings(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateBuild(response, &metadata) } - output := &UpdateFleetPortSettingsOutput{} + output := &UpdateBuildOutput{} out.Result = output var buff [1024]byte @@ -12005,7 +12546,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFleetPortSettings) HandleDeserialize(ct return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateFleetPortSettingsOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateBuildOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12019,7 +12560,7 @@ func (m *awsAwsjson11_deserializeOpUpdateFleetPortSettings) HandleDeserialize(ct return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateFleetPortSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateBuild(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)} @@ -12056,21 +12597,12 @@ func awsAwsjson11_deserializeOpErrorUpdateFleetPortSettings(response *smithyhttp errorMessage = bodyInfo.Message } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsAwsjson11_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) - case strings.EqualFold("InvalidFleetStatusException", errorCode): - return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) @@ -12087,14 +12619,14 @@ func awsAwsjson11_deserializeOpErrorUpdateFleetPortSettings(response *smithyhttp } } -type awsAwsjson11_deserializeOpUpdateGameServer struct { +type awsAwsjson11_deserializeOpUpdateContainerFleet struct { } -func (*awsAwsjson11_deserializeOpUpdateGameServer) ID() string { +func (*awsAwsjson11_deserializeOpUpdateContainerFleet) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateGameServer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateContainerFleet) 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) @@ -12112,9 +12644,9 @@ func (m *awsAwsjson11_deserializeOpUpdateGameServer) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateGameServer(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateContainerFleet(response, &metadata) } - output := &UpdateGameServerOutput{} + output := &UpdateContainerFleetOutput{} out.Result = output var buff [1024]byte @@ -12134,7 +12666,7 @@ func (m *awsAwsjson11_deserializeOpUpdateGameServer) HandleDeserialize(ctx conte return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateGameServerOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateContainerFleetOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12148,7 +12680,7 @@ func (m *awsAwsjson11_deserializeOpUpdateGameServer) HandleDeserialize(ctx conte return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateGameServer(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateContainerFleet(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)} @@ -12191,12 +12723,21 @@ func awsAwsjson11_deserializeOpErrorUpdateGameServer(response *smithyhttp.Respon case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + case strings.EqualFold("NotReadyException", errorCode): + return awsAwsjson11_deserializeErrorNotReadyException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12207,14 +12748,14 @@ func awsAwsjson11_deserializeOpErrorUpdateGameServer(response *smithyhttp.Respon } } -type awsAwsjson11_deserializeOpUpdateGameServerGroup struct { +type awsAwsjson11_deserializeOpUpdateContainerGroupDefinition struct { } -func (*awsAwsjson11_deserializeOpUpdateGameServerGroup) ID() string { +func (*awsAwsjson11_deserializeOpUpdateContainerGroupDefinition) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateGameServerGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateContainerGroupDefinition) 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) @@ -12232,9 +12773,9 @@ func (m *awsAwsjson11_deserializeOpUpdateGameServerGroup) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateGameServerGroup(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateContainerGroupDefinition(response, &metadata) } - output := &UpdateGameServerGroupOutput{} + output := &UpdateContainerGroupDefinitionOutput{} out.Result = output var buff [1024]byte @@ -12254,7 +12795,7 @@ func (m *awsAwsjson11_deserializeOpUpdateGameServerGroup) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateGameServerGroupOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateContainerGroupDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12268,7 +12809,7 @@ func (m *awsAwsjson11_deserializeOpUpdateGameServerGroup) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateGameServerGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateContainerGroupDefinition(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)} @@ -12311,12 +12852,18 @@ func awsAwsjson11_deserializeOpErrorUpdateGameServerGroup(response *smithyhttp.R case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12327,14 +12874,14 @@ func awsAwsjson11_deserializeOpErrorUpdateGameServerGroup(response *smithyhttp.R } } -type awsAwsjson11_deserializeOpUpdateGameSession struct { +type awsAwsjson11_deserializeOpUpdateFleetAttributes struct { } -func (*awsAwsjson11_deserializeOpUpdateGameSession) ID() string { +func (*awsAwsjson11_deserializeOpUpdateFleetAttributes) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateGameSession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateFleetAttributes) 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) @@ -12352,9 +12899,9 @@ func (m *awsAwsjson11_deserializeOpUpdateGameSession) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateGameSession(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFleetAttributes(response, &metadata) } - output := &UpdateGameSessionOutput{} + output := &UpdateFleetAttributesOutput{} out.Result = output var buff [1024]byte @@ -12374,7 +12921,7 @@ func (m *awsAwsjson11_deserializeOpUpdateGameSession) HandleDeserialize(ctx cont return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateGameSessionOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateFleetAttributesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12388,7 +12935,7 @@ func (m *awsAwsjson11_deserializeOpUpdateGameSession) HandleDeserialize(ctx cont return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateGameSession(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateFleetAttributes(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)} @@ -12431,12 +12978,15 @@ func awsAwsjson11_deserializeOpErrorUpdateGameSession(response *smithyhttp.Respo case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) - case strings.EqualFold("InvalidGameSessionStatusException", errorCode): - return awsAwsjson11_deserializeErrorInvalidGameSessionStatusException(response, errorBody) + case strings.EqualFold("InvalidFleetStatusException", errorCode): + return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) @@ -12453,14 +13003,14 @@ func awsAwsjson11_deserializeOpErrorUpdateGameSession(response *smithyhttp.Respo } } -type awsAwsjson11_deserializeOpUpdateGameSessionQueue struct { +type awsAwsjson11_deserializeOpUpdateFleetCapacity struct { } -func (*awsAwsjson11_deserializeOpUpdateGameSessionQueue) ID() string { +func (*awsAwsjson11_deserializeOpUpdateFleetCapacity) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateGameSessionQueue) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateFleetCapacity) 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) @@ -12478,9 +13028,9 @@ func (m *awsAwsjson11_deserializeOpUpdateGameSessionQueue) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateGameSessionQueue(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFleetCapacity(response, &metadata) } - output := &UpdateGameSessionQueueOutput{} + output := &UpdateFleetCapacityOutput{} out.Result = output var buff [1024]byte @@ -12500,7 +13050,7 @@ func (m *awsAwsjson11_deserializeOpUpdateGameSessionQueue) HandleDeserialize(ctx return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateGameSessionQueueOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateFleetCapacityOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12514,7 +13064,7 @@ func (m *awsAwsjson11_deserializeOpUpdateGameSessionQueue) HandleDeserialize(ctx return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateGameSessionQueue(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateFleetCapacity(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)} @@ -12551,18 +13101,30 @@ func awsAwsjson11_deserializeOpErrorUpdateGameSessionQueue(response *smithyhttp. errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + case strings.EqualFold("InvalidFleetStatusException", errorCode): + return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) case strings.EqualFold("UnauthorizedException", errorCode): return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12573,14 +13135,14 @@ func awsAwsjson11_deserializeOpErrorUpdateGameSessionQueue(response *smithyhttp. } } -type awsAwsjson11_deserializeOpUpdateMatchmakingConfiguration struct { +type awsAwsjson11_deserializeOpUpdateFleetPortSettings struct { } -func (*awsAwsjson11_deserializeOpUpdateMatchmakingConfiguration) ID() string { +func (*awsAwsjson11_deserializeOpUpdateFleetPortSettings) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateMatchmakingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateFleetPortSettings) 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) @@ -12598,9 +13160,9 @@ func (m *awsAwsjson11_deserializeOpUpdateMatchmakingConfiguration) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateMatchmakingConfiguration(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateFleetPortSettings(response, &metadata) } - output := &UpdateMatchmakingConfigurationOutput{} + output := &UpdateFleetPortSettingsOutput{} out.Result = output var buff [1024]byte @@ -12620,7 +13182,7 @@ func (m *awsAwsjson11_deserializeOpUpdateMatchmakingConfiguration) HandleDeseria return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateMatchmakingConfigurationOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateFleetPortSettingsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12634,7 +13196,7 @@ func (m *awsAwsjson11_deserializeOpUpdateMatchmakingConfiguration) HandleDeseria return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateMatchmakingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateFleetPortSettings(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)} @@ -12671,17 +13233,26 @@ func awsAwsjson11_deserializeOpErrorUpdateMatchmakingConfiguration(response *smi errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + case strings.EqualFold("InvalidFleetStatusException", errorCode): + return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) - case strings.EqualFold("UnsupportedRegionException", errorCode): - return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -12693,14 +13264,14 @@ func awsAwsjson11_deserializeOpErrorUpdateMatchmakingConfiguration(response *smi } } -type awsAwsjson11_deserializeOpUpdateRuntimeConfiguration struct { +type awsAwsjson11_deserializeOpUpdateGameServer struct { } -func (*awsAwsjson11_deserializeOpUpdateRuntimeConfiguration) ID() string { +func (*awsAwsjson11_deserializeOpUpdateGameServer) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateRuntimeConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateGameServer) 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) @@ -12718,9 +13289,9 @@ func (m *awsAwsjson11_deserializeOpUpdateRuntimeConfiguration) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateRuntimeConfiguration(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateGameServer(response, &metadata) } - output := &UpdateRuntimeConfigurationOutput{} + output := &UpdateGameServerOutput{} out.Result = output var buff [1024]byte @@ -12740,7 +13311,7 @@ func (m *awsAwsjson11_deserializeOpUpdateRuntimeConfiguration) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateRuntimeConfigurationOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateGameServerOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12754,7 +13325,7 @@ func (m *awsAwsjson11_deserializeOpUpdateRuntimeConfiguration) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateRuntimeConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateGameServer(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)} @@ -12794,15 +13365,9 @@ func awsAwsjson11_deserializeOpErrorUpdateRuntimeConfiguration(response *smithyh case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) - case strings.EqualFold("InvalidFleetStatusException", errorCode): - return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("NotFoundException", errorCode): return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) @@ -12819,14 +13384,14 @@ func awsAwsjson11_deserializeOpErrorUpdateRuntimeConfiguration(response *smithyh } } -type awsAwsjson11_deserializeOpUpdateScript struct { +type awsAwsjson11_deserializeOpUpdateGameServerGroup struct { } -func (*awsAwsjson11_deserializeOpUpdateScript) ID() string { +func (*awsAwsjson11_deserializeOpUpdateGameServerGroup) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpUpdateScript) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateGameServerGroup) 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) @@ -12844,9 +13409,9 @@ func (m *awsAwsjson11_deserializeOpUpdateScript) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorUpdateScript(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateGameServerGroup(response, &metadata) } - output := &UpdateScriptOutput{} + output := &UpdateGameServerGroupOutput{} out.Result = output var buff [1024]byte @@ -12866,7 +13431,7 @@ func (m *awsAwsjson11_deserializeOpUpdateScript) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentUpdateScriptOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateGameServerGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12880,7 +13445,7 @@ func (m *awsAwsjson11_deserializeOpUpdateScript) HandleDeserialize(ctx context.C return out, metadata, err } -func awsAwsjson11_deserializeOpErrorUpdateScript(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateGameServerGroup(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)} @@ -12939,14 +13504,14 @@ func awsAwsjson11_deserializeOpErrorUpdateScript(response *smithyhttp.Response, } } -type awsAwsjson11_deserializeOpValidateMatchmakingRuleSet struct { +type awsAwsjson11_deserializeOpUpdateGameSession struct { } -func (*awsAwsjson11_deserializeOpValidateMatchmakingRuleSet) ID() string { +func (*awsAwsjson11_deserializeOpUpdateGameSession) ID() string { return "OperationDeserializer" } -func (m *awsAwsjson11_deserializeOpValidateMatchmakingRuleSet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsjson11_deserializeOpUpdateGameSession) 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) @@ -12964,9 +13529,9 @@ func (m *awsAwsjson11_deserializeOpValidateMatchmakingRuleSet) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsjson11_deserializeOpErrorValidateMatchmakingRuleSet(response, &metadata) + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateGameSession(response, &metadata) } - output := &ValidateMatchmakingRuleSetOutput{} + output := &UpdateGameSessionOutput{} out.Result = output var buff [1024]byte @@ -12986,7 +13551,7 @@ func (m *awsAwsjson11_deserializeOpValidateMatchmakingRuleSet) HandleDeserialize return out, metadata, err } - err = awsAwsjson11_deserializeOpDocumentValidateMatchmakingRuleSetOutput(&output, shape) + err = awsAwsjson11_deserializeOpDocumentUpdateGameSessionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13000,7 +13565,7 @@ func (m *awsAwsjson11_deserializeOpValidateMatchmakingRuleSet) HandleDeserialize return out, metadata, err } -func awsAwsjson11_deserializeOpErrorValidateMatchmakingRuleSet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsjson11_deserializeOpErrorUpdateGameSession(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)} @@ -13037,14 +13602,23 @@ func awsAwsjson11_deserializeOpErrorValidateMatchmakingRuleSet(response *smithyh errorMessage = bodyInfo.Message } switch { + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServiceException", errorCode): return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + case strings.EqualFold("InvalidGameSessionStatusException", errorCode): + return awsAwsjson11_deserializeErrorInvalidGameSessionStatusException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) - case strings.EqualFold("UnsupportedRegionException", errorCode): - return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -13056,11 +13630,40 @@ func awsAwsjson11_deserializeOpErrorValidateMatchmakingRuleSet(response *smithyh } } -func awsAwsjson11_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +type awsAwsjson11_deserializeOpUpdateGameSessionQueue struct { +} + +func (*awsAwsjson11_deserializeOpUpdateGameSessionQueue) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateGameSessionQueue) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateGameSessionQueue(response, &metadata) + } + output := &UpdateGameSessionQueueOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -13071,12 +13674,10 @@ func awsAwsjson11_deserializeErrorConflictException(response *smithyhttp.Respons Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - output := &types.ConflictException{} - err := awsAwsjson11_deserializeDocumentConflictException(&output, shape) - + err = awsAwsjson11_deserializeOpDocumentUpdateGameSessionQueueOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13084,22 +13685,32 @@ func awsAwsjson11_deserializeErrorConflictException(response *smithyhttp.Respons Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - errorBody.Seek(0, io.SeekStart) - return output + return out, metadata, err } -func awsAwsjson11_deserializeErrorFleetCapacityExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error { +func awsAwsjson11_deserializeOpErrorUpdateGameSessionQueue(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) body := io.TeeReader(errorBody, ringBuffer) decoder := json.NewDecoder(body) decoder.UseNumber() - var shape interface{} - if err := decoder.Decode(&shape); err != nil && err != io.EOF { + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -13109,7 +13720,573 @@ func awsAwsjson11_deserializeErrorFleetCapacityExceededException(response *smith return err } - output := &types.FleetCapacityExceededException{} + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateMatchmakingConfiguration struct { +} + +func (*awsAwsjson11_deserializeOpUpdateMatchmakingConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateMatchmakingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateMatchmakingConfiguration(response, &metadata) + } + output := &UpdateMatchmakingConfigurationOutput{} + 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_deserializeOpDocumentUpdateMatchmakingConfigurationOutput(&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_deserializeOpErrorUpdateMatchmakingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateRuntimeConfiguration struct { +} + +func (*awsAwsjson11_deserializeOpUpdateRuntimeConfiguration) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateRuntimeConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateRuntimeConfiguration(response, &metadata) + } + output := &UpdateRuntimeConfigurationOutput{} + 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_deserializeOpDocumentUpdateRuntimeConfigurationOutput(&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_deserializeOpErrorUpdateRuntimeConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidFleetStatusException", errorCode): + return awsAwsjson11_deserializeErrorInvalidFleetStatusException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("LimitExceededException", errorCode): + return awsAwsjson11_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpUpdateScript struct { +} + +func (*awsAwsjson11_deserializeOpUpdateScript) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateScript) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorUpdateScript(response, &metadata) + } + output := &UpdateScriptOutput{} + 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_deserializeOpDocumentUpdateScriptOutput(&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_deserializeOpErrorUpdateScript(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsAwsjson11_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsAwsjson11_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson11_deserializeOpValidateMatchmakingRuleSet struct { +} + +func (*awsAwsjson11_deserializeOpValidateMatchmakingRuleSet) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpValidateMatchmakingRuleSet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorValidateMatchmakingRuleSet(response, &metadata) + } + output := &ValidateMatchmakingRuleSetOutput{} + 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_deserializeOpDocumentValidateMatchmakingRuleSetOutput(&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_deserializeOpErrorValidateMatchmakingRuleSet(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsAwsjson11_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("UnsupportedRegionException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedRegionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsAwsjson11_deserializeErrorConflictException(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.ConflictException{} + err := awsAwsjson11_deserializeDocumentConflictException(&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_deserializeErrorFleetCapacityExceededException(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.FleetCapacityExceededException{} err := awsAwsjson11_deserializeDocumentFleetCapacityExceededException(&output, shape) if err != nil { @@ -14248,6 +15425,15 @@ func awsAwsjson11_deserializeDocumentCompute(v **types.Compute, value interface{ sv.GameLiftServiceSdkEndpoint = ptr.String(jtv) } + case "GameServerContainerGroupDefinitionArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContainerGroupDefinitionNameOrArn to be of type string, got %T instead", value) + } + sv.GameServerContainerGroupDefinitionArn = ptr.String(jtv) + } + case "InstanceId": if value != nil { jtv, ok := value.(string) @@ -14261,36 +15447,216 @@ func awsAwsjson11_deserializeDocumentCompute(v **types.Compute, value interface{ if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected IpAddress to be of type string, got %T instead", value) + return fmt.Errorf("expected IpAddress to be of type string, got %T instead", value) + } + sv.IpAddress = ptr.String(jtv) + } + + case "Location": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LocationStringModel to be of type string, got %T instead", value) + } + sv.Location = ptr.String(jtv) + } + + case "OperatingSystem": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OperatingSystem to be of type string, got %T instead", value) + } + sv.OperatingSystem = types.OperatingSystem(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EC2InstanceType to be of type string, got %T instead", value) + } + sv.Type = types.EC2InstanceType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentComputeList(v *[]types.Compute, 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.Compute + if *v == nil { + cv = []types.Compute{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Compute + destAddr := &col + if err := awsAwsjson11_deserializeDocumentCompute(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentConflictException(v **types.ConflictException, 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.ConflictException + if *v == nil { + sv = &types.ConflictException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentConnectionPortRange(v **types.ConnectionPortRange, 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.ConnectionPortRange + if *v == nil { + sv = &types.ConnectionPortRange{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FromPort": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected PortNumber to be json.Number, got %T instead", value) } - sv.IpAddress = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.FromPort = ptr.Int32(int32(i64)) } - case "Location": + case "ToPort": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected LocationStringModel to be of type string, got %T instead", value) + return fmt.Errorf("expected PortNumber to be json.Number, got %T instead", value) } - sv.Location = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ToPort = ptr.Int32(int32(i64)) } - case "OperatingSystem": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentContainerAttribute(v **types.ContainerAttribute, 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.ContainerAttribute + if *v == nil { + sv = &types.ContainerAttribute{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected OperatingSystem to be of type string, got %T instead", value) + return fmt.Errorf("expected NonZeroAnd128MaxAsciiString to be of type string, got %T instead", value) } - sv.OperatingSystem = types.OperatingSystem(jtv) + sv.ContainerName = ptr.String(jtv) } - case "Type": + case "ContainerRuntimeId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EC2InstanceType to be of type string, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Type = types.EC2InstanceType(jtv) + sv.ContainerRuntimeId = ptr.String(jtv) } default: @@ -14302,7 +15668,7 @@ func awsAwsjson11_deserializeDocumentCompute(v **types.Compute, value interface{ return nil } -func awsAwsjson11_deserializeDocumentComputeList(v *[]types.Compute, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerAttributes(v *[]types.ContainerAttribute, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14315,17 +15681,17 @@ func awsAwsjson11_deserializeDocumentComputeList(v *[]types.Compute, value inter return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.Compute + var cv []types.ContainerAttribute if *v == nil { - cv = []types.Compute{} + cv = []types.ContainerAttribute{} } else { cv = *v } for _, value := range shape { - var col types.Compute + var col types.ContainerAttribute destAddr := &col - if err := awsAwsjson11_deserializeDocumentCompute(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentContainerAttribute(&destAddr, value); err != nil { return err } col = *destAddr @@ -14336,7 +15702,7 @@ func awsAwsjson11_deserializeDocumentComputeList(v *[]types.Compute, value inter return nil } -func awsAwsjson11_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerCommandStringList(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14344,39 +15710,35 @@ func awsAwsjson11_deserializeDocumentConflictException(v **types.ConflictExcepti return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ConflictException + var cv []string if *v == nil { - sv = &types.ConflictException{} + cv = []string{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "message", "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAnd255MaxString to be of type string, got %T instead", value) } - - default: - _, _ = key, value - + col = jtv } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentConnectionPortRange(v **types.ConnectionPortRange, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerDependency(v **types.ContainerDependency, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14389,39 +15751,31 @@ func awsAwsjson11_deserializeDocumentConnectionPortRange(v **types.ConnectionPor return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ConnectionPortRange + var sv *types.ContainerDependency if *v == nil { - sv = &types.ConnectionPortRange{} + sv = &types.ContainerDependency{} } else { sv = *v } for key, value := range shape { switch key { - case "FromPort": + case "Condition": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PortNumber to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected ContainerDependencyCondition to be of type string, got %T instead", value) } - sv.FromPort = ptr.Int32(int32(i64)) + sv.Condition = types.ContainerDependencyCondition(jtv) } - case "ToPort": + case "ContainerName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PortNumber to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonZeroAnd128MaxAsciiString to be of type string, got %T instead", value) } - sv.ToPort = ptr.Int32(int32(i64)) + sv.ContainerName = ptr.String(jtv) } default: @@ -14433,7 +15787,41 @@ func awsAwsjson11_deserializeDocumentConnectionPortRange(v **types.ConnectionPor return nil } -func awsAwsjson11_deserializeDocumentContainerAttributes(v **types.ContainerAttributes, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerDependencyList(v *[]types.ContainerDependency, 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.ContainerDependency + if *v == nil { + cv = []types.ContainerDependency{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ContainerDependency + destAddr := &col + if err := awsAwsjson11_deserializeDocumentContainerDependency(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentContainerEnvironment(v **types.ContainerEnvironment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14446,18 +15834,31 @@ func awsAwsjson11_deserializeDocumentContainerAttributes(v **types.ContainerAttr return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ContainerAttributes + var sv *types.ContainerEnvironment if *v == nil { - sv = &types.ContainerAttributes{} + sv = &types.ContainerEnvironment{} } else { sv = *v } for key, value := range shape { switch key { - case "ContainerPortMappings": - if err := awsAwsjson11_deserializeDocumentContainerPortMappingList(&sv.ContainerPortMappings, value); err != nil { - return err + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAnd255MaxString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAnd255MaxString to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) } default: @@ -14469,7 +15870,7 @@ func awsAwsjson11_deserializeDocumentContainerAttributes(v **types.ContainerAttr return nil } -func awsAwsjson11_deserializeDocumentContainerCommandStringList(v *[]string, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerEnvironmentList(v *[]types.ContainerEnvironment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14482,22 +15883,20 @@ func awsAwsjson11_deserializeDocumentContainerCommandStringList(v *[]string, val return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var cv []types.ContainerEnvironment if *v == nil { - cv = []string{} + cv = []types.ContainerEnvironment{} } else { cv = *v } for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonZeroAnd255MaxString to be of type string, got %T instead", value) - } - col = jtv + var col types.ContainerEnvironment + destAddr := &col + if err := awsAwsjson11_deserializeDocumentContainerEnvironment(&destAddr, value); err != nil { + return err } + col = *destAddr cv = append(cv, col) } @@ -14505,7 +15904,7 @@ func awsAwsjson11_deserializeDocumentContainerCommandStringList(v *[]string, val return nil } -func awsAwsjson11_deserializeDocumentContainerDefinition(v **types.ContainerDefinition, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerFleet(v **types.ContainerFleet, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14518,189 +15917,198 @@ func awsAwsjson11_deserializeDocumentContainerDefinition(v **types.ContainerDefi return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ContainerDefinition + var sv *types.ContainerFleet if *v == nil { - sv = &types.ContainerDefinition{} + sv = &types.ContainerFleet{} } else { sv = *v } - for key, value := range shape { - switch key { - case "Command": - if err := awsAwsjson11_deserializeDocumentContainerCommandStringList(&sv.Command, value); err != nil { - return err + for key, value := range shape { + switch key { + case "BillingType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContainerFleetBillingType to be of type string, got %T instead", value) + } + sv.BillingType = types.ContainerFleetBillingType(jtv) + } + + case "CreationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "DeploymentDetails": + if err := awsAwsjson11_deserializeDocumentDeploymentDetails(&sv.DeploymentDetails, value); err != nil { + return err + } + + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAndMaxString to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "FleetArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetArn to be of type string, got %T instead", value) + } + sv.FleetArn = ptr.String(jtv) + } + + case "FleetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetId to be of type string, got %T instead", value) + } + sv.FleetId = ptr.String(jtv) + } + + case "FleetRoleArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ArnStringModel to be of type string, got %T instead", value) + } + sv.FleetRoleArn = ptr.String(jtv) + } + + case "GameServerContainerGroupDefinitionArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContainerGroupDefinitionArn to be of type string, got %T instead", value) + } + sv.GameServerContainerGroupDefinitionArn = ptr.String(jtv) } - case "ContainerName": + case "GameServerContainerGroupDefinitionName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonZeroAnd128MaxAsciiString to be of type string, got %T instead", value) + return fmt.Errorf("expected ContainerGroupDefinitionName to be of type string, got %T instead", value) } - sv.ContainerName = ptr.String(jtv) + sv.GameServerContainerGroupDefinitionName = ptr.String(jtv) } - case "Cpu": + case "GameServerContainerGroupsPerInstance": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ContainerCpu to be json.Number, got %T instead", value) + return fmt.Errorf("expected GameServerContainerGroupsPerInstance to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.Cpu = ptr.Int32(int32(i64)) + sv.GameServerContainerGroupsPerInstance = ptr.Int32(int32(i64)) } - case "DependsOn": - if err := awsAwsjson11_deserializeDocumentContainerDependencyList(&sv.DependsOn, value); err != nil { + case "GameSessionCreationLimitPolicy": + if err := awsAwsjson11_deserializeDocumentGameSessionCreationLimitPolicy(&sv.GameSessionCreationLimitPolicy, value); err != nil { return err } - case "EntryPoint": - if err := awsAwsjson11_deserializeDocumentContainerEntryPointList(&sv.EntryPoint, value); err != nil { + case "InstanceConnectionPortRange": + if err := awsAwsjson11_deserializeDocumentConnectionPortRange(&sv.InstanceConnectionPortRange, value); err != nil { return err } - case "Environment": - if err := awsAwsjson11_deserializeDocumentContainerEnvironmentList(&sv.Environment, value); err != nil { + case "InstanceInboundPermissions": + if err := awsAwsjson11_deserializeDocumentIpPermissionsList(&sv.InstanceInboundPermissions, value); err != nil { return err } - case "Essential": + case "InstanceType": if value != nil { - jtv, ok := value.(bool) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected BooleanModel to be of type *bool, got %T instead", value) + return fmt.Errorf("expected NonZeroAndMaxString to be of type string, got %T instead", value) } - sv.Essential = ptr.Bool(jtv) + sv.InstanceType = ptr.String(jtv) } - case "HealthCheck": - if err := awsAwsjson11_deserializeDocumentContainerHealthCheck(&sv.HealthCheck, value); err != nil { + case "LocationAttributes": + if err := awsAwsjson11_deserializeDocumentContainerFleetLocationAttributesList(&sv.LocationAttributes, value); err != nil { return err } - case "ImageUri": + case "LogConfiguration": + if err := awsAwsjson11_deserializeDocumentLogConfiguration(&sv.LogConfiguration, value); err != nil { + return err + } + + case "MaximumGameServerContainerGroupsPerInstance": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ImageUriString to be of type string, got %T instead", value) + return fmt.Errorf("expected MaximumGameServerContainerGroupsPerInstance to be json.Number, got %T instead", value) } - sv.ImageUri = ptr.String(jtv) - } - - case "MemoryLimits": - if err := awsAwsjson11_deserializeDocumentContainerMemoryLimits(&sv.MemoryLimits, value); err != nil { - return err + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MaximumGameServerContainerGroupsPerInstance = ptr.Int32(int32(i64)) } - case "PortConfiguration": - if err := awsAwsjson11_deserializeDocumentContainerPortConfiguration(&sv.PortConfiguration, value); err != nil { + case "MetricGroups": + if err := awsAwsjson11_deserializeDocumentMetricGroupList(&sv.MetricGroups, value); err != nil { return err } - case "ResolvedImageDigest": + case "NewGameSessionProtectionPolicy": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Sha256 to be of type string, got %T instead", value) + return fmt.Errorf("expected ProtectionPolicy to be of type string, got %T instead", value) } - sv.ResolvedImageDigest = ptr.String(jtv) + sv.NewGameSessionProtectionPolicy = types.ProtectionPolicy(jtv) } - case "WorkingDirectory": + case "PerInstanceContainerGroupDefinitionArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonZeroAnd255MaxString to be of type string, got %T instead", value) + return fmt.Errorf("expected ContainerGroupDefinitionArn to be of type string, got %T instead", value) } - sv.WorkingDirectory = ptr.String(jtv) + sv.PerInstanceContainerGroupDefinitionArn = ptr.String(jtv) } - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeDocumentContainerDefinitionList(v *[]types.ContainerDefinition, 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.ContainerDefinition - if *v == nil { - cv = []types.ContainerDefinition{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.ContainerDefinition - destAddr := &col - if err := awsAwsjson11_deserializeDocumentContainerDefinition(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsAwsjson11_deserializeDocumentContainerDependency(v **types.ContainerDependency, 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.ContainerDependency - if *v == nil { - sv = &types.ContainerDependency{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "Condition": + case "PerInstanceContainerGroupDefinitionName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ContainerDependencyCondition to be of type string, got %T instead", value) + return fmt.Errorf("expected ContainerGroupDefinitionName to be of type string, got %T instead", value) } - sv.Condition = types.ContainerDependencyCondition(jtv) + sv.PerInstanceContainerGroupDefinitionName = ptr.String(jtv) } - case "ContainerName": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonZeroAnd128MaxAsciiString to be of type string, got %T instead", value) + return fmt.Errorf("expected ContainerFleetStatus to be of type string, got %T instead", value) } - sv.ContainerName = ptr.String(jtv) + sv.Status = types.ContainerFleetStatus(jtv) } default: @@ -14712,7 +16120,7 @@ func awsAwsjson11_deserializeDocumentContainerDependency(v **types.ContainerDepe return nil } -func awsAwsjson11_deserializeDocumentContainerDependencyList(v *[]types.ContainerDependency, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerFleetList(v *[]types.ContainerFleet, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14725,17 +16133,17 @@ func awsAwsjson11_deserializeDocumentContainerDependencyList(v *[]types.Containe return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ContainerDependency + var cv []types.ContainerFleet if *v == nil { - cv = []types.ContainerDependency{} + cv = []types.ContainerFleet{} } else { cv = *v } for _, value := range shape { - var col types.ContainerDependency + var col types.ContainerFleet destAddr := &col - if err := awsAwsjson11_deserializeDocumentContainerDependency(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentContainerFleet(&destAddr, value); err != nil { return err } col = *destAddr @@ -14746,43 +16154,7 @@ func awsAwsjson11_deserializeDocumentContainerDependencyList(v *[]types.Containe return nil } -func awsAwsjson11_deserializeDocumentContainerEntryPointList(v *[]string, 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 []string - if *v == nil { - cv = []string{} - } else { - cv = *v - } - - for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected NonZeroAndMaxString to be of type string, got %T instead", value) - } - col = jtv - } - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsAwsjson11_deserializeDocumentContainerEnvironment(v **types.ContainerEnvironment, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerFleetLocationAttributes(v **types.ContainerFleetLocationAttributes, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14795,31 +16167,31 @@ func awsAwsjson11_deserializeDocumentContainerEnvironment(v **types.ContainerEnv return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ContainerEnvironment + var sv *types.ContainerFleetLocationAttributes if *v == nil { - sv = &types.ContainerEnvironment{} + sv = &types.ContainerFleetLocationAttributes{} } else { sv = *v } for key, value := range shape { switch key { - case "Name": + case "Location": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonZeroAnd255MaxString to be of type string, got %T instead", value) + return fmt.Errorf("expected LocationStringModel to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.Location = ptr.String(jtv) } - case "Value": + case "Status": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonZeroAnd255MaxString to be of type string, got %T instead", value) + return fmt.Errorf("expected ContainerFleetLocationStatus to be of type string, got %T instead", value) } - sv.Value = ptr.String(jtv) + sv.Status = types.ContainerFleetLocationStatus(jtv) } default: @@ -14831,7 +16203,7 @@ func awsAwsjson11_deserializeDocumentContainerEnvironment(v **types.ContainerEnv return nil } -func awsAwsjson11_deserializeDocumentContainerEnvironmentList(v *[]types.ContainerEnvironment, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerFleetLocationAttributesList(v *[]types.ContainerFleetLocationAttributes, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14844,17 +16216,17 @@ func awsAwsjson11_deserializeDocumentContainerEnvironmentList(v *[]types.Contain return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ContainerEnvironment + var cv []types.ContainerFleetLocationAttributes if *v == nil { - cv = []types.ContainerEnvironment{} + cv = []types.ContainerFleetLocationAttributes{} } else { cv = *v } for _, value := range shape { - var col types.ContainerEnvironment + var col types.ContainerFleetLocationAttributes destAddr := &col - if err := awsAwsjson11_deserializeDocumentContainerEnvironment(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentContainerFleetLocationAttributes(&destAddr, value); err != nil { return err } col = *destAddr @@ -14887,11 +16259,6 @@ func awsAwsjson11_deserializeDocumentContainerGroupDefinition(v **types.Containe for key, value := range shape { switch key { - case "ContainerDefinitions": - if err := awsAwsjson11_deserializeDocumentContainerDefinitionList(&sv.ContainerDefinitions, value); err != nil { - return err - } - case "ContainerGroupDefinitionArn": if value != nil { jtv, ok := value.(string) @@ -14901,6 +16268,15 @@ func awsAwsjson11_deserializeDocumentContainerGroupDefinition(v **types.Containe sv.ContainerGroupDefinitionArn = ptr.String(jtv) } + case "ContainerGroupType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContainerGroupType to be of type string, got %T instead", value) + } + sv.ContainerGroupType = types.ContainerGroupType(jtv) + } + case "CreationTime": if value != nil { switch jtv := value.(type) { @@ -14917,6 +16293,11 @@ func awsAwsjson11_deserializeDocumentContainerGroupDefinition(v **types.Containe } } + case "GameServerContainerDefinition": + if err := awsAwsjson11_deserializeDocumentGameServerContainerDefinition(&sv.GameServerContainerDefinition, value); err != nil { + return err + } + case "Name": if value != nil { jtv, ok := value.(string) @@ -14926,66 +16307,105 @@ func awsAwsjson11_deserializeDocumentContainerGroupDefinition(v **types.Containe sv.Name = ptr.String(jtv) } - case "OperatingSystem": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ContainerOperatingSystem to be of type string, got %T instead", value) - } - sv.OperatingSystem = types.ContainerOperatingSystem(jtv) - } + case "OperatingSystem": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContainerOperatingSystem to be of type string, got %T instead", value) + } + sv.OperatingSystem = types.ContainerOperatingSystem(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContainerGroupDefinitionStatus to be of type string, got %T instead", value) + } + sv.Status = types.ContainerGroupDefinitionStatus(jtv) + } + + case "StatusReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAndMaxString to be of type string, got %T instead", value) + } + sv.StatusReason = ptr.String(jtv) + } + + case "SupportContainerDefinitions": + if err := awsAwsjson11_deserializeDocumentSupportContainerDefinitionList(&sv.SupportContainerDefinitions, value); err != nil { + return err + } + + case "TotalMemoryLimitMebibytes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ContainerTotalMemoryLimit to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TotalMemoryLimitMebibytes = ptr.Int32(int32(i64)) + } + + case "TotalVcpuLimit": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.TotalVcpuLimit = ptr.Float64(f64) + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) - case "SchedulingStrategy": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ContainerSchedulingStrategy to be of type string, got %T instead", value) - } - sv.SchedulingStrategy = types.ContainerSchedulingStrategy(jtv) - } + } + sv.TotalVcpuLimit = ptr.Float64(f64) + + default: + return fmt.Errorf("expected ContainerTotalVcpuLimit to be a JSON Number, got %T instead", value) - case "Status": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ContainerGroupDefinitionStatus to be of type string, got %T instead", value) } - sv.Status = types.ContainerGroupDefinitionStatus(jtv) } - case "StatusReason": + case "VersionDescription": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected NonZeroAndMaxString to be of type string, got %T instead", value) } - sv.StatusReason = ptr.String(jtv) - } - - case "TotalCpuLimit": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected ContainerTotalCpuLimit to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.TotalCpuLimit = ptr.Int32(int32(i64)) + sv.VersionDescription = ptr.String(jtv) } - case "TotalMemoryLimit": + case "VersionNumber": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ContainerTotalMemoryLimit to be json.Number, got %T instead", value) + return fmt.Errorf("expected PositiveInteger to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.TotalMemoryLimit = ptr.Int32(int32(i64)) + sv.VersionNumber = ptr.Int32(int32(i64)) } default: @@ -15031,41 +16451,7 @@ func awsAwsjson11_deserializeDocumentContainerGroupDefinitionList(v *[]types.Con return nil } -func awsAwsjson11_deserializeDocumentContainerGroupDefinitionPropertiesList(v *[]types.ContainerGroupDefinitionProperty, 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.ContainerGroupDefinitionProperty - if *v == nil { - cv = []types.ContainerGroupDefinitionProperty{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.ContainerGroupDefinitionProperty - destAddr := &col - if err := awsAwsjson11_deserializeDocumentContainerGroupDefinitionProperty(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsAwsjson11_deserializeDocumentContainerGroupDefinitionProperty(v **types.ContainerGroupDefinitionProperty, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerHealthCheck(v **types.ContainerHealthCheck, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15078,77 +16464,70 @@ func awsAwsjson11_deserializeDocumentContainerGroupDefinitionProperty(v **types. return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ContainerGroupDefinitionProperty + var sv *types.ContainerHealthCheck if *v == nil { - sv = &types.ContainerGroupDefinitionProperty{} + sv = &types.ContainerHealthCheck{} } else { sv = *v } for key, value := range shape { switch key { - case "ContainerGroupDefinitionName": + case "Command": + if err := awsAwsjson11_deserializeDocumentContainerCommandStringList(&sv.Command, value); err != nil { + return err + } + + case "Interval": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ContainerGroupDefinitionName to be of type string, got %T instead", value) + return fmt.Errorf("expected ContainerHealthCheckInterval to be json.Number, got %T instead", value) } - sv.ContainerGroupDefinitionName = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Interval = ptr.Int32(int32(i64)) } - case "SchedulingStrategy": + case "Retries": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ContainerSchedulingStrategy to be of type string, got %T instead", value) + return fmt.Errorf("expected ContainerHealthCheckRetries to be json.Number, got %T instead", value) } - sv.SchedulingStrategy = types.ContainerSchedulingStrategy(jtv) - } - - default: - _, _ = key, value - - } - } - *v = sv - return nil -} - -func awsAwsjson11_deserializeDocumentContainerGroupsAttributes(v **types.ContainerGroupsAttributes, 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.ContainerGroupsAttributes - if *v == nil { - sv = &types.ContainerGroupsAttributes{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "ConnectionPortRange": - if err := awsAwsjson11_deserializeDocumentConnectionPortRange(&sv.ConnectionPortRange, value); err != nil { - return err + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Retries = ptr.Int32(int32(i64)) } - case "ContainerGroupDefinitionProperties": - if err := awsAwsjson11_deserializeDocumentContainerGroupDefinitionPropertiesList(&sv.ContainerGroupDefinitionProperties, value); err != nil { - return err + case "StartPeriod": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ContainerHealthCheckStartPeriod to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.StartPeriod = ptr.Int32(int32(i64)) } - case "ContainerGroupsPerInstance": - if err := awsAwsjson11_deserializeDocumentContainerGroupsPerInstance(&sv.ContainerGroupsPerInstance, value); err != nil { - return err + case "Timeout": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ContainerHealthCheckTimeout to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Timeout = ptr.Int32(int32(i64)) } default: @@ -15160,7 +16539,7 @@ func awsAwsjson11_deserializeDocumentContainerGroupsAttributes(v **types.Contain return nil } -func awsAwsjson11_deserializeDocumentContainerGroupsPerInstance(v **types.ContainerGroupsPerInstance, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerIdentifier(v **types.ContainerIdentifier, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15173,39 +16552,31 @@ func awsAwsjson11_deserializeDocumentContainerGroupsPerInstance(v **types.Contai return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ContainerGroupsPerInstance + var sv *types.ContainerIdentifier if *v == nil { - sv = &types.ContainerGroupsPerInstance{} + sv = &types.ContainerIdentifier{} } else { sv = *v } for key, value := range shape { switch key { - case "DesiredReplicaContainerGroupsPerInstance": + case "ContainerName": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ReplicaContainerGroupsPerInstance to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonZeroAnd128MaxAsciiString to be of type string, got %T instead", value) } - sv.DesiredReplicaContainerGroupsPerInstance = ptr.Int32(int32(i64)) + sv.ContainerName = ptr.String(jtv) } - case "MaxReplicaContainerGroupsPerInstance": + case "ContainerRuntimeId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ReplicaContainerGroupsPerInstance to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.MaxReplicaContainerGroupsPerInstance = ptr.Int32(int32(i64)) + sv.ContainerRuntimeId = ptr.String(jtv) } default: @@ -15217,7 +16588,7 @@ func awsAwsjson11_deserializeDocumentContainerGroupsPerInstance(v **types.Contai return nil } -func awsAwsjson11_deserializeDocumentContainerHealthCheck(v **types.ContainerHealthCheck, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerIdentifierList(v *[]types.ContainerIdentifier, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15225,87 +16596,33 @@ func awsAwsjson11_deserializeDocumentContainerHealthCheck(v **types.ContainerHea return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ContainerHealthCheck + var cv []types.ContainerIdentifier if *v == nil { - sv = &types.ContainerHealthCheck{} + cv = []types.ContainerIdentifier{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "Command": - if err := awsAwsjson11_deserializeDocumentContainerCommandStringList(&sv.Command, value); err != nil { - return err - } - - case "Interval": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected ContainerHealthCheckInterval to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Interval = ptr.Int32(int32(i64)) - } - - case "Retries": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected ContainerHealthCheckRetries to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Retries = ptr.Int32(int32(i64)) - } - - case "StartPeriod": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected ContainerHealthCheckStartPeriod to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.StartPeriod = ptr.Int32(int32(i64)) - } - - case "Timeout": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected ContainerHealthCheckTimeout to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Timeout = ptr.Int32(int32(i64)) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.ContainerIdentifier + destAddr := &col + if err := awsAwsjson11_deserializeDocumentContainerIdentifier(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsAwsjson11_deserializeDocumentContainerMemoryLimits(v **types.ContainerMemoryLimits, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerMountPoint(v **types.ContainerMountPoint, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15318,39 +16635,40 @@ func awsAwsjson11_deserializeDocumentContainerMemoryLimits(v **types.ContainerMe return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ContainerMemoryLimits + var sv *types.ContainerMountPoint if *v == nil { - sv = &types.ContainerMemoryLimits{} + sv = &types.ContainerMountPoint{} } else { sv = *v } for key, value := range shape { switch key { - case "HardLimit": + case "AccessLevel": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ContainerMemoryLimit to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected ContainerMountPointAccessLevel to be of type string, got %T instead", value) } - sv.HardLimit = ptr.Int32(int32(i64)) + sv.AccessLevel = types.ContainerMountPointAccessLevel(jtv) } - case "SoftLimit": + case "ContainerPath": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ContainerMemoryLimit to be json.Number, got %T instead", value) + return fmt.Errorf("expected ContainerPathString to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.ContainerPath = ptr.String(jtv) + } + + case "InstancePath": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InstancePathString to be of type string, got %T instead", value) } - sv.SoftLimit = ptr.Int32(int32(i64)) + sv.InstancePath = ptr.String(jtv) } default: @@ -15362,6 +16680,40 @@ func awsAwsjson11_deserializeDocumentContainerMemoryLimits(v **types.ContainerMe return nil } +func awsAwsjson11_deserializeDocumentContainerMountPointList(v *[]types.ContainerMountPoint, 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.ContainerMountPoint + if *v == nil { + cv = []types.ContainerMountPoint{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ContainerMountPoint + destAddr := &col + if err := awsAwsjson11_deserializeDocumentContainerMountPoint(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentContainerPortConfiguration(v **types.ContainerPortConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -15398,7 +16750,7 @@ func awsAwsjson11_deserializeDocumentContainerPortConfiguration(v **types.Contai return nil } -func awsAwsjson11_deserializeDocumentContainerPortMapping(v **types.ContainerPortMapping, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerPortRange(v **types.ContainerPortRange, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15411,16 +16763,16 @@ func awsAwsjson11_deserializeDocumentContainerPortMapping(v **types.ContainerPor return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ContainerPortMapping + var sv *types.ContainerPortRange if *v == nil { - sv = &types.ContainerPortMapping{} + sv = &types.ContainerPortRange{} } else { sv = *v } for key, value := range shape { switch key { - case "ConnectionPort": + case "FromPort": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -15430,10 +16782,19 @@ func awsAwsjson11_deserializeDocumentContainerPortMapping(v **types.ContainerPor if err != nil { return err } - sv.ConnectionPort = ptr.Int32(int32(i64)) + sv.FromPort = ptr.Int32(int32(i64)) + } + + case "Protocol": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IpProtocol to be of type string, got %T instead", value) + } + sv.Protocol = types.IpProtocol(jtv) } - case "ContainerPort": + case "ToPort": if value != nil { jtv, ok := value.(json.Number) if !ok { @@ -15443,16 +16804,7 @@ func awsAwsjson11_deserializeDocumentContainerPortMapping(v **types.ContainerPor if err != nil { return err } - sv.ContainerPort = ptr.Int32(int32(i64)) - } - - case "Protocol": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IpProtocol to be of type string, got %T instead", value) - } - sv.Protocol = types.IpProtocol(jtv) + sv.ToPort = ptr.Int32(int32(i64)) } default: @@ -15464,7 +16816,7 @@ func awsAwsjson11_deserializeDocumentContainerPortMapping(v **types.ContainerPor return nil } -func awsAwsjson11_deserializeDocumentContainerPortMappingList(v *[]types.ContainerPortMapping, value interface{}) error { +func awsAwsjson11_deserializeDocumentContainerPortRangeList(v *[]types.ContainerPortRange, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15477,17 +16829,17 @@ func awsAwsjson11_deserializeDocumentContainerPortMappingList(v *[]types.Contain return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ContainerPortMapping + var cv []types.ContainerPortRange if *v == nil { - cv = []types.ContainerPortMapping{} + cv = []types.ContainerPortRange{} } else { cv = *v } for _, value := range shape { - var col types.ContainerPortMapping + var col types.ContainerPortRange destAddr := &col - if err := awsAwsjson11_deserializeDocumentContainerPortMapping(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentContainerPortRange(&destAddr, value); err != nil { return err } col = *destAddr @@ -15498,7 +16850,7 @@ func awsAwsjson11_deserializeDocumentContainerPortMappingList(v *[]types.Contain return nil } -func awsAwsjson11_deserializeDocumentContainerPortRange(v **types.ContainerPortRange, value interface{}) error { +func awsAwsjson11_deserializeDocumentDeploymentConfiguration(v **types.DeploymentConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15511,48 +16863,44 @@ func awsAwsjson11_deserializeDocumentContainerPortRange(v **types.ContainerPortR return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ContainerPortRange + var sv *types.DeploymentConfiguration if *v == nil { - sv = &types.ContainerPortRange{} + sv = &types.DeploymentConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "FromPort": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected PortNumber to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.FromPort = ptr.Int32(int32(i64)) - } - - case "Protocol": + case "ImpairmentStrategy": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected IpProtocol to be of type string, got %T instead", value) + return fmt.Errorf("expected DeploymentImpairmentStrategy to be of type string, got %T instead", value) } - sv.Protocol = types.IpProtocol(jtv) + sv.ImpairmentStrategy = types.DeploymentImpairmentStrategy(jtv) } - case "ToPort": + case "MinimumHealthyPercentage": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected PortNumber to be json.Number, got %T instead", value) + return fmt.Errorf("expected MinimumHealthyPercentage to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.ToPort = ptr.Int32(int32(i64)) + sv.MinimumHealthyPercentage = ptr.Int32(int32(i64)) + } + + case "ProtectionStrategy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DeploymentProtectionStrategy to be of type string, got %T instead", value) + } + sv.ProtectionStrategy = types.DeploymentProtectionStrategy(jtv) } default: @@ -15564,7 +16912,7 @@ func awsAwsjson11_deserializeDocumentContainerPortRange(v **types.ContainerPortR return nil } -func awsAwsjson11_deserializeDocumentContainerPortRangeList(v *[]types.ContainerPortRange, value interface{}) error { +func awsAwsjson11_deserializeDocumentDeploymentDetails(v **types.DeploymentDetails, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15572,29 +16920,35 @@ func awsAwsjson11_deserializeDocumentContainerPortRangeList(v *[]types.Container return nil } - shape, ok := value.([]interface{}) + shape, ok := value.(map[string]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.ContainerPortRange + var sv *types.DeploymentDetails if *v == nil { - cv = []types.ContainerPortRange{} + sv = &types.DeploymentDetails{} } else { - cv = *v + sv = *v } - for _, value := range shape { - var col types.ContainerPortRange - destAddr := &col - if err := awsAwsjson11_deserializeDocumentContainerPortRange(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + for key, value := range shape { + switch key { + case "LatestDeploymentId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DeploymentId to be of type string, got %T instead", value) + } + sv.LatestDeploymentId = ptr.String(jtv) + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } @@ -16099,11 +17453,6 @@ func awsAwsjson11_deserializeDocumentFleetAttributes(v **types.FleetAttributes, sv.ComputeType = types.ComputeType(jtv) } - case "ContainerGroupsAttributes": - if err := awsAwsjson11_deserializeDocumentContainerGroupsAttributes(&sv.ContainerGroupsAttributes, value); err != nil { - return err - } - case "CreationTime": if value != nil { switch jtv := value.(type) { @@ -16374,6 +17723,11 @@ func awsAwsjson11_deserializeDocumentFleetCapacity(v **types.FleetCapacity, valu sv.FleetId = ptr.String(jtv) } + case "GameServerContainerGroupCounts": + if err := awsAwsjson11_deserializeDocumentGameServerContainerGroupCounts(&sv.GameServerContainerGroupCounts, value); err != nil { + return err + } + case "InstanceCounts": if err := awsAwsjson11_deserializeDocumentEC2InstanceCounts(&sv.InstanceCounts, value); err != nil { return err @@ -16397,9 +17751,44 @@ func awsAwsjson11_deserializeDocumentFleetCapacity(v **types.FleetCapacity, valu sv.Location = ptr.String(jtv) } - case "ReplicaContainerGroupCounts": - if err := awsAwsjson11_deserializeDocumentReplicaContainerGroupCounts(&sv.ReplicaContainerGroupCounts, value); err != nil { - return err + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentFleetCapacityExceededException(v **types.FleetCapacityExceededException, 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.FleetCapacityExceededException + if *v == nil { + sv = &types.FleetCapacityExceededException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) } default: @@ -16411,7 +17800,41 @@ func awsAwsjson11_deserializeDocumentFleetCapacity(v **types.FleetCapacity, valu return nil } -func awsAwsjson11_deserializeDocumentFleetCapacityExceededException(v **types.FleetCapacityExceededException, value interface{}) error { +func awsAwsjson11_deserializeDocumentFleetCapacityList(v *[]types.FleetCapacity, 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.FleetCapacity + if *v == nil { + cv = []types.FleetCapacity{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.FleetCapacity + destAddr := &col + if err := awsAwsjson11_deserializeDocumentFleetCapacity(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson11_deserializeDocumentFleetDeployment(v **types.FleetDeployment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16419,27 +17842,102 @@ func awsAwsjson11_deserializeDocumentFleetCapacityExceededException(v **types.Fl return nil } - shape, ok := value.(map[string]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.FleetDeployment + if *v == nil { + sv = &types.FleetDeployment{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CreationTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "DeploymentConfiguration": + if err := awsAwsjson11_deserializeDocumentDeploymentConfiguration(&sv.DeploymentConfiguration, value); err != nil { + return err + } + + case "DeploymentId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DeploymentId to be of type string, got %T instead", value) + } + sv.DeploymentId = ptr.String(jtv) + } + + case "DeploymentStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DeploymentStatus to be of type string, got %T instead", value) + } + sv.DeploymentStatus = types.DeploymentStatus(jtv) + } + + case "FleetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetId to be of type string, got %T instead", value) + } + sv.FleetId = ptr.String(jtv) + } + + case "GameServerBinaryArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetBinaryArn to be of type string, got %T instead", value) + } + sv.GameServerBinaryArn = ptr.String(jtv) + } + + case "PerInstanceBinaryArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetBinaryArn to be of type string, got %T instead", value) + } + sv.PerInstanceBinaryArn = ptr.String(jtv) + } - var sv *types.FleetCapacityExceededException - if *v == nil { - sv = &types.FleetCapacityExceededException{} - } else { - sv = *v - } + case "RollbackGameServerBinaryArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FleetBinaryArn to be of type string, got %T instead", value) + } + sv.RollbackGameServerBinaryArn = ptr.String(jtv) + } - for key, value := range shape { - switch key { - case "message", "Message": + case "RollbackPerInstanceBinaryArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected FleetBinaryArn to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.RollbackPerInstanceBinaryArn = ptr.String(jtv) } default: @@ -16451,7 +17949,7 @@ func awsAwsjson11_deserializeDocumentFleetCapacityExceededException(v **types.Fl return nil } -func awsAwsjson11_deserializeDocumentFleetCapacityList(v *[]types.FleetCapacity, value interface{}) error { +func awsAwsjson11_deserializeDocumentFleetDeployments(v *[]types.FleetDeployment, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16464,17 +17962,17 @@ func awsAwsjson11_deserializeDocumentFleetCapacityList(v *[]types.FleetCapacity, return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.FleetCapacity + var cv []types.FleetDeployment if *v == nil { - cv = []types.FleetCapacity{} + cv = []types.FleetDeployment{} } else { cv = *v } for _, value := range shape { - var col types.FleetCapacity + var col types.FleetDeployment destAddr := &col - if err := awsAwsjson11_deserializeDocumentFleetCapacity(&destAddr, value); err != nil { + if err := awsAwsjson11_deserializeDocumentFleetDeployment(&destAddr, value); err != nil { return err } col = *destAddr @@ -16899,6 +18397,176 @@ func awsAwsjson11_deserializeDocumentGameServer(v **types.GameServer, value inte return nil } +func awsAwsjson11_deserializeDocumentGameServerContainerDefinition(v **types.GameServerContainerDefinition, 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.GameServerContainerDefinition + if *v == nil { + sv = &types.GameServerContainerDefinition{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAnd128MaxAsciiString to be of type string, got %T instead", value) + } + sv.ContainerName = ptr.String(jtv) + } + + case "DependsOn": + if err := awsAwsjson11_deserializeDocumentContainerDependencyList(&sv.DependsOn, value); err != nil { + return err + } + + case "EnvironmentOverride": + if err := awsAwsjson11_deserializeDocumentContainerEnvironmentList(&sv.EnvironmentOverride, value); err != nil { + return err + } + + case "ImageUri": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ImageUriString to be of type string, got %T instead", value) + } + sv.ImageUri = ptr.String(jtv) + } + + case "MountPoints": + if err := awsAwsjson11_deserializeDocumentContainerMountPointList(&sv.MountPoints, value); err != nil { + return err + } + + case "PortConfiguration": + if err := awsAwsjson11_deserializeDocumentContainerPortConfiguration(&sv.PortConfiguration, value); err != nil { + return err + } + + case "ResolvedImageDigest": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Sha256 to be of type string, got %T instead", value) + } + sv.ResolvedImageDigest = ptr.String(jtv) + } + + case "ServerSdkVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ServerSdkVersion to be of type string, got %T instead", value) + } + sv.ServerSdkVersion = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentGameServerContainerGroupCounts(v **types.GameServerContainerGroupCounts, 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.GameServerContainerGroupCounts + if *v == nil { + sv = &types.GameServerContainerGroupCounts{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ACTIVE": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ACTIVE = ptr.Int32(int32(i64)) + } + + case "IDLE": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.IDLE = ptr.Int32(int32(i64)) + } + + case "PENDING": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.PENDING = ptr.Int32(int32(i64)) + } + + case "TERMINATING": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TERMINATING = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentGameServerGroup(v **types.GameServerGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -17473,7 +19141,83 @@ func awsAwsjson11_deserializeDocumentGameSession(v **types.GameSession, value in return nil } -func awsAwsjson11_deserializeDocumentGameSessionConnectionInfo(v **types.GameSessionConnectionInfo, value interface{}) error { +func awsAwsjson11_deserializeDocumentGameSessionConnectionInfo(v **types.GameSessionConnectionInfo, 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.GameSessionConnectionInfo + if *v == nil { + sv = &types.GameSessionConnectionInfo{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DnsName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DnsName to be of type string, got %T instead", value) + } + sv.DnsName = ptr.String(jtv) + } + + case "GameSessionArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ArnStringModel to be of type string, got %T instead", value) + } + sv.GameSessionArn = ptr.String(jtv) + } + + case "IpAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IpAddress to be of type string, got %T instead", value) + } + sv.IpAddress = ptr.String(jtv) + } + + case "MatchedPlayerSessions": + if err := awsAwsjson11_deserializeDocumentMatchedPlayerSessionList(&sv.MatchedPlayerSessions, value); err != nil { + return err + } + + case "Port": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected PositiveInteger to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Port = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentGameSessionCreationLimitPolicy(v **types.GameSessionCreationLimitPolicy, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17486,58 +19230,39 @@ func awsAwsjson11_deserializeDocumentGameSessionConnectionInfo(v **types.GameSes return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.GameSessionConnectionInfo + var sv *types.GameSessionCreationLimitPolicy if *v == nil { - sv = &types.GameSessionConnectionInfo{} + sv = &types.GameSessionCreationLimitPolicy{} } else { sv = *v } for key, value := range shape { switch key { - case "DnsName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DnsName to be of type string, got %T instead", value) - } - sv.DnsName = ptr.String(jtv) - } - - case "GameSessionArn": + case "NewGameSessionsPerCreator": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ArnStringModel to be of type string, got %T instead", value) + return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) } - sv.GameSessionArn = ptr.String(jtv) - } - - case "IpAddress": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IpAddress to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.IpAddress = ptr.String(jtv) - } - - case "MatchedPlayerSessions": - if err := awsAwsjson11_deserializeDocumentMatchedPlayerSessionList(&sv.MatchedPlayerSessions, value); err != nil { - return err + sv.NewGameSessionsPerCreator = ptr.Int32(int32(i64)) } - case "Port": + case "PolicyPeriodInMinutes": if value != nil { jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected PositiveInteger to be json.Number, got %T instead", value) + return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) } i64, err := jtv.Int64() if err != nil { return err } - sv.Port = ptr.Int32(int32(i64)) + sv.PolicyPeriodInMinutes = ptr.Int32(int32(i64)) } default: @@ -18868,6 +20593,81 @@ func awsAwsjson11_deserializeDocumentLimitExceededException(v **types.LimitExcee return nil } +func awsAwsjson11_deserializeDocumentLocationalDeployment(v **types.LocationalDeployment, 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.LocationalDeployment + if *v == nil { + sv = &types.LocationalDeployment{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DeploymentStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DeploymentStatus to be of type string, got %T instead", value) + } + sv.DeploymentStatus = types.DeploymentStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentLocationalDeployments(v *map[string]types.LocationalDeployment, 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 mv map[string]types.LocationalDeployment + if *v == nil { + mv = map[string]types.LocationalDeployment{} + } else { + mv = *v + } + + for key, value := range shape { + var parsedVal types.LocationalDeployment + mapVar := parsedVal + destAddr := &mapVar + if err := awsAwsjson11_deserializeDocumentLocationalDeployment(&destAddr, value); err != nil { + return err + } + parsedVal = *destAddr + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsAwsjson11_deserializeDocumentLocationAttributes(v **types.LocationAttributes, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -19154,6 +20954,64 @@ func awsAwsjson11_deserializeDocumentLocationStateList(v *[]types.LocationState, return nil } +func awsAwsjson11_deserializeDocumentLogConfiguration(v **types.LogConfiguration, 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.LogConfiguration + if *v == nil { + sv = &types.LogConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "LogDestination": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LogDestination to be of type string, got %T instead", value) + } + sv.LogDestination = types.LogDestination(jtv) + } + + case "LogGroupArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LogGroupArnStringModel to be of type string, got %T instead", value) + } + sv.LogGroupArn = ptr.String(jtv) + } + + case "S3BucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.S3BucketName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentMatchedPlayerSession(v **types.MatchedPlayerSession, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -20705,105 +22563,22 @@ func awsAwsjson11_deserializeDocumentQueueArnsList(v *[]string, value interface{ if *v == nil { cv = []string{} } else { - cv = *v - } - - for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ArnStringModel to be of type string, got %T instead", value) - } - col = jtv - } - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsAwsjson11_deserializeDocumentReplicaContainerGroupCounts(v **types.ReplicaContainerGroupCounts, 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.ReplicaContainerGroupCounts - if *v == nil { - sv = &types.ReplicaContainerGroupCounts{} - } else { - sv = *v - } - - for key, value := range shape { - switch key { - case "ACTIVE": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.ACTIVE = ptr.Int32(int32(i64)) - } - - case "IDLE": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.IDLE = ptr.Int32(int32(i64)) - } - - case "PENDING": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.PENDING = ptr.Int32(int32(i64)) - } - - case "TERMINATING": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected WholeNumber to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.TERMINATING = ptr.Int32(int32(i64)) - } - - default: - _, _ = key, value + cv = *v + } + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ArnStringModel to be of type string, got %T instead", value) + } + col = jtv } + cv = append(cv, col) + } - *v = sv + *v = cv return nil } @@ -21538,6 +23313,179 @@ func awsAwsjson11_deserializeDocumentStringList(v *[]string, value interface{}) return nil } +func awsAwsjson11_deserializeDocumentSupportContainerDefinition(v **types.SupportContainerDefinition, 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.SupportContainerDefinition + if *v == nil { + sv = &types.SupportContainerDefinition{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAnd128MaxAsciiString to be of type string, got %T instead", value) + } + sv.ContainerName = ptr.String(jtv) + } + + case "DependsOn": + if err := awsAwsjson11_deserializeDocumentContainerDependencyList(&sv.DependsOn, value); err != nil { + return err + } + + case "EnvironmentOverride": + if err := awsAwsjson11_deserializeDocumentContainerEnvironmentList(&sv.EnvironmentOverride, value); err != nil { + return err + } + + case "Essential": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected BooleanModel to be of type *bool, got %T instead", value) + } + sv.Essential = ptr.Bool(jtv) + } + + case "HealthCheck": + if err := awsAwsjson11_deserializeDocumentContainerHealthCheck(&sv.HealthCheck, value); err != nil { + return err + } + + case "ImageUri": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ImageUriString to be of type string, got %T instead", value) + } + sv.ImageUri = ptr.String(jtv) + } + + case "MemoryHardLimitMebibytes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ContainerMemoryLimit to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.MemoryHardLimitMebibytes = ptr.Int32(int32(i64)) + } + + case "MountPoints": + if err := awsAwsjson11_deserializeDocumentContainerMountPointList(&sv.MountPoints, value); err != nil { + return err + } + + case "PortConfiguration": + if err := awsAwsjson11_deserializeDocumentContainerPortConfiguration(&sv.PortConfiguration, value); err != nil { + return err + } + + case "ResolvedImageDigest": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Sha256 to be of type string, got %T instead", value) + } + sv.ResolvedImageDigest = ptr.String(jtv) + } + + case "Vcpu": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Vcpu = ptr.Float64(f64) + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.Vcpu = ptr.Float64(f64) + + default: + return fmt.Errorf("expected ContainerVcpu to be a JSON Number, got %T instead", value) + + } + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentSupportContainerDefinitionList(v *[]types.SupportContainerDefinition, 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.SupportContainerDefinition + if *v == nil { + cv = []types.SupportContainerDefinition{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SupportContainerDefinition + destAddr := &col + if err := awsAwsjson11_deserializeDocumentSupportContainerDefinition(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentTag(v **types.Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -22292,6 +24240,42 @@ func awsAwsjson11_deserializeOpDocumentCreateBuildOutput(v **CreateBuildOutput, return nil } +func awsAwsjson11_deserializeOpDocumentCreateContainerFleetOutput(v **CreateContainerFleetOutput, 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 *CreateContainerFleetOutput + if *v == nil { + sv = &CreateContainerFleetOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerFleet": + if err := awsAwsjson11_deserializeDocumentContainerFleet(&sv.ContainerFleet, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentCreateContainerGroupDefinitionOutput(v **CreateContainerGroupDefinitionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -22814,6 +24798,68 @@ func awsAwsjson11_deserializeOpDocumentCreateVpcPeeringConnectionOutput(v **Crea return nil } +func awsAwsjson11_deserializeOpDocumentDeleteContainerFleetOutput(v **DeleteContainerFleetOutput, 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 *DeleteContainerFleetOutput + if *v == nil { + sv = &DeleteContainerFleetOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentDeleteContainerGroupDefinitionOutput(v **DeleteContainerGroupDefinitionOutput, 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 *DeleteContainerGroupDefinitionOutput + if *v == nil { + sv = &DeleteContainerGroupDefinitionOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDeleteFleetLocationsOutput(v **DeleteFleetLocationsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -23229,6 +25275,42 @@ func awsAwsjson11_deserializeOpDocumentDescribeComputeOutput(v **DescribeCompute return nil } +func awsAwsjson11_deserializeOpDocumentDescribeContainerFleetOutput(v **DescribeContainerFleetOutput, 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 *DescribeContainerFleetOutput + if *v == nil { + sv = &DescribeContainerFleetOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerFleet": + if err := awsAwsjson11_deserializeDocumentContainerFleet(&sv.ContainerFleet, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeContainerGroupDefinitionOutput(v **DescribeContainerGroupDefinitionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -23391,6 +25473,47 @@ func awsAwsjson11_deserializeOpDocumentDescribeFleetCapacityOutput(v **DescribeF return nil } +func awsAwsjson11_deserializeOpDocumentDescribeFleetDeploymentOutput(v **DescribeFleetDeploymentOutput, 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 *DescribeFleetDeploymentOutput + if *v == nil { + sv = &DescribeFleetDeploymentOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FleetDeployment": + if err := awsAwsjson11_deserializeDocumentFleetDeployment(&sv.FleetDeployment, value); err != nil { + return err + } + + case "LocationalDeployments": + if err := awsAwsjson11_deserializeDocumentLocationalDeployments(&sv.LocationalDeployments, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentDescribeFleetEventsOutput(v **DescribeFleetEventsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -24421,6 +26544,11 @@ func awsAwsjson11_deserializeOpDocumentGetComputeAccessOutput(v **GetComputeAcce sv.ComputeName = ptr.String(jtv) } + case "ContainerIdentifiers": + if err := awsAwsjson11_deserializeDocumentContainerIdentifierList(&sv.ContainerIdentifiers, value); err != nil { + return err + } + case "Credentials": if err := awsAwsjson11_deserializeDocumentAwsCredentials(&sv.Credentials, value); err != nil { return err @@ -24765,6 +26893,51 @@ func awsAwsjson11_deserializeOpDocumentListComputeOutput(v **ListComputeOutput, return nil } +func awsAwsjson11_deserializeOpDocumentListContainerFleetsOutput(v **ListContainerFleetsOutput, 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 *ListContainerFleetsOutput + if *v == nil { + sv = &ListContainerFleetsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerFleets": + if err := awsAwsjson11_deserializeDocumentContainerFleetList(&sv.ContainerFleets, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAndMaxString to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentListContainerGroupDefinitionsOutput(v **ListContainerGroupDefinitionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -24796,7 +26969,97 @@ func awsAwsjson11_deserializeOpDocumentListContainerGroupDefinitionsOutput(v **L if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected NonZeroAndMaxString to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListContainerGroupDefinitionVersionsOutput(v **ListContainerGroupDefinitionVersionsOutput, 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 *ListContainerGroupDefinitionVersionsOutput + if *v == nil { + sv = &ListContainerGroupDefinitionVersionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerGroupDefinitions": + if err := awsAwsjson11_deserializeDocumentContainerGroupDefinitionList(&sv.ContainerGroupDefinitions, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAndMaxString to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentListFleetDeploymentsOutput(v **ListFleetDeploymentsOutput, 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 *ListFleetDeploymentsOutput + if *v == nil { + sv = &ListFleetDeploymentsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FleetDeployments": + if err := awsAwsjson11_deserializeDocumentFleetDeployments(&sv.FleetDeployments, value); err != nil { + return err + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonZeroAndMaxString to be of type string, got %T instead", value) } sv.NextToken = ptr.String(jtv) } @@ -25797,6 +28060,78 @@ func awsAwsjson11_deserializeOpDocumentUpdateBuildOutput(v **UpdateBuildOutput, return nil } +func awsAwsjson11_deserializeOpDocumentUpdateContainerFleetOutput(v **UpdateContainerFleetOutput, 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 *UpdateContainerFleetOutput + if *v == nil { + sv = &UpdateContainerFleetOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerFleet": + if err := awsAwsjson11_deserializeDocumentContainerFleet(&sv.ContainerFleet, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeOpDocumentUpdateContainerGroupDefinitionOutput(v **UpdateContainerGroupDefinitionOutput, 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 *UpdateContainerGroupDefinitionOutput + if *v == nil { + sv = &UpdateContainerGroupDefinitionOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContainerGroupDefinition": + if err := awsAwsjson11_deserializeDocumentContainerGroupDefinition(&sv.ContainerGroupDefinition, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentUpdateFleetAttributesOutput(v **UpdateFleetAttributesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/gamelift/generated.json b/service/gamelift/generated.json index 0a2bee7c9b4..b729a81f083 100644 --- a/service/gamelift/generated.json +++ b/service/gamelift/generated.json @@ -12,6 +12,7 @@ "api_op_ClaimGameServer.go", "api_op_CreateAlias.go", "api_op_CreateBuild.go", + "api_op_CreateContainerFleet.go", "api_op_CreateContainerGroupDefinition.go", "api_op_CreateFleet.go", "api_op_CreateFleetLocations.go", @@ -28,6 +29,7 @@ "api_op_CreateVpcPeeringConnection.go", "api_op_DeleteAlias.go", "api_op_DeleteBuild.go", + "api_op_DeleteContainerFleet.go", "api_op_DeleteContainerGroupDefinition.go", "api_op_DeleteFleet.go", "api_op_DeleteFleetLocations.go", @@ -45,10 +47,12 @@ "api_op_DescribeAlias.go", "api_op_DescribeBuild.go", "api_op_DescribeCompute.go", + "api_op_DescribeContainerFleet.go", "api_op_DescribeContainerGroupDefinition.go", "api_op_DescribeEC2InstanceLimits.go", "api_op_DescribeFleetAttributes.go", "api_op_DescribeFleetCapacity.go", + "api_op_DescribeFleetDeployment.go", "api_op_DescribeFleetEvents.go", "api_op_DescribeFleetLocationAttributes.go", "api_op_DescribeFleetLocationCapacity.go", @@ -79,7 +83,10 @@ "api_op_ListAliases.go", "api_op_ListBuilds.go", "api_op_ListCompute.go", + "api_op_ListContainerFleets.go", + "api_op_ListContainerGroupDefinitionVersions.go", "api_op_ListContainerGroupDefinitions.go", + "api_op_ListFleetDeployments.go", "api_op_ListFleets.go", "api_op_ListGameServerGroups.go", "api_op_ListGameServers.go", @@ -105,6 +112,8 @@ "api_op_UntagResource.go", "api_op_UpdateAlias.go", "api_op_UpdateBuild.go", + "api_op_UpdateContainerFleet.go", + "api_op_UpdateContainerGroupDefinition.go", "api_op_UpdateFleetAttributes.go", "api_op_UpdateFleetCapacity.go", "api_op_UpdateFleetPortSettings.go", diff --git a/service/gamelift/serializers.go b/service/gamelift/serializers.go index 81546b6c8dc..2d8d27c9c39 100644 --- a/service/gamelift/serializers.go +++ b/service/gamelift/serializers.go @@ -262,6 +262,67 @@ func (m *awsAwsjson11_serializeOpCreateBuild) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpCreateContainerFleet struct { +} + +func (*awsAwsjson11_serializeOpCreateContainerFleet) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpCreateContainerFleet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateContainerFleetInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.CreateContainerFleet") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentCreateContainerFleetInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpCreateContainerGroupDefinition struct { } @@ -1238,6 +1299,67 @@ func (m *awsAwsjson11_serializeOpDeleteBuild) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDeleteContainerFleet struct { +} + +func (*awsAwsjson11_serializeOpDeleteContainerFleet) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDeleteContainerFleet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteContainerFleetInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.DeleteContainerFleet") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDeleteContainerFleetInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpDeleteContainerGroupDefinition struct { } @@ -2275,6 +2397,67 @@ func (m *awsAwsjson11_serializeOpDescribeCompute) HandleSerialize(ctx context.Co return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribeContainerFleet struct { +} + +func (*awsAwsjson11_serializeOpDescribeContainerFleet) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribeContainerFleet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeContainerFleetInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.DescribeContainerFleet") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeContainerFleetInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpDescribeContainerGroupDefinition struct { } @@ -2519,6 +2702,67 @@ func (m *awsAwsjson11_serializeOpDescribeFleetCapacity) HandleSerialize(ctx cont return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpDescribeFleetDeployment struct { +} + +func (*awsAwsjson11_serializeOpDescribeFleetDeployment) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpDescribeFleetDeployment) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DescribeFleetDeploymentInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.DescribeFleetDeployment") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentDescribeFleetDeploymentInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpDescribeFleetEvents struct { } @@ -4349,14 +4593,14 @@ func (m *awsAwsjson11_serializeOpListCompute) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListContainerGroupDefinitions struct { +type awsAwsjson11_serializeOpListContainerFleets struct { } -func (*awsAwsjson11_serializeOpListContainerGroupDefinitions) ID() string { +func (*awsAwsjson11_serializeOpListContainerFleets) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListContainerGroupDefinitions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListContainerFleets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -4368,7 +4612,7 @@ func (m *awsAwsjson11_serializeOpListContainerGroupDefinitions) HandleSerialize( return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListContainerGroupDefinitionsInput) + input, ok := in.Parameters.(*ListContainerFleetsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -4389,10 +4633,10 @@ func (m *awsAwsjson11_serializeOpListContainerGroupDefinitions) HandleSerialize( return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListContainerGroupDefinitions") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListContainerFleets") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListContainerGroupDefinitionsInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListContainerFleetsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -4410,14 +4654,14 @@ func (m *awsAwsjson11_serializeOpListContainerGroupDefinitions) HandleSerialize( return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListFleets struct { +type awsAwsjson11_serializeOpListContainerGroupDefinitions struct { } -func (*awsAwsjson11_serializeOpListFleets) ID() string { +func (*awsAwsjson11_serializeOpListContainerGroupDefinitions) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListFleets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListContainerGroupDefinitions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -4429,7 +4673,7 @@ func (m *awsAwsjson11_serializeOpListFleets) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListFleetsInput) + input, ok := in.Parameters.(*ListContainerGroupDefinitionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -4450,10 +4694,10 @@ func (m *awsAwsjson11_serializeOpListFleets) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListFleets") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListContainerGroupDefinitions") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListFleetsInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListContainerGroupDefinitionsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -4471,14 +4715,14 @@ func (m *awsAwsjson11_serializeOpListFleets) HandleSerialize(ctx context.Context return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListGameServerGroups struct { +type awsAwsjson11_serializeOpListContainerGroupDefinitionVersions struct { } -func (*awsAwsjson11_serializeOpListGameServerGroups) ID() string { +func (*awsAwsjson11_serializeOpListContainerGroupDefinitionVersions) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListGameServerGroups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListContainerGroupDefinitionVersions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -4490,7 +4734,7 @@ func (m *awsAwsjson11_serializeOpListGameServerGroups) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListGameServerGroupsInput) + input, ok := in.Parameters.(*ListContainerGroupDefinitionVersionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -4511,10 +4755,10 @@ func (m *awsAwsjson11_serializeOpListGameServerGroups) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListGameServerGroups") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListContainerGroupDefinitionVersions") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListGameServerGroupsInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListContainerGroupDefinitionVersionsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -4532,14 +4776,14 @@ func (m *awsAwsjson11_serializeOpListGameServerGroups) HandleSerialize(ctx conte return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListGameServers struct { +type awsAwsjson11_serializeOpListFleetDeployments struct { } -func (*awsAwsjson11_serializeOpListGameServers) ID() string { +func (*awsAwsjson11_serializeOpListFleetDeployments) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListGameServers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListFleetDeployments) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -4551,7 +4795,7 @@ func (m *awsAwsjson11_serializeOpListGameServers) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListGameServersInput) + input, ok := in.Parameters.(*ListFleetDeploymentsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -4572,10 +4816,10 @@ func (m *awsAwsjson11_serializeOpListGameServers) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListGameServers") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListFleetDeployments") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentListGameServersInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentListFleetDeploymentsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -4593,14 +4837,197 @@ func (m *awsAwsjson11_serializeOpListGameServers) HandleSerialize(ctx context.Co return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpListLocations struct { +type awsAwsjson11_serializeOpListFleets struct { } -func (*awsAwsjson11_serializeOpListLocations) ID() string { +func (*awsAwsjson11_serializeOpListFleets) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpListLocations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpListFleets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListFleetsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListFleets") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListFleetsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpListGameServerGroups struct { +} + +func (*awsAwsjson11_serializeOpListGameServerGroups) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListGameServerGroups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListGameServerGroupsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListGameServerGroups") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListGameServerGroupsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpListGameServers struct { +} + +func (*awsAwsjson11_serializeOpListGameServers) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListGameServers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListGameServersInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.ListGameServers") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentListGameServersInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpListLocations struct { +} + +func (*awsAwsjson11_serializeOpListLocations) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpListLocations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -5935,14 +6362,14 @@ func (m *awsAwsjson11_serializeOpUpdateBuild) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateFleetAttributes struct { +type awsAwsjson11_serializeOpUpdateContainerFleet struct { } -func (*awsAwsjson11_serializeOpUpdateFleetAttributes) ID() string { +func (*awsAwsjson11_serializeOpUpdateContainerFleet) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateFleetAttributes) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpUpdateContainerFleet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -5954,7 +6381,7 @@ func (m *awsAwsjson11_serializeOpUpdateFleetAttributes) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateFleetAttributesInput) + input, ok := in.Parameters.(*UpdateContainerFleetInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -5975,10 +6402,10 @@ func (m *awsAwsjson11_serializeOpUpdateFleetAttributes) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateFleetAttributes") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateContainerFleet") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateFleetAttributesInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentUpdateContainerFleetInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -5996,14 +6423,14 @@ func (m *awsAwsjson11_serializeOpUpdateFleetAttributes) HandleSerialize(ctx cont return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateFleetCapacity struct { +type awsAwsjson11_serializeOpUpdateContainerGroupDefinition struct { } -func (*awsAwsjson11_serializeOpUpdateFleetCapacity) ID() string { +func (*awsAwsjson11_serializeOpUpdateContainerGroupDefinition) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateFleetCapacity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpUpdateContainerGroupDefinition) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6015,7 +6442,7 @@ func (m *awsAwsjson11_serializeOpUpdateFleetCapacity) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateFleetCapacityInput) + input, ok := in.Parameters.(*UpdateContainerGroupDefinitionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -6036,10 +6463,10 @@ func (m *awsAwsjson11_serializeOpUpdateFleetCapacity) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateFleetCapacity") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateContainerGroupDefinition") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateFleetCapacityInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentUpdateContainerGroupDefinitionInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6057,14 +6484,14 @@ func (m *awsAwsjson11_serializeOpUpdateFleetCapacity) HandleSerialize(ctx contex return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateFleetPortSettings struct { +type awsAwsjson11_serializeOpUpdateFleetAttributes struct { } -func (*awsAwsjson11_serializeOpUpdateFleetPortSettings) ID() string { +func (*awsAwsjson11_serializeOpUpdateFleetAttributes) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateFleetPortSettings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpUpdateFleetAttributes) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6076,7 +6503,7 @@ func (m *awsAwsjson11_serializeOpUpdateFleetPortSettings) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateFleetPortSettingsInput) + input, ok := in.Parameters.(*UpdateFleetAttributesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -6097,10 +6524,10 @@ func (m *awsAwsjson11_serializeOpUpdateFleetPortSettings) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateFleetPortSettings") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateFleetAttributes") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateFleetPortSettingsInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentUpdateFleetAttributesInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6118,14 +6545,14 @@ func (m *awsAwsjson11_serializeOpUpdateFleetPortSettings) HandleSerialize(ctx co return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateGameServer struct { +type awsAwsjson11_serializeOpUpdateFleetCapacity struct { } -func (*awsAwsjson11_serializeOpUpdateGameServer) ID() string { +func (*awsAwsjson11_serializeOpUpdateFleetCapacity) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateGameServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpUpdateFleetCapacity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6137,7 +6564,7 @@ func (m *awsAwsjson11_serializeOpUpdateGameServer) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateGameServerInput) + input, ok := in.Parameters.(*UpdateFleetCapacityInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -6158,10 +6585,10 @@ func (m *awsAwsjson11_serializeOpUpdateGameServer) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateGameServer") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateFleetCapacity") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateGameServerInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentUpdateFleetCapacityInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6179,14 +6606,14 @@ func (m *awsAwsjson11_serializeOpUpdateGameServer) HandleSerialize(ctx context.C return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateGameServerGroup struct { +type awsAwsjson11_serializeOpUpdateFleetPortSettings struct { } -func (*awsAwsjson11_serializeOpUpdateGameServerGroup) ID() string { +func (*awsAwsjson11_serializeOpUpdateFleetPortSettings) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateGameServerGroup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpUpdateFleetPortSettings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6198,7 +6625,7 @@ func (m *awsAwsjson11_serializeOpUpdateGameServerGroup) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateGameServerGroupInput) + input, ok := in.Parameters.(*UpdateFleetPortSettingsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -6219,10 +6646,10 @@ func (m *awsAwsjson11_serializeOpUpdateGameServerGroup) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateGameServerGroup") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateFleetPortSettings") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateGameServerGroupInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentUpdateFleetPortSettingsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6240,14 +6667,14 @@ func (m *awsAwsjson11_serializeOpUpdateGameServerGroup) HandleSerialize(ctx cont return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateGameSession struct { +type awsAwsjson11_serializeOpUpdateGameServer struct { } -func (*awsAwsjson11_serializeOpUpdateGameSession) ID() string { +func (*awsAwsjson11_serializeOpUpdateGameServer) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateGameSession) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpUpdateGameServer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6259,7 +6686,7 @@ func (m *awsAwsjson11_serializeOpUpdateGameSession) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateGameSessionInput) + input, ok := in.Parameters.(*UpdateGameServerInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -6280,10 +6707,10 @@ func (m *awsAwsjson11_serializeOpUpdateGameSession) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateGameSession") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateGameServer") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateGameSessionInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentUpdateGameServerInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6301,14 +6728,14 @@ func (m *awsAwsjson11_serializeOpUpdateGameSession) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateGameSessionQueue struct { +type awsAwsjson11_serializeOpUpdateGameServerGroup struct { } -func (*awsAwsjson11_serializeOpUpdateGameSessionQueue) ID() string { +func (*awsAwsjson11_serializeOpUpdateGameServerGroup) ID() string { return "OperationSerializer" } -func (m *awsAwsjson11_serializeOpUpdateGameSessionQueue) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsAwsjson11_serializeOpUpdateGameServerGroup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6320,7 +6747,7 @@ func (m *awsAwsjson11_serializeOpUpdateGameSessionQueue) HandleSerialize(ctx con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateGameSessionQueueInput) + input, ok := in.Parameters.(*UpdateGameServerGroupInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -6341,10 +6768,10 @@ func (m *awsAwsjson11_serializeOpUpdateGameSessionQueue) HandleSerialize(ctx con return out, metadata, &smithy.SerializationError{Err: err} } httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") - httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateGameSessionQueue") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateGameServerGroup") jsonEncoder := smithyjson.NewEncoder() - if err := awsAwsjson11_serializeOpDocumentUpdateGameSessionQueueInput(input, jsonEncoder.Value); err != nil { + if err := awsAwsjson11_serializeOpDocumentUpdateGameServerGroupInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6362,7 +6789,129 @@ func (m *awsAwsjson11_serializeOpUpdateGameSessionQueue) HandleSerialize(ctx con return next.HandleSerialize(ctx, in) } -type awsAwsjson11_serializeOpUpdateMatchmakingConfiguration struct { +type awsAwsjson11_serializeOpUpdateGameSession struct { +} + +func (*awsAwsjson11_serializeOpUpdateGameSession) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateGameSession) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateGameSessionInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateGameSession") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateGameSessionInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUpdateGameSessionQueue struct { +} + +func (*awsAwsjson11_serializeOpUpdateGameSessionQueue) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateGameSessionQueue) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateGameSessionQueueInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-amz-json-1.1") + httpBindingEncoder.SetHeader("X-Amz-Target").String("GameLift.UpdateGameSessionQueue") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateGameSessionQueueInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson11_serializeOpUpdateMatchmakingConfiguration struct { } func (*awsAwsjson11_serializeOpUpdateMatchmakingConfiguration) ID() string { @@ -6715,100 +7264,6 @@ func awsAwsjson11_serializeDocumentContainerCommandStringList(v []string, value return nil } -func awsAwsjson11_serializeDocumentContainerDefinitionInput(v *types.ContainerDefinitionInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.Command != nil { - ok := object.Key("Command") - if err := awsAwsjson11_serializeDocumentContainerCommandStringList(v.Command, ok); err != nil { - return err - } - } - - if v.ContainerName != nil { - ok := object.Key("ContainerName") - ok.String(*v.ContainerName) - } - - if v.Cpu != nil { - ok := object.Key("Cpu") - ok.Integer(*v.Cpu) - } - - if v.DependsOn != nil { - ok := object.Key("DependsOn") - if err := awsAwsjson11_serializeDocumentContainerDependencyList(v.DependsOn, ok); err != nil { - return err - } - } - - if v.EntryPoint != nil { - ok := object.Key("EntryPoint") - if err := awsAwsjson11_serializeDocumentContainerEntryPointList(v.EntryPoint, ok); err != nil { - return err - } - } - - if v.Environment != nil { - ok := object.Key("Environment") - if err := awsAwsjson11_serializeDocumentContainerEnvironmentList(v.Environment, ok); err != nil { - return err - } - } - - if v.Essential != nil { - ok := object.Key("Essential") - ok.Boolean(*v.Essential) - } - - if v.HealthCheck != nil { - ok := object.Key("HealthCheck") - if err := awsAwsjson11_serializeDocumentContainerHealthCheck(v.HealthCheck, ok); err != nil { - return err - } - } - - if v.ImageUri != nil { - ok := object.Key("ImageUri") - ok.String(*v.ImageUri) - } - - if v.MemoryLimits != nil { - ok := object.Key("MemoryLimits") - if err := awsAwsjson11_serializeDocumentContainerMemoryLimits(v.MemoryLimits, ok); err != nil { - return err - } - } - - if v.PortConfiguration != nil { - ok := object.Key("PortConfiguration") - if err := awsAwsjson11_serializeDocumentContainerPortConfiguration(v.PortConfiguration, ok); err != nil { - return err - } - } - - if v.WorkingDirectory != nil { - ok := object.Key("WorkingDirectory") - ok.String(*v.WorkingDirectory) - } - - return nil -} - -func awsAwsjson11_serializeDocumentContainerDefinitionInputList(v []types.ContainerDefinitionInput, value smithyjson.Value) error { - array := value.Array() - defer array.Close() - - for i := range v { - av := array.Value() - if err := awsAwsjson11_serializeDocumentContainerDefinitionInput(&v[i], av); err != nil { - return err - } - } - return nil -} - func awsAwsjson11_serializeDocumentContainerDependency(v *types.ContainerDependency, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -6839,17 +7294,6 @@ func awsAwsjson11_serializeDocumentContainerDependencyList(v []types.ContainerDe return nil } -func awsAwsjson11_serializeDocumentContainerEntryPointList(v []string, value smithyjson.Value) error { - array := value.Array() - defer array.Close() - - for i := range v { - av := array.Value() - av.String(v[i]) - } - return nil -} - func awsAwsjson11_serializeDocumentContainerEnvironment(v *types.ContainerEnvironment, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -6880,40 +7324,14 @@ func awsAwsjson11_serializeDocumentContainerEnvironmentList(v []types.ContainerE return nil } -func awsAwsjson11_serializeDocumentContainerGroupDefinitionNameOrArnLimitedList(v []string, value smithyjson.Value) error { +func awsAwsjson11_serializeDocumentContainerFleetRemoveAttributeList(v []types.ContainerFleetRemoveAttribute, value smithyjson.Value) error { array := value.Array() defer array.Close() for i := range v { av := array.Value() - av.String(v[i]) - } - return nil -} - -func awsAwsjson11_serializeDocumentContainerGroupsConfiguration(v *types.ContainerGroupsConfiguration, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.ConnectionPortRange != nil { - ok := object.Key("ConnectionPortRange") - if err := awsAwsjson11_serializeDocumentConnectionPortRange(v.ConnectionPortRange, ok); err != nil { - return err - } - } - - if v.ContainerGroupDefinitionNames != nil { - ok := object.Key("ContainerGroupDefinitionNames") - if err := awsAwsjson11_serializeDocumentContainerGroupDefinitionNameOrArnLimitedList(v.ContainerGroupDefinitionNames, ok); err != nil { - return err - } - } - - if v.DesiredReplicaContainerGroupsPerInstance != nil { - ok := object.Key("DesiredReplicaContainerGroupsPerInstance") - ok.Integer(*v.DesiredReplicaContainerGroupsPerInstance) + av.String(string(v[i])) } - return nil } @@ -6951,20 +7369,38 @@ func awsAwsjson11_serializeDocumentContainerHealthCheck(v *types.ContainerHealth return nil } -func awsAwsjson11_serializeDocumentContainerMemoryLimits(v *types.ContainerMemoryLimits, value smithyjson.Value) error { +func awsAwsjson11_serializeDocumentContainerMountPoint(v *types.ContainerMountPoint, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.HardLimit != nil { - ok := object.Key("HardLimit") - ok.Integer(*v.HardLimit) + if len(v.AccessLevel) > 0 { + ok := object.Key("AccessLevel") + ok.String(string(v.AccessLevel)) } - if v.SoftLimit != nil { - ok := object.Key("SoftLimit") - ok.Integer(*v.SoftLimit) + if v.ContainerPath != nil { + ok := object.Key("ContainerPath") + ok.String(*v.ContainerPath) } + if v.InstancePath != nil { + ok := object.Key("InstancePath") + ok.String(*v.InstancePath) + } + + return nil +} + +func awsAwsjson11_serializeDocumentContainerMountPointList(v []types.ContainerMountPoint, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentContainerMountPoint(&v[i], av); err != nil { + return err + } + } return nil } @@ -7017,6 +7453,28 @@ func awsAwsjson11_serializeDocumentContainerPortRangeList(v []types.ContainerPor return nil } +func awsAwsjson11_serializeDocumentDeploymentConfiguration(v *types.DeploymentConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ImpairmentStrategy) > 0 { + ok := object.Key("ImpairmentStrategy") + ok.String(string(v.ImpairmentStrategy)) + } + + if v.MinimumHealthyPercentage != nil { + ok := object.Key("MinimumHealthyPercentage") + ok.Integer(*v.MinimumHealthyPercentage) + } + + if len(v.ProtectionStrategy) > 0 { + ok := object.Key("ProtectionStrategy") + ok.String(string(v.ProtectionStrategy)) + } + + return nil +} + func awsAwsjson11_serializeDocumentDesiredPlayerSession(v *types.DesiredPlayerSession, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -7124,6 +7582,56 @@ func awsAwsjson11_serializeDocumentGamePropertyList(v []types.GameProperty, valu return nil } +func awsAwsjson11_serializeDocumentGameServerContainerDefinitionInput(v *types.GameServerContainerDefinitionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ContainerName != nil { + ok := object.Key("ContainerName") + ok.String(*v.ContainerName) + } + + if v.DependsOn != nil { + ok := object.Key("DependsOn") + if err := awsAwsjson11_serializeDocumentContainerDependencyList(v.DependsOn, ok); err != nil { + return err + } + } + + if v.EnvironmentOverride != nil { + ok := object.Key("EnvironmentOverride") + if err := awsAwsjson11_serializeDocumentContainerEnvironmentList(v.EnvironmentOverride, ok); err != nil { + return err + } + } + + if v.ImageUri != nil { + ok := object.Key("ImageUri") + ok.String(*v.ImageUri) + } + + if v.MountPoints != nil { + ok := object.Key("MountPoints") + if err := awsAwsjson11_serializeDocumentContainerMountPointList(v.MountPoints, ok); err != nil { + return err + } + } + + if v.PortConfiguration != nil { + ok := object.Key("PortConfiguration") + if err := awsAwsjson11_serializeDocumentContainerPortConfiguration(v.PortConfiguration, ok); err != nil { + return err + } + } + + if v.ServerSdkVersion != nil { + ok := object.Key("ServerSdkVersion") + ok.String(*v.ServerSdkVersion) + } + + return nil +} + func awsAwsjson11_serializeDocumentGameServerGroupActions(v []types.GameServerGroupAction, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -7165,6 +7673,23 @@ func awsAwsjson11_serializeDocumentGameServerInstanceIds(v []string, value smith return nil } +func awsAwsjson11_serializeDocumentGameSessionCreationLimitPolicy(v *types.GameSessionCreationLimitPolicy, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.NewGameSessionsPerCreator != nil { + ok := object.Key("NewGameSessionsPerCreator") + ok.Integer(*v.NewGameSessionsPerCreator) + } + + if v.PolicyPeriodInMinutes != nil { + ok := object.Key("PolicyPeriodInMinutes") + ok.Integer(*v.PolicyPeriodInMinutes) + } + + return nil +} + func awsAwsjson11_serializeDocumentGameSessionQueueDestination(v *types.GameSessionQueueDestination, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -7351,6 +7876,28 @@ func awsAwsjson11_serializeDocumentLocationList(v []string, value smithyjson.Val return nil } +func awsAwsjson11_serializeDocumentLogConfiguration(v *types.LogConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.LogDestination) > 0 { + ok := object.Key("LogDestination") + ok.String(string(v.LogDestination)) + } + + if v.LogGroupArn != nil { + ok := object.Key("LogGroupArn") + ok.String(*v.LogGroupArn) + } + + if v.S3BucketName != nil { + ok := object.Key("S3BucketName") + ok.String(*v.S3BucketName) + } + + return nil +} + func awsAwsjson11_serializeDocumentMatchmakingConfigurationNameList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -7778,6 +8325,99 @@ func awsAwsjson11_serializeDocumentStringList(v []string, value smithyjson.Value return nil } +func awsAwsjson11_serializeDocumentSupportContainerDefinitionInput(v *types.SupportContainerDefinitionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ContainerName != nil { + ok := object.Key("ContainerName") + ok.String(*v.ContainerName) + } + + if v.DependsOn != nil { + ok := object.Key("DependsOn") + if err := awsAwsjson11_serializeDocumentContainerDependencyList(v.DependsOn, ok); err != nil { + return err + } + } + + if v.EnvironmentOverride != nil { + ok := object.Key("EnvironmentOverride") + if err := awsAwsjson11_serializeDocumentContainerEnvironmentList(v.EnvironmentOverride, ok); err != nil { + return err + } + } + + if v.Essential != nil { + ok := object.Key("Essential") + ok.Boolean(*v.Essential) + } + + if v.HealthCheck != nil { + ok := object.Key("HealthCheck") + if err := awsAwsjson11_serializeDocumentContainerHealthCheck(v.HealthCheck, ok); err != nil { + return err + } + } + + if v.ImageUri != nil { + ok := object.Key("ImageUri") + ok.String(*v.ImageUri) + } + + if v.MemoryHardLimitMebibytes != nil { + ok := object.Key("MemoryHardLimitMebibytes") + ok.Integer(*v.MemoryHardLimitMebibytes) + } + + if v.MountPoints != nil { + ok := object.Key("MountPoints") + if err := awsAwsjson11_serializeDocumentContainerMountPointList(v.MountPoints, ok); err != nil { + return err + } + } + + if v.PortConfiguration != nil { + ok := object.Key("PortConfiguration") + if err := awsAwsjson11_serializeDocumentContainerPortConfiguration(v.PortConfiguration, ok); err != nil { + return err + } + } + + if v.Vcpu != nil { + ok := object.Key("Vcpu") + switch { + case math.IsNaN(*v.Vcpu): + ok.String("NaN") + + case math.IsInf(*v.Vcpu, 1): + ok.String("Infinity") + + case math.IsInf(*v.Vcpu, -1): + ok.String("-Infinity") + + default: + ok.Double(*v.Vcpu) + + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentSupportContainerDefinitionInputList(v []types.SupportContainerDefinitionInput, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson11_serializeDocumentSupportContainerDefinitionInput(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsjson11_serializeDocumentTag(v *types.Tag, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -7978,16 +8618,117 @@ func awsAwsjson11_serializeOpDocumentCreateBuildInput(v *CreateBuildInput, value ok.String(string(v.OperatingSystem)) } - if v.ServerSdkVersion != nil { - ok := object.Key("ServerSdkVersion") - ok.String(*v.ServerSdkVersion) + if v.ServerSdkVersion != nil { + ok := object.Key("ServerSdkVersion") + ok.String(*v.ServerSdkVersion) + } + + if v.StorageLocation != nil { + ok := object.Key("StorageLocation") + if err := awsAwsjson11_serializeDocumentS3Location(v.StorageLocation, ok); err != nil { + return err + } + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsAwsjson11_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + if v.Version != nil { + ok := object.Key("Version") + ok.String(*v.Version) + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentCreateContainerFleetInput(v *CreateContainerFleetInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.BillingType) > 0 { + ok := object.Key("BillingType") + ok.String(string(v.BillingType)) + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.FleetRoleArn != nil { + ok := object.Key("FleetRoleArn") + ok.String(*v.FleetRoleArn) + } + + if v.GameServerContainerGroupDefinitionName != nil { + ok := object.Key("GameServerContainerGroupDefinitionName") + ok.String(*v.GameServerContainerGroupDefinitionName) + } + + if v.GameServerContainerGroupsPerInstance != nil { + ok := object.Key("GameServerContainerGroupsPerInstance") + ok.Integer(*v.GameServerContainerGroupsPerInstance) + } + + if v.GameSessionCreationLimitPolicy != nil { + ok := object.Key("GameSessionCreationLimitPolicy") + if err := awsAwsjson11_serializeDocumentGameSessionCreationLimitPolicy(v.GameSessionCreationLimitPolicy, ok); err != nil { + return err + } + } + + if v.InstanceConnectionPortRange != nil { + ok := object.Key("InstanceConnectionPortRange") + if err := awsAwsjson11_serializeDocumentConnectionPortRange(v.InstanceConnectionPortRange, ok); err != nil { + return err + } + } + + if v.InstanceInboundPermissions != nil { + ok := object.Key("InstanceInboundPermissions") + if err := awsAwsjson11_serializeDocumentIpPermissionsList(v.InstanceInboundPermissions, ok); err != nil { + return err + } + } + + if v.InstanceType != nil { + ok := object.Key("InstanceType") + ok.String(*v.InstanceType) + } + + if v.Locations != nil { + ok := object.Key("Locations") + if err := awsAwsjson11_serializeDocumentLocationConfigurationList(v.Locations, ok); err != nil { + return err + } + } + + if v.LogConfiguration != nil { + ok := object.Key("LogConfiguration") + if err := awsAwsjson11_serializeDocumentLogConfiguration(v.LogConfiguration, ok); err != nil { + return err + } + } + + if v.MetricGroups != nil { + ok := object.Key("MetricGroups") + if err := awsAwsjson11_serializeDocumentMetricGroupList(v.MetricGroups, ok); err != nil { + return err + } + } + + if len(v.NewGameSessionProtectionPolicy) > 0 { + ok := object.Key("NewGameSessionProtectionPolicy") + ok.String(string(v.NewGameSessionProtectionPolicy)) } - if v.StorageLocation != nil { - ok := object.Key("StorageLocation") - if err := awsAwsjson11_serializeDocumentS3Location(v.StorageLocation, ok); err != nil { - return err - } + if v.PerInstanceContainerGroupDefinitionName != nil { + ok := object.Key("PerInstanceContainerGroupDefinitionName") + ok.String(*v.PerInstanceContainerGroupDefinitionName) } if v.Tags != nil { @@ -7997,11 +8738,6 @@ func awsAwsjson11_serializeOpDocumentCreateBuildInput(v *CreateBuildInput, value } } - if v.Version != nil { - ok := object.Key("Version") - ok.String(*v.Version) - } - return nil } @@ -8009,9 +8745,14 @@ func awsAwsjson11_serializeOpDocumentCreateContainerGroupDefinitionInput(v *Crea object := value.Object() defer object.Close() - if v.ContainerDefinitions != nil { - ok := object.Key("ContainerDefinitions") - if err := awsAwsjson11_serializeDocumentContainerDefinitionInputList(v.ContainerDefinitions, ok); err != nil { + if len(v.ContainerGroupType) > 0 { + ok := object.Key("ContainerGroupType") + ok.String(string(v.ContainerGroupType)) + } + + if v.GameServerContainerDefinition != nil { + ok := object.Key("GameServerContainerDefinition") + if err := awsAwsjson11_serializeDocumentGameServerContainerDefinitionInput(v.GameServerContainerDefinition, ok); err != nil { return err } } @@ -8026,9 +8767,11 @@ func awsAwsjson11_serializeOpDocumentCreateContainerGroupDefinitionInput(v *Crea ok.String(string(v.OperatingSystem)) } - if len(v.SchedulingStrategy) > 0 { - ok := object.Key("SchedulingStrategy") - ok.String(string(v.SchedulingStrategy)) + if v.SupportContainerDefinitions != nil { + ok := object.Key("SupportContainerDefinitions") + if err := awsAwsjson11_serializeDocumentSupportContainerDefinitionInputList(v.SupportContainerDefinitions, ok); err != nil { + return err + } } if v.Tags != nil { @@ -8038,14 +8781,32 @@ func awsAwsjson11_serializeOpDocumentCreateContainerGroupDefinitionInput(v *Crea } } - if v.TotalCpuLimit != nil { - ok := object.Key("TotalCpuLimit") - ok.Integer(*v.TotalCpuLimit) + if v.TotalMemoryLimitMebibytes != nil { + ok := object.Key("TotalMemoryLimitMebibytes") + ok.Integer(*v.TotalMemoryLimitMebibytes) + } + + if v.TotalVcpuLimit != nil { + ok := object.Key("TotalVcpuLimit") + switch { + case math.IsNaN(*v.TotalVcpuLimit): + ok.String("NaN") + + case math.IsInf(*v.TotalVcpuLimit, 1): + ok.String("Infinity") + + case math.IsInf(*v.TotalVcpuLimit, -1): + ok.String("-Infinity") + + default: + ok.Double(*v.TotalVcpuLimit) + + } } - if v.TotalMemoryLimit != nil { - ok := object.Key("TotalMemoryLimit") - ok.Integer(*v.TotalMemoryLimit) + if v.VersionDescription != nil { + ok := object.Key("VersionDescription") + ok.String(*v.VersionDescription) } return nil @@ -8079,13 +8840,6 @@ func awsAwsjson11_serializeOpDocumentCreateFleetInput(v *CreateFleetInput, value ok.String(string(v.ComputeType)) } - if v.ContainerGroupsConfiguration != nil { - ok := object.Key("ContainerGroupsConfiguration") - if err := awsAwsjson11_serializeDocumentContainerGroupsConfiguration(v.ContainerGroupsConfiguration, ok); err != nil { - return err - } - } - if v.Description != nil { ok := object.Key("Description") ok.String(*v.Description) @@ -8688,6 +9442,18 @@ func awsAwsjson11_serializeOpDocumentDeleteBuildInput(v *DeleteBuildInput, value return nil } +func awsAwsjson11_serializeOpDocumentDeleteContainerFleetInput(v *DeleteContainerFleetInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FleetId != nil { + ok := object.Key("FleetId") + ok.String(*v.FleetId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDeleteContainerGroupDefinitionInput(v *DeleteContainerGroupDefinitionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -8697,6 +9463,16 @@ func awsAwsjson11_serializeOpDocumentDeleteContainerGroupDefinitionInput(v *Dele ok.String(*v.Name) } + if v.VersionCountToRetain != nil { + ok := object.Key("VersionCountToRetain") + ok.Integer(*v.VersionCountToRetain) + } + + if v.VersionNumber != nil { + ok := object.Key("VersionNumber") + ok.Integer(*v.VersionNumber) + } + return nil } @@ -8934,6 +9710,18 @@ func awsAwsjson11_serializeOpDocumentDescribeComputeInput(v *DescribeComputeInpu return nil } +func awsAwsjson11_serializeOpDocumentDescribeContainerFleetInput(v *DescribeContainerFleetInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FleetId != nil { + ok := object.Key("FleetId") + ok.String(*v.FleetId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeContainerGroupDefinitionInput(v *DescribeContainerGroupDefinitionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -8943,6 +9731,11 @@ func awsAwsjson11_serializeOpDocumentDescribeContainerGroupDefinitionInput(v *De ok.String(*v.Name) } + if v.VersionNumber != nil { + ok := object.Key("VersionNumber") + ok.Integer(*v.VersionNumber) + } + return nil } @@ -9011,6 +9804,23 @@ func awsAwsjson11_serializeOpDocumentDescribeFleetCapacityInput(v *DescribeFleet return nil } +func awsAwsjson11_serializeOpDocumentDescribeFleetDeploymentInput(v *DescribeFleetDeploymentInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DeploymentId != nil { + ok := object.Key("DeploymentId") + ok.String(*v.DeploymentId) + } + + if v.FleetId != nil { + ok := object.Key("FleetId") + ok.String(*v.FleetId) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentDescribeFleetEventsInput(v *DescribeFleetEventsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -9652,6 +10462,16 @@ func awsAwsjson11_serializeOpDocumentListComputeInput(v *ListComputeInput, value object := value.Object() defer object.Close() + if len(v.ComputeStatus) > 0 { + ok := object.Key("ComputeStatus") + ok.String(string(v.ComputeStatus)) + } + + if v.ContainerGroupDefinitionName != nil { + ok := object.Key("ContainerGroupDefinitionName") + ok.String(*v.ContainerGroupDefinitionName) + } + if v.FleetId != nil { ok := object.Key("FleetId") ok.String(*v.FleetId) @@ -9675,23 +10495,89 @@ func awsAwsjson11_serializeOpDocumentListComputeInput(v *ListComputeInput, value return nil } +func awsAwsjson11_serializeOpDocumentListContainerFleetsInput(v *ListContainerFleetsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ContainerGroupDefinitionName != nil { + ok := object.Key("ContainerGroupDefinitionName") + ok.String(*v.ContainerGroupDefinitionName) + } + + if v.Limit != nil { + ok := object.Key("Limit") + ok.Integer(*v.Limit) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentListContainerGroupDefinitionsInput(v *ListContainerGroupDefinitionsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() + if len(v.ContainerGroupType) > 0 { + ok := object.Key("ContainerGroupType") + ok.String(string(v.ContainerGroupType)) + } + + if v.Limit != nil { + ok := object.Key("Limit") + ok.Integer(*v.Limit) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentListContainerGroupDefinitionVersionsInput(v *ListContainerGroupDefinitionVersionsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + if v.Limit != nil { ok := object.Key("Limit") ok.Integer(*v.Limit) } + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + if v.NextToken != nil { ok := object.Key("NextToken") ok.String(*v.NextToken) } - if len(v.SchedulingStrategy) > 0 { - ok := object.Key("SchedulingStrategy") - ok.String(string(v.SchedulingStrategy)) + return nil +} + +func awsAwsjson11_serializeOpDocumentListFleetDeploymentsInput(v *ListFleetDeploymentsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.FleetId != nil { + ok := object.Key("FleetId") + ok.String(*v.FleetId) + } + + if v.Limit != nil { + ok := object.Key("Limit") + ok.Integer(*v.Limit) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) } return nil @@ -9706,11 +10592,6 @@ func awsAwsjson11_serializeOpDocumentListFleetsInput(v *ListFleetsInput, value s ok.String(*v.BuildId) } - if v.ContainerGroupDefinitionName != nil { - ok := object.Key("ContainerGroupDefinitionName") - ok.String(*v.ContainerGroupDefinitionName) - } - if v.Limit != nil { ok := object.Key("Limit") ok.Integer(*v.Limit) @@ -10338,6 +11219,163 @@ func awsAwsjson11_serializeOpDocumentUpdateBuildInput(v *UpdateBuildInput, value return nil } +func awsAwsjson11_serializeOpDocumentUpdateContainerFleetInput(v *UpdateContainerFleetInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DeploymentConfiguration != nil { + ok := object.Key("DeploymentConfiguration") + if err := awsAwsjson11_serializeDocumentDeploymentConfiguration(v.DeploymentConfiguration, ok); err != nil { + return err + } + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.FleetId != nil { + ok := object.Key("FleetId") + ok.String(*v.FleetId) + } + + if v.GameServerContainerGroupDefinitionName != nil { + ok := object.Key("GameServerContainerGroupDefinitionName") + ok.String(*v.GameServerContainerGroupDefinitionName) + } + + if v.GameServerContainerGroupsPerInstance != nil { + ok := object.Key("GameServerContainerGroupsPerInstance") + ok.Integer(*v.GameServerContainerGroupsPerInstance) + } + + if v.GameSessionCreationLimitPolicy != nil { + ok := object.Key("GameSessionCreationLimitPolicy") + if err := awsAwsjson11_serializeDocumentGameSessionCreationLimitPolicy(v.GameSessionCreationLimitPolicy, ok); err != nil { + return err + } + } + + if v.InstanceConnectionPortRange != nil { + ok := object.Key("InstanceConnectionPortRange") + if err := awsAwsjson11_serializeDocumentConnectionPortRange(v.InstanceConnectionPortRange, ok); err != nil { + return err + } + } + + if v.InstanceInboundPermissionAuthorizations != nil { + ok := object.Key("InstanceInboundPermissionAuthorizations") + if err := awsAwsjson11_serializeDocumentIpPermissionsList(v.InstanceInboundPermissionAuthorizations, ok); err != nil { + return err + } + } + + if v.InstanceInboundPermissionRevocations != nil { + ok := object.Key("InstanceInboundPermissionRevocations") + if err := awsAwsjson11_serializeDocumentIpPermissionsList(v.InstanceInboundPermissionRevocations, ok); err != nil { + return err + } + } + + if v.LogConfiguration != nil { + ok := object.Key("LogConfiguration") + if err := awsAwsjson11_serializeDocumentLogConfiguration(v.LogConfiguration, ok); err != nil { + return err + } + } + + if v.MetricGroups != nil { + ok := object.Key("MetricGroups") + if err := awsAwsjson11_serializeDocumentMetricGroupList(v.MetricGroups, ok); err != nil { + return err + } + } + + if len(v.NewGameSessionProtectionPolicy) > 0 { + ok := object.Key("NewGameSessionProtectionPolicy") + ok.String(string(v.NewGameSessionProtectionPolicy)) + } + + if v.PerInstanceContainerGroupDefinitionName != nil { + ok := object.Key("PerInstanceContainerGroupDefinitionName") + ok.String(*v.PerInstanceContainerGroupDefinitionName) + } + + if v.RemoveAttributes != nil { + ok := object.Key("RemoveAttributes") + if err := awsAwsjson11_serializeDocumentContainerFleetRemoveAttributeList(v.RemoveAttributes, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeOpDocumentUpdateContainerGroupDefinitionInput(v *UpdateContainerGroupDefinitionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.GameServerContainerDefinition != nil { + ok := object.Key("GameServerContainerDefinition") + if err := awsAwsjson11_serializeDocumentGameServerContainerDefinitionInput(v.GameServerContainerDefinition, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if len(v.OperatingSystem) > 0 { + ok := object.Key("OperatingSystem") + ok.String(string(v.OperatingSystem)) + } + + if v.SourceVersionNumber != nil { + ok := object.Key("SourceVersionNumber") + ok.Integer(*v.SourceVersionNumber) + } + + if v.SupportContainerDefinitions != nil { + ok := object.Key("SupportContainerDefinitions") + if err := awsAwsjson11_serializeDocumentSupportContainerDefinitionInputList(v.SupportContainerDefinitions, ok); err != nil { + return err + } + } + + if v.TotalMemoryLimitMebibytes != nil { + ok := object.Key("TotalMemoryLimitMebibytes") + ok.Integer(*v.TotalMemoryLimitMebibytes) + } + + if v.TotalVcpuLimit != nil { + ok := object.Key("TotalVcpuLimit") + switch { + case math.IsNaN(*v.TotalVcpuLimit): + ok.String("NaN") + + case math.IsInf(*v.TotalVcpuLimit, 1): + ok.String("Infinity") + + case math.IsInf(*v.TotalVcpuLimit, -1): + ok.String("-Infinity") + + default: + ok.Double(*v.TotalVcpuLimit) + + } + } + + if v.VersionDescription != nil { + ok := object.Key("VersionDescription") + ok.String(*v.VersionDescription) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentUpdateFleetAttributesInput(v *UpdateFleetAttributesInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/gamelift/snapshot/api_op_CreateContainerFleet.go.snap b/service/gamelift/snapshot/api_op_CreateContainerFleet.go.snap new file mode 100644 index 00000000000..98d32d7f7f6 --- /dev/null +++ b/service/gamelift/snapshot/api_op_CreateContainerFleet.go.snap @@ -0,0 +1,41 @@ +CreateContainerFleet + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot/api_op_DeleteContainerFleet.go.snap b/service/gamelift/snapshot/api_op_DeleteContainerFleet.go.snap new file mode 100644 index 00000000000..6efc402a89c --- /dev/null +++ b/service/gamelift/snapshot/api_op_DeleteContainerFleet.go.snap @@ -0,0 +1,41 @@ +DeleteContainerFleet + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot/api_op_DescribeContainerFleet.go.snap b/service/gamelift/snapshot/api_op_DescribeContainerFleet.go.snap new file mode 100644 index 00000000000..48d51903948 --- /dev/null +++ b/service/gamelift/snapshot/api_op_DescribeContainerFleet.go.snap @@ -0,0 +1,41 @@ +DescribeContainerFleet + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot/api_op_DescribeFleetDeployment.go.snap b/service/gamelift/snapshot/api_op_DescribeFleetDeployment.go.snap new file mode 100644 index 00000000000..e83eff313e7 --- /dev/null +++ b/service/gamelift/snapshot/api_op_DescribeFleetDeployment.go.snap @@ -0,0 +1,41 @@ +DescribeFleetDeployment + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot/api_op_ListContainerFleets.go.snap b/service/gamelift/snapshot/api_op_ListContainerFleets.go.snap new file mode 100644 index 00000000000..cce22ac9970 --- /dev/null +++ b/service/gamelift/snapshot/api_op_ListContainerFleets.go.snap @@ -0,0 +1,40 @@ +ListContainerFleets + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot/api_op_ListContainerGroupDefinitionVersions.go.snap b/service/gamelift/snapshot/api_op_ListContainerGroupDefinitionVersions.go.snap new file mode 100644 index 00000000000..9cb619f907a --- /dev/null +++ b/service/gamelift/snapshot/api_op_ListContainerGroupDefinitionVersions.go.snap @@ -0,0 +1,41 @@ +ListContainerGroupDefinitionVersions + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot/api_op_ListFleetDeployments.go.snap b/service/gamelift/snapshot/api_op_ListFleetDeployments.go.snap new file mode 100644 index 00000000000..d53527f5cdc --- /dev/null +++ b/service/gamelift/snapshot/api_op_ListFleetDeployments.go.snap @@ -0,0 +1,40 @@ +ListFleetDeployments + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot/api_op_UpdateContainerFleet.go.snap b/service/gamelift/snapshot/api_op_UpdateContainerFleet.go.snap new file mode 100644 index 00000000000..52c483673f0 --- /dev/null +++ b/service/gamelift/snapshot/api_op_UpdateContainerFleet.go.snap @@ -0,0 +1,41 @@ +UpdateContainerFleet + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot/api_op_UpdateContainerGroupDefinition.go.snap b/service/gamelift/snapshot/api_op_UpdateContainerGroupDefinition.go.snap new file mode 100644 index 00000000000..4ead4d6d640 --- /dev/null +++ b/service/gamelift/snapshot/api_op_UpdateContainerGroupDefinition.go.snap @@ -0,0 +1,41 @@ +UpdateContainerGroupDefinition + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/gamelift/snapshot_test.go b/service/gamelift/snapshot_test.go index a8cbc30f1d5..b9ad66ee798 100644 --- a/service/gamelift/snapshot_test.go +++ b/service/gamelift/snapshot_test.go @@ -110,6 +110,18 @@ func TestCheckSnapshot_CreateBuild(t *testing.T) { } } +func TestCheckSnapshot_CreateContainerFleet(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateContainerFleet(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateContainerFleet") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreateContainerGroupDefinition(t *testing.T) { svc := New(Options{}) _, err := svc.CreateContainerGroupDefinition(context.Background(), nil, func(o *Options) { @@ -302,6 +314,18 @@ func TestCheckSnapshot_DeleteBuild(t *testing.T) { } } +func TestCheckSnapshot_DeleteContainerFleet(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteContainerFleet(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteContainerFleet") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteContainerGroupDefinition(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteContainerGroupDefinition(context.Background(), nil, func(o *Options) { @@ -506,6 +530,18 @@ func TestCheckSnapshot_DescribeCompute(t *testing.T) { } } +func TestCheckSnapshot_DescribeContainerFleet(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeContainerFleet(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeContainerFleet") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DescribeContainerGroupDefinition(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeContainerGroupDefinition(context.Background(), nil, func(o *Options) { @@ -554,6 +590,18 @@ func TestCheckSnapshot_DescribeFleetCapacity(t *testing.T) { } } +func TestCheckSnapshot_DescribeFleetDeployment(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeFleetDeployment(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeFleetDeployment") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DescribeFleetEvents(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeFleetEvents(context.Background(), nil, func(o *Options) { @@ -914,6 +962,18 @@ func TestCheckSnapshot_ListCompute(t *testing.T) { } } +func TestCheckSnapshot_ListContainerFleets(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListContainerFleets(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListContainerFleets") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListContainerGroupDefinitions(t *testing.T) { svc := New(Options{}) _, err := svc.ListContainerGroupDefinitions(context.Background(), nil, func(o *Options) { @@ -926,6 +986,30 @@ func TestCheckSnapshot_ListContainerGroupDefinitions(t *testing.T) { } } +func TestCheckSnapshot_ListContainerGroupDefinitionVersions(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListContainerGroupDefinitionVersions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListContainerGroupDefinitionVersions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListFleetDeployments(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListFleetDeployments(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListFleetDeployments") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListFleets(t *testing.T) { svc := New(Options{}) _, err := svc.ListFleets(context.Background(), nil, func(o *Options) { @@ -1226,6 +1310,30 @@ func TestCheckSnapshot_UpdateBuild(t *testing.T) { } } +func TestCheckSnapshot_UpdateContainerFleet(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateContainerFleet(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateContainerFleet") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_UpdateContainerGroupDefinition(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateContainerGroupDefinition(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateContainerGroupDefinition") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateFleetAttributes(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateFleetAttributes(context.Background(), nil, func(o *Options) { @@ -1405,6 +1513,18 @@ func TestUpdateSnapshot_CreateBuild(t *testing.T) { } } +func TestUpdateSnapshot_CreateContainerFleet(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateContainerFleet(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateContainerFleet") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreateContainerGroupDefinition(t *testing.T) { svc := New(Options{}) _, err := svc.CreateContainerGroupDefinition(context.Background(), nil, func(o *Options) { @@ -1597,6 +1717,18 @@ func TestUpdateSnapshot_DeleteBuild(t *testing.T) { } } +func TestUpdateSnapshot_DeleteContainerFleet(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteContainerFleet(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteContainerFleet") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteContainerGroupDefinition(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteContainerGroupDefinition(context.Background(), nil, func(o *Options) { @@ -1801,6 +1933,18 @@ func TestUpdateSnapshot_DescribeCompute(t *testing.T) { } } +func TestUpdateSnapshot_DescribeContainerFleet(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeContainerFleet(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeContainerFleet") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DescribeContainerGroupDefinition(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeContainerGroupDefinition(context.Background(), nil, func(o *Options) { @@ -1849,6 +1993,18 @@ func TestUpdateSnapshot_DescribeFleetCapacity(t *testing.T) { } } +func TestUpdateSnapshot_DescribeFleetDeployment(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeFleetDeployment(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeFleetDeployment") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DescribeFleetEvents(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeFleetEvents(context.Background(), nil, func(o *Options) { @@ -2209,6 +2365,18 @@ func TestUpdateSnapshot_ListCompute(t *testing.T) { } } +func TestUpdateSnapshot_ListContainerFleets(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListContainerFleets(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListContainerFleets") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListContainerGroupDefinitions(t *testing.T) { svc := New(Options{}) _, err := svc.ListContainerGroupDefinitions(context.Background(), nil, func(o *Options) { @@ -2221,6 +2389,30 @@ func TestUpdateSnapshot_ListContainerGroupDefinitions(t *testing.T) { } } +func TestUpdateSnapshot_ListContainerGroupDefinitionVersions(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListContainerGroupDefinitionVersions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListContainerGroupDefinitionVersions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListFleetDeployments(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListFleetDeployments(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListFleetDeployments") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListFleets(t *testing.T) { svc := New(Options{}) _, err := svc.ListFleets(context.Background(), nil, func(o *Options) { @@ -2521,6 +2713,30 @@ func TestUpdateSnapshot_UpdateBuild(t *testing.T) { } } +func TestUpdateSnapshot_UpdateContainerFleet(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateContainerFleet(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateContainerFleet") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_UpdateContainerGroupDefinition(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateContainerGroupDefinition(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateContainerGroupDefinition") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateFleetAttributes(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateFleetAttributes(context.Background(), nil, func(o *Options) { diff --git a/service/gamelift/types/enums.go b/service/gamelift/types/enums.go index 336fdbe0fce..9afa9ee4f9d 100644 --- a/service/gamelift/types/enums.go +++ b/service/gamelift/types/enums.go @@ -131,6 +131,7 @@ const ( ComputeStatusPending ComputeStatus = "PENDING" ComputeStatusActive ComputeStatus = "ACTIVE" ComputeStatusTerminating ComputeStatus = "TERMINATING" + ComputeStatusImpaired ComputeStatus = "IMPAIRED" ) // Values returns all known values for ComputeStatus. Note that this can be @@ -142,6 +143,7 @@ func (ComputeStatus) Values() []ComputeStatus { "PENDING", "ACTIVE", "TERMINATING", + "IMPAIRED", } } @@ -149,9 +151,8 @@ type ComputeType string // Enum values for ComputeType const ( - ComputeTypeEc2 ComputeType = "EC2" - ComputeTypeAnywhere ComputeType = "ANYWHERE" - ComputeTypeContainer ComputeType = "CONTAINER" + ComputeTypeEc2 ComputeType = "EC2" + ComputeTypeAnywhere ComputeType = "ANYWHERE" ) // Values returns all known values for ComputeType. Note that this can be expanded @@ -162,7 +163,6 @@ func (ComputeType) Values() []ComputeType { return []ComputeType{ "EC2", "ANYWHERE", - "CONTAINER", } } @@ -190,6 +190,102 @@ func (ContainerDependencyCondition) Values() []ContainerDependencyCondition { } } +type ContainerFleetBillingType string + +// Enum values for ContainerFleetBillingType +const ( + ContainerFleetBillingTypeOnDemand ContainerFleetBillingType = "ON_DEMAND" + ContainerFleetBillingTypeSpot ContainerFleetBillingType = "SPOT" +) + +// Values returns all known values for ContainerFleetBillingType. 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 (ContainerFleetBillingType) Values() []ContainerFleetBillingType { + return []ContainerFleetBillingType{ + "ON_DEMAND", + "SPOT", + } +} + +type ContainerFleetLocationStatus string + +// Enum values for ContainerFleetLocationStatus +const ( + ContainerFleetLocationStatusPending ContainerFleetLocationStatus = "PENDING" + ContainerFleetLocationStatusCreating ContainerFleetLocationStatus = "CREATING" + ContainerFleetLocationStatusCreated ContainerFleetLocationStatus = "CREATED" + ContainerFleetLocationStatusActivating ContainerFleetLocationStatus = "ACTIVATING" + ContainerFleetLocationStatusActive ContainerFleetLocationStatus = "ACTIVE" + ContainerFleetLocationStatusUpdating ContainerFleetLocationStatus = "UPDATING" + ContainerFleetLocationStatusDeleting ContainerFleetLocationStatus = "DELETING" +) + +// Values returns all known values for ContainerFleetLocationStatus. 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 (ContainerFleetLocationStatus) Values() []ContainerFleetLocationStatus { + return []ContainerFleetLocationStatus{ + "PENDING", + "CREATING", + "CREATED", + "ACTIVATING", + "ACTIVE", + "UPDATING", + "DELETING", + } +} + +type ContainerFleetRemoveAttribute string + +// Enum values for ContainerFleetRemoveAttribute +const ( + ContainerFleetRemoveAttributePerInstanceContainerGroupDefinition ContainerFleetRemoveAttribute = "PER_INSTANCE_CONTAINER_GROUP_DEFINITION" +) + +// Values returns all known values for ContainerFleetRemoveAttribute. 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 (ContainerFleetRemoveAttribute) Values() []ContainerFleetRemoveAttribute { + return []ContainerFleetRemoveAttribute{ + "PER_INSTANCE_CONTAINER_GROUP_DEFINITION", + } +} + +type ContainerFleetStatus string + +// Enum values for ContainerFleetStatus +const ( + ContainerFleetStatusPending ContainerFleetStatus = "PENDING" + ContainerFleetStatusCreating ContainerFleetStatus = "CREATING" + ContainerFleetStatusCreated ContainerFleetStatus = "CREATED" + ContainerFleetStatusActivating ContainerFleetStatus = "ACTIVATING" + ContainerFleetStatusActive ContainerFleetStatus = "ACTIVE" + ContainerFleetStatusUpdating ContainerFleetStatus = "UPDATING" + ContainerFleetStatusDeleting ContainerFleetStatus = "DELETING" +) + +// Values returns all known values for ContainerFleetStatus. 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 (ContainerFleetStatus) Values() []ContainerFleetStatus { + return []ContainerFleetStatus{ + "PENDING", + "CREATING", + "CREATED", + "ACTIVATING", + "ACTIVE", + "UPDATING", + "DELETING", + } +} + type ContainerGroupDefinitionStatus string // Enum values for ContainerGroupDefinitionStatus @@ -212,6 +308,45 @@ func (ContainerGroupDefinitionStatus) Values() []ContainerGroupDefinitionStatus } } +type ContainerGroupType string + +// Enum values for ContainerGroupType +const ( + ContainerGroupTypeGameServer ContainerGroupType = "GAME_SERVER" + ContainerGroupTypePerInstance ContainerGroupType = "PER_INSTANCE" +) + +// Values returns all known values for ContainerGroupType. 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 (ContainerGroupType) Values() []ContainerGroupType { + return []ContainerGroupType{ + "GAME_SERVER", + "PER_INSTANCE", + } +} + +type ContainerMountPointAccessLevel string + +// Enum values for ContainerMountPointAccessLevel +const ( + ContainerMountPointAccessLevelReadOnly ContainerMountPointAccessLevel = "READ_ONLY" + ContainerMountPointAccessLevelReadAndWrite ContainerMountPointAccessLevel = "READ_AND_WRITE" +) + +// Values returns all known values for ContainerMountPointAccessLevel. 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 (ContainerMountPointAccessLevel) Values() []ContainerMountPointAccessLevel { + return []ContainerMountPointAccessLevel{ + "READ_ONLY", + "READ_AND_WRITE", + } +} + type ContainerOperatingSystem string // Enum values for ContainerOperatingSystem @@ -229,22 +364,72 @@ func (ContainerOperatingSystem) Values() []ContainerOperatingSystem { } } -type ContainerSchedulingStrategy string +type DeploymentImpairmentStrategy string -// Enum values for ContainerSchedulingStrategy +// Enum values for DeploymentImpairmentStrategy const ( - ContainerSchedulingStrategyReplica ContainerSchedulingStrategy = "REPLICA" - ContainerSchedulingStrategyDaemon ContainerSchedulingStrategy = "DAEMON" + DeploymentImpairmentStrategyMaintain DeploymentImpairmentStrategy = "MAINTAIN" + DeploymentImpairmentStrategyRollback DeploymentImpairmentStrategy = "ROLLBACK" ) -// Values returns all known values for ContainerSchedulingStrategy. Note that this -// can be expanded in the future, and so it is only as up to date as the client. +// Values returns all known values for DeploymentImpairmentStrategy. 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 (ContainerSchedulingStrategy) Values() []ContainerSchedulingStrategy { - return []ContainerSchedulingStrategy{ - "REPLICA", - "DAEMON", +func (DeploymentImpairmentStrategy) Values() []DeploymentImpairmentStrategy { + return []DeploymentImpairmentStrategy{ + "MAINTAIN", + "ROLLBACK", + } +} + +type DeploymentProtectionStrategy string + +// Enum values for DeploymentProtectionStrategy +const ( + DeploymentProtectionStrategyWithProtection DeploymentProtectionStrategy = "WITH_PROTECTION" + DeploymentProtectionStrategyIgnoreProtection DeploymentProtectionStrategy = "IGNORE_PROTECTION" +) + +// Values returns all known values for DeploymentProtectionStrategy. 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 (DeploymentProtectionStrategy) Values() []DeploymentProtectionStrategy { + return []DeploymentProtectionStrategy{ + "WITH_PROTECTION", + "IGNORE_PROTECTION", + } +} + +type DeploymentStatus string + +// Enum values for DeploymentStatus +const ( + DeploymentStatusInProgress DeploymentStatus = "IN_PROGRESS" + DeploymentStatusImpaired DeploymentStatus = "IMPAIRED" + DeploymentStatusComplete DeploymentStatus = "COMPLETE" + DeploymentStatusRollbackInProgress DeploymentStatus = "ROLLBACK_IN_PROGRESS" + DeploymentStatusRollbackComplete DeploymentStatus = "ROLLBACK_COMPLETE" + DeploymentStatusCancelled DeploymentStatus = "CANCELLED" + DeploymentStatusPending DeploymentStatus = "PENDING" +) + +// Values returns all known values for DeploymentStatus. 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 (DeploymentStatus) Values() []DeploymentStatus { + return []DeploymentStatus{ + "IN_PROGRESS", + "IMPAIRED", + "COMPLETE", + "ROLLBACK_IN_PROGRESS", + "ROLLBACK_COMPLETE", + "CANCELLED", + "PENDING", } } @@ -627,6 +812,10 @@ const ( EventCodeFleetStateActivating EventCode = "FLEET_STATE_ACTIVATING" EventCodeFleetStateActive EventCode = "FLEET_STATE_ACTIVE" EventCodeFleetStateError EventCode = "FLEET_STATE_ERROR" + EventCodeFleetStatePending EventCode = "FLEET_STATE_PENDING" + EventCodeFleetStateCreating EventCode = "FLEET_STATE_CREATING" + EventCodeFleetStateCreated EventCode = "FLEET_STATE_CREATED" + EventCodeFleetStateUpdating EventCode = "FLEET_STATE_UPDATING" EventCodeFleetInitializationFailed EventCode = "FLEET_INITIALIZATION_FAILED" EventCodeFleetBinaryDownloadFailed EventCode = "FLEET_BINARY_DOWNLOAD_FAILED" EventCodeFleetValidationLaunchPathNotFound EventCode = "FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND" @@ -642,6 +831,8 @@ const ( EventCodeServerProcessTerminatedUnhealthy EventCode = "SERVER_PROCESS_TERMINATED_UNHEALTHY" EventCodeServerProcessForceTerminated EventCode = "SERVER_PROCESS_FORCE_TERMINATED" EventCodeServerProcessProcessExitTimeout EventCode = "SERVER_PROCESS_PROCESS_EXIT_TIMEOUT" + EventCodeServerProcessSdkInitializationFailed EventCode = "SERVER_PROCESS_SDK_INITIALIZATION_FAILED" + EventCodeServerProcessMisconfiguredContainerPort EventCode = "SERVER_PROCESS_MISCONFIGURED_CONTAINER_PORT" EventCodeGameSessionActivationTimeout EventCode = "GAME_SESSION_ACTIVATION_TIMEOUT" EventCodeFleetCreationExtractingBuild EventCode = "FLEET_CREATION_EXTRACTING_BUILD" EventCodeFleetCreationRunningInstaller EventCode = "FLEET_CREATION_RUNNING_INSTALLER" @@ -651,8 +842,22 @@ const ( EventCodeFleetVpcPeeringDeleted EventCode = "FLEET_VPC_PEERING_DELETED" EventCodeInstanceInterrupted EventCode = "INSTANCE_INTERRUPTED" EventCodeInstanceRecycled EventCode = "INSTANCE_RECYCLED" + EventCodeInstanceReplacedUnhealthy EventCode = "INSTANCE_REPLACED_UNHEALTHY" EventCodeFleetCreationCompletedInstaller EventCode = "FLEET_CREATION_COMPLETED_INSTALLER" EventCodeFleetCreationFailedInstaller EventCode = "FLEET_CREATION_FAILED_INSTALLER" + EventCodeComputeLogUploadFailed EventCode = "COMPUTE_LOG_UPLOAD_FAILED" + EventCodeGameServerContainerGroupCrashed EventCode = "GAME_SERVER_CONTAINER_GROUP_CRASHED" + EventCodePerInstanceContainerGroupCrashed EventCode = "PER_INSTANCE_CONTAINER_GROUP_CRASHED" + EventCodeGameServerContainerGroupReplacedUnhealthy EventCode = "GAME_SERVER_CONTAINER_GROUP_REPLACED_UNHEALTHY" + EventCodeLocationStatePending EventCode = "LOCATION_STATE_PENDING" + EventCodeLocationStateCreating EventCode = "LOCATION_STATE_CREATING" + EventCodeLocationStateCreated EventCode = "LOCATION_STATE_CREATED" + EventCodeLocationStateActivating EventCode = "LOCATION_STATE_ACTIVATING" + EventCodeLocationStateActive EventCode = "LOCATION_STATE_ACTIVE" + EventCodeLocationStateUpdating EventCode = "LOCATION_STATE_UPDATING" + EventCodeLocationStateError EventCode = "LOCATION_STATE_ERROR" + EventCodeLocationStateDeleting EventCode = "LOCATION_STATE_DELETING" + EventCodeLocationStateDeleted EventCode = "LOCATION_STATE_DELETED" ) // Values returns all known values for EventCode. Note that this can be expanded @@ -671,6 +876,10 @@ func (EventCode) Values() []EventCode { "FLEET_STATE_ACTIVATING", "FLEET_STATE_ACTIVE", "FLEET_STATE_ERROR", + "FLEET_STATE_PENDING", + "FLEET_STATE_CREATING", + "FLEET_STATE_CREATED", + "FLEET_STATE_UPDATING", "FLEET_INITIALIZATION_FAILED", "FLEET_BINARY_DOWNLOAD_FAILED", "FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND", @@ -686,6 +895,8 @@ func (EventCode) Values() []EventCode { "SERVER_PROCESS_TERMINATED_UNHEALTHY", "SERVER_PROCESS_FORCE_TERMINATED", "SERVER_PROCESS_PROCESS_EXIT_TIMEOUT", + "SERVER_PROCESS_SDK_INITIALIZATION_FAILED", + "SERVER_PROCESS_MISCONFIGURED_CONTAINER_PORT", "GAME_SESSION_ACTIVATION_TIMEOUT", "FLEET_CREATION_EXTRACTING_BUILD", "FLEET_CREATION_RUNNING_INSTALLER", @@ -695,8 +906,22 @@ func (EventCode) Values() []EventCode { "FLEET_VPC_PEERING_DELETED", "INSTANCE_INTERRUPTED", "INSTANCE_RECYCLED", + "INSTANCE_REPLACED_UNHEALTHY", "FLEET_CREATION_COMPLETED_INSTALLER", "FLEET_CREATION_FAILED_INSTALLER", + "COMPUTE_LOG_UPLOAD_FAILED", + "GAME_SERVER_CONTAINER_GROUP_CRASHED", + "PER_INSTANCE_CONTAINER_GROUP_CRASHED", + "GAME_SERVER_CONTAINER_GROUP_REPLACED_UNHEALTHY", + "LOCATION_STATE_PENDING", + "LOCATION_STATE_CREATING", + "LOCATION_STATE_CREATED", + "LOCATION_STATE_ACTIVATING", + "LOCATION_STATE_ACTIVE", + "LOCATION_STATE_UPDATING", + "LOCATION_STATE_ERROR", + "LOCATION_STATE_DELETING", + "LOCATION_STATE_DELETED", } } @@ -1285,6 +1510,25 @@ func (IpProtocol) Values() []IpProtocol { } } +type ListComputeInputStatus string + +// Enum values for ListComputeInputStatus +const ( + ListComputeInputStatusActive ListComputeInputStatus = "ACTIVE" + ListComputeInputStatusImpaired ListComputeInputStatus = "IMPAIRED" +) + +// Values returns all known values for ListComputeInputStatus. 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 (ListComputeInputStatus) Values() []ListComputeInputStatus { + return []ListComputeInputStatus{ + "ACTIVE", + "IMPAIRED", + } +} + type LocationFilter string // Enum values for LocationFilter @@ -1321,6 +1565,27 @@ func (LocationUpdateStatus) Values() []LocationUpdateStatus { } } +type LogDestination string + +// Enum values for LogDestination +const ( + LogDestinationNone LogDestination = "NONE" + LogDestinationCloudwatch LogDestination = "CLOUDWATCH" + LogDestinationS3 LogDestination = "S3" +) + +// Values returns all known values for LogDestination. 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 (LogDestination) Values() []LogDestination { + return []LogDestination{ + "NONE", + "CLOUDWATCH", + "S3", + } +} + type MatchmakingConfigurationStatus string // Enum values for MatchmakingConfigurationStatus diff --git a/service/gamelift/types/types.go b/service/gamelift/types/types.go index 5e7068aa9a4..cb1be17aced 100644 --- a/service/gamelift/types/types.go +++ b/service/gamelift/types/types.go @@ -125,9 +125,9 @@ type AwsCredentials struct { // [All APIs by task]: https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets type Build struct { - // The Amazon Resource Name ([ARN] ) assigned to a Amazon GameLift build resource and - // uniquely identifies it. ARNs are unique across all Regions. Format is - // arn:aws:gamelift:::build/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912 . In a + // The Amazon Resource Name ([ARN] ) that is assigned to a Amazon GameLift build + // resource and uniquely identifies it. ARNs are unique across all Regions. Format + // is arn:aws:gamelift:::build/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912 . In a // GameLift build ARN, the resource ID matches the BuildId value. // // [ARN]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html @@ -140,8 +140,8 @@ type Build struct { // expressed in Unix time as milliseconds (for example "1469498468.057" ). CreationTime *time.Time - // A descriptive label associated with a build. Build names don't need to be - // unique. It can be set using [CreateBuild]or [UpdateBuild]. + // A descriptive label that is associated with a build. Build names do not need to + // be unique. It can be set using [CreateBuild]or [UpdateBuild]. // // [CreateBuild]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateBuild.html // [UpdateBuild]: https://docs.aws.amazon.com/gamelift/latest/apireference/UpdateBuild @@ -182,17 +182,13 @@ type Build struct { // this build. Status BuildStatus - // Version information associated with a build or script. Version strings don't - // need to be unique. + // Version information that is associated with a build or script. Version strings + // do not need to be unique. Version *string noSmithyDocumentSerde } -// This data type has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // Determines whether a TLS/SSL certificate is generated for a fleet. This feature // must be enabled when creating the fleet. All instances in a fleet share the same // certificate. The certificate can be retrieved by calling the [Amazon GameLift Server SDK]operation @@ -205,9 +201,9 @@ type CertificateConfiguration struct { // // Valid values include: // - // - GENERATED - Generate a TLS/SSL certificate for this fleet. + // - GENERATED -- Generate a TLS/SSL certificate for this fleet. // - // - DISABLED - (default) Do not generate a TLS/SSL certificate for this fleet. + // - DISABLED -- (default) Do not generate a TLS/SSL certificate for this fleet. // // This member is required. CertificateType CertificateType @@ -229,21 +225,14 @@ type ClaimFilterOption struct { noSmithyDocumentSerde } -// This data type has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // An Amazon GameLift compute resource for hosting your game servers. Computes in // an Amazon GameLift fleet differs depending on the fleet's compute type property // as follows: // -// - For EC2 fleets, a compute is an EC2 instance. +// - For managed EC2 fleets, a compute is an EC2 instance. // -// - For ANYWHERE fleets, a compute is a computing resource that you provide and +// - For Anywhere fleets, a compute is a computing resource that you provide and // is registered to the fleet. -// -// - For CONTAINER fleets, a compute is a container that's registered to the -// fleet. type Compute struct { // The ARN that is assigned to a compute resource and uniquely identifies it. ARNs @@ -259,8 +248,8 @@ type Compute struct { // game sessions. ComputeStatus ComputeStatus - // Some attributes of a container. - ContainerAttributes *ContainerAttributes + // A set of attributes for each container in the compute. + ContainerAttributes []ContainerAttribute // A time stamp indicating when this data object was created. Format is a number // expressed in Unix time as milliseconds (for example "1469498468.057" ). @@ -284,8 +273,10 @@ type Compute struct { // connect to the Amazon GameLift service. GameLiftServiceSdkEndpoint *string - // The InstanceID of the Instance hosting the compute for Container and Managed - // EC2 fleets. + // The game server container group definition for the compute. + GameServerContainerGroupDefinitionArn *string + + // The InstanceID of the EC2 instance that is hosting the compute. InstanceId *string // The IP address of a compute resource. Amazon GameLift requires a DNS name or IP @@ -314,15 +305,9 @@ type Compute struct { noSmithyDocumentSerde } -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // The set of port numbers to open on each instance in a container fleet. // Connection ports are used by inbound traffic to connect with processes that are // running in containers on the fleet. -// -// Part of: ContainerGroupsConfiguration, ContainerGroupsAttributes type ConnectionPortRange struct { // Starting value for the port range. @@ -339,381 +324,297 @@ type ConnectionPortRange struct { noSmithyDocumentSerde } -// This data type is used with the Amazon GameLift containers feature, which is +// A unique identifier for a container in a container fleet compute. // -// currently in public preview. -// -// Describes attributes of containers that are deployed to a fleet with compute -// type CONTAINER . -type ContainerAttributes struct { +// Returned by: DescribeCompute +type ContainerAttribute struct { - // Describes how container ports map to connection ports on the fleet instance. - // Incoming traffic connects to a game via a connection port. A - // ContainerPortMapping directs the traffic from a connection port to a port on the - // container that hosts the game session. - ContainerPortMappings []ContainerPortMapping + // The identifier for a container that's running in a compute. + ContainerName *string + + // The runtime ID for the container that's running in a compute. This value is + // unique within the compute. + ContainerRuntimeId *string noSmithyDocumentSerde } -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// Describes a container in a container fleet, the resources available to the -// container, and the commands that are run when the container starts. Container -// properties can't be updated. To change a property, create a new container group -// definition. See also ContainerDefinitionInput. +// A container's dependency on another container in the same container group. The +// dependency impacts how the dependent container is able to start or shut down +// based the status of the other container. // -// Part of: ContainerGroupDefinition +// For example, ContainerA is configured with the following dependency: a START +// dependency on ContainerB. This means that ContainerA can't start until +// ContainerB has started. It also means that ContainerA must shut down before +// ContainerB. // -// Returned by: DescribeContainerGroupDefinition, ListContainerGroupDefinitions -type ContainerDefinition struct { +// eiifcbfhgrdurhnucnufkgbnbnnerrvbtjvljdetkehcPart of: GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput +type ContainerDependency struct { - // The container definition identifier. Container names are unique within a - // container group definition. + // The condition that the dependency container must reach before the dependent + // container can start. Valid conditions include: // - // This member is required. - ContainerName *string - - // The URI to the image that $short; copied and deployed to a container fleet. - // For a more specific identifier, see ResolvedImageDigest . + // - START - The dependency container must have started. + // + // - COMPLETE - The dependency container has run to completion (exits). Use this + // condition with nonessential containers, such as those that run a script and then + // exit. The dependency container can't be an essential container. + // + // - SUCCESS - The dependency container has run to completion and exited with a + // zero status. The dependency container can't be an essential container. + // + // - HEALTHY - The dependency container has passed its Docker health check. Use + // this condition with dependency containers that have health checks configured. + // This condition is confirmed at container group startup only. // // This member is required. - ImageUri *string + Condition ContainerDependencyCondition - // A command that's passed to the container on startup. Each argument for the - // command is an additional string in the array. See the [ContainerDefinition::command]parameter in the Amazon - // Elastic Container Service API reference. + // A descriptive label for the container definition that this container depends on. // - // [ContainerDefinition::command]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-command - Command []string + // This member is required. + ContainerName *string - // The number of CPU units that are reserved for the container. Note: 1 vCPU unit - // equals 1024 CPU units. If no resources are reserved, the container shares the - // total CPU limit for the container group. - // - // Related data type: ContainerGroupDefinition$TotalCpuLimit - Cpu *int32 + noSmithyDocumentSerde +} - // Indicates that the container relies on the status of other containers in the - // same container group during its startup and shutdown sequences. A container - // might have dependencies on multiple containers. - DependsOn []ContainerDependency +// An environment variable to set inside a container, in the form of a key-value +// pair. +// +// Part of: GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput +type ContainerEnvironment struct { - // The entry point that's passed to the container on startup. If there are - // multiple arguments, each argument is an additional string in the array. See the [ContainerDefinition::entryPoint] - // parameter in the Amazon Elastic Container Service API Reference. + // The environment variable name. // - // [ContainerDefinition::entryPoint]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-entryPoint - EntryPoint []string + // This member is required. + Name *string - // A set of environment variables that's passed to the container on startup. See - // the [ContainerDefinition::environment]parameter in the Amazon Elastic Container Service API Reference. + // The environment variable value. // - // [ContainerDefinition::environment]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-environment - Environment []ContainerEnvironment + // This member is required. + Value *string - // Indicates whether the container is vital to the container group. If an - // essential container fails, the entire container group is restarted. - Essential *bool + noSmithyDocumentSerde +} - // A configuration for a non-terminal health check. A container, which - // automatically restarts if it stops functioning, also restarts if it fails this - // health check. If an essential container in the daemon group fails a health - // check, the entire container group is restarted. The essential container in the - // replica group doesn't use this health check mechanism, because the Amazon - // GameLift Agent automatically handles the task. - HealthCheck *ContainerHealthCheck +// Describes an Amazon GameLift managed container fleet. +type ContainerFleet struct { - // The amount of memory that Amazon GameLift makes available to the container. If - // memory limits aren't set for an individual container, the container shares the - // container group's total memory allocation. + // Indicates whether the fleet uses On-Demand or Spot instances for this fleet. + // Learn more about when to use [On-Demand versus Spot Instances]. You can't update this fleet property. + // + // By default, this property is set to ON_DEMAND . // - // Related data type: ContainerGroupDefinition$TotalMemoryLimit - MemoryLimits *ContainerMemoryLimits + // [On-Demand versus Spot Instances]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot + BillingType ContainerFleetBillingType - // Defines the ports that are available to assign to processes in the container. - // For example, a game server process requires a container port to allow game - // clients to connect to it. Container ports aren't directly accessed by inbound - // traffic. Amazon GameLift maps these container ports to externally accessible - // connection ports, which are assigned as needed from the container fleet's - // ConnectionPortRange . - PortConfiguration *ContainerPortConfiguration + // A time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057" ). + CreationTime *time.Time - // A unique and immutable identifier for the container image that is deployed to a - // container fleet. The digest is a SHA 256 hash of the container image manifest. - ResolvedImageDigest *string + // Information about the most recent deployment for the container fleet. + DeploymentDetails *DeploymentDetails - // The directory in the container where commands are run. See the [ContainerDefinition::workingDirectory] parameter in - // the Amazon Elastic Container Service API Reference. - // - // [ContainerDefinition::workingDirectory]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-workingDirectory - WorkingDirectory *string + // A meaningful description of the container fleet. + Description *string - noSmithyDocumentSerde -} + // The Amazon Resource Name ([ARN] ) that is assigned to a Amazon GameLift fleet + // resource and uniquely identifies it. ARNs are unique across all Regions. Format + // is arn:aws:gamelift:::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912 . In a + // GameLift fleet ARN, the resource ID matches the FleetId value. + // + // [ARN]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html + FleetArn *string -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// Describes a container's configuration, resources, and start instructions. Use -// this data type to create a container group definition. For the properties of a -// container that's been deployed to a fleet, see ContainerDefinition. You can't change these -// properties after you've created the container group definition. If you need a -// container group with different properties, then you must create a new one. -// -// Used with: CreateContainerGroupDefinition -type ContainerDefinitionInput struct { + // A unique identifier for the container fleet to retrieve. + FleetId *string - // A string that uniquely identifies the container definition within a container - // group. + // The unique identifier for an Identity and Access Management (IAM) role with + // permissions to run your containers on resources that are managed by Amazon + // GameLift. See [Set up an IAM service role]. This fleet property can't be changed. // - // This member is required. - ContainerName *string + // [Set up an IAM service role]: https://docs.aws.amazon.com/gamelift/latest/developerguide/setting-up-role.html + FleetRoleArn *string - // The location of a container image that $short; will copy and deploy to a - // container fleet. Images in Amazon Elastic Container Registry private - // repositories are supported. The repository must be in the same Amazon Web - // Services account and Amazon Web Services Region where you're creating the - // container group definition. For limits on image size, see [Amazon GameLift endpoints and quotas]. You can use any of - // the following image URI formats: - // - // - Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository - // ID] + // The Amazon Resource Name ([ARN] ) that is assigned to the fleet's game server + // container group. The ARN value also identifies the specific container group + // definition version in use. // - // - Image ID and digest: [AWS account].dkr.ecr.[AWS - // region].amazonaws.com/[repository ID]@[digest] - // - // - Image ID and tag: [AWS account].dkr.ecr.[AWS - // region].amazonaws.com/[repository ID]:[tag] - // - // [Amazon GameLift endpoints and quotas]: https://docs.aws.amazon.com/general/latest/gr/gamelift.html - // - // This member is required. - ImageUri *string + // [ARN]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html + GameServerContainerGroupDefinitionArn *string - // A command to pass to the container on startup. Add multiple arguments as - // additional strings in the array. See the [ContainerDefinition command]parameter in the Amazon Elastic - // Container Service API reference. - // - // [ContainerDefinition command]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-command - Command []string + // The name of the fleet's game server container group definition, which describes + // how to deploy containers with your game server build and support software onto + // each fleet instance. + GameServerContainerGroupDefinitionName *string - // The number of CPU units to reserve for this container. The container can use - // more resources when needed, if available. Note: 1 vCPU unit equals 1024 CPU - // units. If you don't reserve CPU units for this container, then it shares the - // total CPU limit for the container group. This property is similar to the Amazon - // ECS container definition parameter [environment](Amazon Elastic Container Service Developer - // Guide). - // - // Related data type: ContainerGroupDefinition$TotalCpuLimit - // - // [environment]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_environment - Cpu *int32 + // The number of times to replicate the game server container group on each fleet + // instance. + GameServerContainerGroupsPerInstance *int32 - // Sets up dependencies between this container and the status of other containers - // in the same container group. A container can have dependencies on multiple - // different containers. - // - // You can use dependencies to establish a startup/shutdown sequence across the - // container group. A container startup dependency is reversed on shutdown. - // - // For example, you might specify that SideCarContainerB has a START dependency on - // SideCarContainerA. This dependency means that SideCarContainerB can't start - // until after SideCarContainerA has started. This dependency is reversed on - // shutdown, which means that SideCarContainerB must shut down before - // SideCarContainerA can shut down. - DependsOn []ContainerDependency + // A policy that limits the number of game sessions that each individual player + // can create on instances in this fleet. The limit applies for a specified span of + // time. + GameSessionCreationLimitPolicy *GameSessionCreationLimitPolicy - // An entry point to pass to the container on startup. Add multiple arguments as - // additional strings in the array. See the [ContainerDefinition::entryPoint]parameter in the Amazon Elastic - // Container Service API Reference. - // - // [ContainerDefinition::entryPoint]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-entryPoint - EntryPoint []string + // The set of port numbers to open on each instance in a container fleet. + // Connection ports are used by inbound traffic to connect with processes that are + // running in containers on the fleet. + InstanceConnectionPortRange *ConnectionPortRange - // A set of environment variables to pass to the container on startup. See the [ContainerDefinition::environment] - // parameter in the Amazon Elastic Container Service API Reference. - // - // [ContainerDefinition::environment]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-environment - Environment []ContainerEnvironment + // The IP address ranges and port settings that allow inbound traffic to access + // game server processes and other processes on this fleet. + InstanceInboundPermissions []IpPermission - // Specifies whether the container is vital for the container group to function - // properly. If an essential container fails, it causes the entire container group - // to restart. Each container group must have an essential container. - // - // Replica container groups - A replica group must have exactly one essential - // container. Use the following to configure an essential replica container: - // - // - Choose a container is running your game server and the Amazon GameLift - // Agent. + // The Amazon EC2 instance type to use for all instances in the fleet. Instance + // type determines the computing resources and processing power that's available to + // host your game servers. This includes including CPU, memory, storage, and + // networking capacity. You can't update this fleet property. + InstanceType *string + + // Information about the container fleet's remote locations where fleet instances + // are deployed. + LocationAttributes []ContainerFleetLocationAttributes + + // The method that is used to collect container logs for the fleet. Amazon + // GameLift saves all standard output for each container in logs, including game + // session logs. // - // - Include a port configuration. This container runs your game server - // processes, and each process requires a container port to allow access to game - // clients. + // - CLOUDWATCH -- Send logs to an Amazon CloudWatch log group that you define. + // Each container emits a log stream, which is organized in the log group. // - // - Don't configure a health check. The Agent handles this task for the - // essential replica container. + // - S3 -- Store logs in an Amazon S3 bucket that you define. // - // Daemon container groups - A daemon group must have at least one essential - // container. - Essential *bool + // - NONE -- Don't collect container logs. + LogConfiguration *LogConfiguration - // Configuration for a non-terminal health check. A container automatically - // restarts if it stops functioning. This parameter lets you define additional - // reasons to consider a container unhealthy and restart it. You can set a health - // check for any container except for the essential container in the replica - // container group. If an essential container in the daemon group fails a health - // check, the entire container group is restarted. - HealthCheck *ContainerHealthCheck + // The calculated maximum number of game server container group that can be + // deployed on each fleet instance. The calculation depends on the resource needs + // of the container group and the CPU and memory resources of the fleet's instance + // type. + MaximumGameServerContainerGroupsPerInstance *int32 - // The amount of memory to make available to the container. If you don't specify - // memory limits for this container, then it shares the container group's total - // memory allocation. - // - // Related data type: ContainerGroupDefinition$TotalMemoryLimit - MemoryLimits *ContainerMemoryLimits + // The name of an Amazon Web Services CloudWatch metric group to add this fleet + // to. Metric groups aggregate metrics for multiple fleets. + MetricGroups []string - // A set of ports that Amazon GameLift can assign to processes in the container. - // All processes that accept inbound traffic connections, including game server - // processes, must be assigned a port from this set. The set of ports must be large - // enough to assign one to each process in the container that needs one. If the - // container includes your game server, include enough ports to assign one port to - // each concurrent server process (as defined in a container fleet's RuntimeConfiguration). For more - // details, see [Networking for container fleets]. + // Determines whether Amazon GameLift can shut down game sessions on the fleet + // that are actively running and hosting players. Amazon GameLift might prompt an + // instance shutdown when scaling down fleet capacity or when retiring unhealthy + // instances. You can also set game session protection for individual game sessions + // using UpdateGameSession. // - // Container ports aren't directly accessed by inbound traffic. Amazon GameLift - // maps these container ports to externally accessible connection ports, which are - // assigned as needed from the container fleet's ConnectionPortRange . + // - NoProtection -- Game sessions can be shut down during active gameplay. // - // [Networking for container fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-network - PortConfiguration *ContainerPortConfiguration + // - FullProtection -- Game sessions in ACTIVE status can't be shut down. + NewGameSessionProtectionPolicy ProtectionPolicy - // The directory in the container where commands are run. See the [ContainerDefinition::workingDirectory parameter] in the Amazon - // Elastic Container Service API Reference. + // The Amazon Resource Name ([ARN] ) that is assigned to the fleet's per-instance + // container group. The ARN value also identifies the specific container group + // definition version in use. // - // [ContainerDefinition::workingDirectory parameter]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-workingDirectory - WorkingDirectory *string - - noSmithyDocumentSerde -} + // [ARN]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html + PerInstanceContainerGroupDefinitionArn *string -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// A container's dependency on another container in the same container group. The -// dependency impacts how the dependent container is able to start or shut down -// based the status of the other container. -// -// For example, ContainerA is configured with the following dependency: a START -// dependency on ContainerB. This means that ContainerA can't start until -// ContainerB has started. It also means that ContainerA must shut down before -// ContainerB. -// -// Part of: ContainerDefinition -type ContainerDependency struct { + // The name of the fleet's per-instance container group definition. + PerInstanceContainerGroupDefinitionName *string - // The condition that the dependency container must reach before the dependent - // container can start. Valid conditions include: + // The current status of the container fleet. // - // - START - The dependency container must have started. + // - PENDING -- A new container fleet has been requested. // - // - COMPLETE - The dependency container has run to completion (exits). Use this - // condition with nonessential containers, such as those that run a script and then - // exit. The dependency container can't be an essential container. + // - CREATING -- A new container fleet resource is being created. // - // - SUCCESS - The dependency container has run to completion and exited with a - // zero status. The dependency container can't be an essential container. + // - CREATED -- A new container fleet resource has been created. No fleet + // instances have been deployed. // - // - HEALTHY - The dependency container has passed its Docker health check. Use - // this condition with dependency containers that have health checks configured. - // This condition is confirmed at container group startup only. + // - ACTIVATING -- New container fleet instances are being deployed. // - // This member is required. - Condition ContainerDependencyCondition - - // A descriptive label for the container definition that this container depends on. + // - ACTIVE -- The container fleet has been deployed and is ready to host game + // sessions. // - // This member is required. - ContainerName *string + // - UPDATING -- Updates to the container fleet is being updated. A deployment is + // in progress. + Status ContainerFleetStatus noSmithyDocumentSerde } -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// An environment variable to set inside a container, in the form of a key-value -// pair. -// -// Related data type: ContainerDefinition$Environment -type ContainerEnvironment struct { +// Details about a location in a multi-location container fleet. +type ContainerFleetLocationAttributes struct { - // The environment variable name. - // - // This member is required. - Name *string + // A location identifier. + Location *string - // The environment variable value. + // The status of fleet activity in the location. // - // This member is required. - Value *string + // - PENDING -- A new container fleet has been requested. + // + // - CREATING -- A new container fleet resource is being created. + // + // - CREATED -- A new container fleet resource has been created. No fleet + // instances have been deployed. + // + // - ACTIVATING -- New container fleet instances are being deployed. + // + // - ACTIVE -- The container fleet has been deployed and is ready to host game + // sessions. + // + // - UPDATING -- Updates to the container fleet is being updated. A deployment is + // in progress. + Status ContainerFleetLocationStatus noSmithyDocumentSerde } -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// The properties that describe a container group resource. Container group -// definition properties can't be updated. To change a property, create a new -// container group definition. +// The properties that describe a container group resource. You can update all +// properties of a container group definition properties. Updates to a container +// group definition are saved as new versions. // // Used with: CreateContainerGroupDefinition // -// Returned by: DescribeContainerGroupDefinition, ListContainerGroupDefinitions +// Returned by: DescribeContainerGroupDefinition, ListContainerGroupDefinitions, UpdateContainerGroupDefinition type ContainerGroupDefinition struct { - // The set of container definitions that are included in the container group. - ContainerDefinitions []ContainerDefinition + // A descriptive identifier for the container group definition. The name value is + // unique in an Amazon Web Services Region. + // + // This member is required. + Name *string // The Amazon Resource Name ([ARN] ) that is assigned to an Amazon GameLift // ContainerGroupDefinition resource. It uniquely identifies the resource across // all Amazon Web Services Regions. Format is - // arn:aws:gamelift:::containergroupdefinition/[container group definition name] . + // arn:aws:gamelift:[region]::containergroupdefinition/[container group definition + // name]:[version] . // // [ARN]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html ContainerGroupDefinitionArn *string + // The type of container group. Container group type determines how Amazon + // GameLift deploys the container group on each fleet instance. + ContainerGroupType ContainerGroupType + // A time stamp indicating when this data object was created. Format is a number // expressed in Unix time as milliseconds (for example "1469498468.057" ). CreationTime *time.Time - // A descriptive identifier for the container group definition. The name value is - // unique in an Amazon Web Services Region. - Name *string + // The definition for the game server container in this group. This property is + // used only when the container group type is GAME_SERVER . This container + // definition specifies a container image with the game server build. + GameServerContainerDefinition *GameServerContainerDefinition - // The platform required for all containers in the container group definition. + // The platform that all containers in the container group definition run on. // // Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details // in the [Amazon Linux 2 FAQs]. For game servers that are hosted on AL2 and use Amazon GameLift server - // SDK 4.x., first update the game server build to server SDK 5.x, and then deploy + // SDK 4.x, first update the game server build to server SDK 5.x, and then deploy // to AL2023 instances. See [Migrate to Amazon GameLift server SDK version 5.] // // [Amazon Linux 2 FAQs]: https://aws.amazon.com/amazon-linux-2/faqs/ // [Migrate to Amazon GameLift server SDK version 5.]: https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-serversdk5-migration.html OperatingSystem ContainerOperatingSystem - // The method for deploying the container group across fleet instances. A replica - // container group might have multiple copies on each fleet instance. A daemon - // container group maintains only one copy per fleet instance. - SchedulingStrategy ContainerSchedulingStrategy - // Current status of the container group definition resource. Values include: // // - COPYING -- Amazon GameLift is in the process of making copies of all @@ -754,186 +655,56 @@ type ContainerGroupDefinition struct { // [Amazon GameLift endpoints and quotas]: https://docs.aws.amazon.com/general/latest/gr/gamelift.html StatusReason *string - // The amount of CPU units on a fleet instance to allocate for the container - // group. All containers in the group share these resources. This property is an - // integer value in CPU units (1 vCPU is equal to 1024 CPU units). - // - // You can set additional limits for each ContainerDefinition in the group. If individual containers - // have limits, this value must be equal to or greater than the sum of all - // container-specific CPU limits in the group. - // - // For more details on memory allocation, see the [Container fleet design guide]. - // - // [Container fleet design guide]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet - TotalCpuLimit *int32 + // The set of definitions for support containers in this group. A container group + // definition might have zero support container definitions. Support container can + // be used in any type of container group. + SupportContainerDefinitions []SupportContainerDefinition // The amount of memory (in MiB) on a fleet instance to allocate for the container // group. All containers in the group share these resources. // - // You can set additional limits for each ContainerDefinition in the group. If individual containers - // have limits, this value must meet the following requirements: - // - // - Equal to or greater than the sum of all container-specific soft memory - // limits in the group. - // - // - Equal to or greater than any container-specific hard limits in the group. - // - // For more details on memory allocation, see the [Container fleet design guide]. - // - // [Container fleet design guide]: https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet - TotalMemoryLimit *int32 - - noSmithyDocumentSerde -} - -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// The properties of a container group that is deployed to a container fleet. -// -// Part of: ContainerGroupsAttributes -// -// Returned by: DescribeFleetAttributes -type ContainerGroupDefinitionProperty struct { - - // The unique identifier for the container group definition. - ContainerGroupDefinitionName *string - - // The method for scheduling and maintaining copies of the container group across - // a container fleet. - SchedulingStrategy ContainerSchedulingStrategy - - noSmithyDocumentSerde -} - -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// The properties of container groups that are running on a container fleet. -// Container group properties for a fleet can't be changed. -// -// Returned by: DescribeFleetAttributes, CreateFleet -type ContainerGroupsAttributes struct { - - // A set of ports that allow inbound traffic to connect to processes running in - // the fleet's container groups. Amazon GameLift maps each connection port to a - // container port, which is assigned to a specific container process. A fleet's - // connection port range can't be changed, but you can control access to connection - // ports by updating a fleet's EC2InboundPermissions with UpdateFleetPortSettings. - ConnectionPortRange *ConnectionPortRange - - // A collection of properties that describe each container group in the fleet. A - // container fleet is deployed with one or more ContainerGroupDefinitionresources, which is where these - // properties are set. - ContainerGroupDefinitionProperties []ContainerGroupDefinitionProperty - - // Details about the number of replica container groups that Amazon GameLift - // deploys to each instance in the container fleet. - ContainerGroupsPerInstance *ContainerGroupsPerInstance - - noSmithyDocumentSerde -} - -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// Configuration details for a set of container groups, for use when creating a -// fleet with compute type CONTAINER . -// -// Used with: CreateFleet -type ContainerGroupsConfiguration struct { - - // A set of ports to allow inbound traffic, including game clients, to connect to - // processes running in the container fleet. - // - // Connection ports are dynamically mapped to container ports, which are assigned - // to individual processes running in a container. The connection port range must - // have enough ports to map to all container ports across a fleet instance. To - // calculate the minimum connection ports needed, use the following formula: - // - // [Total number of container ports as defined for containers in the replica - // container group] * [Desired or calculated number of replica container groups per - // instance] + [Total number of container ports as defined for containers in the - // daemon container group] - // - // As a best practice, double the minimum number of connection ports. - // - // Use the fleet's EC2InboundPermissions property to control external access to - // connection ports. Set this property to the connection port numbers that you want - // to open access to. See IpPermissionfor more details. - // - // This member is required. - ConnectionPortRange *ConnectionPortRange - - // The list of container group definition names to deploy to a new container fleet. - // - // This member is required. - ContainerGroupDefinitionNames []string - - // The number of times to replicate the replica container group on each instance - // in a container fleet. By default, Amazon GameLift calculates the maximum number - // of replica container groups that can fit on a fleet instance (based on CPU and - // memory resources). Leave this parameter empty if you want to use the maximum - // number, or specify a desired number to override the maximum. The desired number - // is used if it's less than the maximum number. - DesiredReplicaContainerGroupsPerInstance *int32 + // You can set a limit for each container definition in the group. If individual + // containers have limits, this total value must be greater than any individual + // container's memory limit. + TotalMemoryLimitMebibytes *int32 - noSmithyDocumentSerde -} - -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// Determines how many replica container groups that Amazon GameLift deploys to -// each instance in a container fleet. -// -// Amazon GameLift calculates the maximum possible replica groups per instance -// based on the instance 's CPU and memory resources. When deploying a fleet, -// Amazon GameLift places replica container groups on each fleet instance based on -// the following: -// -// - If no desired value is set, Amazon GameLift places the calculated maximum. -// -// - If a desired number is set to a value higher than the calculated maximum, -// fleet creation fails.. -// -// - If a desired number is set to a value lower than the calculated maximum, -// Amazon GameLift places the desired number. -// -// Part of: ContainerGroupsConfiguration, ContainerGroupsAttributes -// -// Returned by: DescribeFleetAttributes, CreateFleet -type ContainerGroupsPerInstance struct { + // The amount of vCPU units on a fleet instance to allocate for the container + // group (1 vCPU is equal to 1024 CPU units). All containers in the group share + // these resources. You can set a limit for each container definition in the group. + // If individual containers have limits, this total value must be equal to or + // greater than the sum of the limits for each container in the group. + TotalVcpuLimit *float64 - // The desired number of replica container groups to place on each fleet instance. - DesiredReplicaContainerGroupsPerInstance *int32 + // An optional description that was provided for a container group definition + // update. Each version can have a unique description. + VersionDescription *string - // The maximum possible number of replica container groups that each fleet - // instance can have. - MaxReplicaContainerGroupsPerInstance *int32 + // Indicates the version of a particular container group definition. This number + // is incremented automatically when you update a container group definition. You + // can view, update, or delete individual versions or the entire container group + // definition. + VersionNumber *int32 noSmithyDocumentSerde } -// Instructions on when and how to check the health of a container in a container -// fleet. When health check properties are set in a container definition, they -// override any Docker health checks in the container image. For more information -// on container health checks, see [HealthCheck command]in the Amazon Elastic Container Service API. +// Instructions on when and how to check the health of a support container in a +// container fleet. These properties override any Docker health checks that are set +// in the container image. For more information on container health checks, see [HealthCheck command]in +// the Amazon Elastic Container Service API. Game server containers don't have a +// health check parameter; Amazon GameLift automatically handles health checks for +// these containers. // -// The following example instructions tell the container to wait 100 seconds after -// launch before counting failed health checks, then initiate the health check -// command every 60 seconds. After issuing the health check command, wait 10 -// seconds for it to succeed. If it fails, retry the command 3 times before -// considering the container to be unhealthy. +// The following example instructs the container to initiate a health check +// command every 60 seconds and wait 10 seconds for it to succeed. If it fails, +// retry the command 3 times before flagging the container as unhealthy. It also +// tells the container to wait 100 seconds after launch before counting failed +// health checks. // // {"Command": [ "CMD-SHELL", "ps cax | grep "processmanager" || exit 1" ], -// "Interval": 300, "Timeout": 30, "Retries": 5, "StartPeriod": 100 } +// "Interval": 60, "Timeout": 10, "Retries": 3, "StartPeriod": 100 } // -// Part of: ContainerDefinition$HealthCheck +// Part of: SupportContainerDefinition, SupportContainerDefinitionInput // // [HealthCheck command]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html#ECS-Type-HealthCheck-command type ContainerHealthCheck struct { @@ -947,92 +718,76 @@ type ContainerHealthCheck struct { // The time period (in seconds) between each health check. Interval *int32 - // The number of times to retry a failed health check before the container is - // considered unhealthy. The first run of the command does not count as a retry. + // The number of times to retry a failed health check before flagging the + // container unhealthy. The first run of the command does not count as a retry. Retries *int32 // The optional grace period (in seconds) to give a container time to bootstrap // before the first failed health check counts toward the number of retries. StartPeriod *int32 - // The time period (in seconds) to wait for a health check to succeed before a - // failed health check is counted. + // The time period (in seconds) to wait for a health check to succeed before + // counting a failed health check. Timeout *int32 noSmithyDocumentSerde } -// Specifies how much memory is available to a container. You can't change this -// value after you create this object. +// A unique identifier for a container in a compute on a managed container fleet +// instance. This information makes it possible to remotely connect to a specific +// container on a fleet instance. // -// Part of: ContainerDefinition$MemoryLimits -type ContainerMemoryLimits struct { +// Related to: ContainerAttribute +// +// Use with: GetComputeAccess +type ContainerIdentifier struct { - // The maximum amount of memory that the container can use. If a container - // attempts to exceed this limit, the container is stopped. This property is - // similar to the Amazon ECS container definition parameter [memory]in the Amazon Elastic - // Container Service Developer Guide. - // - // [memory]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_memory - HardLimit *int32 + // The identifier for a container that's running in a compute. + ContainerName *string - // The amount of memory that is reserved for a container. When the container - // group's shared memory is under contention, the system attempts to maintain the - // container memory usage at this soft limit. However, the container can use more - // memory when needed, if available. This property is similar to the Amazon ECS - // container definition parameter [memoryreservation](Amazon Elastic Container Service Developer - // Guide). - // - // [memoryreservation]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#ContainerDefinition-memoryReservation - SoftLimit *int32 + // The runtime ID for the container that's running in a compute. This value is + // unique within the compute. It is returned as a ContainerAttribute value in a + // Compute object. + ContainerRuntimeId *string noSmithyDocumentSerde } -// Defines ranges of ports that server processes can connect to. +// A mount point that binds a container to a file or directory on the host system. // -// Part of: ContainerDefinition$PortConfiguration -type ContainerPortConfiguration struct { +// Part of: GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput +type ContainerMountPoint struct { - // Specifies one or more ranges of ports on a container. These ranges must not - // overlap. + // The path to the source file or directory. // // This member is required. - ContainerPortRanges []ContainerPortRange + InstancePath *string + + // The type of access for the container. + AccessLevel ContainerMountPointAccessLevel + + // The mount path on the container. If this property isn't set, the instance path + // is used. + ContainerPath *string noSmithyDocumentSerde } -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// Defines how an internal-facing container port is mapped to an external-facing -// connection port on a fleet instance of compute type CONTAINER . Incoming -// traffic, such as a game client, uses a connection port to connect to a process -// in the container fleet. Amazon GameLift directs the inbound traffic to the -// container port that is assigned to the process, such as a game session, running -// on a container. +// A set of port ranges that can be opened on the container. A process that's +// running in the container can bind to a port number, making it accessible to +// inbound traffic. Container ports map to a container fleet's connection ports. // -// Part of: ContainerAttributes -type ContainerPortMapping struct { - - // The port opened on the fleet instance. This is also called the "host port". - ConnectionPort *int32 - - // The port opened on the container. - ContainerPort *int32 +// Part of: GameServerContainerDefinition, GameServerContainerDefinitionInput, SupportContainerDefinition, SupportContainerDefinitionInput +type ContainerPortConfiguration struct { - // The network protocol that this mapping supports. - Protocol IpProtocol + // A set of one or more container port number ranges. The ranges can't overlap. + // + // This member is required. + ContainerPortRanges []ContainerPortRange noSmithyDocumentSerde } -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// // A set of one or more port numbers that can be opened on the container. // // Part of: ContainerPortConfiguration @@ -1057,6 +812,39 @@ type ContainerPortRange struct { noSmithyDocumentSerde } +// Set of rules for processing a deployment for a container fleet update. +type DeploymentConfiguration struct { + + // Determines what actions to take if a deployment fails. If the fleet is + // multi-location, this strategy applies across all fleet locations. With a + // rollback strategy, updated fleet instances are rolled back to the last + // successful deployment. Alternatively, you can maintain a few impaired containers + // for the purpose of debugging, while all other tasks return to the last + // successful deployment. + ImpairmentStrategy DeploymentImpairmentStrategy + + // Sets a minimum level of healthy tasks to maintain during deployment activity. + MinimumHealthyPercentage *int32 + + // Determines how fleet deployment activity affects active game sessions on the + // fleet. With protection, a deployment honors game session protection, and delays + // actions that would interrupt a protected active game session until the game + // session ends. Without protection, deployment activity can shut down all running + // tasks, including active game sessions, regardless of game session protection. + ProtectionStrategy DeploymentProtectionStrategy + + noSmithyDocumentSerde +} + +// Information about the most recent deployment for the container fleet. +type DeploymentDetails struct { + + // A unique identifier for a fleet deployment. + LatestDeploymentId *string + + noSmithyDocumentSerde +} + // Player information for use when creating player sessions using a game session // placement request. type DesiredPlayerSession struct { @@ -1240,6 +1028,14 @@ type Event struct { // - FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been successfully // deleted. // + // Container group events: + // + // - CONTAINER_GROUP_REGISTRATION_FAILED – A game server container group + // started, but timed out before calling RegisterCompute . + // + // - CONTAINER_GROUP_CRASHED A game server container group started and + // terminated without calling RegisterCompute . + // // Spot instance events: // // - INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a @@ -1338,19 +1134,12 @@ type FilterConfiguration struct { noSmithyDocumentSerde } -// This operation has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // Describes an Amazon GameLift fleet of game hosting resources. Attributes differ // based on the fleet's compute type, as follows: // // - EC2 fleet attributes identify a Build resource (for fleets with customer // game server builds) or a Script resource (for Realtime Servers fleets). // -// - Container fleets have ContainerGroupsAttributes , which identify the fleet's -// ContainerGroupDefinition resources. -// // - Amazon GameLift Anywhere fleets have an abbreviated set of attributes, // because most fleet configurations are set directly on the fleet's computes. // Attributes include fleet identifiers and descriptive properties, @@ -1359,11 +1148,7 @@ type FilterConfiguration struct { // Returned by: DescribeFleetAttributes type FleetAttributes struct { - // This property is used with the Amazon GameLift containers feature, which is - // currently in public preview. A set of attributes that describe the container - // groups that are deployed on the fleet. These attributes are included for fleets - // with compute type CONTAINER only. This attribute is used with fleets where - // ComputeType is "Container". + // Amazon GameLift Anywhere configuration options. AnywhereConfiguration *AnywhereConfiguration // The Amazon Resource Name ([ARN] ) associated with the Amazon GameLift build resource @@ -1388,10 +1173,6 @@ type FleetAttributes struct { // with managed Amazon GameLift. ComputeType ComputeType - // A set of properties that describe the container groups that are deployed to the - // fleet. These attributes are included for fleets with compute type CONTAINER . - ContainerGroupsAttributes *ContainerGroupsAttributes - // A time stamp indicating when this data object was created. Format is a number // expressed in Unix time as milliseconds (for example "1469498468.057" ). CreationTime *time.Time @@ -1417,15 +1198,16 @@ type FleetAttributes struct { // [On-Demand versus Spot Instances]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot FleetType FleetType - // A unique identifier for an IAM role with access permissions to other Amazon Web - // Services services. Any application that runs on an instance in the - // fleet--including install scripts, server processes, and other processes--can use - // these permissions to interact with Amazon Web Services resources that you own or - // have access to. For more information about using the role with your game server - // builds, see [Communicate with other Amazon Web Services resources from your fleets]. This attribute is used with fleets where ComputeType is "EC2" or - // "Container". + // A unique identifier for an IAM role that manages access to your Amazon Web + // Services services. With an instance role ARN set, any application that runs on + // an instance in this fleet can assume the role, including install scripts, server + // processes, and daemons (background processes). Create a role or look up a role's + // ARN by using the [IAM dashboard]in the Amazon Web Services Management Console. Learn more + // about using on-box credentials for your game servers at [Access external resources from a game server]. This attribute is + // used with fleets where ComputeType is "EC2". // - // [Communicate with other Amazon Web Services resources from your fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html + // [IAM dashboard]: https://console.aws.amazon.com/iam/ + // [Access external resources from a game server]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html InstanceRoleArn *string // Indicates that fleet instances maintain a shared credentials file for the IAM @@ -1434,7 +1216,7 @@ type FleetAttributes struct { // Services resources. This property is used only when the game server is // integrated with the server SDK version 5.x. For more information about using // shared credentials, see [Communicate with other Amazon Web Services resources from your fleets]. This attribute is used with fleets where ComputeType - // is "EC2" or "Container". + // is "EC2". // // [Communicate with other Amazon Web Services resources from your fleets]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html InstanceRoleCredentialsProvider InstanceRoleCredentialsProvider @@ -1442,7 +1224,7 @@ type FleetAttributes struct { // The Amazon EC2 instance type that the fleet uses. Instance type determines the // computing resources of each instance in the fleet, including CPU, memory, // storage, and networking capacity. See [Amazon Elastic Compute Cloud Instance Types]for detailed descriptions. This attribute - // is used with fleets where ComputeType is "EC2" or "Container". + // is used with fleets where ComputeType is "EC2". // // [Amazon Elastic Compute Cloud Instance Types]: http://aws.amazon.com/ec2/instance-types/ InstanceType EC2InstanceType @@ -1457,7 +1239,7 @@ type FleetAttributes struct { // Name of a metric group that metrics for this fleet are added to. In Amazon // CloudWatch, you can view aggregated metrics for fleets that are in a metric // group. A fleet can be included in only one metric group at a time. This - // attribute is used with fleets where ComputeType is "EC2" or "Container". + // attribute is used with fleets where ComputeType is "EC2". MetricGroups []string // A descriptive label that is associated with a fleet. Fleet names do not need to @@ -1466,7 +1248,7 @@ type FleetAttributes struct { // The type of game session protection to set on all new instances that are // started in the fleet. This attribute is used with fleets where ComputeType is - // "EC2" or "Container". + // "EC2". // // - NoProtection -- The game session can be terminated during a scale-down // event. @@ -1477,12 +1259,11 @@ type FleetAttributes struct { // The operating system of the fleet's computing resources. A fleet's operating // system is determined by the OS of the build or script that is deployed on this - // fleet. This attribute is used with fleets where ComputeType is "EC2" or - // "Container". + // fleet. This attribute is used with fleets where ComputeType is "EC2". // // Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details // in the [Amazon Linux 2 FAQs]. For game servers that are hosted on AL2 and use Amazon GameLift server - // SDK 4.x., first update the game server build to server SDK 5.x, and then deploy + // SDK 4.x, first update the game server build to server SDK 5.x, and then deploy // to AL2023 instances. See [Migrate to Amazon GameLift server SDK version 5.] // // [Amazon Linux 2 FAQs]: https://aws.amazon.com/amazon-linux-2/faqs/ @@ -1545,8 +1326,7 @@ type FleetAttributes struct { Status FleetStatus // A list of fleet activity that has been suspended using [StopFleetActions]. This includes fleet - // auto-scaling. This attribute is used with fleets where ComputeType is "EC2" or - // "Container". + // auto-scaling. This attribute is used with fleets where ComputeType is "EC2". // // [StopFleetActions]: https://docs.aws.amazon.com/gamelift/latest/apireference/API_StopFleetActions.html StoppedActions []FleetAction @@ -1558,9 +1338,9 @@ type FleetAttributes struct { noSmithyDocumentSerde } -// Current resource capacity settings for managed EC2 fleets and container fleets. -// For multi-location fleets, location values might refer to a fleet's remote -// location or its home Region. +// Current resource capacity settings for managed EC2 fleets and managed container +// fleets. For multi-location fleets, location values might refer to a fleet's +// remote location or its home Region. // // Returned by: [DescribeFleetCapacity], [DescribeFleetLocationCapacity], [UpdateFleetCapacity] // @@ -1579,6 +1359,10 @@ type FleetCapacity struct { // A unique identifier for the fleet associated with the location. FleetId *string + // The number and status of game server container groups deployed in a container + // fleet. + GameServerContainerGroupCounts *GameServerContainerGroupCounts + // The current number of instances in the fleet, listed by instance status. Counts // for pending and terminating instances might be non-zero if the fleet is // adjusting to a scaling event or if access to resources is temporarily affected. @@ -1595,10 +1379,59 @@ type FleetCapacity struct { // Web Services Region code, such as us-west-2 . Location *string - // This property is used with the Amazon GameLift containers feature, which is - // currently in public preview. The number and status of replica container groups - // in a container fleet. - ReplicaContainerGroupCounts *ReplicaContainerGroupCounts + noSmithyDocumentSerde +} + +// Describes a container fleet deployment with updates to the fleet. +type FleetDeployment struct { + + // A time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057" ). + CreationTime *time.Time + + // Instructions for how to deploy updates to a container fleet and what actions to + // take if the deployment fails. + DeploymentConfiguration *DeploymentConfiguration + + // A unique identifier for the deployment. + DeploymentId *string + + // The status of fleet deployment activity in the location. + // + // - IN_PROGRESS -- The deployment is in progress. + // + // - IMPAIRED -- The deployment failed and the fleet has some impaired + // containers. + // + // - COMPLETE -- The deployment has completed successfully. + // + // - ROLLBACK_IN_PROGRESS -- The deployment failed and rollback has been + // initiated. + // + // - ROLLBACK_IN_COMPLETE -- The deployment failed and rollback has been + // completed. + // + // - CANCELLED -- The deployment was cancelled. + DeploymentStatus DeploymentStatus + + // A unique identifier for the container fleet. + FleetId *string + + // The unique identifier for the version of the game server container group + // definition that is being deployed. + GameServerBinaryArn *string + + // The unique identifier for the version of the per-instance container group + // definition that is being deployed. + PerInstanceBinaryArn *string + + // The unique identifier for the version of the game server container group + // definition to roll back to if deployment fails. + RollbackGameServerBinaryArn *string + + // The unique identifier for the version of the per-instance container group + // definition to roll back to if deployment fails. + RollbackPerInstanceBinaryArn *string noSmithyDocumentSerde } @@ -1655,88 +1488,247 @@ type FleetUtilization struct { // [Create a game session with properties]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html#game-properties type GameProperty struct { - // The game property identifier. + // The game property identifier. + // + // This member is required. + Key *string + + // The game property value. + // + // This member is required. + Value *string + + noSmithyDocumentSerde +} + +// This data type is used with the Amazon GameLift FleetIQ and game server +// +// groups. +// +// Properties describing a game server that is running on an instance in a game +// server group. +// +// A game server is created by a successful call to RegisterGameServer and deleted +// by calling DeregisterGameServer . A game server is claimed to host a game +// session by calling ClaimGameServer . +type GameServer struct { + + // Indicates when an available game server has been reserved for gameplay but has + // not yet started hosting a game. Once it is claimed, the game server remains in + // CLAIMED status for a maximum of one minute. During this time, game clients + // connect to the game server to start the game and trigger the game server to + // update its utilization status. After one minute, the game server claim status + // reverts to null. + ClaimStatus GameServerClaimStatus + + // The port and IP address that must be used to establish a client connection to + // the game server. + ConnectionInfo *string + + // A set of custom game server properties, formatted as a single string value. + // This data is passed to a game client or service when it requests information on + // game servers. + GameServerData *string + + // The ARN identifier for the game server group where the game server is located. + GameServerGroupArn *string + + // A unique identifier for the game server group where the game server is running. + GameServerGroupName *string + + // A custom string that uniquely identifies the game server. Game server IDs are + // developer-defined and are unique across all game server groups in an Amazon Web + // Services account. + GameServerId *string + + // The unique identifier for the instance where the game server is running. This + // ID is available in the instance metadata. EC2 instance IDs use a 17-character + // format, for example: i-1234567890abcdef0 . + InstanceId *string + + // Timestamp that indicates the last time the game server was claimed. The format + // is a number expressed in Unix time as milliseconds (for example "1469498468.057" + // ). This value is used to calculate when a claimed game server's status should + // revert to null. + LastClaimTime *time.Time + + // Timestamp that indicates the last time the game server was updated with health + // status. The format is a number expressed in Unix time as milliseconds (for + // example "1469498468.057" ). After game server registration, this property is + // only changed when a game server update specifies a health check value. + LastHealthCheckTime *time.Time + + // Timestamp that indicates when the game server registered. The format is a + // number expressed in Unix time as milliseconds (for example "1469498468.057" ). + RegistrationTime *time.Time + + // Indicates whether the game server is currently available for new games or is + // busy. Possible statuses include: + // + // - AVAILABLE - The game server is available to be claimed. A game server that + // has been claimed remains in this status until it reports game hosting activity. + // + // - UTILIZED - The game server is currently hosting a game session with players. + UtilizationStatus GameServerUtilizationStatus + + noSmithyDocumentSerde +} + +// Describes the game server container in an existing game server container group. +// A game server container identifies a container image with your game server +// build. A game server container is automatically considered essential; if an +// essential container fails, the entire container group restarts. +// +// You can update a container definition and deploy the updates to an existing +// fleet. When creating or updating a game server container group definition, use +// the property GameServerContainerDefinitionInput. +// +// Part of: ContainerGroupDefinition +// +// Returned by: DescribeContainerGroupDefinition, ListContainerGroupDefinitions, UpdateContainerGroupDefinition +type GameServerContainerDefinition struct { + + // The container definition identifier. Container names are unique within a + // container group definition. + ContainerName *string + + // Indicates that the container relies on the status of other containers in the + // same container group during startup and shutdown sequences. A container might + // have dependencies on multiple containers. + DependsOn []ContainerDependency + + // A set of environment variables that's passed to the container on startup. See + // the [ContainerDefinition::environment]parameter in the Amazon Elastic Container Service API Reference. + // + // [ContainerDefinition::environment]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-environment + EnvironmentOverride []ContainerEnvironment + + // The URI to the image that Amazon GameLift uses when deploying this container to + // a container fleet. For a more specific identifier, see ResolvedImageDigest . + ImageUri *string + + // A mount point that binds a path inside the container to a file or directory on + // the host system and lets it access the file or directory. + MountPoints []ContainerMountPoint + + // The set of ports that are available to bind to processes in the container. For + // example, a game server process requires a container port to allow game clients + // to connect to it. Container ports aren't directly accessed by inbound traffic. + // Amazon GameLift maps these container ports to externally accessible connection + // ports, which are assigned as needed from the container fleet's + // ConnectionPortRange . + PortConfiguration *ContainerPortConfiguration + + // A unique and immutable identifier for the container image. The digest is a SHA + // 256 hash of the container image manifest. + ResolvedImageDigest *string + + // The Amazon GameLift server SDK version that the game server is integrated with. + // Only game servers using 5.2.0 or higher are compatible with container fleets. + ServerSdkVersion *string + + noSmithyDocumentSerde +} + +// Describes the configuration for a container that runs your game server +// executable. This definition includes container configuration, resources, and +// start instructions. Use this data type when creating or updating a game server +// container group definition. For properties of a deployed container, see GameServerContainerDefinition. A +// game server container is automatically considered essential; if an essential +// container fails, the entire container group restarts. +// +// Use with: CreateContainerGroupDefinition, UpdateContainerGroupDefinition +type GameServerContainerDefinitionInput struct { + + // A string that uniquely identifies the container definition within a container + // group. + // + // This member is required. + ContainerName *string + + // The location of the container image to deploy to a container fleet. Provide an + // image in an Amazon Elastic Container Registry public or private repository. The + // repository must be in the same Amazon Web Services account and Amazon Web + // Services Region where you're creating the container group definition. For limits + // on image size, see [Amazon GameLift endpoints and quotas]. You can use any of the following image URI formats: + // + // - Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository + // ID] + // + // - Image ID and digest: [AWS account].dkr.ecr.[AWS + // region].amazonaws.com/[repository ID]@[digest] + // + // - Image ID and tag: [AWS account].dkr.ecr.[AWS + // region].amazonaws.com/[repository ID]:[tag] + // + // [Amazon GameLift endpoints and quotas]: https://docs.aws.amazon.com/general/latest/gr/gamelift.html + // + // This member is required. + ImageUri *string + + // A set of ports that Amazon GameLift can assign to processes in the container. + // Processes, must be assigned a container port to accept inbound traffic + // connections. For example, a game server process requires a container port to + // allow game clients to connect to it. Container ports aren't directly accessed by + // inbound traffic. Instead, Amazon GameLift maps container ports to externally + // accessible connection ports (see the container fleet property + // ConnectionPortRange ). + // + // This member is required. + PortConfiguration *ContainerPortConfiguration + + // The Amazon GameLift server SDK version that the game server is integrated with. + // Only game servers using 5.2.0 or higher are compatible with container fleets. // // This member is required. - Key *string + ServerSdkVersion *string - // The game property value. + // Establishes dependencies between this container and the status of other + // containers in the same container group. A container can have dependencies on + // multiple different containers. // - // This member is required. - Value *string + // You can use dependencies to establish a startup/shutdown sequence across the + // container group. For example, you might specify that ContainerB has a START + // dependency on ContainerA. This dependency means that ContainerB can't start + // until after ContainerA has started. This dependency is reversed on shutdown, + // which means that ContainerB must shut down before ContainerA can shut down. + DependsOn []ContainerDependency + + // A set of environment variables to pass to the container on startup. See the [ContainerDefinition::environment] + // parameter in the Amazon Elastic Container Service API Reference. + // + // [ContainerDefinition::environment]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-environment + EnvironmentOverride []ContainerEnvironment + + // A mount point that binds a path inside the container to a file or directory on + // the host system and lets it access the file or directory. + MountPoints []ContainerMountPoint noSmithyDocumentSerde } -// This data type is used with the Amazon GameLift FleetIQ and game server -// -// groups. -// -// Properties describing a game server that is running on an instance in a game -// server group. +// The number and status of game server container groups that are deployed across +// a container fleet. Combine this count with the number of server processes that +// each game server container group runs to learn how many game sessions the fleet +// is capable of hosting concurrently. For example, if a fleet has 50 game server +// container groups, and the game server container in each group runs 1 game server +// process, then the fleet has the capacity to run host 50 game sessions at a time. // -// A game server is created by a successful call to RegisterGameServer and deleted -// by calling DeregisterGameServer . A game server is claimed to host a game -// session by calling ClaimGameServer . -type GameServer struct { - - // Indicates when an available game server has been reserved for gameplay but has - // not yet started hosting a game. Once it is claimed, the game server remains in - // CLAIMED status for a maximum of one minute. During this time, game clients - // connect to the game server to start the game and trigger the game server to - // update its utilization status. After one minute, the game server claim status - // reverts to null. - ClaimStatus GameServerClaimStatus - - // The port and IP address that must be used to establish a client connection to - // the game server. - ConnectionInfo *string - - // A set of custom game server properties, formatted as a single string value. - // This data is passed to a game client or service when it requests information on - // game servers. - GameServerData *string - - // The ARN identifier for the game server group where the game server is located. - GameServerGroupArn *string - - // A unique identifier for the game server group where the game server is running. - GameServerGroupName *string - - // A custom string that uniquely identifies the game server. Game server IDs are - // developer-defined and are unique across all game server groups in an Amazon Web - // Services account. - GameServerId *string - - // The unique identifier for the instance where the game server is running. This - // ID is available in the instance metadata. EC2 instance IDs use a 17-character - // format, for example: i-1234567890abcdef0 . - InstanceId *string +// Returned by: DescribeFleetCapacity, DescribeFleetLocationCapacity +type GameServerContainerGroupCounts struct { - // Timestamp that indicates the last time the game server was claimed. The format - // is a number expressed in Unix time as milliseconds (for example "1469498468.057" - // ). This value is used to calculate when a claimed game server's status should - // revert to null. - LastClaimTime *time.Time + // The number of container groups that have active game sessions. + ACTIVE *int32 - // Timestamp that indicates the last time the game server was updated with health - // status. The format is a number expressed in Unix time as milliseconds (for - // example "1469498468.057" ). After game server registration, this property is - // only changed when a game server update specifies a health check value. - LastHealthCheckTime *time.Time + // The number of container groups that have no active game sessions. + IDLE *int32 - // Timestamp that indicates when the game server registered. The format is a - // number expressed in Unix time as milliseconds (for example "1469498468.057" ). - RegistrationTime *time.Time + // The number of container groups that are starting up but haven't yet + // registered. + PENDING *int32 - // Indicates whether the game server is currently available for new games or is - // busy. Possible statuses include: - // - // - AVAILABLE - The game server is available to be claimed. A game server that - // has been claimed remains in this status until it reports game hosting activity. - // - // - UTILIZED - The game server is currently hosting a game session with players. - UtilizationStatus GameServerUtilizationStatus + // The number of container groups that are in the process of shutting down. + TERMINATING *int32 noSmithyDocumentSerde } @@ -1966,9 +1958,9 @@ type GameSession struct { // A set of custom game session properties, formatted as a single string value. // This data is passed to a game server process with a request to start a new game - // session (see [Start a Game Session]). + // session. For more information, see [Start a game session]. // - // [Start a Game Session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession + // [Start a game session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession GameSessionData *string // A unique identifier for the game session. A game session ARN has the following @@ -2063,6 +2055,32 @@ type GameSessionConnectionInfo struct { noSmithyDocumentSerde } +// A policy that puts limits on the number of game sessions that a player can +// create within a specified span of time. With this policy, you can control +// players' ability to consume available resources. +// +// The policy is evaluated when a player tries to create a new game session. On +// receiving a CreateGameSession request, Amazon GameLift checks that the player +// (identified by CreatorId ) has created fewer than game session limit in the +// specified time period. +type GameSessionCreationLimitPolicy struct { + + // A policy that puts limits on the number of game sessions that a player can + // create within a specified span of time. With this policy, you can control + // players' ability to consume available resources. + // + // The policy evaluates when a player tries to create a new game session. On + // receiving a CreateGameSession request, Amazon GameLift checks that the player + // (identified by CreatorId ) has created fewer than game session limit in the + // specified time period. + NewGameSessionsPerCreator *int32 + + // The time span used in evaluating the resource creation limit policy. + PolicyPeriodInMinutes *int32 + + noSmithyDocumentSerde +} + // A game session's properties plus the protection policy currently in force. type GameSessionDetail struct { @@ -2118,10 +2136,10 @@ type GameSessionPlacement struct { GameSessionArn *string // A set of custom game session properties, formatted as a single string value. - // This data is passed to a game server process in the GameSession object with a - // request to start a new game session (see [Start a Game Session]). + // This data is passed to a game server process with a request to start a new game + // session. For more information, see [Start a game session]. // - // [Start a Game Session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession + // [Start a game session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession GameSessionData *string // A unique identifier for the game session. This value isn't final until @@ -2169,7 +2187,7 @@ type GameSessionPlacement struct { PlacementId *string // A set of values, expressed in milliseconds, that indicates the amount of - // latency that a player experiences when connected to Amazon Web Services Regions. + // latency that a player experiences when connected to @aws; Regions. PlayerLatencies []PlayerLatency // The port number for the game session. To connect to a Amazon GameLift game @@ -2192,7 +2210,7 @@ type GameSessionPlacement struct { // - CANCELLED -- The placement request was canceled. // // - TIMED_OUT -- A new game session was not successfully created before the - // time limit expired. You can resubmit the placement request as needed. + // time limit expired. You can resubmit as a new placement request as needed. // // - FAILED -- Amazon GameLift is not able to complete the process of placing // the game session. Common reasons are the game session terminated before the @@ -2240,12 +2258,10 @@ type GameSessionQueue struct { // [Setting up notifications for game session placement]: https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html NotificationTarget *string - // A set of policies that act as a sliding cap on player latency. FleetIQ works to - // deliver low latency for most players in a game session. These policies ensure - // that no individual player can be placed into a game with unreasonably high - // latency. Use multiple policies to gradually relax latency requirements a step at - // a time. Multiple policies are applied based on their maximum allowed latency, - // starting with the lowest value. + // A set of policies that enforce a sliding cap on player latency when processing + // game sessions placement requests. Use multiple policies to gradually relax the + // cap over time if Amazon GameLift can't make a placement. Policies are evaluated + // in order starting with the lowest maximum latency value. PlayerLatencyPolicies []PlayerLatencyPolicy // Custom settings to use when prioritizing destinations and locations for game @@ -2256,7 +2272,7 @@ type GameSessionQueue struct { // The maximum time, in seconds, that a new game session placement request remains // in the queue. When a request exceeds this time, the game session placement - // changes to a TIMED_OUT status. By default, this property is set to 600 . + // changes to a TIMED_OUT status. TimeoutInSeconds *int32 noSmithyDocumentSerde @@ -2289,12 +2305,12 @@ type Instance struct { // // - TLS-enabled fleets: ..amazongamelift.com . // - // - Non-TLS-enabled fleets: ec2-.compute.amazonaws.com . (See [Amazon Elastic Compute Cloud Instance IP Addressing].) + // - Non-TLS-enabled fleets: ec2-.compute.amazonaws.com . (See [Amazon EC2 Instance IP Addressing].) // // When connecting to a game session that is running on a TLS-enabled fleet, you // must use the DNS name, not the IP address. // - // [Amazon Elastic Compute Cloud Instance IP Addressing]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses + // [Amazon EC2 Instance IP Addressing]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses DnsName *string // The Amazon Resource Name ([ARN] ) that is assigned to a Amazon GameLift fleet @@ -2419,8 +2435,8 @@ type InstanceDefinition struct { // A range of IP addresses and port settings that allow inbound traffic to connect // to processes on an instance in a fleet. Processes are assigned an IP // address/port number combination, which must fall into the fleet's allowed -// ranges. For container fleets, the port settings must use the same port numbers -// as the fleet's connection ports. +// ranges. For managed container fleets, the port settings must use the same port +// numbers as the fleet's connection ports. // // For Realtime Servers fleets, Amazon GameLift automatically opens two port // ranges, one for TCP messaging and one for UDP. @@ -2484,6 +2500,31 @@ type LaunchTemplateSpecification struct { noSmithyDocumentSerde } +// For a multi-location container fleet, describes the progress of a deployment +// across all fleet locations. +type LocationalDeployment struct { + + // The status of fleet deployment activity in the location. + // + // - IN_PROGRESS -- The deployment is in progress. + // + // - IMPAIRED -- The deployment failed and the fleet has some impaired + // containers. + // + // - COMPLETE -- The deployment has completed successfully. + // + // - ROLLBACK_IN_PROGRESS -- The deployment failed and rollback has been + // initiated. + // + // - ROLLBACK_IN_COMPLETE -- The deployment failed and rollback has been + // completed. + // + // - CANCELLED -- The deployment was cancelled. + DeploymentStatus DeploymentStatus + + noSmithyDocumentSerde +} + // Details about a location in a multi-location fleet. type LocationAttributes struct { @@ -2501,10 +2542,6 @@ type LocationAttributes struct { noSmithyDocumentSerde } -// This data type has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // A remote location where a multi-location fleet can deploy game servers for game // hosting. type LocationConfiguration struct { @@ -2573,6 +2610,32 @@ type LocationState struct { noSmithyDocumentSerde } +// A method for collecting container logs for the fleet. Amazon GameLift saves all +// standard output for each container in logs, including game session logs. You can +// select from the following methods: +type LogConfiguration struct { + + // The type of log collection to use for a fleet. + // + // - CLOUDWATCH -- (default value) Send logs to an Amazon CloudWatch log group + // that you define. Each container emits a log stream, which is organized in the + // log group. + // + // - S3 -- Store logs in an Amazon S3 bucket that you define. + // + // - NONE -- Don't collect container logs. + LogDestination LogDestination + + // If log destination is CLOUDWATCH , logs are sent to the specified log group in + // Amazon CloudWatch. + LogGroupArn *string + + // If log destination is S3 , logs are sent to the specified Amazon S3 bucket name. + S3BucketName *string + + noSmithyDocumentSerde +} + // Represents a new player session that is created as a result of a successful // FlexMatch match. A successful match automatically creates new player sessions // for every player ID in the original matchmaking request. @@ -2608,9 +2671,9 @@ type MatchmakingConfiguration struct { // The number of player slots in a match to keep open for future players. For // example, if the configuration's rule set specifies a match for a single - // 10-person team, and the additional player count is set to 2, 10 players will be - // selected for the match and 2 more player slots will be open for future players. - // This parameter is not used when FlexMatchMode is set to STANDALONE . + // 12-person team, and the additional player count is set to 2, only 10 players are + // selected for the match. This parameter is not used when FlexMatchMode is set to + // STANDALONE . AdditionalPlayerCount *int32 // The method used to backfill game sessions created with this matchmaking @@ -2661,11 +2724,11 @@ type MatchmakingConfiguration struct { // A set of custom game session properties, formatted as a single string value. // This data is passed to a game server process with a request to start a new game - // session (see [Start a Game Session]). This information is added to the new GameSession object that is - // created for a successful match. This parameter is not used when FlexMatchMode - // is set to STANDALONE . + // session. For more information, see [Start a game session]. This information is added to the new + // GameSession object that is created for a successful match. This parameter is not + // used when FlexMatchMode is set to STANDALONE . // - // [Start a Game Session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession + // [Start a game session]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession GameSessionData *string // The Amazon Resource Name ([ARN] ) that is assigned to a Amazon GameLift game session @@ -3072,35 +3135,6 @@ type PriorityConfiguration struct { noSmithyDocumentSerde } -// This data type is used with the Amazon GameLift containers feature, which is -// -// currently in public preview. -// -// The number and status of replica container groups that are deployed across a -// fleet with compute type CONTAINER . This information, combined with the number -// of server processes being hosted per container group (see RuntimeConfiguration -// ), tells you how many game sessions the fleet is currently capable of hosting -// concurrently. -// -// Returned by: DescribeFleetCapacity, DescribeFleetLocationCapacity -type ReplicaContainerGroupCounts struct { - - // The number of container groups that have active game sessions. - ACTIVE *int32 - - // The number of container groups that have no active game sessions. - IDLE *int32 - - // The number of container groups that are starting up but have not yet - // registered. - PENDING *int32 - - // The number of container groups that are in the process of shutting down. - TERMINATING *int32 - - noSmithyDocumentSerde -} - // A policy that puts limits on the number of game sessions that a player can // create within a specified span of time. With this policy, you can control // players' ability to consume available resources. @@ -3158,19 +3192,12 @@ type RoutingStrategy struct { noSmithyDocumentSerde } -// This data type has been expanded to use with the Amazon GameLift containers -// -// feature, which is currently in public preview. -// // A set of instructions that define the set of server processes to run on // computes in a fleet. Server processes run either an executable in a custom game // build or a Realtime Servers script. Amazon GameLift launches the processes, // manages their life cycle, and replaces them as needed. Computes check regularly // for an updated runtime configuration. // -// On a container fleet, the Amazon GameLift Agent uses the runtime configuration -// to manage the lifecycle of server processes in a replica container group. -// // An Amazon GameLift instance is limited to 50 processes running concurrently. To // calculate the total number of processes defined in a runtime configuration, add // the values of the ConcurrentExecutions parameter for each server process. Learn @@ -3185,9 +3212,9 @@ type RuntimeConfiguration struct { // timeout, it is ended and the game session status is changed to TERMINATED . GameSessionActivationTimeoutSeconds *int32 - // The number of game sessions in status ACTIVATING to allow on an instance or - // container. This setting limits the instance resources that can be used for new - // game activations at any one time. + // The number of game sessions in status ACTIVATING to allow on an instance. This + // setting limits the instance resources that can be used for new game activations + // at any one time. MaxConcurrentGameSessionActivations *int32 // A collection of server process configurations that identify what server @@ -3365,7 +3392,7 @@ type Script struct { // expressed in Unix time as milliseconds (for example "1469498468.057" ). CreationTime *time.Time - // A descriptive label that is associated with a script. Script names don't need + // A descriptive label that is associated with a script. Script names do not need // to be unique. Name *string @@ -3393,8 +3420,8 @@ type Script struct { // version. StorageLocation *S3Location - // Version information associated with a build or script. Version strings don't - // need to be unique. + // Version information that is associated with a build or script. Version strings + // do not need to be unique. Version *string noSmithyDocumentSerde @@ -3407,7 +3434,7 @@ type Script struct { type ServerProcess struct { // The number of server processes using this configuration that run concurrently - // on each instance or container.. + // on each instance or compute. // // This member is required. ConcurrentExecutions *int32 @@ -3435,6 +3462,177 @@ type ServerProcess struct { noSmithyDocumentSerde } +// Describes a support container in a container group. A support container might +// be in a game server container group or a per-instance container group. Support +// containers don't run game server processes. +// +// You can update a support container definition and deploy the updates to an +// existing fleet. When creating or updating a game server container group +// definition, use the property GameServerContainerDefinitionInput. +// +// Part of: ContainerGroupDefinition +// +// Returned by: DescribeContainerGroupDefinition, ListContainerGroupDefinitions, UpdateContainerGroupDefinition +type SupportContainerDefinition struct { + + // The container definition identifier. Container names are unique within a + // container group definition. + ContainerName *string + + // Indicates that the container relies on the status of other containers in the + // same container group during its startup and shutdown sequences. A container + // might have dependencies on multiple containers. + DependsOn []ContainerDependency + + // A set of environment variables that's passed to the container on startup. See + // the [ContainerDefinition::environment]parameter in the Amazon Elastic Container Service API Reference. + // + // [ContainerDefinition::environment]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-environment + EnvironmentOverride []ContainerEnvironment + + // Indicates whether the container is vital to the container group. If an + // essential container fails, the entire container group restarts. + Essential *bool + + // A configuration for a non-terminal health check. A support container + // automatically restarts if it stops functioning or if it fails this health check. + HealthCheck *ContainerHealthCheck + + // The URI to the image that Amazon GameLift deploys to a container fleet. For a + // more specific identifier, see ResolvedImageDigest . + ImageUri *string + + // The amount of memory that Amazon GameLift makes available to the container. If + // memory limits aren't set for an individual container, the container shares the + // container group's total memory allocation. + // + // Related data type: ContainerGroupDefinition$TotalMemoryLimitMebibytes + MemoryHardLimitMebibytes *int32 + + // A mount point that binds a path inside the container to a file or directory on + // the host system and lets it access the file or directory. + MountPoints []ContainerMountPoint + + // A set of ports that allow access to the container from external users. + // Processes running in the container can bind to a one of these ports. Container + // ports aren't directly accessed by inbound traffic. Amazon GameLift maps these + // container ports to externally accessible connection ports, which are assigned as + // needed from the container fleet's ConnectionPortRange . + PortConfiguration *ContainerPortConfiguration + + // A unique and immutable identifier for the container image. The digest is a SHA + // 256 hash of the container image manifest. + ResolvedImageDigest *string + + // The number of vCPU units that are reserved for the container. If no resources + // are reserved, the container shares the total vCPU limit for the container group. + // + // Related data type: ContainerGroupDefinition$TotalVcpuLimit + Vcpu *float64 + + noSmithyDocumentSerde +} + +// Describes a support container in a container group. You can define a support +// container in either a game server container group or a per-instance container +// group. Support containers don't run game server processes. +// +// This definition includes container configuration, resources, and start +// instructions. Use this data type when creating or updating a container group +// definition. For properties of a deployed support container, see SupportContainerDefinition. +// +// Use with: CreateContainerGroupDefinition, UpdateContainerGroupDefinition +type SupportContainerDefinitionInput struct { + + // A string that uniquely identifies the container definition within a container + // group. + // + // This member is required. + ContainerName *string + + // The location of the container image to deploy to a container fleet. Provide an + // image in an Amazon Elastic Container Registry public or private repository. The + // repository must be in the same Amazon Web Services account and Amazon Web + // Services Region where you're creating the container group definition. For limits + // on image size, see [Amazon GameLift endpoints and quotas]. You can use any of the following image URI formats: + // + // - Image ID only: [AWS account].dkr.ecr.[AWS region].amazonaws.com/[repository + // ID] + // + // - Image ID and digest: [AWS account].dkr.ecr.[AWS + // region].amazonaws.com/[repository ID]@[digest] + // + // - Image ID and tag: [AWS account].dkr.ecr.[AWS + // region].amazonaws.com/[repository ID]:[tag] + // + // [Amazon GameLift endpoints and quotas]: https://docs.aws.amazon.com/general/latest/gr/gamelift.html + // + // This member is required. + ImageUri *string + + // Establishes dependencies between this container and the status of other + // containers in the same container group. A container can have dependencies on + // multiple different containers. + // + // . + // + // You can use dependencies to establish a startup/shutdown sequence across the + // container group. For example, you might specify that ContainerB has a START + // dependency on ContainerA. This dependency means that ContainerB can't start + // until after ContainerA has started. This dependency is reversed on shutdown, + // which means that ContainerB must shut down before ContainerA can shut down. + DependsOn []ContainerDependency + + // A set of environment variables to pass to the container on startup. See the [ContainerDefinition::environment] + // parameter in the Amazon Elastic Container Service API Reference. + // + // [ContainerDefinition::environment]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-environment + EnvironmentOverride []ContainerEnvironment + + // Flags the container as vital for the container group to function properly. If + // an essential container fails, the entire container group restarts. At least one + // support container in a per-instance container group must be essential. When + // flagging a container as essential, also configure a health check so that the + // container can signal that it's healthy. + Essential *bool + + // Configuration for a non-terminal health check. A container automatically + // restarts if it stops functioning. With a health check, you can define additional + // reasons to flag a container as unhealthy and restart it. If an essential + // container fails a health check, the entire container group restarts. + HealthCheck *ContainerHealthCheck + + // A specified amount of memory (in MiB) to reserve for this container. If you + // don't specify a container-specific memory limit, the container shares the + // container group's total memory allocation. + // + // Related data type: ContainerGroupDefinition TotalMemoryLimitMebibytes + MemoryHardLimitMebibytes *int32 + + // A mount point that binds a path inside the container to a file or directory on + // the host system and lets it access the file or directory. + MountPoints []ContainerMountPoint + + // A set of ports that Amazon GameLift can assign to processes in the container. + // Any processes that accept inbound traffic connections must be assigned a port + // from this set. The container port range must be large enough to assign one to + // each process in the container that needs one. + // + // Container ports aren't directly accessed by inbound traffic. Amazon GameLift + // maps these container ports to externally accessible connection ports, which are + // assigned as needed from the container fleet's ConnectionPortRange . + PortConfiguration *ContainerPortConfiguration + + // The number of vCPU units to reserve for this container. The container can use + // more resources when needed, if available. If you don't reserve CPU units for + // this container, it shares the container group's total vCPU limit. + // + // Related data type: ContainerGroupDefinition TotalCpuLimit + Vcpu *float64 + + noSmithyDocumentSerde +} + // A label that you can assign to a Amazon GameLift resource. // // # Learn more diff --git a/service/gamelift/validators.go b/service/gamelift/validators.go index 330e3965ff4..e10c4b1ca5c 100644 --- a/service/gamelift/validators.go +++ b/service/gamelift/validators.go @@ -90,6 +90,26 @@ func (m *validateOpCreateBuild) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpCreateContainerFleet struct { +} + +func (*validateOpCreateContainerFleet) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateContainerFleet) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateContainerFleetInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateContainerFleetInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateContainerGroupDefinition struct { } @@ -410,6 +430,26 @@ func (m *validateOpDeleteBuild) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpDeleteContainerFleet struct { +} + +func (*validateOpDeleteContainerFleet) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteContainerFleet) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteContainerFleetInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteContainerFleetInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteContainerGroupDefinition struct { } @@ -750,6 +790,26 @@ func (m *validateOpDescribeCompute) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpDescribeContainerFleet struct { +} + +func (*validateOpDescribeContainerFleet) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeContainerFleet) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeContainerFleetInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeContainerFleetInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeContainerGroupDefinition struct { } @@ -770,6 +830,26 @@ func (m *validateOpDescribeContainerGroupDefinition) HandleInitialize(ctx contex return next.HandleInitialize(ctx, in) } +type validateOpDescribeFleetDeployment struct { +} + +func (*validateOpDescribeFleetDeployment) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeFleetDeployment) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeFleetDeploymentInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeFleetDeploymentInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeFleetEvents struct { } @@ -1150,6 +1230,26 @@ func (m *validateOpListCompute) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpListContainerGroupDefinitionVersions struct { +} + +func (*validateOpListContainerGroupDefinitionVersions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListContainerGroupDefinitionVersions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListContainerGroupDefinitionVersionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListContainerGroupDefinitionVersionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListGameServers struct { } @@ -1550,6 +1650,46 @@ func (m *validateOpUpdateBuild) HandleInitialize(ctx context.Context, in middlew return next.HandleInitialize(ctx, in) } +type validateOpUpdateContainerFleet struct { +} + +func (*validateOpUpdateContainerFleet) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateContainerFleet) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateContainerFleetInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateContainerFleetInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateContainerGroupDefinition struct { +} + +func (*validateOpUpdateContainerGroupDefinition) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateContainerGroupDefinition) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateContainerGroupDefinitionInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateContainerGroupDefinitionInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateFleetAttributes struct { } @@ -1786,6 +1926,10 @@ func addOpCreateBuildValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateBuild{}, middleware.After) } +func addOpCreateContainerFleetValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateContainerFleet{}, middleware.After) +} + func addOpCreateContainerGroupDefinitionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateContainerGroupDefinition{}, middleware.After) } @@ -1850,6 +1994,10 @@ func addOpDeleteBuildValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteBuild{}, middleware.After) } +func addOpDeleteContainerFleetValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteContainerFleet{}, middleware.After) +} + func addOpDeleteContainerGroupDefinitionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteContainerGroupDefinition{}, middleware.After) } @@ -1918,10 +2066,18 @@ func addOpDescribeComputeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeCompute{}, middleware.After) } +func addOpDescribeContainerFleetValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeContainerFleet{}, middleware.After) +} + func addOpDescribeContainerGroupDefinitionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeContainerGroupDefinition{}, middleware.After) } +func addOpDescribeFleetDeploymentValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeFleetDeployment{}, middleware.After) +} + func addOpDescribeFleetEventsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeFleetEvents{}, middleware.After) } @@ -1998,6 +2154,10 @@ func addOpListComputeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListCompute{}, middleware.After) } +func addOpListContainerGroupDefinitionVersionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListContainerGroupDefinitionVersions{}, middleware.After) +} + func addOpListGameServersValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListGameServers{}, middleware.After) } @@ -2078,6 +2238,14 @@ func addOpUpdateBuildValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateBuild{}, middleware.After) } +func addOpUpdateContainerFleetValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateContainerFleet{}, middleware.After) +} + +func addOpUpdateContainerGroupDefinitionValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateContainerGroupDefinition{}, middleware.After) +} + func addOpUpdateFleetAttributesValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateFleetAttributes{}, middleware.After) } @@ -2170,61 +2338,6 @@ func validateConnectionPortRange(v *types.ConnectionPortRange) error { } } -func validateContainerDefinitionInput(v *types.ContainerDefinitionInput) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "ContainerDefinitionInput"} - if v.ContainerName == nil { - invalidParams.Add(smithy.NewErrParamRequired("ContainerName")) - } - if v.ImageUri == nil { - invalidParams.Add(smithy.NewErrParamRequired("ImageUri")) - } - if v.PortConfiguration != nil { - if err := validateContainerPortConfiguration(v.PortConfiguration); err != nil { - invalidParams.AddNested("PortConfiguration", err.(smithy.InvalidParamsError)) - } - } - if v.HealthCheck != nil { - if err := validateContainerHealthCheck(v.HealthCheck); err != nil { - invalidParams.AddNested("HealthCheck", err.(smithy.InvalidParamsError)) - } - } - if v.Environment != nil { - if err := validateContainerEnvironmentList(v.Environment); err != nil { - invalidParams.AddNested("Environment", err.(smithy.InvalidParamsError)) - } - } - if v.DependsOn != nil { - if err := validateContainerDependencyList(v.DependsOn); err != nil { - invalidParams.AddNested("DependsOn", err.(smithy.InvalidParamsError)) - } - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - -func validateContainerDefinitionInputList(v []types.ContainerDefinitionInput) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "ContainerDefinitionInputList"} - for i := range v { - if err := validateContainerDefinitionInput(&v[i]); err != nil { - invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) - } - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - func validateContainerDependency(v *types.ContainerDependency) error { if v == nil { return nil @@ -2295,20 +2408,28 @@ func validateContainerEnvironmentList(v []types.ContainerEnvironment) error { } } -func validateContainerGroupsConfiguration(v *types.ContainerGroupsConfiguration) error { +func validateContainerHealthCheck(v *types.ContainerHealthCheck) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "ContainerGroupsConfiguration"} - if v.ContainerGroupDefinitionNames == nil { - invalidParams.Add(smithy.NewErrParamRequired("ContainerGroupDefinitionNames")) + invalidParams := smithy.InvalidParamsError{Context: "ContainerHealthCheck"} + if v.Command == nil { + invalidParams.Add(smithy.NewErrParamRequired("Command")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateContainerMountPoint(v *types.ContainerMountPoint) error { + if v == nil { + return nil } - if v.ConnectionPortRange == nil { - invalidParams.Add(smithy.NewErrParamRequired("ConnectionPortRange")) - } else if v.ConnectionPortRange != nil { - if err := validateConnectionPortRange(v.ConnectionPortRange); err != nil { - invalidParams.AddNested("ConnectionPortRange", err.(smithy.InvalidParamsError)) - } + invalidParams := smithy.InvalidParamsError{Context: "ContainerMountPoint"} + if v.InstancePath == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstancePath")) } if invalidParams.Len() > 0 { return invalidParams @@ -2317,13 +2438,15 @@ func validateContainerGroupsConfiguration(v *types.ContainerGroupsConfiguration) } } -func validateContainerHealthCheck(v *types.ContainerHealthCheck) error { +func validateContainerMountPointList(v []types.ContainerMountPoint) error { if v == nil { return nil } - invalidParams := smithy.InvalidParamsError{Context: "ContainerHealthCheck"} - if v.Command == nil { - invalidParams.Add(smithy.NewErrParamRequired("Command")) + invalidParams := smithy.InvalidParamsError{Context: "ContainerMountPointList"} + for i := range v { + if err := validateContainerMountPoint(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } } if invalidParams.Len() > 0 { return invalidParams @@ -2424,6 +2547,49 @@ func validateGamePropertyList(v []types.GameProperty) error { } } +func validateGameServerContainerDefinitionInput(v *types.GameServerContainerDefinitionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GameServerContainerDefinitionInput"} + if v.ContainerName == nil { + invalidParams.Add(smithy.NewErrParamRequired("ContainerName")) + } + if v.DependsOn != nil { + if err := validateContainerDependencyList(v.DependsOn); err != nil { + invalidParams.AddNested("DependsOn", err.(smithy.InvalidParamsError)) + } + } + if v.MountPoints != nil { + if err := validateContainerMountPointList(v.MountPoints); err != nil { + invalidParams.AddNested("MountPoints", err.(smithy.InvalidParamsError)) + } + } + if v.EnvironmentOverride != nil { + if err := validateContainerEnvironmentList(v.EnvironmentOverride); err != nil { + invalidParams.AddNested("EnvironmentOverride", err.(smithy.InvalidParamsError)) + } + } + if v.ImageUri == nil { + invalidParams.Add(smithy.NewErrParamRequired("ImageUri")) + } + if v.PortConfiguration == nil { + invalidParams.Add(smithy.NewErrParamRequired("PortConfiguration")) + } else if v.PortConfiguration != nil { + if err := validateContainerPortConfiguration(v.PortConfiguration); err != nil { + invalidParams.AddNested("PortConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.ServerSdkVersion == nil { + invalidParams.Add(smithy.NewErrParamRequired("ServerSdkVersion")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateGameServerGroupAutoScalingPolicy(v *types.GameServerGroupAutoScalingPolicy) error { if v == nil { return nil @@ -2600,6 +2766,66 @@ func validateServerProcessList(v []types.ServerProcess) error { } } +func validateSupportContainerDefinitionInput(v *types.SupportContainerDefinitionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SupportContainerDefinitionInput"} + if v.ContainerName == nil { + invalidParams.Add(smithy.NewErrParamRequired("ContainerName")) + } + if v.DependsOn != nil { + if err := validateContainerDependencyList(v.DependsOn); err != nil { + invalidParams.AddNested("DependsOn", err.(smithy.InvalidParamsError)) + } + } + if v.MountPoints != nil { + if err := validateContainerMountPointList(v.MountPoints); err != nil { + invalidParams.AddNested("MountPoints", err.(smithy.InvalidParamsError)) + } + } + if v.EnvironmentOverride != nil { + if err := validateContainerEnvironmentList(v.EnvironmentOverride); err != nil { + invalidParams.AddNested("EnvironmentOverride", err.(smithy.InvalidParamsError)) + } + } + if v.HealthCheck != nil { + if err := validateContainerHealthCheck(v.HealthCheck); err != nil { + invalidParams.AddNested("HealthCheck", err.(smithy.InvalidParamsError)) + } + } + if v.ImageUri == nil { + invalidParams.Add(smithy.NewErrParamRequired("ImageUri")) + } + if v.PortConfiguration != nil { + if err := validateContainerPortConfiguration(v.PortConfiguration); err != nil { + invalidParams.AddNested("PortConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateSupportContainerDefinitionInputList(v []types.SupportContainerDefinitionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SupportContainerDefinitionInputList"} + for i := range v { + if err := validateSupportContainerDefinitionInput(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTag(v *types.Tag) error { if v == nil { return nil @@ -2741,6 +2967,41 @@ func validateOpCreateBuildInput(v *CreateBuildInput) error { } } +func validateOpCreateContainerFleetInput(v *CreateContainerFleetInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateContainerFleetInput"} + if v.FleetRoleArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("FleetRoleArn")) + } + if v.InstanceConnectionPortRange != nil { + if err := validateConnectionPortRange(v.InstanceConnectionPortRange); err != nil { + invalidParams.AddNested("InstanceConnectionPortRange", err.(smithy.InvalidParamsError)) + } + } + if v.InstanceInboundPermissions != nil { + if err := validateIpPermissionsList(v.InstanceInboundPermissions); err != nil { + invalidParams.AddNested("InstanceInboundPermissions", err.(smithy.InvalidParamsError)) + } + } + if v.Locations != nil { + if err := validateLocationConfigurationList(v.Locations); err != nil { + invalidParams.AddNested("Locations", err.(smithy.InvalidParamsError)) + } + } + if v.Tags != nil { + if err := validateTagList(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpCreateContainerGroupDefinitionInput(v *CreateContainerGroupDefinitionInput) error { if v == nil { return nil @@ -2749,17 +3010,20 @@ func validateOpCreateContainerGroupDefinitionInput(v *CreateContainerGroupDefini if v.Name == nil { invalidParams.Add(smithy.NewErrParamRequired("Name")) } - if v.TotalMemoryLimit == nil { - invalidParams.Add(smithy.NewErrParamRequired("TotalMemoryLimit")) + if v.TotalMemoryLimitMebibytes == nil { + invalidParams.Add(smithy.NewErrParamRequired("TotalMemoryLimitMebibytes")) + } + if v.TotalVcpuLimit == nil { + invalidParams.Add(smithy.NewErrParamRequired("TotalVcpuLimit")) } - if v.TotalCpuLimit == nil { - invalidParams.Add(smithy.NewErrParamRequired("TotalCpuLimit")) + if v.GameServerContainerDefinition != nil { + if err := validateGameServerContainerDefinitionInput(v.GameServerContainerDefinition); err != nil { + invalidParams.AddNested("GameServerContainerDefinition", err.(smithy.InvalidParamsError)) + } } - if v.ContainerDefinitions == nil { - invalidParams.Add(smithy.NewErrParamRequired("ContainerDefinitions")) - } else if v.ContainerDefinitions != nil { - if err := validateContainerDefinitionInputList(v.ContainerDefinitions); err != nil { - invalidParams.AddNested("ContainerDefinitions", err.(smithy.InvalidParamsError)) + if v.SupportContainerDefinitions != nil { + if err := validateSupportContainerDefinitionInputList(v.SupportContainerDefinitions); err != nil { + invalidParams.AddNested("SupportContainerDefinitions", err.(smithy.InvalidParamsError)) } } if len(v.OperatingSystem) == 0 { @@ -2815,11 +3079,6 @@ func validateOpCreateFleetInput(v *CreateFleetInput) error { invalidParams.AddNested("AnywhereConfiguration", err.(smithy.InvalidParamsError)) } } - if v.ContainerGroupsConfiguration != nil { - if err := validateContainerGroupsConfiguration(v.ContainerGroupsConfiguration); err != nil { - invalidParams.AddNested("ContainerGroupsConfiguration", err.(smithy.InvalidParamsError)) - } - } if invalidParams.Len() > 0 { return invalidParams } else { @@ -3132,6 +3391,21 @@ func validateOpDeleteBuildInput(v *DeleteBuildInput) error { } } +func validateOpDeleteContainerFleetInput(v *DeleteContainerFleetInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteContainerFleetInput"} + if v.FleetId == nil { + invalidParams.Add(smithy.NewErrParamRequired("FleetId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteContainerGroupDefinitionInput(v *DeleteContainerGroupDefinitionInput) error { if v == nil { return nil @@ -3408,6 +3682,21 @@ func validateOpDescribeComputeInput(v *DescribeComputeInput) error { } } +func validateOpDescribeContainerFleetInput(v *DescribeContainerFleetInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeContainerFleetInput"} + if v.FleetId == nil { + invalidParams.Add(smithy.NewErrParamRequired("FleetId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeContainerGroupDefinitionInput(v *DescribeContainerGroupDefinitionInput) error { if v == nil { return nil @@ -3423,6 +3712,21 @@ func validateOpDescribeContainerGroupDefinitionInput(v *DescribeContainerGroupDe } } +func validateOpDescribeFleetDeploymentInput(v *DescribeFleetDeploymentInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeFleetDeploymentInput"} + if v.FleetId == nil { + invalidParams.Add(smithy.NewErrParamRequired("FleetId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeFleetEventsInput(v *DescribeFleetEventsInput) error { if v == nil { return nil @@ -3726,6 +4030,21 @@ func validateOpListComputeInput(v *ListComputeInput) error { } } +func validateOpListContainerGroupDefinitionVersionsInput(v *ListContainerGroupDefinitionVersionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListContainerGroupDefinitionVersionsInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListGameServersInput(v *ListGameServersInput) error { if v == nil { return nil @@ -4085,6 +4404,61 @@ func validateOpUpdateBuildInput(v *UpdateBuildInput) error { } } +func validateOpUpdateContainerFleetInput(v *UpdateContainerFleetInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateContainerFleetInput"} + if v.FleetId == nil { + invalidParams.Add(smithy.NewErrParamRequired("FleetId")) + } + if v.InstanceConnectionPortRange != nil { + if err := validateConnectionPortRange(v.InstanceConnectionPortRange); err != nil { + invalidParams.AddNested("InstanceConnectionPortRange", err.(smithy.InvalidParamsError)) + } + } + if v.InstanceInboundPermissionAuthorizations != nil { + if err := validateIpPermissionsList(v.InstanceInboundPermissionAuthorizations); err != nil { + invalidParams.AddNested("InstanceInboundPermissionAuthorizations", err.(smithy.InvalidParamsError)) + } + } + if v.InstanceInboundPermissionRevocations != nil { + if err := validateIpPermissionsList(v.InstanceInboundPermissionRevocations); err != nil { + invalidParams.AddNested("InstanceInboundPermissionRevocations", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateContainerGroupDefinitionInput(v *UpdateContainerGroupDefinitionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateContainerGroupDefinitionInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.GameServerContainerDefinition != nil { + if err := validateGameServerContainerDefinitionInput(v.GameServerContainerDefinition); err != nil { + invalidParams.AddNested("GameServerContainerDefinition", err.(smithy.InvalidParamsError)) + } + } + if v.SupportContainerDefinitions != nil { + if err := validateSupportContainerDefinitionInputList(v.SupportContainerDefinitions); err != nil { + invalidParams.AddNested("SupportContainerDefinitions", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateFleetAttributesInput(v *UpdateFleetAttributesInput) error { if v == nil { return nil diff --git a/service/kinesisanalytics/internal/endpoints/endpoints.go b/service/kinesisanalytics/internal/endpoints/endpoints.go index ed2055e1ff7..2ee2b7b7a76 100644 --- a/service/kinesisanalytics/internal/endpoints/endpoints.go +++ b/service/kinesisanalytics/internal/endpoints/endpoints.go @@ -172,6 +172,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-4", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-5", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, diff --git a/service/kinesisanalyticsv2/internal/endpoints/endpoints.go b/service/kinesisanalyticsv2/internal/endpoints/endpoints.go index 305e7dd3d2d..d01316aa3e7 100644 --- a/service/kinesisanalyticsv2/internal/endpoints/endpoints.go +++ b/service/kinesisanalyticsv2/internal/endpoints/endpoints.go @@ -172,6 +172,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-4", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-5", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, diff --git a/service/paymentcryptography/api_op_ListAliases.go b/service/paymentcryptography/api_op_ListAliases.go index b2a19b42f8d..fcbb245873f 100644 --- a/service/paymentcryptography/api_op_ListAliases.go +++ b/service/paymentcryptography/api_op_ListAliases.go @@ -12,7 +12,7 @@ import ( ) // Lists the aliases for all keys in the caller's Amazon Web Services account and -// Amazon Web Services Region. You can filter the list of aliases. For more +// Amazon Web Services Region. You can filter the aliases by keyARN . For more // information, see [Using aliases]in the Amazon Web Services Payment Cryptography User Guide. // // This is a paginated operation, which means that each response might contain @@ -57,6 +57,9 @@ func (c *Client) ListAliases(ctx context.Context, params *ListAliasesInput, optF type ListAliasesInput struct { + // The keyARN for which you want to list all aliases. + KeyArn *string + // Use this parameter to specify the maximum number of items to return. When this // value is present, Amazon Web Services Payment Cryptography does not return more // than the specified number of items, but it might return fewer. diff --git a/service/paymentcryptography/serializers.go b/service/paymentcryptography/serializers.go index 49b91095f90..e2d8de3c5f4 100644 --- a/service/paymentcryptography/serializers.go +++ b/service/paymentcryptography/serializers.go @@ -1926,6 +1926,11 @@ func awsAwsjson10_serializeOpDocumentListAliasesInput(v *ListAliasesInput, value object := value.Object() defer object.Close() + if v.KeyArn != nil { + ok := object.Key("KeyArn") + ok.String(*v.KeyArn) + } + if v.MaxResults != nil { ok := object.Key("MaxResults") ok.Integer(*v.MaxResults) diff --git a/service/paymentcryptography/types/types.go b/service/paymentcryptography/types/types.go index 1ef6868d06a..63541457c46 100644 --- a/service/paymentcryptography/types/types.go +++ b/service/paymentcryptography/types/types.go @@ -615,6 +615,8 @@ type Tag struct { Key *string // The value of the tag. + // + // This member is required. Value *string noSmithyDocumentSerde diff --git a/service/paymentcryptography/validators.go b/service/paymentcryptography/validators.go index 2edac7b1474..0da36a950e5 100644 --- a/service/paymentcryptography/validators.go +++ b/service/paymentcryptography/validators.go @@ -726,6 +726,9 @@ func validateTag(v *types.Tag) error { if v.Key == nil { invalidParams.Add(smithy.NewErrParamRequired("Key")) } + if v.Value == nil { + invalidParams.Add(smithy.NewErrParamRequired("Value")) + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/rds/api_op_CreateDBCluster.go b/service/rds/api_op_CreateDBCluster.go index 4897c02913f..2731dc27afe 100644 --- a/service/rds/api_op_CreateDBCluster.go +++ b/service/rds/api_op_CreateDBCluster.go @@ -353,7 +353,7 @@ type CreateDBClusterInput struct { // version on your DB cluster past the end of standard support for that engine // version. For more information, see the following sections: // - // - Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support]in the Amazon Aurora User Guide + // - Amazon Aurora - [Using Amazon RDS Extended Support]in the Amazon Aurora User Guide // // - Amazon RDS - [Using Amazon RDS Extended Support]in the Amazon RDS User Guide // diff --git a/service/rds/api_op_RestoreDBClusterFromS3.go b/service/rds/api_op_RestoreDBClusterFromS3.go index 0434d30ff2e..0ea3b0259a2 100644 --- a/service/rds/api_op_RestoreDBClusterFromS3.go +++ b/service/rds/api_op_RestoreDBClusterFromS3.go @@ -221,7 +221,7 @@ type RestoreDBClusterFromS3Input struct { // version on your DB cluster past the end of standard support for that engine // version. For more information, see the following sections: // - // - Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support]in the Amazon Aurora User Guide + // - Amazon Aurora - [Using Amazon RDS Extended Support]in the Amazon Aurora User Guide // // - Amazon RDS - [Using Amazon RDS Extended Support]in the Amazon RDS User Guide // diff --git a/service/rds/api_op_RestoreDBClusterFromSnapshot.go b/service/rds/api_op_RestoreDBClusterFromSnapshot.go index 7719803c435..9e8d5ecbceb 100644 --- a/service/rds/api_op_RestoreDBClusterFromSnapshot.go +++ b/service/rds/api_op_RestoreDBClusterFromSnapshot.go @@ -248,7 +248,7 @@ type RestoreDBClusterFromSnapshotInput struct { // version on your DB cluster past the end of standard support for that engine // version. For more information, see the following sections: // - // - Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support]in the Amazon Aurora User Guide + // - Amazon Aurora - [Using Amazon RDS Extended Support]in the Amazon Aurora User Guide // // - Amazon RDS - [Using Amazon RDS Extended Support]in the Amazon RDS User Guide // diff --git a/service/rds/api_op_RestoreDBClusterToPointInTime.go b/service/rds/api_op_RestoreDBClusterToPointInTime.go index 40102b17c20..b34bcbdcdbe 100644 --- a/service/rds/api_op_RestoreDBClusterToPointInTime.go +++ b/service/rds/api_op_RestoreDBClusterToPointInTime.go @@ -209,7 +209,7 @@ type RestoreDBClusterToPointInTimeInput struct { // version on your DB cluster past the end of standard support for that engine // version. For more information, see the following sections: // - // - Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support]in the Amazon Aurora User Guide + // - Amazon Aurora - [Using Amazon RDS Extended Support]in the Amazon Aurora User Guide // // - Amazon RDS - [Using Amazon RDS Extended Support]in the Amazon RDS User Guide // From 10b8b144498e449dc14d8f1b152a18cccaac04b8 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Tue, 12 Nov 2024 19:45:50 +0000 Subject: [PATCH 12/20] Release 2024-11-12 --- .changelog/18e4a35cbe7d43bc90a35e0d5da4f75a.json | 8 -------- .changelog/5d830cbeeecd474fbdda500e84658c1b.json | 8 -------- .changelog/9503de551b9743b6b67cd2077a3fd9fe.json | 8 -------- .changelog/b167503de3914475bd4308d710486b13.json | 8 -------- .changelog/c3e126caecbf4123a4f5ccbb9dc0a2a0.json | 8 -------- .changelog/f4da35714b524c008a1ff49ac33b2961.json | 8 -------- CHANGELOG.md | 16 ++++++++++++++++ service/codebuild/CHANGELOG.md | 4 ++++ service/codebuild/go_module_metadata.go | 2 +- service/controltower/CHANGELOG.md | 4 ++++ service/controltower/go_module_metadata.go | 2 +- service/fis/CHANGELOG.md | 4 ++++ service/fis/go_module_metadata.go | 2 +- service/gamelift/CHANGELOG.md | 4 ++++ service/gamelift/go_module_metadata.go | 2 +- service/internal/integrationtest/go.mod | 6 +++--- service/kinesisanalytics/CHANGELOG.md | 4 ++++ service/kinesisanalytics/go_module_metadata.go | 2 +- service/kinesisanalyticsv2/CHANGELOG.md | 4 ++++ service/kinesisanalyticsv2/go_module_metadata.go | 2 +- service/paymentcryptography/CHANGELOG.md | 4 ++++ .../paymentcryptography/go_module_metadata.go | 2 +- service/rds/CHANGELOG.md | 4 ++++ service/rds/go_module_metadata.go | 2 +- 24 files changed, 59 insertions(+), 59 deletions(-) delete mode 100644 .changelog/18e4a35cbe7d43bc90a35e0d5da4f75a.json delete mode 100644 .changelog/5d830cbeeecd474fbdda500e84658c1b.json delete mode 100644 .changelog/9503de551b9743b6b67cd2077a3fd9fe.json delete mode 100644 .changelog/b167503de3914475bd4308d710486b13.json delete mode 100644 .changelog/c3e126caecbf4123a4f5ccbb9dc0a2a0.json delete mode 100644 .changelog/f4da35714b524c008a1ff49ac33b2961.json diff --git a/.changelog/18e4a35cbe7d43bc90a35e0d5da4f75a.json b/.changelog/18e4a35cbe7d43bc90a35e0d5da4f75a.json deleted file mode 100644 index 555ccfc0d84..00000000000 --- a/.changelog/18e4a35cbe7d43bc90a35e0d5da4f75a.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "18e4a35c-be7d-43bc-90a3-5e0d5da4f75a", - "type": "feature", - "description": "Added ResetEnabledControl API.", - "modules": [ - "service/controltower" - ] -} \ No newline at end of file diff --git a/.changelog/5d830cbeeecd474fbdda500e84658c1b.json b/.changelog/5d830cbeeecd474fbdda500e84658c1b.json deleted file mode 100644 index 2357a79367d..00000000000 --- a/.changelog/5d830cbeeecd474fbdda500e84658c1b.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "5d830cbe-eecd-474f-bdda-500e84658c1b", - "type": "feature", - "description": "Updated ListAliases API with KeyArn filter.", - "modules": [ - "service/paymentcryptography" - ] -} \ No newline at end of file diff --git a/.changelog/9503de551b9743b6b67cd2077a3fd9fe.json b/.changelog/9503de551b9743b6b67cd2077a3fd9fe.json deleted file mode 100644 index 75eddaa31b9..00000000000 --- a/.changelog/9503de551b9743b6b67cd2077a3fd9fe.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "9503de55-1b97-43b6-b67c-d2077a3fd9fe", - "type": "feature", - "description": "Amazon GameLift releases container fleets support for general availability. Deploy Linux-based containerized game server software for hosting on Amazon GameLift.", - "modules": [ - "service/gamelift" - ] -} \ No newline at end of file diff --git a/.changelog/b167503de3914475bd4308d710486b13.json b/.changelog/b167503de3914475bd4308d710486b13.json deleted file mode 100644 index 3503982b21e..00000000000 --- a/.changelog/b167503de3914475bd4308d710486b13.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "b167503d-e391-4475-bd43-08d710486b13", - "type": "documentation", - "description": "Updates Amazon RDS documentation for Amazon RDS Extended Support for Amazon Aurora MySQL.", - "modules": [ - "service/rds" - ] -} \ No newline at end of file diff --git a/.changelog/c3e126caecbf4123a4f5ccbb9dc0a2a0.json b/.changelog/c3e126caecbf4123a4f5ccbb9dc0a2a0.json deleted file mode 100644 index bad36180f63..00000000000 --- a/.changelog/c3e126caecbf4123a4f5ccbb9dc0a2a0.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "c3e126ca-ecbf-4123-a4f5-ccbb9dc0a2a0", - "type": "feature", - "description": "AWS CodeBuild now supports non-containerized Linux and Windows builds on Reserved Capacity.", - "modules": [ - "service/codebuild" - ] -} \ No newline at end of file diff --git a/.changelog/f4da35714b524c008a1ff49ac33b2961.json b/.changelog/f4da35714b524c008a1ff49ac33b2961.json deleted file mode 100644 index fdb23d68b56..00000000000 --- a/.changelog/f4da35714b524c008a1ff49ac33b2961.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "f4da3571-4b52-4c00-8a1f-f49ac33b2961", - "type": "feature", - "description": "This release adds support for generating experiment reports with the experiment report configuration", - "modules": [ - "service/fis" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 88b0a6ef0e6..0487506decf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +# Release (2024-11-12) + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/codebuild`: [v1.49.0](service/codebuild/CHANGELOG.md#v1490-2024-11-12) + * **Feature**: AWS CodeBuild now supports non-containerized Linux and Windows builds on Reserved Capacity. +* `github.com/aws/aws-sdk-go-v2/service/controltower`: [v1.19.0](service/controltower/CHANGELOG.md#v1190-2024-11-12) + * **Feature**: Added ResetEnabledControl API. +* `github.com/aws/aws-sdk-go-v2/service/fis`: [v1.31.0](service/fis/CHANGELOG.md#v1310-2024-11-12) + * **Feature**: This release adds support for generating experiment reports with the experiment report configuration +* `github.com/aws/aws-sdk-go-v2/service/gamelift`: [v1.37.0](service/gamelift/CHANGELOG.md#v1370-2024-11-12) + * **Feature**: Amazon GameLift releases container fleets support for general availability. Deploy Linux-based containerized game server software for hosting on Amazon GameLift. +* `github.com/aws/aws-sdk-go-v2/service/paymentcryptography`: [v1.16.0](service/paymentcryptography/CHANGELOG.md#v1160-2024-11-12) + * **Feature**: Updated ListAliases API with KeyArn filter. +* `github.com/aws/aws-sdk-go-v2/service/rds`: [v1.89.2](service/rds/CHANGELOG.md#v1892-2024-11-12) + * **Documentation**: Updates Amazon RDS documentation for Amazon RDS Extended Support for Amazon Aurora MySQL. + # Release (2024-11-11) ## Module Highlights diff --git a/service/codebuild/CHANGELOG.md b/service/codebuild/CHANGELOG.md index 90cbd27a8e6..36f8afa351c 100644 --- a/service/codebuild/CHANGELOG.md +++ b/service/codebuild/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.49.0 (2024-11-12) + +* **Feature**: AWS CodeBuild now supports non-containerized Linux and Windows builds on Reserved Capacity. + # v1.48.1 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/codebuild/go_module_metadata.go b/service/codebuild/go_module_metadata.go index ccab2d9d0e1..476e489421d 100644 --- a/service/codebuild/go_module_metadata.go +++ b/service/codebuild/go_module_metadata.go @@ -3,4 +3,4 @@ package codebuild // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.48.1" +const goModuleVersion = "1.49.0" diff --git a/service/controltower/CHANGELOG.md b/service/controltower/CHANGELOG.md index 936f12ec248..b7eb0c93450 100644 --- a/service/controltower/CHANGELOG.md +++ b/service/controltower/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.19.0 (2024-11-12) + +* **Feature**: Added ResetEnabledControl API. + # v1.18.6 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/controltower/go_module_metadata.go b/service/controltower/go_module_metadata.go index c186de64b32..3b816ce355b 100644 --- a/service/controltower/go_module_metadata.go +++ b/service/controltower/go_module_metadata.go @@ -3,4 +3,4 @@ package controltower // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.18.6" +const goModuleVersion = "1.19.0" diff --git a/service/fis/CHANGELOG.md b/service/fis/CHANGELOG.md index f196f94125d..ab4bcf08514 100644 --- a/service/fis/CHANGELOG.md +++ b/service/fis/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.31.0 (2024-11-12) + +* **Feature**: This release adds support for generating experiment reports with the experiment report configuration + # v1.30.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/fis/go_module_metadata.go b/service/fis/go_module_metadata.go index 428790dba41..fff845d7a75 100644 --- a/service/fis/go_module_metadata.go +++ b/service/fis/go_module_metadata.go @@ -3,4 +3,4 @@ package fis // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.30.5" +const goModuleVersion = "1.31.0" diff --git a/service/gamelift/CHANGELOG.md b/service/gamelift/CHANGELOG.md index 0ccae2948ab..b39983abc5a 100644 --- a/service/gamelift/CHANGELOG.md +++ b/service/gamelift/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.37.0 (2024-11-12) + +* **Feature**: Amazon GameLift releases container fleets support for general availability. Deploy Linux-based containerized game server software for hosting on Amazon GameLift. + # v1.36.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/gamelift/go_module_metadata.go b/service/gamelift/go_module_metadata.go index 0f44b5dc723..0e2f6db1a15 100644 --- a/service/gamelift/go_module_metadata.go +++ b/service/gamelift/go_module_metadata.go @@ -3,4 +3,4 @@ package gamelift // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.36.5" +const goModuleVersion = "1.37.0" diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index 15b7e8034e9..896eb751582 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -16,7 +16,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.6 github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.44.5 github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.42.4 - github.com/aws/aws-sdk-go-v2/service/codebuild v1.48.1 + github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.0 github.com/aws/aws-sdk-go-v2/service/codecommit v1.27.5 github.com/aws/aws-sdk-go-v2/service/codedeploy v1.29.5 github.com/aws/aws-sdk-go-v2/service/codepipeline v1.36.3 @@ -42,7 +42,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/emr v1.46.3 github.com/aws/aws-sdk-go-v2/service/eventbridge v1.35.5 github.com/aws/aws-sdk-go-v2/service/firehose v1.35.0 - github.com/aws/aws-sdk-go-v2/service/gamelift v1.36.5 + github.com/aws/aws-sdk-go-v2/service/gamelift v1.37.0 github.com/aws/aws-sdk-go-v2/service/glacier v1.26.5 github.com/aws/aws-sdk-go-v2/service/glue v1.101.2 github.com/aws/aws-sdk-go-v2/service/health v1.28.5 @@ -57,7 +57,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/neptune v1.35.4 github.com/aws/aws-sdk-go-v2/service/pinpointemail v1.23.5 github.com/aws/aws-sdk-go-v2/service/polly v1.45.5 - github.com/aws/aws-sdk-go-v2/service/rds v1.89.1 + github.com/aws/aws-sdk-go-v2/service/rds v1.89.2 github.com/aws/aws-sdk-go-v2/service/redshift v1.51.1 github.com/aws/aws-sdk-go-v2/service/rekognition v1.45.6 github.com/aws/aws-sdk-go-v2/service/route53 v1.46.1 diff --git a/service/kinesisanalytics/CHANGELOG.md b/service/kinesisanalytics/CHANGELOG.md index 5a853281fd5..95cca4d50e4 100644 --- a/service/kinesisanalytics/CHANGELOG.md +++ b/service/kinesisanalytics/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.25.6 (2024-11-12) + +* No change notes available for this release. + # v1.25.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/kinesisanalytics/go_module_metadata.go b/service/kinesisanalytics/go_module_metadata.go index 41a44b6687a..fcb2749b86c 100644 --- a/service/kinesisanalytics/go_module_metadata.go +++ b/service/kinesisanalytics/go_module_metadata.go @@ -3,4 +3,4 @@ package kinesisanalytics // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.25.5" +const goModuleVersion = "1.25.6" diff --git a/service/kinesisanalyticsv2/CHANGELOG.md b/service/kinesisanalyticsv2/CHANGELOG.md index 69be4375e4e..4e3e8199788 100644 --- a/service/kinesisanalyticsv2/CHANGELOG.md +++ b/service/kinesisanalyticsv2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.31.6 (2024-11-12) + +* No change notes available for this release. + # v1.31.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/kinesisanalyticsv2/go_module_metadata.go b/service/kinesisanalyticsv2/go_module_metadata.go index 4fcfe3ddfdc..3b6ccf4de68 100644 --- a/service/kinesisanalyticsv2/go_module_metadata.go +++ b/service/kinesisanalyticsv2/go_module_metadata.go @@ -3,4 +3,4 @@ package kinesisanalyticsv2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.31.5" +const goModuleVersion = "1.31.6" diff --git a/service/paymentcryptography/CHANGELOG.md b/service/paymentcryptography/CHANGELOG.md index d862f72c9f8..abea0e2ebb2 100644 --- a/service/paymentcryptography/CHANGELOG.md +++ b/service/paymentcryptography/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.16.0 (2024-11-12) + +* **Feature**: Updated ListAliases API with KeyArn filter. + # v1.15.3 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/paymentcryptography/go_module_metadata.go b/service/paymentcryptography/go_module_metadata.go index 22f6c420c32..df3040725bc 100644 --- a/service/paymentcryptography/go_module_metadata.go +++ b/service/paymentcryptography/go_module_metadata.go @@ -3,4 +3,4 @@ package paymentcryptography // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.15.3" +const goModuleVersion = "1.16.0" diff --git a/service/rds/CHANGELOG.md b/service/rds/CHANGELOG.md index d7e96cc62b6..d9ec07ffd30 100644 --- a/service/rds/CHANGELOG.md +++ b/service/rds/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.89.2 (2024-11-12) + +* **Documentation**: Updates Amazon RDS documentation for Amazon RDS Extended Support for Amazon Aurora MySQL. + # v1.89.1 (2024-11-06) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/rds/go_module_metadata.go b/service/rds/go_module_metadata.go index 40a567a3e75..b02effa85bf 100644 --- a/service/rds/go_module_metadata.go +++ b/service/rds/go_module_metadata.go @@ -3,4 +3,4 @@ package rds // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.89.1" +const goModuleVersion = "1.89.2" From 673ae94b2b6a773f7d4daca9b43c6e0aff3d7020 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 13 Nov 2024 19:08:07 +0000 Subject: [PATCH 13/20] Update API model --- .../aws-models/accessanalyzer.json | 53 +- .../aws-models/application-signals.json | 53 + codegen/sdk-codegen/aws-models/b2bi.json | 122 ++- codegen/sdk-codegen/aws-models/billing.json | 918 ++++++++++++++++++ .../sdk-codegen/aws-models/cloudtrail.json | 141 ++- codegen/sdk-codegen/aws-models/dynamodb.json | 126 +++ codegen/sdk-codegen/aws-models/ec2.json | 44 +- .../aws-models/internetmonitor.json | 6 +- .../sdk-codegen/aws-models/mediaconvert.json | 28 +- .../sdk-codegen/aws-models/organizations.json | 32 +- 10 files changed, 1480 insertions(+), 43 deletions(-) create mode 100644 codegen/sdk-codegen/aws-models/billing.json diff --git a/codegen/sdk-codegen/aws-models/accessanalyzer.json b/codegen/sdk-codegen/aws-models/accessanalyzer.json index 98a664748d4..1e9fd2345fd 100644 --- a/codegen/sdk-codegen/aws-models/accessanalyzer.json +++ b/codegen/sdk-codegen/aws-models/accessanalyzer.json @@ -19,7 +19,7 @@ "target": "com.amazonaws.accessanalyzer#ResourcesList", "traits": { "smithy.api#default": [], - "smithy.api#documentation": "

A list of resources for the access permissions. Any strings that can be used as a\n resource in an IAM policy can be used in the list of resources to check.

", + "smithy.api#documentation": "

A list of resources for the access permissions. Any strings that can be used as an\n Amazon Resource Name (ARN) in an IAM policy can be used in the list of resources to\n check. You can only use a wildcard in the portion of the ARN that specifies the resource\n ID.

", "smithy.api#length": { "max": 100 } @@ -1433,6 +1433,12 @@ "traits": { "smithy.api#documentation": "

The sources of the finding. This indicates how the access that generated the finding is\n granted. It is populated for Amazon S3 bucket findings.

" } + }, + "resourceControlPolicyRestriction": { + "target": "com.amazonaws.accessanalyzer#ResourceControlPolicyRestriction", + "traits": { + "smithy.api#documentation": "

The type of restriction applied to the finding by the resource owner with an Organizations\n resource control policy (RCP).

" + } } }, "traits": { @@ -2189,7 +2195,7 @@ "access": { "target": "com.amazonaws.accessanalyzer#AccessList", "traits": { - "smithy.api#documentation": "

An access object containing the permissions that shouldn't be granted by the specified\n policy. If only actions are specified, IAM Access Analyzer checks for access of the actions on\n all resources in the policy. If only resources are specified, then IAM Access Analyzer checks\n which actions have access to the specified resources. If both actions and resources are\n specified, then IAM Access Analyzer checks which of the specified actions have access to the\n specified resources.

", + "smithy.api#documentation": "

An access object containing the permissions that shouldn't be granted by the specified\n policy. If only actions are specified, IAM Access Analyzer checks for access to peform at least\n one of the actions on any resource in the policy. If only resources are specified, then\n IAM Access Analyzer checks for access to perform any action on at least one of the resources. If\n both actions and resources are specified, IAM Access Analyzer checks for access to perform at\n least one of the specified actions on at least one of the specified resources.

", "smithy.api#length": { "max": 1 }, @@ -2199,7 +2205,7 @@ "policyType": { "target": "com.amazonaws.accessanalyzer#AccessCheckPolicyType", "traits": { - "smithy.api#documentation": "

The type of policy. Identity policies grant permissions to IAM principals. Identity\n policies include managed and inline policies for IAM roles, users, and groups.

\n

Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust\n policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic\n input such as identity policy or resource policy or a specific input such as managed policy\n or Amazon S3 bucket policy.

", + "smithy.api#documentation": "

The type of policy. Identity policies grant permissions to IAM principals. Identity\n policies include managed and inline policies for IAM roles, users, and groups.

\n

Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust\n policies for IAM roles and bucket policies for Amazon S3 buckets.

", "smithy.api#required": {} } } @@ -3270,6 +3276,12 @@ "traits": { "smithy.api#documentation": "

The sources of the external access finding. This indicates how the access that generated\n the finding is granted. It is populated for Amazon S3 bucket findings.

" } + }, + "resourceControlPolicyRestriction": { + "target": "com.amazonaws.accessanalyzer#ResourceControlPolicyRestriction", + "traits": { + "smithy.api#documentation": "

The type of restriction applied to the finding by the resource owner with an Organizations\n resource control policy (RCP).

" + } } }, "traits": { @@ -3379,6 +3391,12 @@ "traits": { "smithy.api#documentation": "

The sources of the finding. This indicates how the access that generated the finding is\n granted. It is populated for Amazon S3 bucket findings.

" } + }, + "resourceControlPolicyRestriction": { + "target": "com.amazonaws.accessanalyzer#ResourceControlPolicyRestriction", + "traits": { + "smithy.api#documentation": "

The type of restriction applied to the finding by the resource owner with an Organizations\n resource control policy (RCP).

" + } } }, "traits": { @@ -3655,6 +3673,12 @@ "traits": { "smithy.api#documentation": "

The sources of the finding. This indicates how the access that generated the finding is\n granted. It is populated for Amazon S3 bucket findings.

" } + }, + "resourceControlPolicyRestriction": { + "target": "com.amazonaws.accessanalyzer#ResourceControlPolicyRestriction", + "traits": { + "smithy.api#documentation": "

The type of restriction applied to the finding by the resource owner with an Organizations\n resource control policy (RCP).

" + } } }, "traits": { @@ -6183,6 +6207,10 @@ { "value": "SERVICE_CONTROL_POLICY", "name": "SERVICE_CONTROL_POLICY" + }, + { + "value": "RESOURCE_CONTROL_POLICY", + "name": "RESOURCE_CONTROL_POLICY" } ] } @@ -6490,6 +6518,25 @@ "smithy.api#pattern": "^arn:[^:]*:[^:]*:[^:]*:[^:]*:.*$" } }, + "com.amazonaws.accessanalyzer#ResourceControlPolicyRestriction": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "APPLICABLE", + "name": "APPLICABLE" + }, + { + "value": "FAILED_TO_EVALUATE_RCP", + "name": "FAILED_TO_EVALUATE_RCP" + }, + { + "value": "NOT_APPLICABLE", + "name": "NOT_APPLICABLE" + } + ] + } + }, "com.amazonaws.accessanalyzer#ResourceNotFoundException": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/application-signals.json b/codegen/sdk-codegen/aws-models/application-signals.json index a42019e9517..7d10ce4d952 100644 --- a/codegen/sdk-codegen/aws-models/application-signals.json +++ b/codegen/sdk-codegen/aws-models/application-signals.json @@ -548,6 +548,41 @@ "com.amazonaws.applicationsignals#BudgetSecondsRemaining": { "type": "integer" }, + "com.amazonaws.applicationsignals#BurnRateConfiguration": { + "type": "structure", + "members": { + "LookBackWindowMinutes": { + "target": "com.amazonaws.applicationsignals#BurnRateLookBackWindowMinutes", + "traits": { + "smithy.api#documentation": "

The number of minutes to use as the look-back window.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This object defines the length of the look-back window used to calculate one burn rate metric\n for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of\n exactly 1 indicates that the SLO goal will be met exactly.

\n

For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following:

\n

\n burn rate = error rate over the look-back window / (1 - attainment goal percentage)\n

\n

For more information about burn rates, see Calculate burn rates.

" + } + }, + "com.amazonaws.applicationsignals#BurnRateConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.applicationsignals#BurnRateConfiguration" + }, + "traits": { + "smithy.api#length": { + "max": 10 + } + } + }, + "com.amazonaws.applicationsignals#BurnRateLookBackWindowMinutes": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10080 + } + } + }, "com.amazonaws.applicationsignals#CalendarInterval": { "type": "structure", "members": { @@ -674,6 +709,12 @@ "traits": { "smithy.api#documentation": "

A list of key-value pairs to associate with the SLO. You can associate as many as 50 tags with an SLO.\n To be able to associate tags with the SLO when you create the SLO, you must\n have the cloudwatch:TagResource permission.

\n

Tags can help you organize and categorize your resources. You can also use them to scope user\n permissions by granting a user\n permission to access or change only resources with certain tag values.

" } + }, + "BurnRateConfigurations": { + "target": "com.amazonaws.applicationsignals#BurnRateConfigurations", + "traits": { + "smithy.api#documentation": "

Use this array to create burn rates for this SLO. Each \n burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

" + } } }, "traits": { @@ -2543,6 +2584,12 @@ "traits": { "smithy.api#required": {} } + }, + "BurnRateConfigurations": { + "target": "com.amazonaws.applicationsignals#BurnRateConfigurations", + "traits": { + "smithy.api#documentation": "

Each object in this array defines the length of the look-back window used to calculate one burn rate metric\n for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

" + } } }, "traits": { @@ -3392,6 +3439,12 @@ "traits": { "smithy.api#documentation": "

A structure that contains the attributes that determine the goal of the SLO. This includes\n the time period for evaluation and the attainment threshold.

" } + }, + "BurnRateConfigurations": { + "target": "com.amazonaws.applicationsignals#BurnRateConfigurations", + "traits": { + "smithy.api#documentation": "

Use this array to create burn rates for this SLO. Each \n burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

" + } } }, "traits": { diff --git a/codegen/sdk-codegen/aws-models/b2bi.json b/codegen/sdk-codegen/aws-models/b2bi.json index 796a567f582..e412038aaa8 100644 --- a/codegen/sdk-codegen/aws-models/b2bi.json +++ b/codegen/sdk-codegen/aws-models/b2bi.json @@ -33,6 +33,9 @@ { "target": "com.amazonaws.b2bi#CreateStarterMappingTemplate" }, + { + "target": "com.amazonaws.b2bi#GenerateMapping" + }, { "target": "com.amazonaws.b2bi#GetTransformerJob" }, @@ -2473,6 +2476,123 @@ } } }, + "com.amazonaws.b2bi#GenerateMapping": { + "type": "operation", + "input": { + "target": "com.amazonaws.b2bi#GenerateMappingRequest" + }, + "output": { + "target": "com.amazonaws.b2bi#GenerateMappingResponse" + }, + "errors": [ + { + "target": "com.amazonaws.b2bi#AccessDeniedException" + }, + { + "target": "com.amazonaws.b2bi#InternalServerException" + }, + { + "target": "com.amazonaws.b2bi#ThrottlingException" + }, + { + "target": "com.amazonaws.b2bi#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Takes sample input and output documents and uses Amazon Bedrock to generate a mapping automatically. Depending on the accuracy and other factors, you can then edit the mapping for your needs.

\n \n

Before you can use the AI-assisted feature for Amazon Web Services B2B Data Interchange you must enable models in Amazon Bedrock. For details, see AI-assisted template mapping prerequisites in\n the Amazon Web Services B2B Data Interchange User guide.

\n
", + "smithy.api#examples": [ + { + "title": "Sample GenerateMapping call", + "input": { + "inputFileContent": "Sample input file content", + "outputFileContent": "Sample output file content", + "mappingType": "JSONATA" + }, + "output": { + "mappingTemplate": "Sample mapping content", + "mappingAccuracy": 0.95 + } + } + ], + "smithy.api#http": { + "uri": "/generate-mapping", + "method": "POST" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.b2bi#GenerateMappingInputFileContent": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5000000 + } + } + }, + "com.amazonaws.b2bi#GenerateMappingOutputFileContent": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 5000000 + } + } + }, + "com.amazonaws.b2bi#GenerateMappingRequest": { + "type": "structure", + "members": { + "inputFileContent": { + "target": "com.amazonaws.b2bi#GenerateMappingInputFileContent", + "traits": { + "smithy.api#documentation": "

Provide the contents of a sample X12 EDI file (for inbound EDI) or JSON/XML file (for outbound EDI) to use as a starting point for the mapping.

", + "smithy.api#required": {} + } + }, + "outputFileContent": { + "target": "com.amazonaws.b2bi#GenerateMappingOutputFileContent", + "traits": { + "smithy.api#documentation": "

Provide the contents of a sample X12 EDI file (for outbound EDI) or JSON/XML file (for inbound EDI) to use as a target for the mapping.

", + "smithy.api#required": {} + } + }, + "mappingType": { + "target": "com.amazonaws.b2bi#MappingType", + "traits": { + "smithy.api#documentation": "

Specify the mapping type: either JSONATA or XSLT.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.b2bi#GenerateMappingResponse": { + "type": "structure", + "members": { + "mappingTemplate": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Returns a mapping template based on your inputs.

", + "smithy.api#required": {} + } + }, + "mappingAccuracy": { + "target": "smithy.api#Float", + "traits": { + "smithy.api#documentation": "

Returns a percentage that estimates the accuracy of the generated mapping.

", + "smithy.api#range": { + "min": 0.0, + "max": 1.0 + } + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.b2bi#GetCapability": { "type": "operation", "input": { @@ -5970,7 +6090,7 @@ "status": { "target": "com.amazonaws.b2bi#TransformerStatus", "traits": { - "smithy.api#documentation": "

Specifies the transformer's status. You can update the state of the transformer, from active to inactive, or inactive to active.

" + "smithy.api#documentation": "

Specifies the transformer's status. You can update the state of the transformer from inactive to active.

" } }, "fileFormat": { diff --git a/codegen/sdk-codegen/aws-models/billing.json b/codegen/sdk-codegen/aws-models/billing.json new file mode 100644 index 00000000000..5b6c49d7f85 --- /dev/null +++ b/codegen/sdk-codegen/aws-models/billing.json @@ -0,0 +1,918 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.billing#AWSBilling": { + "type": "service", + "version": "2023-09-07", + "operations": [ + { + "target": "com.amazonaws.billing#ListBillingViews" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "Billing", + "endpointPrefix": "billing", + "arnNamespace": "billing", + "cloudTrailEventSource": "billing.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "billing" + }, + "aws.endpoints#dualStackOnlyEndpoints": {}, + "aws.endpoints#standardPartitionalEndpoints": { + "endpointPatternType": "service_region_dnsSuffix" + }, + "aws.protocols#awsJson1_0": {}, + "smithy.api#documentation": "

\n You can use the Billing API to programatically list the billing views available to you for a given time period. A billing view represents a set of billing data.\n

\n

The Billing API provides the following endpoint:

\n

\n https://billing.us-east-1.api.aws\n

", + "smithy.api#title": "AWS Billing", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://billing-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://billing.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://billing-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://billing.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://billing-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://billing.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://billing-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://billing.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://billing-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://billing.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://billing-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://billing.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://billing-fips.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://billing.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://billing-fips.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://billing.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": false + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.billing#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.billing#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "BillingAccessDenied", + "httpResponseCode": 403 + }, + "smithy.api#documentation": "

You don't have sufficient access to perform this action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.billing#AccountId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[0-9]{12}$" + } + }, + "com.amazonaws.billing#ActiveTimeRange": { + "type": "structure", + "members": { + "activeAfterInclusive": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The inclusive time range start date.

", + "smithy.api#required": {} + } + }, + "activeBeforeInclusive": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

\n The inclusive time range end date.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

A time range with a start and end time.

" + } + }, + "com.amazonaws.billing#BillingViewArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws[a-z-]*:(billing)::[0-9]{12}:billingview/[a-zA-Z0-9_\\+=\\.\\-@]{1,43}$" + } + }, + "com.amazonaws.billing#BillingViewList": { + "type": "list", + "member": { + "target": "com.amazonaws.billing#BillingViewListElement" + } + }, + "com.amazonaws.billing#BillingViewListElement": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.billing#BillingViewArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that can be used to uniquely identify the billing view.\n

" + } + }, + "name": { + "target": "com.amazonaws.billing#BillingViewName", + "traits": { + "smithy.api#documentation": "

\n A list of names of the Billing view.\n

" + } + }, + "ownerAccountId": { + "target": "com.amazonaws.billing#AccountId", + "traits": { + "smithy.api#documentation": "

\n The list of owners of the Billing view.\n

" + } + }, + "billingViewType": { + "target": "com.amazonaws.billing#BillingViewType", + "traits": { + "smithy.api#documentation": "

The type of billing view.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A representation of a billing view.

" + } + }, + "com.amazonaws.billing#BillingViewName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[ a-zA-Z0-9_\\+=\\.\\-@]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.billing#BillingViewType": { + "type": "enum", + "members": { + "PRIMARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRIMARY" + } + }, + "BILLING_GROUP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BILLING_GROUP" + } + } + } + }, + "com.amazonaws.billing#BillingViewsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.billing#ErrorMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 1024 + } + } + }, + "com.amazonaws.billing#FieldName": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 100 + } + } + }, + "com.amazonaws.billing#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.billing#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "BillingInternalServer", + "httpResponseCode": 500 + }, + "smithy.api#documentation": "

The request processing failed because of an unknown error, exception, or failure.\n

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.billing#ListBillingViews": { + "type": "operation", + "input": { + "target": "com.amazonaws.billing#ListBillingViewsRequest" + }, + "output": { + "target": "com.amazonaws.billing#ListBillingViewsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.billing#AccessDeniedException" + }, + { + "target": "com.amazonaws.billing#InternalServerException" + }, + { + "target": "com.amazonaws.billing#ThrottlingException" + }, + { + "target": "com.amazonaws.billing#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the billing views available for a given time period.\n

\n

Every Amazon Web Services account has a unique PRIMARY billing view that represents the billing data available by default. Accounts that use Billing Conductor also have BILLING_GROUP billing views representing pro forma costs associated with each created billing group.

", + "smithy.api#examples": [ + { + "title": "Invoke ListBillingViews", + "input": { + "activeTimeRange": { + "activeAfterInclusive": 1719792000, + "activeBeforeInclusive": 1.722470399999E9 + } + }, + "output": { + "billingViews": [ + { + "arn": "arn:aws:billing::123456789101:billingview/primary", + "billingViewType": "PRIMARY", + "name": "Primary Billing View Account 123456789101", + "ownerAccountId": "123456789101" + } + ] + } + }, + { + "title": "Error example for ListBillingViews", + "input": { + "activeTimeRange": { + "activeAfterInclusive": 1719792001, + "activeBeforeInclusive": 1719792000 + } + }, + "error": { + "shapeId": "com.amazonaws.billing#ValidationException", + "content": { + "message": "Failed to get billing view data for an invalid time range.", + "reason": "other" + } + }, + "allowConstraintErrors": true + } + ], + "smithy.api#http": { + "method": "POST", + "uri": "/", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "billingViews" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "ListBillingViewsSuccess", + "params": { + "activeTimeRange": { + "activeAfterInclusive": 1719792000, + "activeBeforeInclusive": 1.722470399999E9 + } + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-east-1" + } + } + ] + } + }, + "com.amazonaws.billing#ListBillingViewsRequest": { + "type": "structure", + "members": { + "activeTimeRange": { + "target": "com.amazonaws.billing#ActiveTimeRange", + "traits": { + "smithy.api#documentation": "

\n The time range for the billing views listed. PRIMARY billing view is always listed. BILLING_GROUP billing views are listed for time ranges when the associated billing group resource in Billing Conductor is active. The time range must be within one calendar month.\n

", + "smithy.api#required": {} + } + }, + "maxResults": { + "target": "com.amazonaws.billing#BillingViewsMaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of billing views to retrieve. Default is 100.\n

" + } + }, + "nextToken": { + "target": "com.amazonaws.billing#PageToken", + "traits": { + "smithy.api#documentation": "

The pagination token that is used on subsequent calls to list billing views.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.billing#ListBillingViewsResponse": { + "type": "structure", + "members": { + "billingViews": { + "target": "com.amazonaws.billing#BillingViewList", + "traits": { + "smithy.api#documentation": "

A list of BillingViewListElement retrieved.

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.billing#PageToken", + "traits": { + "smithy.api#documentation": "

The pagination token to use on subsequent calls to list billing views.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.billing#PageToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2047 + } + } + }, + "com.amazonaws.billing#ThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.billing#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "BillingThrottling", + "httpResponseCode": 429 + }, + "smithy.api#documentation": "

The request was denied due to request throttling.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, + "com.amazonaws.billing#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.billing#ErrorMessage", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.billing#ValidationExceptionReason", + "traits": { + "smithy.api#documentation": "

The input fails to satisfy the constraints specified by an Amazon Web Services service.

", + "smithy.api#required": {} + } + }, + "fieldList": { + "target": "com.amazonaws.billing#ValidationExceptionFieldList", + "traits": { + "smithy.api#documentation": "

The input fails to satisfy the constraints specified by an Amazon Web Services service.

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "BillingValidation", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The input fails to satisfy the constraints specified by an Amazon Web Services service.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.billing#ValidationExceptionField": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.billing#FieldName", + "traits": { + "smithy.api#documentation": "

The name of the field.

", + "smithy.api#required": {} + } + }, + "message": { + "target": "com.amazonaws.billing#ErrorMessage", + "traits": { + "smithy.api#documentation": "

The message describing why the field failed validation.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The field's information of a request that resulted in an exception.\n

" + } + }, + "com.amazonaws.billing#ValidationExceptionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.billing#ValidationExceptionField" + } + }, + "com.amazonaws.billing#ValidationExceptionReason": { + "type": "enum", + "members": { + "UNKNOWN_OPERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unknownOperation" + } + }, + "CANNOT_PARSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cannotParse" + } + }, + "FIELD_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fieldValidationFailed" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "other" + } + } + } + } + } +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/cloudtrail.json b/codegen/sdk-codegen/aws-models/cloudtrail.json index cb7e5725ad4..3ddb2d12095 100644 --- a/codegen/sdk-codegen/aws-models/cloudtrail.json +++ b/codegen/sdk-codegen/aws-models/cloudtrail.json @@ -251,7 +251,7 @@ } }, "traits": { - "smithy.api#documentation": "

Advanced event selectors let you create fine-grained selectors for CloudTrail management, data, and network activity events. They help you control costs by logging only those\n events that are important to you. For more information about configuring advanced event selectors, see\n the Logging data events, Logging network activity events, and Logging management events topics in the CloudTrail User Guide.

\n

You cannot apply both event selectors and advanced event selectors to a trail.

\n

\n Supported CloudTrail event record fields for management events\n

\n
    \n
  • \n

    \n eventCategory (required)

    \n
  • \n
  • \n

    \n eventSource\n

    \n
  • \n
  • \n

    \n readOnly\n

    \n
  • \n
\n

\n Supported CloudTrail event record fields for data events\n

\n
    \n
  • \n

    \n eventCategory (required)

    \n
  • \n
  • \n

    \n resources.type (required)

    \n
  • \n
  • \n

    \n readOnly\n

    \n
  • \n
  • \n

    \n eventName\n

    \n
  • \n
  • \n

    \n resources.ARN\n

    \n
  • \n
\n

\n Supported CloudTrail event record fields for network activity events\n

\n \n

Network activity events is in preview release for CloudTrail and is subject to change.

\n
\n
    \n
  • \n

    \n eventCategory (required)

    \n
  • \n
  • \n

    \n eventSource (required)

    \n
  • \n
  • \n

    \n eventName\n

    \n
  • \n
  • \n

    \n errorCode - The only valid value for errorCode is VpceAccessDenied.

    \n
  • \n
  • \n

    \n vpcEndpointId\n

    \n
  • \n
\n \n

For event data stores for CloudTrail Insights events, Config configuration items, Audit Manager evidence, or events outside of Amazon Web Services, the only supported field is\n eventCategory.

\n
" + "smithy.api#documentation": "

Advanced event selectors let you create fine-grained selectors for CloudTrail management, data, and network activity events. They help you control costs by logging only those\n events that are important to you. For more information about configuring advanced event selectors, see\n the Logging data events, Logging network activity events, and Logging management events topics in the CloudTrail User Guide.

\n

You cannot apply both event selectors and advanced event selectors to a trail.

\n

\n Supported CloudTrail event record fields for management events\n

\n
    \n
  • \n

    \n eventCategory (required)

    \n
  • \n
  • \n

    \n eventSource\n

    \n
  • \n
  • \n

    \n readOnly\n

    \n
  • \n
\n

The following additional fields are available for event data stores:

\n
    \n
  • \n

    \n eventName\n

    \n
  • \n
  • \n

    \n eventType\n

    \n
  • \n
  • \n

    \n sessionCredentialFromConsole\n

    \n
  • \n
  • \n

    \n userIdentity.arn\n

    \n
  • \n
\n

\n Supported CloudTrail event record fields for data events\n

\n
    \n
  • \n

    \n eventCategory (required)

    \n
  • \n
  • \n

    \n resources.type (required)

    \n
  • \n
  • \n

    \n readOnly\n

    \n
  • \n
  • \n

    \n eventName\n

    \n
  • \n
  • \n

    \n resources.ARN\n

    \n
  • \n
\n

The following additional fields are available for event data stores:

\n
    \n
  • \n

    \n eventSource\n

    \n
  • \n
  • \n

    \n eventType\n

    \n
  • \n
  • \n

    \n sessionCredentialFromConsole\n

    \n
  • \n
  • \n

    \n userIdentity.arn\n

    \n
  • \n
\n

\n Supported CloudTrail event record fields for network activity events\n

\n \n

Network activity events is in preview release for CloudTrail and is subject to change.

\n
\n
    \n
  • \n

    \n eventCategory (required)

    \n
  • \n
  • \n

    \n eventSource (required)

    \n
  • \n
  • \n

    \n eventName\n

    \n
  • \n
  • \n

    \n errorCode - The only valid value for errorCode is VpceAccessDenied.

    \n
  • \n
  • \n

    \n vpcEndpointId\n

    \n
  • \n
\n \n

For event data stores for CloudTrail Insights events, Config configuration items, Audit Manager evidence, or events outside of Amazon Web Services, the only supported field is\n eventCategory.

\n
" } }, "com.amazonaws.cloudtrail#AdvancedEventSelectors": { @@ -266,7 +266,7 @@ "Field": { "target": "com.amazonaws.cloudtrail#SelectorField", "traits": { - "smithy.api#documentation": "

A field in a CloudTrail event record on which to filter events to be logged. For\n event data stores for CloudTrail Insights events, Config configuration items, Audit Manager evidence, or events outside of Amazon Web Services, the field is used only for\n selecting events as filtering is not supported.

\n

For CloudTrail management events, supported fields include eventCategory (required), eventSource, and readOnly.

\n

For CloudTrail data events, supported fields include eventCategory (required), resources.type (required), eventName, readOnly,\n and resources.ARN.

\n

For CloudTrail network activity events, supported fields include eventCategory (required), eventSource (required), eventName,\n errorCode, and vpcEndpointId.

\n

For event data stores for CloudTrail Insights events, Config configuration items, Audit Manager evidence, or events outside of Amazon Web Services, the only supported field is\n eventCategory.

\n
    \n
  • \n

    \n \n readOnly\n - This is an optional field that is only used for management events and data events. This field can be set to\n Equals with a value of true or false. If you do\n not add this field, CloudTrail logs both read and\n write events. A value of true logs only\n read events. A value of false logs only\n write events.

    \n
  • \n
  • \n

    \n \n eventSource\n - This field is only used for management events and network activity events.

    \n

    For management events, this is an optional field that can be set to NotEquals\n kms.amazonaws.com to exclude KMS management events, or NotEquals\n rdsdata.amazonaws.com to exclude RDS management events.

    \n

    For network activity events, this is a required field that only uses the\n Equals operator. Set this field to the event source for which you want to\n log network activity events. If you want to log network activity events for multiple\n event sources, you must create a separate field selector for each event\n source.

    \n

    The following are valid values for network activity events:

    \n
      \n
    • \n

      \n cloudtrail.amazonaws.com\n

      \n
    • \n
    • \n

      \n ec2.amazonaws.com\n

      \n
    • \n
    • \n

      \n kms.amazonaws.com\n

      \n
    • \n
    • \n

      \n secretsmanager.amazonaws.com\n

      \n
    • \n
    \n
  • \n
  • \n

    \n \n eventName\n - This is an optional field that is only used for data events and network activity events. You can use any operator with \n eventName. You can use it to filter in or filter out specific events. You can have\n multiple values for this field, separated by commas.

    \n
  • \n
  • \n

    \n \n eventCategory\n - This field is required and\n must be set to Equals. \n

    \n
      \n
    • \n

      \n For CloudTrail management events, the value\n must be Management. \n

      \n
    • \n
    • \n

      \n For CloudTrail data events, the value\n must be Data. \n

      \n
    • \n
    • \n

      \n For CloudTrail network activity events, the value\n must be NetworkActivity. \n

      \n
    • \n
    \n

    The following are used only for event data stores:

    \n
      \n
    • \n

      \n For CloudTrail Insights events, the value\n must be Insight. \n

      \n
    • \n
    • \n

      \n For Config\n configuration items, the value must be ConfigurationItem.\n

      \n
    • \n
    • \n

      \n For Audit Manager evidence, the value must be Evidence.\n

      \n
    • \n
    • \n

      \n For non-Amazon Web Services events, the value must be ActivityAuditLog.\n

      \n
    • \n
    \n
  • \n
  • \n

    \n \n errorCode\n - This field is only used to filter CloudTrail network activity events\n and is optional. This is the error code to filter on. Currently, the only valid errorCode is VpceAccessDenied. \n errorCode can only use the Equals operator.

    \n
  • \n
  • \n

    \n \n resources.type\n - This field is\n required for CloudTrail data events. resources.type can only\n use the Equals operator.

    \n

    The value can be one of the following:

    \n
      \n
    • \n

      \n AWS::AppConfig::Configuration\n

      \n
    • \n
    • \n

      \n AWS::B2BI::Transformer\n

      \n
    • \n
    • \n

      \n AWS::Bedrock::AgentAlias\n

      \n
    • \n
    • \n

      \n AWS::Bedrock::FlowAlias\n

      \n
    • \n
    • \n

      \n AWS::Bedrock::Guardrail\n

      \n
    • \n
    • \n

      \n AWS::Bedrock::KnowledgeBase\n

      \n
    • \n
    • \n

      \n AWS::Cassandra::Table\n

      \n
    • \n
    • \n

      \n AWS::CloudFront::KeyValueStore\n

      \n
    • \n
    • \n

      \n AWS::CloudTrail::Channel\n

      \n
    • \n
    • \n

      \n AWS::CloudWatch::Metric\n

      \n
    • \n
    • \n

      \n AWS::CodeWhisperer::Customization\n

      \n
    • \n
    • \n

      \n AWS::CodeWhisperer::Profile\n

      \n
    • \n
    • \n

      \n AWS::Cognito::IdentityPool\n

      \n
    • \n
    • \n

      \n AWS::DynamoDB::Stream\n

      \n
    • \n
    • \n

      \n AWS::DynamoDB::Table\n

      \n
    • \n
    • \n

      \n AWS::EC2::Snapshot\n

      \n
    • \n
    • \n

      \n AWS::EMRWAL::Workspace\n

      \n
    • \n
    • \n

      \n AWS::FinSpace::Environment\n

      \n
    • \n
    • \n

      \n AWS::Glue::Table\n

      \n
    • \n
    • \n

      \n AWS::GreengrassV2::ComponentVersion\n

      \n
    • \n
    • \n

      \n AWS::GreengrassV2::Deployment\n

      \n
    • \n
    • \n

      \n AWS::GuardDuty::Detector\n

      \n
    • \n
    • \n

      \n AWS::IoT::Certificate\n

      \n
    • \n
    • \n

      \n AWS::IoT::Thing\n

      \n
    • \n
    • \n

      \n AWS::IoTSiteWise::Asset\n

      \n
    • \n
    • \n

      \n AWS::IoTSiteWise::TimeSeries\n

      \n
    • \n
    • \n

      \n AWS::IoTTwinMaker::Entity\n

      \n
    • \n
    • \n

      \n AWS::IoTTwinMaker::Workspace\n

      \n
    • \n
    • \n

      \n AWS::KendraRanking::ExecutionPlan\n

      \n
    • \n
    • \n

      \n AWS::Kinesis::Stream\n

      \n
    • \n
    • \n

      \n AWS::Kinesis::StreamConsumer\n

      \n
    • \n
    • \n

      \n AWS::KinesisVideo::Stream\n

      \n
    • \n
    • \n

      \n AWS::Lambda::Function\n

      \n
    • \n
    • \n

      \n AWS::MachineLearning::MlModel\n

      \n
    • \n
    • \n

      \n AWS::ManagedBlockchain::Network\n

      \n
    • \n
    • \n

      \n AWS::ManagedBlockchain::Node\n

      \n
    • \n
    • \n

      \n AWS::MedicalImaging::Datastore\n

      \n
    • \n
    • \n

      \n AWS::NeptuneGraph::Graph\n

      \n
    • \n
    • \n

      \n AWS::One::UKey\n

      \n
    • \n
    • \n

      \n AWS::One::User\n

      \n
    • \n
    • \n

      \n AWS::PaymentCryptography::Alias\n

      \n
    • \n
    • \n

      \n AWS::PaymentCryptography::Key\n

      \n
    • \n
    • \n

      \n AWS::PCAConnectorAD::Connector\n

      \n
    • \n
    • \n

      \n AWS::PCAConnectorSCEP::Connector\n

      \n
    • \n
    • \n

      \n AWS::QApps:QApp\n

      \n
    • \n
    • \n

      \n AWS::QBusiness::Application\n

      \n
    • \n
    • \n

      \n AWS::QBusiness::DataSource\n

      \n
    • \n
    • \n

      \n AWS::QBusiness::Index\n

      \n
    • \n
    • \n

      \n AWS::QBusiness::WebExperience\n

      \n
    • \n
    • \n

      \n AWS::RDS::DBCluster\n

      \n
    • \n
    • \n

      \n AWS::RUM::AppMonitor\n

      \n
    • \n
    • \n

      \n AWS::S3::AccessPoint\n

      \n
    • \n
    • \n

      \n AWS::S3::Object\n

      \n
    • \n
    • \n

      \n AWS::S3Express::Object\n

      \n
    • \n
    • \n

      \n AWS::S3ObjectLambda::AccessPoint\n

      \n
    • \n
    • \n

      \n AWS::S3Outposts::Object\n

      \n
    • \n
    • \n

      \n AWS::SageMaker::Endpoint\n

      \n
    • \n
    • \n

      \n AWS::SageMaker::ExperimentTrialComponent\n

      \n
    • \n
    • \n

      \n AWS::SageMaker::FeatureGroup\n

      \n
    • \n
    • \n

      \n AWS::ServiceDiscovery::Namespace \n

      \n
    • \n
    • \n

      \n AWS::ServiceDiscovery::Service\n

      \n
    • \n
    • \n

      \n AWS::SCN::Instance\n

      \n
    • \n
    • \n

      \n AWS::SNS::PlatformEndpoint\n

      \n
    • \n
    • \n

      \n AWS::SNS::Topic\n

      \n
    • \n
    • \n

      \n AWS::SQS::Queue\n

      \n
    • \n
    • \n

      \n AWS::SSM::ManagedNode\n

      \n
    • \n
    • \n

      \n AWS::SSMMessages::ControlChannel\n

      \n
    • \n
    • \n

      \n AWS::StepFunctions::StateMachine\n

      \n
    • \n
    • \n

      \n AWS::SWF::Domain\n

      \n
    • \n
    • \n

      \n AWS::ThinClient::Device\n

      \n
    • \n
    • \n

      \n AWS::ThinClient::Environment\n

      \n
    • \n
    • \n

      \n AWS::Timestream::Database\n

      \n
    • \n
    • \n

      \n AWS::Timestream::Table\n

      \n
    • \n
    • \n

      \n AWS::VerifiedPermissions::PolicyStore\n

      \n
    • \n
    • \n

      \n AWS::XRay::Trace\n

      \n
    • \n
    \n

    You can have only one resources.type field per selector. To log events on more than one resource type, add another selector.

    \n
  • \n
  • \n

    \n \n resources.ARN\n - The resources.ARN is an optional field for \n data events. You can use any\n operator with resources.ARN, but if you use Equals or\n NotEquals, the value must exactly match the ARN of a valid resource\n of the type you've specified in the template as the value of resources.type. To log all data events for all objects in a specific S3 bucket, \n use the StartsWith operator, and include only the bucket ARN as the matching value.

    \n

    For information about filtering data events on the resources.ARN field, see \n Filtering data \n events by resources.ARN in the CloudTrail User Guide.

    \n \n

    You can't use the resources.ARN field to filter resource types that do not have ARNs.

    \n
    \n
  • \n
  • \n

    \n \n vpcEndpointId\n - This field is only used to filter CloudTrail network activity events\n and is optional. This field identifies the VPC endpoint that the request passed through. You can use any operator with vpcEndpointId.

    \n
  • \n
", + "smithy.api#documentation": "

A field in a CloudTrail event record on which to filter events to be logged. For\n event data stores for CloudTrail Insights events, Config configuration items, Audit Manager evidence, or events outside of Amazon Web Services, the field is used only for\n selecting events as filtering is not supported.

\n

For CloudTrail management events, supported fields include\n eventCategory (required), eventSource, and\n readOnly. The following additional fields are available for event data\n stores: eventName, eventType,\n sessionCredentialFromConsole, and userIdentity.arn.

\n

For CloudTrail data events, supported fields include eventCategory\n (required), resources.type (required), eventName,\n readOnly, and resources.ARN. The following additional fields\n are available for event data stores: eventSource, eventType,\n sessionCredentialFromConsole, and userIdentity.arn.

\n

For CloudTrail network activity events, supported fields include eventCategory (required), eventSource (required), eventName,\n errorCode, and vpcEndpointId.

\n

For event data stores for CloudTrail Insights events, Config configuration items, Audit Manager evidence, or events outside of Amazon Web Services, the only supported field is\n eventCategory.

\n
    \n
  • \n

    \n \n readOnly\n - This is an optional field that is only used for management events and data events. This field can be set to\n Equals with a value of true or false. If you do\n not add this field, CloudTrail logs both read and\n write events. A value of true logs only\n read events. A value of false logs only\n write events.

    \n
  • \n
  • \n

    \n \n eventSource\n - This field is only used for management events, data events (for event data stores only), and network activity events.

    \n

    For management events for trails, this is an optional field that can be set to NotEquals\n kms.amazonaws.com to exclude KMS management events, or NotEquals\n rdsdata.amazonaws.com to exclude RDS management events.

    \n

    For management and data events for event data stores, you can use it to include or\n exclude any event source and can use any operator.

    \n

    For network activity events, this is a required field that only uses the\n Equals operator. Set this field to the event source for which you want to\n log network activity events. If you want to log network activity events for multiple\n event sources, you must create a separate field selector for each event\n source.

    \n

    The following are valid values for network activity events:

    \n
      \n
    • \n

      \n cloudtrail.amazonaws.com\n

      \n
    • \n
    • \n

      \n ec2.amazonaws.com\n

      \n
    • \n
    • \n

      \n kms.amazonaws.com\n

      \n
    • \n
    • \n

      \n secretsmanager.amazonaws.com\n

      \n
    • \n
    \n
  • \n
  • \n

    \n \n eventName\n - This is an optional field that is only used for data events, management events (for event data stores only), and network activity events. You can use any operator with \n eventName. You can use it to filter in or filter out specific events. You can have\n multiple values for this field, separated by commas.

    \n
  • \n
  • \n

    \n \n eventCategory\n - This field is required and\n must be set to Equals. \n

    \n
      \n
    • \n

      \n For CloudTrail management events, the value\n must be Management. \n

      \n
    • \n
    • \n

      \n For CloudTrail data events, the value\n must be Data. \n

      \n
    • \n
    • \n

      \n For CloudTrail network activity events, the value\n must be NetworkActivity. \n

      \n
    • \n
    \n

    The following are used only for event data stores:

    \n
      \n
    • \n

      \n For CloudTrail Insights events, the value\n must be Insight. \n

      \n
    • \n
    • \n

      \n For Config\n configuration items, the value must be ConfigurationItem.\n

      \n
    • \n
    • \n

      \n For Audit Manager evidence, the value must be Evidence.\n

      \n
    • \n
    • \n

      \n For events outside of Amazon Web Services, the value must be ActivityAuditLog.\n

      \n
    • \n
    \n
  • \n
  • \n

    \n \n eventType\n - This is an optional\n field available only for event data stores, which is used to filter management and\n data events on the event type. For information about available event types, see\n CloudTrail record contents in the CloudTrail user\n guide.

    \n
  • \n
  • \n

    \n \n errorCode\n - This field is only used to filter CloudTrail network activity events\n and is optional. This is the error code to filter on. Currently, the only valid errorCode is VpceAccessDenied. \n errorCode can only use the Equals operator.

    \n
  • \n
  • \n

    \n \n sessionCredentialFromConsole\n - This\n is an optional field available only for event data stores, which is used to filter\n management and data events based on whether the events originated from an Amazon Web Services Management Console session. sessionCredentialFromConsole can only use the\n Equals and NotEquals operators.

    \n
  • \n
  • \n

    \n \n resources.type\n - This field is\n required for CloudTrail data events. resources.type can only\n use the Equals operator.

    \n

    For a list of available resource types for data events, see Data events in the CloudTrail User Guide.

    \n

    You can have only one resources.type field per selector. To log events on more than one resource type, add another selector.

    \n
  • \n
  • \n

    \n \n resources.ARN\n - The resources.ARN is an optional field for \n data events. You can use any\n operator with resources.ARN, but if you use Equals or\n NotEquals, the value must exactly match the ARN of a valid resource\n of the type you've specified in the template as the value of resources.type. To log all data events for all objects in a specific S3 bucket, \n use the StartsWith operator, and include only the bucket ARN as the matching value.

    \n

    For information about filtering data events on the resources.ARN field, see \n Filtering data \n events by resources.ARN in the CloudTrail User Guide.

    \n \n

    You can't use the resources.ARN field to filter resource types that do not have ARNs.

    \n
    \n
  • \n
  • \n

    \n \n userIdentity.arn\n - This is an\n optional field available only for event data stores, which is used to filter\n management and data events on the userIdentity ARN. You can use any operator with\n userIdentity.arn. For more information on the userIdentity element,\n see CloudTrail userIdentity element in the CloudTrail User Guide.

    \n
  • \n
  • \n

    \n \n vpcEndpointId\n - This field is only used to filter CloudTrail network activity events\n and is optional. This field identifies the VPC endpoint that the request passed through. You can use any operator with vpcEndpointId.

    \n
  • \n
", "smithy.api#required": {} } }, @@ -708,6 +708,9 @@ { "target": "com.amazonaws.cloudtrail#EnableFederation" }, + { + "target": "com.amazonaws.cloudtrail#GenerateQuery" + }, { "target": "com.amazonaws.cloudtrail#GetChannel" }, @@ -2545,7 +2548,7 @@ "Type": { "target": "com.amazonaws.cloudtrail#String", "traits": { - "smithy.api#documentation": "

The resource type in which you want to log data events. You can specify the following\n basic event selector resource types:

\n
    \n
  • \n

    \n AWS::DynamoDB::Table\n

    \n
  • \n
  • \n

    \n AWS::Lambda::Function\n

    \n
  • \n
  • \n

    \n AWS::S3::Object\n

    \n
  • \n
\n

Additional resource types are available through advanced\n event selectors. For more\n information about these additional resource types, see AdvancedFieldSelector.

" + "smithy.api#documentation": "

The resource type in which you want to log data events. You can specify the following\n basic event selector resource types:

\n
    \n
  • \n

    \n AWS::DynamoDB::Table\n

    \n
  • \n
  • \n

    \n AWS::Lambda::Function\n

    \n
  • \n
  • \n

    \n AWS::S3::Object\n

    \n
  • \n
\n

Additional resource types are available through advanced\n event selectors. For more\n information, see AdvancedEventSelector.

" } }, "Values": { @@ -3100,6 +3103,12 @@ "traits": { "smithy.api#documentation": "

The delivery status.

" } + }, + "Prompt": { + "target": "com.amazonaws.cloudtrail#Prompt", + "traits": { + "smithy.api#documentation": "

\n The prompt used for a generated query. For information about generated queries, see \n Create CloudTrail Lake queries from natural language prompts \n in the CloudTrail user guide.\n

" + } } }, "traits": { @@ -3722,6 +3731,18 @@ "smithy.api#pattern": "^[a-zA-Z0-9._/\\-:]+$" } }, + "com.amazonaws.cloudtrail#EventDataStoreList": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudtrail#EventDataStoreArn" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, "com.amazonaws.cloudtrail#EventDataStoreMaxLimitExceededException": { "type": "structure", "members": { @@ -3948,6 +3969,107 @@ } } }, + "com.amazonaws.cloudtrail#GenerateQuery": { + "type": "operation", + "input": { + "target": "com.amazonaws.cloudtrail#GenerateQueryRequest" + }, + "output": { + "target": "com.amazonaws.cloudtrail#GenerateQueryResponse" + }, + "errors": [ + { + "target": "com.amazonaws.cloudtrail#EventDataStoreARNInvalidException" + }, + { + "target": "com.amazonaws.cloudtrail#EventDataStoreNotFoundException" + }, + { + "target": "com.amazonaws.cloudtrail#GenerateResponseException" + }, + { + "target": "com.amazonaws.cloudtrail#InactiveEventDataStoreException" + }, + { + "target": "com.amazonaws.cloudtrail#InvalidParameterException" + }, + { + "target": "com.amazonaws.cloudtrail#NoManagementAccountSLRExistsException" + }, + { + "target": "com.amazonaws.cloudtrail#OperationNotPermittedException" + }, + { + "target": "com.amazonaws.cloudtrail#UnsupportedOperationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Generates a query from a natural language prompt. This operation uses generative artificial intelligence\n (generative AI) to produce a ready-to-use SQL query from the prompt.\n

\n

The prompt can be a question or a statement about the event data\n in your event data store. For example, you can enter prompts like \"What are my\n top errors in the past month?\" and “Give me a list of users that used SNS.”

\n

The prompt must be in English. For information about limitations, permissions, and supported Regions, see \n Create CloudTrail Lake queries from natural language prompts \n in the CloudTrail user guide.

\n \n

Do not include any personally identifying, confidential, or sensitive information\n in your prompts.

\n

This feature uses generative AI large language models (LLMs); we recommend double-checking the\n LLM response.

\n
", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.cloudtrail#GenerateQueryRequest": { + "type": "structure", + "members": { + "EventDataStores": { + "target": "com.amazonaws.cloudtrail#EventDataStoreList", + "traits": { + "smithy.api#documentation": "

\n The ARN (or ID suffix of the ARN) of the event data store\n that you want to query. You can only specify one event data store.\n

", + "smithy.api#required": {} + } + }, + "Prompt": { + "target": "com.amazonaws.cloudtrail#Prompt", + "traits": { + "smithy.api#documentation": "

\n The prompt that you want to use to generate the query. The prompt must be in English. For example prompts, see \n Example prompts \n in the CloudTrail user guide.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.cloudtrail#GenerateQueryResponse": { + "type": "structure", + "members": { + "QueryStatement": { + "target": "com.amazonaws.cloudtrail#QueryStatement", + "traits": { + "smithy.api#documentation": "

\n The SQL query statement generated from the prompt.\n

" + } + }, + "QueryAlias": { + "target": "com.amazonaws.cloudtrail#QueryAlias", + "traits": { + "smithy.api#documentation": "

\n An alias that identifies the prompt. When you run the StartQuery operation, you can pass in either the QueryAlias or \n QueryStatement parameter.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.cloudtrail#GenerateResponseException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.cloudtrail#ErrorMessage", + "traits": { + "smithy.api#documentation": "

Brief description of the exception returned by the request.

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "GenerateResponse", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

\n This exception is thrown when a valid query could not be generated for the provided prompt. \n

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.cloudtrail#GetChannel": { "type": "operation", "input": { @@ -7281,6 +7403,16 @@ "smithy.api#pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*$" } }, + "com.amazonaws.cloudtrail#Prompt": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 500 + }, + "smithy.api#pattern": "^[ -~\\n]*$" + } + }, "com.amazonaws.cloudtrail#PublicKey": { "type": "structure", "members": { @@ -7971,6 +8103,9 @@ { "target": "com.amazonaws.cloudtrail#CloudTrailARNInvalidException" }, + { + "target": "com.amazonaws.cloudtrail#ConflictException" + }, { "target": "com.amazonaws.cloudtrail#EventDataStoreARNInvalidException" }, diff --git a/codegen/sdk-codegen/aws-models/dynamodb.json b/codegen/sdk-codegen/aws-models/dynamodb.json index f953105638f..fa4dd5dc932 100644 --- a/codegen/sdk-codegen/aws-models/dynamodb.json +++ b/codegen/sdk-codegen/aws-models/dynamodb.json @@ -1973,6 +1973,12 @@ "traits": { "smithy.api#documentation": "

The maximum number of read and write units for the global secondary index being created. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" } + }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#WarmThroughput", + "traits": { + "smithy.api#documentation": "

Represents the warm throughput value (in read units per second and write units per second) when creating a secondary index.

" + } } }, "traits": { @@ -2214,6 +2220,12 @@ "smithy.api#documentation": "

Indicates whether deletion protection is to be enabled (true) or disabled (false) on\n the table.

" } }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#WarmThroughput", + "traits": { + "smithy.api#documentation": "

Represents the warm throughput (in read units per second and write units per second) for creating a table.

" + } + }, "ResourcePolicy": { "target": "com.amazonaws.dynamodb#ResourcePolicy", "traits": { @@ -7203,6 +7215,12 @@ "traits": { "smithy.api#documentation": "

The maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" } + }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#WarmThroughput", + "traits": { + "smithy.api#documentation": "

Represents the warm throughput value (in read units per second and write units per second) for the specified secondary index. If you use this parameter, you must specify ReadUnitsPerSecond, WriteUnitsPerSecond, or both.

" + } } }, "traits": { @@ -7299,6 +7317,12 @@ "traits": { "smithy.api#documentation": "

The maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" } + }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#GlobalSecondaryIndexWarmThroughputDescription", + "traits": { + "smithy.api#documentation": "

Represents the warm throughput value (in read units per second and write units per second) for the specified secondary index.

" + } } }, "traits": { @@ -7384,6 +7408,32 @@ "target": "com.amazonaws.dynamodb#GlobalSecondaryIndexUpdate" } }, + "com.amazonaws.dynamodb#GlobalSecondaryIndexWarmThroughputDescription": { + "type": "structure", + "members": { + "ReadUnitsPerSecond": { + "target": "com.amazonaws.dynamodb#PositiveLongObject", + "traits": { + "smithy.api#documentation": "

Represents warm throughput read units per second value for a global secondary index.

" + } + }, + "WriteUnitsPerSecond": { + "target": "com.amazonaws.dynamodb#PositiveLongObject", + "traits": { + "smithy.api#documentation": "

Represents warm throughput write units per second value for a global secondary index.

" + } + }, + "Status": { + "target": "com.amazonaws.dynamodb#IndexStatus", + "traits": { + "smithy.api#documentation": "

Represents the warm throughput status being created or updated on a global secondary index. The status can only be UPDATING or ACTIVE.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The description of the warm throughput value on a global secondary index.

" + } + }, "com.amazonaws.dynamodb#GlobalSecondaryIndexes": { "type": "list", "member": { @@ -10296,6 +10346,12 @@ "smithy.api#documentation": "

Overrides the maximum on-demand throughput settings for the specified replica table.

" } }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#TableWarmThroughputDescription", + "traits": { + "smithy.api#documentation": "

Represents the warm throughput value for this replica.

" + } + }, "GlobalSecondaryIndexes": { "target": "com.amazonaws.dynamodb#ReplicaGlobalSecondaryIndexDescriptionList", "traits": { @@ -10424,6 +10480,12 @@ "traits": { "smithy.api#documentation": "

Overrides the maximum on-demand throughput for the specified global secondary index in the specified replica table.

" } + }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#GlobalSecondaryIndexWarmThroughputDescription", + "traits": { + "smithy.api#documentation": "

Represents the warm throughput of the global secondary index for this replica.

" + } } }, "traits": { @@ -12171,6 +12233,12 @@ "traits": { "smithy.api#documentation": "

The maximum number of read and write units for the specified on-demand table. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" } + }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#TableWarmThroughputDescription", + "traits": { + "smithy.api#documentation": "

Describes the warm throughput value of the base table.

" + } } }, "traits": { @@ -12270,6 +12338,32 @@ } } }, + "com.amazonaws.dynamodb#TableWarmThroughputDescription": { + "type": "structure", + "members": { + "ReadUnitsPerSecond": { + "target": "com.amazonaws.dynamodb#PositiveLongObject", + "traits": { + "smithy.api#documentation": "

Represents the base table's warm throughput value in read units per second.

" + } + }, + "WriteUnitsPerSecond": { + "target": "com.amazonaws.dynamodb#PositiveLongObject", + "traits": { + "smithy.api#documentation": "

Represents the base table's warm throughput value in write units per second.

" + } + }, + "Status": { + "target": "com.amazonaws.dynamodb#TableStatus", + "traits": { + "smithy.api#documentation": "

Represents warm throughput value of the base table..

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the warm throughput value (in read units per second and write units per second) of the base table.

" + } + }, "com.amazonaws.dynamodb#Tag": { "type": "structure", "members": { @@ -13016,6 +13110,12 @@ "traits": { "smithy.api#documentation": "

Updates the maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" } + }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#WarmThroughput", + "traits": { + "smithy.api#documentation": "

Represents the warm throughput value of the new provisioned throughput settings to be applied to a global secondary index.

" + } } }, "traits": { @@ -13649,6 +13749,12 @@ "traits": { "smithy.api#documentation": "

Updates the maximum number of read and write units for the specified table in\n on-demand capacity mode. If you use this parameter, you must specify\n MaxReadRequestUnits, MaxWriteRequestUnits, or both.

" } + }, + "WarmThroughput": { + "target": "com.amazonaws.dynamodb#WarmThroughput", + "traits": { + "smithy.api#documentation": "

Represents the warm throughput (in read units per second and write units per second) for updating a table.

" + } } }, "traits": { @@ -13810,6 +13916,26 @@ "smithy.api#output": {} } }, + "com.amazonaws.dynamodb#WarmThroughput": { + "type": "structure", + "members": { + "ReadUnitsPerSecond": { + "target": "com.amazonaws.dynamodb#LongObject", + "traits": { + "smithy.api#documentation": "

Represents the number of read operations your base table can instantaneously support.

" + } + }, + "WriteUnitsPerSecond": { + "target": "com.amazonaws.dynamodb#LongObject", + "traits": { + "smithy.api#documentation": "

Represents the number of write operations your base table can instantaneously support.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides visibility into the number of read and write operations your table or secondary index can instantaneously support. The settings can be modified using the UpdateTable operation to meet the throughput requirements of an upcoming peak event.

" + } + }, "com.amazonaws.dynamodb#WriteRequest": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/ec2.json b/codegen/sdk-codegen/aws-models/ec2.json index 8c6c006cb04..d1f27623129 100644 --- a/codegen/sdk-codegen/aws-models/ec2.json +++ b/codegen/sdk-codegen/aws-models/ec2.json @@ -14306,7 +14306,7 @@ "target": "com.amazonaws.ec2#CreateCapacityReservationBySplittingResult" }, "traits": { - "smithy.api#documentation": "

\n\t\t\tCreate a new Capacity Reservation by splitting the available capacity of the source Capacity Reservation. The new Capacity Reservation will have the same attributes as the source Capacity Reservation except for tags. The source Capacity Reservation must be active and owned by your Amazon Web Services account.\n\t\t

" + "smithy.api#documentation": "

\n\t\t\tCreate a new Capacity Reservation by splitting the capacity of the source Capacity Reservation. The new Capacity Reservation will have the same attributes as the source Capacity Reservation except for tags. The source Capacity Reservation must be active and owned by your Amazon Web Services account.\n\t\t

" } }, "com.amazonaws.ec2#CreateCapacityReservationBySplittingRequest": { @@ -14329,7 +14329,7 @@ "target": "com.amazonaws.ec2#CapacityReservationId", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

\n\t\t\tThe ID of the Capacity Reservation from which you want to split the available capacity. \n\t\t

", + "smithy.api#documentation": "

\n\t\t\tThe ID of the Capacity Reservation from which you want to split the capacity. \n\t\t

", "smithy.api#required": {} } }, @@ -16809,7 +16809,7 @@ "target": "com.amazonaws.ec2#KeyPair" }, "traits": { - "smithy.api#documentation": "

Creates an ED25519 or 2048-bit RSA key pair with the specified name and in the\n specified PEM or PPK format. Amazon EC2 stores the public key and displays the private\n key for you to save to a file. The private key is returned as an unencrypted PEM encoded\n PKCS#1 private key or an unencrypted PPK formatted private key for use with PuTTY. If a\n key with the specified name already exists, Amazon EC2 returns an error.

\n

The key pair returned to you is available only in the Amazon Web Services Region in which you create it.\n If you prefer, you can create your own key pair using a third-party tool and upload it\n to any Region using ImportKeyPair.

\n

You can have up to 5,000 key pairs per Amazon Web Services Region.

\n

For more information, see Amazon EC2 key pairs in the\n Amazon Elastic Compute Cloud User Guide.

", + "smithy.api#documentation": "

Creates an ED25519 or 2048-bit RSA key pair with the specified name and in the\n specified format. Amazon EC2 stores the public key and displays the private\n key for you to save to a file. The private key is returned as an unencrypted PEM encoded\n PKCS#1 private key or an unencrypted PPK formatted private key for use with PuTTY. If a\n key with the specified name already exists, Amazon EC2 returns an error.

\n

The key pair returned to you is available only in the Amazon Web Services Region in which you create it.\n If you prefer, you can create your own key pair using a third-party tool and upload it\n to any Region using ImportKeyPair.

\n

You can have up to 5,000 key pairs per Amazon Web Services Region.

\n

For more information, see Amazon EC2 key pairs in the\n Amazon EC2 User Guide.

", "smithy.api#examples": [ { "title": "To create a key pair", @@ -18940,7 +18940,7 @@ "target": "com.amazonaws.ec2#CreateSecurityGroupResult" }, "traits": { - "smithy.api#documentation": "

Creates a security group.

\n

A security group acts as a virtual firewall for your instance to control inbound and outbound traffic.\n For more information, see\n\t\t\t\tAmazon EC2 security groups in \n\t\t\t\tthe Amazon Elastic Compute Cloud User Guide and \n\t\t\t\tSecurity groups for your VPC in the\n\t\t\t\tAmazon Virtual Private Cloud User Guide.

\n

When you create a security group, you specify a friendly name of your choice. \n You can't have two security groups for the same VPC with the same name.

\n

You have a default security group for use in your VPC. If you don't specify a security group \n when you launch an instance, the instance is launched into the appropriate default security group. \n A default security group includes a default rule that grants instances unrestricted network access \n to each other.

\n

You can add or remove rules from your security groups using \n\t\t\t\t\tAuthorizeSecurityGroupIngress,\n\t\t\t\t\tAuthorizeSecurityGroupEgress,\n\t\t\t\t\tRevokeSecurityGroupIngress, and\n\t\t\t\t\tRevokeSecurityGroupEgress.

\n

For more information about VPC security group limits, see Amazon VPC Limits.

", + "smithy.api#documentation": "

Creates a security group.

\n

A security group acts as a virtual firewall for your instance to control inbound and outbound traffic.\n For more information, see\n\t\t\t\tAmazon EC2 security groups in \n\t\t\t\tthe Amazon EC2 User Guide and \n\t\t\t\tSecurity groups for your VPC in the\n\t\t\t\tAmazon VPC User Guide.

\n

When you create a security group, you specify a friendly name of your choice. \n You can't have two security groups for the same VPC with the same name.

\n

You have a default security group for use in your VPC. If you don't specify a security group \n when you launch an instance, the instance is launched into the appropriate default security group. \n A default security group includes a default rule that grants instances unrestricted network access \n to each other.

\n

You can add or remove rules from your security groups using \n\t\t\t\t\tAuthorizeSecurityGroupIngress,\n\t\t\t\t\tAuthorizeSecurityGroupEgress,\n\t\t\t\t\tRevokeSecurityGroupIngress, and\n\t\t\t\t\tRevokeSecurityGroupEgress.

\n

For more information about VPC security group limits, see Amazon VPC Limits.

", "smithy.api#examples": [ { "title": "To create a security group for a VPC", @@ -31738,7 +31738,7 @@ "Owners": { "target": "com.amazonaws.ec2#OwnerStringList", "traits": { - "smithy.api#documentation": "

Scopes the results to images with the specified owners. You can specify a combination of \n Amazon Web Services account IDs, self, amazon, and aws-marketplace. \n If you omit this parameter, the results include all images for which you have launch permissions, \n regardless of ownership.

", + "smithy.api#documentation": "

Scopes the results to images with the specified owners. You can specify a combination of \n Amazon Web Services account IDs, self, amazon, aws-backup-vault, and aws-marketplace. \n If you omit this parameter, the results include all images for which you have launch permissions, \n regardless of ownership.

", "smithy.api#xmlName": "Owner" } }, @@ -31777,7 +31777,7 @@ "Filters": { "target": "com.amazonaws.ec2#FilterList", "traits": { - "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n architecture - The image architecture (i386 | x86_64 | \n arm64 | x86_64_mac | arm64_mac).

    \n
  • \n
  • \n

    \n block-device-mapping.delete-on-termination - A Boolean value that indicates\n \twhether the Amazon EBS volume is deleted on instance termination.

    \n
  • \n
  • \n

    \n block-device-mapping.device-name - The device name specified in the block device mapping (for\n example, /dev/sdh or xvdh).

    \n
  • \n
  • \n

    \n block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS\n volume.

    \n
  • \n
  • \n

    \n block-device-mapping.volume-size - The volume size of the Amazon EBS volume, in GiB.

    \n
  • \n
  • \n

    \n block-device-mapping.volume-type - The volume type of the Amazon EBS volume\n (io1 | io2 | gp2 | gp3 | sc1\n | st1 | standard).

    \n
  • \n
  • \n

    \n block-device-mapping.encrypted - A Boolean that indicates whether the Amazon EBS volume is encrypted.

    \n
  • \n
  • \n

    \n creation-date - The time when the image was created, in the ISO 8601\n format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n 2021-09-29T11:04:43.305Z. You can use a wildcard (*), for\n example, 2021-09-29T*, which matches an entire day.

    \n
  • \n
  • \n

    \n description - The description of the image (provided during image\n creation).

    \n
  • \n
  • \n

    \n ena-support - A Boolean that indicates whether enhanced networking\n with ENA is enabled.

    \n
  • \n
  • \n

    \n hypervisor - The hypervisor type (ovm |\n xen).

    \n
  • \n
  • \n

    \n image-id - The ID of the image.

    \n
  • \n
  • \n

    \n image-type - The image type (machine | kernel |\n ramdisk).

    \n
  • \n
  • \n

    \n is-public - A Boolean that indicates whether the image is public.

    \n
  • \n
  • \n

    \n kernel-id - The kernel ID.

    \n
  • \n
  • \n

    \n manifest-location - The location of the image manifest.

    \n
  • \n
  • \n

    \n name - The name of the AMI (provided during image creation).

    \n
  • \n
  • \n

    \n owner-alias - The owner alias (amazon | aws-marketplace). \n The valid aliases are defined in an Amazon-maintained list. This is not the Amazon Web Services account alias that can be \n \tset using the IAM console. We recommend that you use the Owner \n \trequest parameter instead of this filter.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the owner. We recommend that you use the \n \t\tOwner request parameter instead of this filter.

    \n
  • \n
  • \n

    \n platform - The platform. The only supported value is windows.

    \n
  • \n
  • \n

    \n product-code - The product code.

    \n
  • \n
  • \n

    \n product-code.type - The type of the product code (marketplace).

    \n
  • \n
  • \n

    \n ramdisk-id - The RAM disk ID.

    \n
  • \n
  • \n

    \n root-device-name - The device name of the root device volume (for example, /dev/sda1).

    \n
  • \n
  • \n

    \n root-device-type - The type of the root device volume (ebs |\n instance-store).

    \n
  • \n
  • \n

    \n source-instance-id - The ID of the instance that the AMI was created from\n if the AMI was created using CreateImage. This filter is applicable only if the AMI was\n created using CreateImage.

    \n
  • \n
  • \n

    \n state - The state of the image (available | pending\n | failed).

    \n
  • \n
  • \n

    \n state-reason-code - The reason code for the state change.

    \n
  • \n
  • \n

    \n state-reason-message - The message for the state change.

    \n
  • \n
  • \n

    \n sriov-net-support - A value of simple indicates\n that enhanced networking with the Intel 82599 VF interface is enabled.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n virtualization-type - The virtualization type (paravirtual |\n hvm).

    \n
  • \n
", + "smithy.api#documentation": "

The filters.

\n
    \n
  • \n

    \n architecture - The image architecture (i386 | x86_64 | \n arm64 | x86_64_mac | arm64_mac).

    \n
  • \n
  • \n

    \n block-device-mapping.delete-on-termination - A Boolean value that indicates\n \twhether the Amazon EBS volume is deleted on instance termination.

    \n
  • \n
  • \n

    \n block-device-mapping.device-name - The device name specified in the block device mapping (for\n example, /dev/sdh or xvdh).

    \n
  • \n
  • \n

    \n block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS\n volume.

    \n
  • \n
  • \n

    \n block-device-mapping.volume-size - The volume size of the Amazon EBS volume, in GiB.

    \n
  • \n
  • \n

    \n block-device-mapping.volume-type - The volume type of the Amazon EBS volume\n (io1 | io2 | gp2 | gp3 | sc1\n | st1 | standard).

    \n
  • \n
  • \n

    \n block-device-mapping.encrypted - A Boolean that indicates whether the Amazon EBS volume is encrypted.

    \n
  • \n
  • \n

    \n creation-date - The time when the image was created, in the ISO 8601\n format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n 2021-09-29T11:04:43.305Z. You can use a wildcard (*), for\n example, 2021-09-29T*, which matches an entire day.

    \n
  • \n
  • \n

    \n description - The description of the image (provided during image\n creation).

    \n
  • \n
  • \n

    \n ena-support - A Boolean that indicates whether enhanced networking\n with ENA is enabled.

    \n
  • \n
  • \n

    \n hypervisor - The hypervisor type (ovm |\n xen).

    \n
  • \n
  • \n

    \n image-id - The ID of the image.

    \n
  • \n
  • \n

    \n image-type - The image type (machine | kernel |\n ramdisk).

    \n
  • \n
  • \n

    \n is-public - A Boolean that indicates whether the image is public.

    \n
  • \n
  • \n

    \n kernel-id - The kernel ID.

    \n
  • \n
  • \n

    \n manifest-location - The location of the image manifest.

    \n
  • \n
  • \n

    \n name - The name of the AMI (provided during image creation).

    \n
  • \n
  • \n

    \n owner-alias - The owner alias (amazon | aws-backup-vault | aws-marketplace). \n The valid aliases are defined in an Amazon-maintained list. This is not the Amazon Web Services account alias that can be \n \tset using the IAM console. We recommend that you use the Owner \n \trequest parameter instead of this filter.

    \n
  • \n
  • \n

    \n owner-id - The Amazon Web Services account ID of the owner. We recommend that you use the \n \t\tOwner request parameter instead of this filter.

    \n
  • \n
  • \n

    \n platform - The platform. The only supported value is windows.

    \n
  • \n
  • \n

    \n product-code - The product code.

    \n
  • \n
  • \n

    \n product-code.type - The type of the product code (marketplace).

    \n
  • \n
  • \n

    \n ramdisk-id - The RAM disk ID.

    \n
  • \n
  • \n

    \n root-device-name - The device name of the root device volume (for example, /dev/sda1).

    \n
  • \n
  • \n

    \n root-device-type - The type of the root device volume (ebs |\n instance-store).

    \n
  • \n
  • \n

    \n source-instance-id - The ID of the instance that the AMI was created from\n if the AMI was created using CreateImage. This filter is applicable only if the AMI was\n created using CreateImage.

    \n
  • \n
  • \n

    \n state - The state of the image (available | pending\n | failed).

    \n
  • \n
  • \n

    \n state-reason-code - The reason code for the state change.

    \n
  • \n
  • \n

    \n state-reason-message - The message for the state change.

    \n
  • \n
  • \n

    \n sriov-net-support - A value of simple indicates\n that enhanced networking with the Intel 82599 VF interface is enabled.

    \n
  • \n
  • \n

    \n tag: - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

    \n
  • \n
  • \n

    \n tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

    \n
  • \n
  • \n

    \n virtualization-type - The virtualization type (paravirtual |\n hvm).

    \n
  • \n
", "smithy.api#xmlName": "Filter" } } @@ -34024,7 +34024,7 @@ "target": "com.amazonaws.ec2#DescribeKeyPairsResult" }, "traits": { - "smithy.api#documentation": "

Describes the specified key pairs or all of your key pairs.

\n

For more information about key pairs, see Amazon EC2 key pairs \n\t\t\t\tin the Amazon Elastic Compute Cloud User Guide.

", + "smithy.api#documentation": "

Describes the specified key pairs or all of your key pairs.

\n

For more information about key pairs, see Amazon EC2 key pairs \n\t\t\t\tin the Amazon EC2 User Guide.

", "smithy.api#examples": [ { "title": "To display a key pair", @@ -57189,7 +57189,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "ImageOwnerAlias", - "smithy.api#documentation": "

The owner alias (amazon | aws-marketplace).

", + "smithy.api#documentation": "

The owner alias (amazon | aws-backup-vault | aws-marketplace).

", "smithy.api#xmlName": "imageOwnerAlias" } }, @@ -57305,6 +57305,22 @@ "smithy.api#xmlName": "lastLaunchedTime" } }, + "SourceImageId": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageId", + "smithy.api#documentation": "

The ID of the source AMI from which the AMI was created.

\n

The ID only appears if the AMI was created using CreateImage, CopyImage, or CreateRestoreImageTask. The ID does not appear\n if the AMI was created using any other API. For some older AMIs, the ID might not be\n available. For more information, see Identify the\n source AMI used to create a new AMI in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "sourceImageId" + } + }, + "SourceImageRegion": { + "target": "com.amazonaws.ec2#String", + "traits": { + "aws.protocols#ec2QueryName": "SourceImageRegion", + "smithy.api#documentation": "

The Region of the source AMI.

\n

The Region only appears if the AMI was created using CreateImage, CopyImage, or CreateRestoreImageTask. The Region does not\n appear if the AMI was created using any other API. For some older AMIs, the Region might not\n be available. For more information, see Identify the\n source AMI used to create a new AMI in the\n Amazon EC2 User Guide.

", + "smithy.api#xmlName": "sourceImageRegion" + } + }, "ImageId": { "target": "com.amazonaws.ec2#String", "traits": { @@ -57753,7 +57769,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "ImageOwnerAlias", - "smithy.api#documentation": "

The alias of the AMI owner.

\n

Valid values: amazon | aws-marketplace\n

", + "smithy.api#documentation": "

The alias of the AMI owner.

\n

Valid values: amazon | aws-backup-vault | aws-marketplace\n

", "smithy.api#xmlName": "imageOwnerAlias" } }, @@ -58740,7 +58756,7 @@ "target": "com.amazonaws.ec2#ImportKeyPairResult" }, "traits": { - "smithy.api#documentation": "

Imports the public key from an RSA or ED25519 key pair that you created with a third-party tool. \n Compare this with CreateKeyPair, in which Amazon Web Services creates the key pair and gives the keys to you \n (Amazon Web Services keeps a copy of the public key). With ImportKeyPair, you create the key pair and give Amazon Web Services just the public key. \n The private key is never transferred between you and Amazon Web Services.

\n

For more information about key pairs, see Amazon EC2 key pairs \n\t\t\t\tin the Amazon Elastic Compute Cloud User Guide.

" + "smithy.api#documentation": "

Imports the public key from an RSA or ED25519 key pair that you created using a third-party tool. \n You give Amazon Web Services only the public key. The private key is never transferred between you and Amazon Web Services.

\n

For more information about the requirements for importing a key pair, see Create a key pair and import the public key to Amazon EC2 in the Amazon EC2 User Guide.

" } }, "com.amazonaws.ec2#ImportKeyPairRequest": { @@ -58776,7 +58792,7 @@ "traits": { "aws.protocols#ec2QueryName": "PublicKeyMaterial", "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The public key. For API calls, the text must be base64-encoded. For command line tools, base64 encoding is performed for you.

", + "smithy.api#documentation": "

The public key.

", "smithy.api#required": {}, "smithy.api#xmlName": "publicKeyMaterial" } @@ -59640,7 +59656,7 @@ "target": "com.amazonaws.ec2#DateTime", "traits": { "aws.protocols#ec2QueryName": "LaunchTime", - "smithy.api#documentation": "

The time the instance was launched.

", + "smithy.api#documentation": "

The time that the instance was last launched. To determine the time that instance was first launched,\n see the attachment time for the primary network interface.

", "smithy.api#xmlName": "launchTime" } }, @@ -93625,7 +93641,7 @@ "RevokeAllGroups": { "target": "com.amazonaws.ec2#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether access should be revoked for all clients.

" + "smithy.api#documentation": "

Indicates whether access should be revoked for all groups for a single TargetNetworkCidr that earlier authorized ingress for all groups using AuthorizeAllGroups.\n\t\t\tThis does not impact other authorization rules that allowed ingress to the same TargetNetworkCidr with a specific AccessGroupId.

" } }, "DryRun": { @@ -96319,7 +96335,7 @@ "target": "com.amazonaws.ec2#String", "traits": { "aws.protocols#ec2QueryName": "VpcPeeringConnectionId", - "smithy.api#documentation": "

The ID of the VPC peering connection (if applicable). For more information about security group referencing for peering connections, see Update your security groups to reference peer security groups in the VPC Peering Guide.

", + "smithy.api#documentation": "

The ID of the VPC peering connection (if applicable). For more information about security group referencing for peering connections, see \n Update your security groups to reference peer security groups \n in the VPC Peering Guide.

", "smithy.api#xmlName": "vpcPeeringConnectionId" } }, diff --git a/codegen/sdk-codegen/aws-models/internetmonitor.json b/codegen/sdk-codegen/aws-models/internetmonitor.json index 7fb46be64da..f9f115cd0d1 100644 --- a/codegen/sdk-codegen/aws-models/internetmonitor.json +++ b/codegen/sdk-codegen/aws-models/internetmonitor.json @@ -2992,6 +2992,10 @@ { "name": "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS", "value": "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS" + }, + { + "name": "ROUTING_SUGGESTIONS", + "value": "ROUTING_SUGGESTIONS" } ] } @@ -3144,7 +3148,7 @@ "QueryType": { "target": "com.amazonaws.internetmonitor#QueryType", "traits": { - "smithy.api#documentation": "

The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface:

\n
    \n
  • \n

    \n MEASUREMENTS: Provides availability score, performance score, total traffic, \n\t\t\t\tand round-trip times, at 5 minute intervals.

    \n
  • \n
  • \n

    \n TOP_LOCATIONS: Provides availability score, performance score, total traffic, \n\t\t\t\tand time to first byte (TTFB) information, for the top location and ASN combinations that you're monitoring, by traffic volume.

    \n
  • \n
  • \n

    \n TOP_LOCATION_DETAILS: Provides TTFB for Amazon CloudFront, your \n\t\t\t\tcurrent configuration, and the best performing EC2 configuration, at 1 hour intervals.

    \n
  • \n
  • \n

    \n OVERALL_TRAFFIC_SUGGESTIONS: Provides TTFB, using a 30-day weighted average, for all traffic in \n\t\t\t\teach Amazon Web Services location that is monitored.

    \n
  • \n
  • \n

    \n OVERALL_TRAFFIC_SUGGESTIONS_DETAILS: Provides TTFB, using a 30-day weighted average, for each top \n\t\t\t\tlocation, for a proposed Amazon Web Services location. Must provide a Amazon Web Services location to search.

    \n
  • \n
\n

For lists of the fields returned with each query type and more information about how each type of query is\n\t\t\tperformed, see \n\t\t\t\tUsing the Amazon CloudWatch Internet Monitor query interface in the Amazon CloudWatch Internet Monitor User Guide.

", + "smithy.api#documentation": "

The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface:

\n
    \n
  • \n

    \n MEASUREMENTS: Provides availability score, performance score, total traffic, \n\t\t\t\tand round-trip times, at 5 minute intervals.

    \n
  • \n
  • \n

    \n TOP_LOCATIONS: Provides availability score, performance score, total traffic, \n\t\t\t\tand time to first byte (TTFB) information, for the top location and ASN combinations that you're monitoring, by traffic volume.

    \n
  • \n
  • \n

    \n TOP_LOCATION_DETAILS: Provides TTFB for Amazon CloudFront, your \n\t\t\t\tcurrent configuration, and the best performing EC2 configuration, at 1 hour intervals.

    \n
  • \n
  • \n

    \n OVERALL_TRAFFIC_SUGGESTIONS: Provides TTFB, using a 30-day weighted average, for all traffic in \n\t\t\t\teach Amazon Web Services location that is monitored.

    \n
  • \n
  • \n

    \n OVERALL_TRAFFIC_SUGGESTIONS_DETAILS: Provides TTFB, using a 30-day weighted average, for each top \n\t\t\t\tlocation, for a proposed Amazon Web Services location. Must provide an Amazon Web Services location to search.

    \n
  • \n
  • \n

    \n ROUTING_SUGGESTIONS: Provides the predicted average round-trip time (RTT) from an IP prefix toward \n\t\t\t\tan Amazon Web Services location for a DNS resolver. The RTT is calculated at one hour intervals, over a one hour period.

    \n
  • \n
\n

For lists of the fields returned with each query type and more information about how each type of query is\n\t\t\tperformed, see \n\t\t\t\tUsing the Amazon CloudWatch Internet Monitor query interface in the Amazon CloudWatch Internet Monitor User Guide.

", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/mediaconvert.json b/codegen/sdk-codegen/aws-models/mediaconvert.json index 69b3a72ff4f..d3a6c258089 100644 --- a/codegen/sdk-codegen/aws-models/mediaconvert.json +++ b/codegen/sdk-codegen/aws-models/mediaconvert.json @@ -14082,7 +14082,7 @@ "NielsenNonLinearWatermark": { "target": "com.amazonaws.mediaconvert#NielsenNonLinearWatermarkSettings", "traits": { - "smithy.api#documentation": "Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to specifying these values, you also need to set up your cloud TIC server. These settings apply to every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]", + "smithy.api#documentation": "Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to specifying these values, you also need to set up your cloud TIC server. These settings apply to every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 6.0.13 Nielsen NLM Watermark Engine Version 1.3.3 Nielsen Watermark Authenticator [SID_TIC] Version [7.0.0]", "smithy.api#jsonName": "nielsenNonLinearWatermark" } }, @@ -14355,7 +14355,7 @@ "NielsenNonLinearWatermark": { "target": "com.amazonaws.mediaconvert#NielsenNonLinearWatermarkSettings", "traits": { - "smithy.api#documentation": "Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to specifying these values, you also need to set up your cloud TIC server. These settings apply to every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]", + "smithy.api#documentation": "Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to specifying these values, you also need to set up your cloud TIC server. These settings apply to every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 6.0.13 Nielsen NLM Watermark Engine Version 1.3.3 Nielsen Watermark Authenticator [SID_TIC] Version [7.0.0]", "smithy.api#jsonName": "nielsenNonLinearWatermark" } }, @@ -14403,7 +14403,7 @@ } }, "CredentialsSecretName": { - "target": "com.amazonaws.mediaconvert#__stringMin1Max512PatternAZAZ09", + "target": "com.amazonaws.mediaconvert#__stringMin1Max2048PatternArnAwsAwsUsGovAwsCnSecretsmanagerUsGovApCaCnEuSaCentralNorthSouthEastWestDD12SecretAZAZ09", "traits": { "smithy.api#documentation": "Provide the name of the AWS Secrets Manager secret where your Kantar credentials are stored. Note that your MediaConvert service role must provide access to this secret. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/granting-permissions-for-mediaconvert-to-access-secrets-manager-secret.html. For instructions on creating a secret, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html, in the AWS Secrets Manager User Guide.", "smithy.api#jsonName": "credentialsSecretName" @@ -20153,7 +20153,7 @@ } }, "traits": { - "smithy.api#documentation": "Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to specifying these values, you also need to set up your cloud TIC server. These settings apply to every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]" + "smithy.api#documentation": "Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to specifying these values, you also need to set up your cloud TIC server. These settings apply to every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 6.0.13 Nielsen NLM Watermark Engine Version 1.3.3 Nielsen Watermark Authenticator [SID_TIC] Version [7.0.0]" } }, "com.amazonaws.mediaconvert#NielsenSourceWatermarkStatusType": { @@ -27502,40 +27502,40 @@ } } }, - "com.amazonaws.mediaconvert#__stringMin1Max256": { + "com.amazonaws.mediaconvert#__stringMin1Max2048PatternArnAwsAwsUsGovAwsCnSecretsmanagerUsGovApCaCnEuSaCentralNorthSouthEastWestDD12SecretAZAZ09": { "type": "string", "traits": { "smithy.api#length": { "min": 1, - "max": 256 - } + "max": 2048 + }, + "smithy.api#pattern": "^(arn:(aws|aws-us-gov|aws-cn):secretsmanager:(us(-gov)?|ap|ca|cn|eu|sa)-(central|(north|south)?(east|west)?)-\\d:\\d{12}:secret:)?[a-zA-Z0-9_\\/_+=.@-]*$" } }, - "com.amazonaws.mediaconvert#__stringMin1Max50": { + "com.amazonaws.mediaconvert#__stringMin1Max256": { "type": "string", "traits": { "smithy.api#length": { "min": 1, - "max": 50 + "max": 256 } } }, - "com.amazonaws.mediaconvert#__stringMin1Max50PatternAZAZ09": { + "com.amazonaws.mediaconvert#__stringMin1Max50": { "type": "string", "traits": { "smithy.api#length": { "min": 1, "max": 50 - }, - "smithy.api#pattern": "^[a-zA-Z0-9_\\/_+=.@-]*$" + } } }, - "com.amazonaws.mediaconvert#__stringMin1Max512PatternAZAZ09": { + "com.amazonaws.mediaconvert#__stringMin1Max50PatternAZAZ09": { "type": "string", "traits": { "smithy.api#length": { "min": 1, - "max": 512 + "max": 50 }, "smithy.api#pattern": "^[a-zA-Z0-9_\\/_+=.@-]*$" } diff --git a/codegen/sdk-codegen/aws-models/organizations.json b/codegen/sdk-codegen/aws-models/organizations.json index 9efaec2e810..cd8e9d43312 100644 --- a/codegen/sdk-codegen/aws-models/organizations.json +++ b/codegen/sdk-codegen/aws-models/organizations.json @@ -1902,7 +1902,7 @@ } ], "traits": { - "smithy.api#documentation": "

Attaches a policy to a root, an organizational unit (OU), or an individual account.\n How the policy affects accounts depends on the type of policy. Refer to the\n Organizations User Guide for information about each policy type:

\n \n

This operation can be called only from the organization's\nmanagement account or by a member account that is a delegated administrator for an Amazon Web Services service.

", + "smithy.api#documentation": "

Attaches a policy to a root, an organizational unit (OU), or an individual account.\n How the policy affects accounts depends on the type of policy. Refer to the\n Organizations User Guide for information about each policy type:

\n \n

This operation can be called only from the organization's\nmanagement account or by a member account that is a delegated administrator for an Amazon Web Services service.

", "smithy.api#examples": [ { "title": "To attach a policy to an account", @@ -3129,7 +3129,7 @@ "Type": { "target": "com.amazonaws.organizations#PolicyType", "traits": { - "smithy.api#documentation": "

The type of policy to create. You can specify one of the following values:

\n ", + "smithy.api#documentation": "

The type of policy to create. You can specify one of the following values:

\n ", "smithy.api#required": {} } }, @@ -4478,7 +4478,7 @@ "PolicyType": { "target": "com.amazonaws.organizations#PolicyType", "traits": { - "smithy.api#documentation": "

The policy type that you want to disable in this root. You can specify one of the\n following values:

\n ", + "smithy.api#documentation": "

The policy type that you want to disable in this root. You can specify one of the\n following values:

\n ", "smithy.api#required": {} } } @@ -4873,7 +4873,7 @@ "PolicyType": { "target": "com.amazonaws.organizations#PolicyType", "traits": { - "smithy.api#documentation": "

The policy type that you want to enable. You can specify one of the following\n values:

\n ", + "smithy.api#documentation": "

The policy type that you want to enable. You can specify one of the following\n values:

\n ", "smithy.api#required": {} } } @@ -5398,7 +5398,7 @@ } }, "traits": { - "smithy.api#documentation": "

The requested operation failed because you provided invalid values for one or more of\n the request parameters. This exception includes a reason that contains additional\n information about the violated limit:

\n \n

Some of the reasons in the following list might not be applicable to this specific\n API or operation.

\n
\n
    \n
  • \n

    DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same\n entity.

    \n
  • \n
  • \n

    IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be\n modified.

    \n
  • \n
  • \n

    INPUT_REQUIRED: You must include a value for all required parameters.

    \n
  • \n
  • \n

    INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the\n invited account owner.

    \n
  • \n
  • \n

    INVALID_ENUM: You specified an invalid value.

    \n
  • \n
  • \n

    INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.

    \n
  • \n
  • \n

    INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid\n characters.

    \n
  • \n
  • \n

    INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least\n one invalid value.

    \n
  • \n
  • \n

    INVALID_PAGINATION_TOKEN: Get the value for the NextToken\n parameter from the response to a previous call of the operation.

    \n
  • \n
  • \n

    INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account,\n organization, or email) as a party.

    \n
  • \n
  • \n

    INVALID_PATTERN: You provided a value that doesn't match the required\n pattern.

    \n
  • \n
  • \n

    INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match\n the required pattern.

    \n
  • \n
  • \n

    INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name\n can't begin with the reserved prefix AWSServiceRoleFor.

    \n
  • \n
  • \n

    INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name\n (ARN) for the organization.

    \n
  • \n
  • \n

    INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.

    \n
  • \n
  • \n

    INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag.\n You can’t add, edit, or delete system tag keys because they're reserved for\n Amazon Web Services use. System tags don’t count against your tags per resource limit.

    \n
  • \n
  • \n

    MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the\n operation.

    \n
  • \n
  • \n

    MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than\n allowed.

    \n
  • \n
  • \n

    MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value\n than allowed.

    \n
  • \n
  • \n

    MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than\n allowed.

    \n
  • \n
  • \n

    MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value\n than allowed.

    \n
  • \n
  • \n

    MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between\n entities in the same root.

    \n
  • \n
  • \n

    TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target\n entity.

    \n
  • \n
  • \n

    UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't\n recognized.

    \n
  • \n
", + "smithy.api#documentation": "

The requested operation failed because you provided invalid values for one or more of\n the request parameters. This exception includes a reason that contains additional\n information about the violated limit:

\n \n

Some of the reasons in the following list might not be applicable to this specific\n API or operation.

\n
\n
    \n
  • \n

    DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same\n entity.

    \n
  • \n
  • \n

    IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be\n modified.

    \n
  • \n
  • \n

    INPUT_REQUIRED: You must include a value for all required parameters.

    \n
  • \n
  • \n

    INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the\n invited account owner.

    \n
  • \n
  • \n

    INVALID_ENUM: You specified an invalid value.

    \n
  • \n
  • \n

    INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.

    \n
  • \n
  • \n

    INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid\n characters.

    \n
  • \n
  • \n

    INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least\n one invalid value.

    \n
  • \n
  • \n

    INVALID_PAGINATION_TOKEN: Get the value for the NextToken\n parameter from the response to a previous call of the operation.

    \n
  • \n
  • \n

    INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account,\n organization, or email) as a party.

    \n
  • \n
  • \n

    INVALID_PATTERN: You provided a value that doesn't match the required\n pattern.

    \n
  • \n
  • \n

    INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match\n the required pattern.

    \n
  • \n
  • \n

    INVALID_PRINCIPAL: You specified an invalid principal element in the policy.

    \n
  • \n
  • \n

    INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name\n can't begin with the reserved prefix AWSServiceRoleFor.

    \n
  • \n
  • \n

    INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name\n (ARN) for the organization.

    \n
  • \n
  • \n

    INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.

    \n
  • \n
  • \n

    INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag.\n You can’t add, edit, or delete system tag keys because they're reserved for\n Amazon Web Services use. System tags don’t count against your tags per resource limit.

    \n
  • \n
  • \n

    MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the\n operation.

    \n
  • \n
  • \n

    MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than\n allowed.

    \n
  • \n
  • \n

    MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value\n than allowed.

    \n
  • \n
  • \n

    MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than\n allowed.

    \n
  • \n
  • \n

    MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value\n than allowed.

    \n
  • \n
  • \n

    MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between\n entities in the same root.

    \n
  • \n
  • \n

    NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.

    \n
  • \n
  • \n

    TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target\n entity.

    \n
  • \n
  • \n

    UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't\n recognized.

    \n
  • \n
", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -5556,6 +5556,12 @@ "smithy.api#enumValue": "INVALID_RESOURCE_POLICY_JSON" } }, + "INVALID_PRINCIPAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_PRINCIPAL" + } + }, "UNSUPPORTED_ACTION_IN_RESOURCE_POLICY": { "target": "smithy.api#Unit", "traits": { @@ -5573,6 +5579,12 @@ "traits": { "smithy.api#enumValue": "UNSUPPORTED_RESOURCE_IN_RESOURCE_POLICY" } + }, + "NON_DETACHABLE_POLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NON_DETACHABLE_POLICY" + } } } }, @@ -7122,7 +7134,7 @@ "Filter": { "target": "com.amazonaws.organizations#PolicyType", "traits": { - "smithy.api#documentation": "

The type of policy that you want to include in the returned list. You must specify one\n of the following values:

\n ", + "smithy.api#documentation": "

The type of policy that you want to include in the returned list. You must specify one\n of the following values:

\n ", "smithy.api#required": {} } }, @@ -7169,7 +7181,7 @@ "Filter": { "target": "com.amazonaws.organizations#PolicyType", "traits": { - "smithy.api#documentation": "

Specifies the type of policy that you want to include in the response. You must\n specify one of the following values:

\n ", + "smithy.api#documentation": "

Specifies the type of policy that you want to include in the response. You must\n specify one of the following values:

\n ", "smithy.api#required": {} } }, @@ -8096,6 +8108,12 @@ "smithy.api#enumValue": "SERVICE_CONTROL_POLICY" } }, + "RESOURCE_CONTROL_POLICY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESOURCE_CONTROL_POLICY" + } + }, "TAG_POLICY": { "target": "smithy.api#Unit", "traits": { From b95013d5d8a198e73170959719ab8bcdc70eae05 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 13 Nov 2024 19:08:07 +0000 Subject: [PATCH 14/20] Update endpoints model --- .../software/amazon/smithy/aws/go/codegen/endpoints.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json index 40b98a6d900..8e8197e16f5 100644 --- a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json +++ b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json @@ -9651,6 +9651,7 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, "ca-central-1" : { }, "ca-west-1" : { }, "eu-central-1" : { }, @@ -10728,6 +10729,7 @@ }, "iotfleetwise" : { "endpoints" : { + "ap-south-1" : { }, "eu-central-1" : { }, "us-east-1" : { } } @@ -21625,6 +21627,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, From 91f9f43858ef72fb549cf3c93707c1615c83d2bc Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 13 Nov 2024 19:27:42 +0000 Subject: [PATCH 15/20] Regenerated Clients --- .../09bc016ba3c64c46be73703eef9fd91b.json | 8 + .../41575353444b40ffbf474f4155544f00.json | 8 + .../68c9980b3bda4b63bbf292ac26d577b2.json | 8 + .../7bf5c87c9b5f4ac991fa047a0efe64fd.json | 8 + .../866ea2c0da8749a0876df26d4b730a01.json | 8 + .../9568ac14ebfa482b9a3f3863500e5504.json | 8 + .../9d7ed864744b4db398563a2652f6479c.json | 8 + .../a3bfcbba77654c979f00be111c8ddde2.json | 8 + .../ca0253aece414f608f490ff7d789afe3.json | 8 + .../d3b411031f7d4f618f2895212ecb66d3.json | 8 + .../de2569e95acf4fc88d0e091dd30a43a1.json | 8 + .../api_op_CheckAccessNotGranted.go | 13 +- service/accessanalyzer/deserializers.go | 36 + service/accessanalyzer/types/enums.go | 30 +- service/accessanalyzer/types/types.go | 20 +- .../api_op_CreateServiceLevelObjective.go | 5 + .../api_op_UpdateServiceLevelObjective.go | 5 + service/applicationsignals/deserializers.go | 83 ++ service/applicationsignals/serializers.go | 39 + service/applicationsignals/types/types.go | 30 + service/applicationsignals/validators.go | 42 + service/b2bi/api_op_GenerateMapping.go | 182 ++++ service/b2bi/api_op_UpdateTransformer.go | 4 +- service/b2bi/deserializers.go | 195 ++++ service/b2bi/generated.json | 1 + service/b2bi/serializers.go | 83 ++ .../snapshot/api_op_GenerateMapping.go.snap | 41 + service/b2bi/snapshot_test.go | 24 + service/b2bi/validators.go | 45 + service/billing/LICENSE.txt | 202 ++++ service/billing/api_client.go | 912 ++++++++++++++++++ service/billing/api_client_test.go | 127 +++ service/billing/api_op_ListBillingViews.go | 269 ++++++ service/billing/auth.go | 313 ++++++ service/billing/deserializers.go | 722 ++++++++++++++ service/billing/doc.go | 14 + service/billing/endpoints.go | 491 ++++++++++ service/billing/endpoints_config_test.go | 139 +++ service/billing/endpoints_test.go | 774 +++++++++++++++ service/billing/generated.json | 33 + service/billing/go.mod | 16 + service/billing/go.sum | 2 + service/billing/go_module_metadata.go | 6 + .../billing/internal/endpoints/endpoints.go | 296 ++++++ .../internal/endpoints/endpoints_test.go | 11 + service/billing/options.go | 232 +++++ service/billing/protocol_test.go | 3 + service/billing/serializers.go | 119 +++ .../snapshot/api_op_ListBillingViews.go.snap | 41 + service/billing/snapshot_test.go | 86 ++ service/billing/types/enums.go | 45 + service/billing/types/errors.go | 117 +++ service/billing/types/types.go | 61 ++ service/billing/validators.go | 72 ++ service/cloudtrail/api_op_DescribeQuery.go | 6 + service/cloudtrail/api_op_GenerateQuery.go | 187 ++++ service/cloudtrail/deserializers.go | 268 +++++ service/cloudtrail/generated.json | 1 + service/cloudtrail/serializers.go | 91 ++ .../snapshot/api_op_GenerateQuery.go.snap | 41 + service/cloudtrail/snapshot_test.go | 24 + service/cloudtrail/types/errors.go | 28 + service/cloudtrail/types/types.go | 226 ++--- service/cloudtrail/validators.go | 42 + service/dynamodb/api_op_CreateTable.go | 4 + service/dynamodb/api_op_UpdateTable.go | 4 + service/dynamodb/deserializers.go | 214 ++++ service/dynamodb/serializers.go | 52 + service/dynamodb/types/types.go | 77 ++ ...op_CreateCapacityReservationBySplitting.go | 12 +- service/ec2/api_op_CreateKeyPair.go | 12 +- service/ec2/api_op_CreateSecurityGroup.go | 4 +- service/ec2/api_op_DescribeImages.go | 14 +- service/ec2/api_op_DescribeKeyPairs.go | 3 +- service/ec2/api_op_ImportKeyPair.go | 18 +- service/ec2/api_op_RevokeClientVpnIngress.go | 5 +- service/ec2/deserializers.go | 26 + service/ec2/types/types.go | 27 +- service/glue/internal/endpoints/endpoints.go | 3 + service/internetmonitor/api_op_StartQuery.go | 6 +- service/internetmonitor/types/enums.go | 2 + .../internal/endpoints/endpoints.go | 3 + service/mediaconvert/deserializers.go | 2 +- service/mediaconvert/types/types.go | 12 +- service/organizations/api_op_AttachPolicy.go | 3 + service/organizations/api_op_CreatePolicy.go | 3 + .../organizations/api_op_DisablePolicyType.go | 3 + .../organizations/api_op_EnablePolicyType.go | 3 + service/organizations/api_op_ListPolicies.go | 3 + .../api_op_ListPoliciesForTarget.go | 3 + service/organizations/types/enums.go | 6 + service/organizations/types/errors.go | 5 + .../internal/endpoints/endpoints.go | 3 + 93 files changed, 7291 insertions(+), 224 deletions(-) create mode 100644 .changelog/09bc016ba3c64c46be73703eef9fd91b.json create mode 100644 .changelog/41575353444b40ffbf474f4155544f00.json create mode 100644 .changelog/68c9980b3bda4b63bbf292ac26d577b2.json create mode 100644 .changelog/7bf5c87c9b5f4ac991fa047a0efe64fd.json create mode 100644 .changelog/866ea2c0da8749a0876df26d4b730a01.json create mode 100644 .changelog/9568ac14ebfa482b9a3f3863500e5504.json create mode 100644 .changelog/9d7ed864744b4db398563a2652f6479c.json create mode 100644 .changelog/a3bfcbba77654c979f00be111c8ddde2.json create mode 100644 .changelog/ca0253aece414f608f490ff7d789afe3.json create mode 100644 .changelog/d3b411031f7d4f618f2895212ecb66d3.json create mode 100644 .changelog/de2569e95acf4fc88d0e091dd30a43a1.json create mode 100644 service/b2bi/api_op_GenerateMapping.go create mode 100644 service/b2bi/snapshot/api_op_GenerateMapping.go.snap create mode 100644 service/billing/LICENSE.txt create mode 100644 service/billing/api_client.go create mode 100644 service/billing/api_client_test.go create mode 100644 service/billing/api_op_ListBillingViews.go create mode 100644 service/billing/auth.go create mode 100644 service/billing/deserializers.go create mode 100644 service/billing/doc.go create mode 100644 service/billing/endpoints.go create mode 100644 service/billing/endpoints_config_test.go create mode 100644 service/billing/endpoints_test.go create mode 100644 service/billing/generated.json create mode 100644 service/billing/go.mod create mode 100644 service/billing/go.sum create mode 100644 service/billing/go_module_metadata.go create mode 100644 service/billing/internal/endpoints/endpoints.go create mode 100644 service/billing/internal/endpoints/endpoints_test.go create mode 100644 service/billing/options.go create mode 100644 service/billing/protocol_test.go create mode 100644 service/billing/serializers.go create mode 100644 service/billing/snapshot/api_op_ListBillingViews.go.snap create mode 100644 service/billing/snapshot_test.go create mode 100644 service/billing/types/enums.go create mode 100644 service/billing/types/errors.go create mode 100644 service/billing/types/types.go create mode 100644 service/billing/validators.go create mode 100644 service/cloudtrail/api_op_GenerateQuery.go create mode 100644 service/cloudtrail/snapshot/api_op_GenerateQuery.go.snap diff --git a/.changelog/09bc016ba3c64c46be73703eef9fd91b.json b/.changelog/09bc016ba3c64c46be73703eef9fd91b.json new file mode 100644 index 00000000000..894aafb9a81 --- /dev/null +++ b/.changelog/09bc016ba3c64c46be73703eef9fd91b.json @@ -0,0 +1,8 @@ +{ + "id": "09bc016b-a3c6-4c46-be73-703eef9fd91b", + "type": "feature", + "description": "Amazon CloudWatch Application Signals now supports creating Service Level Objectives with burn rates. Users can now create or update SLOs with burn rate configurations to meet their specific business requirements.", + "modules": [ + "service/applicationsignals" + ] +} \ No newline at end of file diff --git a/.changelog/41575353444b40ffbf474f4155544f00.json b/.changelog/41575353444b40ffbf474f4155544f00.json new file mode 100644 index 00000000000..678740c5dbc --- /dev/null +++ b/.changelog/41575353444b40ffbf474f4155544f00.json @@ -0,0 +1,8 @@ +{ + "id": "41575353-444b-40ff-bf47-4f4155544f00", + "type": "release", + "description": "New AWS service client module", + "modules": [ + "service/billing" + ] +} \ No newline at end of file diff --git a/.changelog/68c9980b3bda4b63bbf292ac26d577b2.json b/.changelog/68c9980b3bda4b63bbf292ac26d577b2.json new file mode 100644 index 00000000000..2379a221052 --- /dev/null +++ b/.changelog/68c9980b3bda4b63bbf292ac26d577b2.json @@ -0,0 +1,8 @@ +{ + "id": "68c9980b-3bda-4b63-bbf2-92ac26d577b2", + "type": "feature", + "description": "This release adds support for policy validation and external access findings for resource control policies (RCP). IAM Access Analyzer helps you author functional and secure RCPs and awareness that a RCP may restrict external access. Updated service API, documentation, and paginators.", + "modules": [ + "service/accessanalyzer" + ] +} \ No newline at end of file diff --git a/.changelog/7bf5c87c9b5f4ac991fa047a0efe64fd.json b/.changelog/7bf5c87c9b5f4ac991fa047a0efe64fd.json new file mode 100644 index 00000000000..1ed2ad71b38 --- /dev/null +++ b/.changelog/7bf5c87c9b5f4ac991fa047a0efe64fd.json @@ -0,0 +1,8 @@ +{ + "id": "7bf5c87c-9b5f-4ac9-91fa-047a0efe64fd", + "type": "feature", + "description": "This release includes supports the new WarmThroughput feature for DynamoDB. You can now provide an optional WarmThroughput attribute for CreateTable or UpdateTable APIs to pre-warm your table or global secondary index. You can also use DescribeTable to see the latest WarmThroughput value.", + "modules": [ + "service/dynamodb" + ] +} \ No newline at end of file diff --git a/.changelog/866ea2c0da8749a0876df26d4b730a01.json b/.changelog/866ea2c0da8749a0876df26d4b730a01.json new file mode 100644 index 00000000000..9af42b5227c --- /dev/null +++ b/.changelog/866ea2c0da8749a0876df26d4b730a01.json @@ -0,0 +1,8 @@ +{ + "id": "866ea2c0-da87-49a0-876d-f26d4b730a01", + "type": "feature", + "description": "Today, AWS announces the general availability of ListBillingViews API in the AWS SDKs, to enable AWS Billing Conductor (ABC) users to create proforma Cost and Usage Reports (CUR) programmatically.", + "modules": [ + "service/billing" + ] +} \ No newline at end of file diff --git a/.changelog/9568ac14ebfa482b9a3f3863500e5504.json b/.changelog/9568ac14ebfa482b9a3f3863500e5504.json new file mode 100644 index 00000000000..888fa5f3644 --- /dev/null +++ b/.changelog/9568ac14ebfa482b9a3f3863500e5504.json @@ -0,0 +1,8 @@ +{ + "id": "9568ac14-ebfa-482b-9a3f-3863500e5504", + "type": "feature", + "description": "Add new query type Routing_Suggestions regarding querying interface", + "modules": [ + "service/internetmonitor" + ] +} \ No newline at end of file diff --git a/.changelog/9d7ed864744b4db398563a2652f6479c.json b/.changelog/9d7ed864744b4db398563a2652f6479c.json new file mode 100644 index 00000000000..c412da2292f --- /dev/null +++ b/.changelog/9d7ed864744b4db398563a2652f6479c.json @@ -0,0 +1,8 @@ +{ + "id": "9d7ed864-744b-4db3-9856-3a2652f6479c", + "type": "feature", + "description": "Add support for policy operations on the Resource Control Polices.", + "modules": [ + "service/organizations" + ] +} \ No newline at end of file diff --git a/.changelog/a3bfcbba77654c979f00be111c8ddde2.json b/.changelog/a3bfcbba77654c979f00be111c8ddde2.json new file mode 100644 index 00000000000..35d7b7d6823 --- /dev/null +++ b/.changelog/a3bfcbba77654c979f00be111c8ddde2.json @@ -0,0 +1,8 @@ +{ + "id": "a3bfcbba-7765-4c97-9f00-be111c8ddde2", + "type": "feature", + "description": "This release adds a new API GenerateQuery that generates a query from a natural language prompt about the event data in your event data store. This operation uses generative artificial intelligence (generative AI) to produce a ready-to-use SQL query from the prompt.", + "modules": [ + "service/cloudtrail" + ] +} \ No newline at end of file diff --git a/.changelog/ca0253aece414f608f490ff7d789afe3.json b/.changelog/ca0253aece414f608f490ff7d789afe3.json new file mode 100644 index 00000000000..51d5dc1b877 --- /dev/null +++ b/.changelog/ca0253aece414f608f490ff7d789afe3.json @@ -0,0 +1,8 @@ +{ + "id": "ca0253ae-ce41-4f60-8f49-0ff7d789afe3", + "type": "feature", + "description": "This release adds a GenerateMapping API to allow generation of JSONata or XSLT transformer code based on input and output samples.", + "modules": [ + "service/b2bi" + ] +} \ No newline at end of file diff --git a/.changelog/d3b411031f7d4f618f2895212ecb66d3.json b/.changelog/d3b411031f7d4f618f2895212ecb66d3.json new file mode 100644 index 00000000000..dad87d9eeac --- /dev/null +++ b/.changelog/d3b411031f7d4f618f2895212ecb66d3.json @@ -0,0 +1,8 @@ +{ + "id": "d3b41103-1f7d-4f61-8f28-95212ecb66d3", + "type": "feature", + "description": "This release adds support for ARN inputs in the Kantar credentials secrets name field and the MSPR field to the manifests for PlayReady DRM protected outputs.", + "modules": [ + "service/mediaconvert" + ] +} \ No newline at end of file diff --git a/.changelog/de2569e95acf4fc88d0e091dd30a43a1.json b/.changelog/de2569e95acf4fc88d0e091dd30a43a1.json new file mode 100644 index 00000000000..e88a6e43efd --- /dev/null +++ b/.changelog/de2569e95acf4fc88d0e091dd30a43a1.json @@ -0,0 +1,8 @@ +{ + "id": "de2569e9-5acf-4fc8-8d0e-091dd30a43a1", + "type": "feature", + "description": "This release adds the source AMI details in DescribeImages API", + "modules": [ + "service/ec2" + ] +} \ No newline at end of file diff --git a/service/accessanalyzer/api_op_CheckAccessNotGranted.go b/service/accessanalyzer/api_op_CheckAccessNotGranted.go index 497c2d86835..c8d1b68b231 100644 --- a/service/accessanalyzer/api_op_CheckAccessNotGranted.go +++ b/service/accessanalyzer/api_op_CheckAccessNotGranted.go @@ -31,11 +31,11 @@ type CheckAccessNotGrantedInput struct { // An access object containing the permissions that shouldn't be granted by the // specified policy. If only actions are specified, IAM Access Analyzer checks for - // access of the actions on all resources in the policy. If only resources are - // specified, then IAM Access Analyzer checks which actions have access to the - // specified resources. If both actions and resources are specified, then IAM - // Access Analyzer checks which of the specified actions have access to the - // specified resources. + // access to peform at least one of the actions on any resource in the policy. If + // only resources are specified, then IAM Access Analyzer checks for access to + // perform any action on at least one of the resources. If both actions and + // resources are specified, IAM Access Analyzer checks for access to perform at + // least one of the specified actions on at least one of the specified resources. // // This member is required. Access []types.Access @@ -51,8 +51,7 @@ type CheckAccessNotGrantedInput struct { // // Resource policies grant permissions on Amazon Web Services resources. Resource // policies include trust policies for IAM roles and bucket policies for Amazon S3 - // buckets. You can provide a generic input such as identity policy or resource - // policy or a specific input such as managed policy or Amazon S3 bucket policy. + // buckets. // // This member is required. PolicyType types.AccessCheckPolicyType diff --git a/service/accessanalyzer/deserializers.go b/service/accessanalyzer/deserializers.go index 42413bd019b..7a5bc1ebc8e 100644 --- a/service/accessanalyzer/deserializers.go +++ b/service/accessanalyzer/deserializers.go @@ -6052,6 +6052,15 @@ func awsRestjson1_deserializeDocumentAccessPreviewFinding(v **types.AccessPrevie sv.Resource = ptr.String(jtv) } + case "resourceControlPolicyRestriction": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceControlPolicyRestriction to be of type string, got %T instead", value) + } + sv.ResourceControlPolicyRestriction = types.ResourceControlPolicyRestriction(jtv) + } + case "resourceOwnerAccount": if value != nil { jtv, ok := value.(string) @@ -7632,6 +7641,15 @@ func awsRestjson1_deserializeDocumentExternalAccessDetails(v **types.ExternalAcc return err } + case "resourceControlPolicyRestriction": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceControlPolicyRestriction to be of type string, got %T instead", value) + } + sv.ResourceControlPolicyRestriction = types.ResourceControlPolicyRestriction(jtv) + } + case "sources": if err := awsRestjson1_deserializeDocumentFindingSourceList(&sv.Sources, value); err != nil { return err @@ -7780,6 +7798,15 @@ func awsRestjson1_deserializeDocumentFinding(v **types.Finding, value interface{ sv.Resource = ptr.String(jtv) } + case "resourceControlPolicyRestriction": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceControlPolicyRestriction to be of type string, got %T instead", value) + } + sv.ResourceControlPolicyRestriction = types.ResourceControlPolicyRestriction(jtv) + } + case "resourceOwnerAccount": if value != nil { jtv, ok := value.(string) @@ -8241,6 +8268,15 @@ func awsRestjson1_deserializeDocumentFindingSummary(v **types.FindingSummary, va sv.Resource = ptr.String(jtv) } + case "resourceControlPolicyRestriction": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceControlPolicyRestriction to be of type string, got %T instead", value) + } + sv.ResourceControlPolicyRestriction = types.ResourceControlPolicyRestriction(jtv) + } + case "resourceOwnerAccount": if value != nil { jtv, ok := value.(string) diff --git a/service/accessanalyzer/types/enums.go b/service/accessanalyzer/types/enums.go index 2cdd12773c2..fa6f887f472 100644 --- a/service/accessanalyzer/types/enums.go +++ b/service/accessanalyzer/types/enums.go @@ -474,9 +474,10 @@ type PolicyType string // Enum values for PolicyType const ( - PolicyTypeIdentityPolicy PolicyType = "IDENTITY_POLICY" - PolicyTypeResourcePolicy PolicyType = "RESOURCE_POLICY" - PolicyTypeServiceControlPolicy PolicyType = "SERVICE_CONTROL_POLICY" + PolicyTypeIdentityPolicy PolicyType = "IDENTITY_POLICY" + PolicyTypeResourcePolicy PolicyType = "RESOURCE_POLICY" + PolicyTypeServiceControlPolicy PolicyType = "SERVICE_CONTROL_POLICY" + PolicyTypeResourceControlPolicy PolicyType = "RESOURCE_CONTROL_POLICY" ) // Values returns all known values for PolicyType. Note that this can be expanded @@ -488,6 +489,7 @@ func (PolicyType) Values() []PolicyType { "IDENTITY_POLICY", "RESOURCE_POLICY", "SERVICE_CONTROL_POLICY", + "RESOURCE_CONTROL_POLICY", } } @@ -551,6 +553,28 @@ func (RecommendedRemediationAction) Values() []RecommendedRemediationAction { } } +type ResourceControlPolicyRestriction string + +// Enum values for ResourceControlPolicyRestriction +const ( + ResourceControlPolicyRestrictionApplicable ResourceControlPolicyRestriction = "APPLICABLE" + ResourceControlPolicyRestrictionFailedToEvaluateRcp ResourceControlPolicyRestriction = "FAILED_TO_EVALUATE_RCP" + ResourceControlPolicyRestrictionNotApplicable ResourceControlPolicyRestriction = "NOT_APPLICABLE" +) + +// Values returns all known values for ResourceControlPolicyRestriction. 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 (ResourceControlPolicyRestriction) Values() []ResourceControlPolicyRestriction { + return []ResourceControlPolicyRestriction{ + "APPLICABLE", + "FAILED_TO_EVALUATE_RCP", + "NOT_APPLICABLE", + } +} + type ResourceType string // Enum values for ResourceType diff --git a/service/accessanalyzer/types/types.go b/service/accessanalyzer/types/types.go index 594f00a3fa3..8b2b6e90b3b 100644 --- a/service/accessanalyzer/types/types.go +++ b/service/accessanalyzer/types/types.go @@ -16,7 +16,9 @@ type Access struct { Actions []string // A list of resources for the access permissions. Any strings that can be used as - // a resource in an IAM policy can be used in the list of resources to check. + // an Amazon Resource Name (ARN) in an IAM policy can be used in the list of + // resources to check. You can only use a wildcard in the portion of the ARN that + // specifies the resource ID. Resources []string noSmithyDocumentSerde @@ -147,6 +149,10 @@ type AccessPreviewFinding struct { // associated with the access preview. Resource *string + // The type of restriction applied to the finding by the resource owner with an + // Organizations resource control policy (RCP). + ResourceControlPolicyRestriction ResourceControlPolicyRestriction + // The sources of the finding. This indicates how the access that generated the // finding is granted. It is populated for Amazon S3 bucket findings. Sources []FindingSource @@ -820,6 +826,10 @@ type ExternalAccessDetails struct { // The external principal that has access to a resource within the zone of trust. Principal map[string]string + // The type of restriction applied to the finding by the resource owner with an + // Organizations resource control policy (RCP). + ResourceControlPolicyRestriction ResourceControlPolicyRestriction + // The sources of the external access finding. This indicates how the access that // generated the finding is granted. It is populated for Amazon S3 bucket findings. Sources []FindingSource @@ -887,6 +897,10 @@ type Finding struct { // The resource that an external principal has access to. Resource *string + // The type of restriction applied to the finding by the resource owner with an + // Organizations resource control policy (RCP). + ResourceControlPolicyRestriction ResourceControlPolicyRestriction + // The sources of the finding. This indicates how the access that generated the // finding is granted. It is populated for Amazon S3 bucket findings. Sources []FindingSource @@ -1048,6 +1062,10 @@ type FindingSummary struct { // The resource that the external principal has access to. Resource *string + // The type of restriction applied to the finding by the resource owner with an + // Organizations resource control policy (RCP). + ResourceControlPolicyRestriction ResourceControlPolicyRestriction + // The sources of the finding. This indicates how the access that generated the // finding is granted. It is populated for Amazon S3 bucket findings. Sources []FindingSource diff --git a/service/applicationsignals/api_op_CreateServiceLevelObjective.go b/service/applicationsignals/api_op_CreateServiceLevelObjective.go index 32e32f81914..af4cdc94f69 100644 --- a/service/applicationsignals/api_op_CreateServiceLevelObjective.go +++ b/service/applicationsignals/api_op_CreateServiceLevelObjective.go @@ -112,6 +112,11 @@ type CreateServiceLevelObjectiveInput struct { // This member is required. Name *string + // Use this array to create burn rates for this SLO. Each burn rate is a metric + // that indicates how fast the service is consuming the error budget, relative to + // the attainment goal of the SLO. + BurnRateConfigurations []types.BurnRateConfiguration + // An optional description for this SLO. Description *string diff --git a/service/applicationsignals/api_op_UpdateServiceLevelObjective.go b/service/applicationsignals/api_op_UpdateServiceLevelObjective.go index 56a00591810..6355feb3978 100644 --- a/service/applicationsignals/api_op_UpdateServiceLevelObjective.go +++ b/service/applicationsignals/api_op_UpdateServiceLevelObjective.go @@ -39,6 +39,11 @@ type UpdateServiceLevelObjectiveInput struct { // This member is required. Id *string + // Use this array to create burn rates for this SLO. Each burn rate is a metric + // that indicates how fast the service is consuming the error budget, relative to + // the attainment goal of the SLO. + BurnRateConfigurations []types.BurnRateConfiguration + // An optional description for the SLO. Description *string diff --git a/service/applicationsignals/deserializers.go b/service/applicationsignals/deserializers.go index a5bd0e7da61..af9176aa948 100644 --- a/service/applicationsignals/deserializers.go +++ b/service/applicationsignals/deserializers.go @@ -2714,6 +2714,84 @@ func awsRestjson1_deserializeDocumentAttributes(v *map[string]string, value inte return nil } +func awsRestjson1_deserializeDocumentBurnRateConfiguration(v **types.BurnRateConfiguration, 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.BurnRateConfiguration + if *v == nil { + sv = &types.BurnRateConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "LookBackWindowMinutes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected BurnRateLookBackWindowMinutes to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.LookBackWindowMinutes = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBurnRateConfigurations(v *[]types.BurnRateConfiguration, 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.BurnRateConfiguration + if *v == nil { + cv = []types.BurnRateConfiguration{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.BurnRateConfiguration + destAddr := &col + if err := awsRestjson1_deserializeDocumentBurnRateConfiguration(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentCalendarInterval(v **types.CalendarInterval, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4144,6 +4222,11 @@ func awsRestjson1_deserializeDocumentServiceLevelObjective(v **types.ServiceLeve sv.Arn = ptr.String(jtv) } + case "BurnRateConfigurations": + if err := awsRestjson1_deserializeDocumentBurnRateConfigurations(&sv.BurnRateConfigurations, value); err != nil { + return err + } + case "CreatedTime": if value != nil { switch jtv := value.(type) { diff --git a/service/applicationsignals/serializers.go b/service/applicationsignals/serializers.go index 04951a52f62..9194865faa6 100644 --- a/service/applicationsignals/serializers.go +++ b/service/applicationsignals/serializers.go @@ -178,6 +178,13 @@ func awsRestjson1_serializeOpDocumentCreateServiceLevelObjectiveInput(v *CreateS object := value.Object() defer object.Close() + if v.BurnRateConfigurations != nil { + ok := object.Key("BurnRateConfigurations") + if err := awsRestjson1_serializeDocumentBurnRateConfigurations(v.BurnRateConfigurations, ok); err != nil { + return err + } + } + if v.Description != nil { ok := object.Key("Description") ok.String(*v.Description) @@ -1328,6 +1335,13 @@ func awsRestjson1_serializeOpDocumentUpdateServiceLevelObjectiveInput(v *UpdateS object := value.Object() defer object.Close() + if v.BurnRateConfigurations != nil { + ok := object.Key("BurnRateConfigurations") + if err := awsRestjson1_serializeDocumentBurnRateConfigurations(v.BurnRateConfigurations, ok); err != nil { + return err + } + } + if v.Description != nil { ok := object.Key("Description") ok.String(*v.Description) @@ -1368,6 +1382,31 @@ func awsRestjson1_serializeDocumentAttributes(v map[string]string, value smithyj return nil } +func awsRestjson1_serializeDocumentBurnRateConfiguration(v *types.BurnRateConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.LookBackWindowMinutes != nil { + ok := object.Key("LookBackWindowMinutes") + ok.Integer(*v.LookBackWindowMinutes) + } + + return nil +} + +func awsRestjson1_serializeDocumentBurnRateConfigurations(v []types.BurnRateConfiguration, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentBurnRateConfiguration(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentCalendarInterval(v *types.CalendarInterval, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/applicationsignals/types/types.go b/service/applicationsignals/types/types.go index 71fe6711a6a..6ad7e8d7d0d 100644 --- a/service/applicationsignals/types/types.go +++ b/service/applicationsignals/types/types.go @@ -7,6 +7,30 @@ import ( "time" ) +// This object defines the length of the look-back window used to calculate one +// burn rate metric for this SLO. The burn rate measures how fast the service is +// consuming the error budget, relative to the attainment goal of the SLO. A burn +// rate of exactly 1 indicates that the SLO goal will be met exactly. +// +// For example, if you specify 60 as the number of minutes in the look-back +// window, the burn rate is calculated as the following: +// +// burn rate = error rate over the look-back window / (1 - attainment goal +// percentage) +// +// For more information about burn rates, see [Calculate burn rates]. +// +// [Calculate burn rates]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html#CloudWatch-ServiceLevelObjectives-burn +type BurnRateConfiguration struct { + + // The number of minutes to use as the look-back window. + // + // This member is required. + LookBackWindowMinutes *int32 + + noSmithyDocumentSerde +} + // If the interval for this service level objective is a calendar interval, this // structure contains the interval specifications. type CalendarInterval struct { @@ -868,6 +892,12 @@ type ServiceLevelObjective struct { // This member is required. Name *string + // Each object in this array defines the length of the look-back window used to + // calculate one burn rate metric for this SLO. The burn rate measures how fast the + // service is consuming the error budget, relative to the attainment goal of the + // SLO. + BurnRateConfigurations []BurnRateConfiguration + // The description that you created for this SLO. Description *string diff --git a/service/applicationsignals/validators.go b/service/applicationsignals/validators.go index f49fcf637f7..a838a478100 100644 --- a/service/applicationsignals/validators.go +++ b/service/applicationsignals/validators.go @@ -322,6 +322,38 @@ func addOpUpdateServiceLevelObjectiveValidationMiddleware(stack *middleware.Stac return stack.Initialize.Add(&validateOpUpdateServiceLevelObjective{}, middleware.After) } +func validateBurnRateConfiguration(v *types.BurnRateConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "BurnRateConfiguration"} + if v.LookBackWindowMinutes == nil { + invalidParams.Add(smithy.NewErrParamRequired("LookBackWindowMinutes")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateBurnRateConfigurations(v []types.BurnRateConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "BurnRateConfigurations"} + for i := range v { + if err := validateBurnRateConfiguration(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateCalendarInterval(v *types.CalendarInterval) error { if v == nil { return nil @@ -704,6 +736,11 @@ func validateOpCreateServiceLevelObjectiveInput(v *CreateServiceLevelObjectiveIn invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) } } + if v.BurnRateConfigurations != nil { + if err := validateBurnRateConfigurations(v.BurnRateConfigurations); err != nil { + invalidParams.AddNested("BurnRateConfigurations", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -921,6 +958,11 @@ func validateOpUpdateServiceLevelObjectiveInput(v *UpdateServiceLevelObjectiveIn invalidParams.AddNested("Goal", err.(smithy.InvalidParamsError)) } } + if v.BurnRateConfigurations != nil { + if err := validateBurnRateConfigurations(v.BurnRateConfigurations); err != nil { + invalidParams.AddNested("BurnRateConfigurations", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/b2bi/api_op_GenerateMapping.go b/service/b2bi/api_op_GenerateMapping.go new file mode 100644 index 00000000000..d992d710302 --- /dev/null +++ b/service/b2bi/api_op_GenerateMapping.go @@ -0,0 +1,182 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package b2bi + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/b2bi/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Takes sample input and output documents and uses Amazon Bedrock to generate a +// mapping automatically. Depending on the accuracy and other factors, you can then +// edit the mapping for your needs. +// +// Before you can use the AI-assisted feature for Amazon Web Services B2B Data +// Interchange you must enable models in Amazon Bedrock. For details, see [AI-assisted template mapping prerequisites]in the +// Amazon Web Services B2B Data Interchange User guide. +// +// [AI-assisted template mapping prerequisites]: https://docs.aws.amazon.com/b2bi/latest/userguide/ai-assisted-mapping.html#ai-assist-prereq +func (c *Client) GenerateMapping(ctx context.Context, params *GenerateMappingInput, optFns ...func(*Options)) (*GenerateMappingOutput, error) { + if params == nil { + params = &GenerateMappingInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GenerateMapping", params, optFns, c.addOperationGenerateMappingMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GenerateMappingOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GenerateMappingInput struct { + + // Provide the contents of a sample X12 EDI file (for inbound EDI) or JSON/XML + // file (for outbound EDI) to use as a starting point for the mapping. + // + // This member is required. + InputFileContent *string + + // Specify the mapping type: either JSONATA or XSLT. + // + // This member is required. + MappingType types.MappingType + + // Provide the contents of a sample X12 EDI file (for outbound EDI) or JSON/XML + // file (for inbound EDI) to use as a target for the mapping. + // + // This member is required. + OutputFileContent *string + + noSmithyDocumentSerde +} + +type GenerateMappingOutput struct { + + // Returns a mapping template based on your inputs. + // + // This member is required. + MappingTemplate *string + + // Returns a percentage that estimates the accuracy of the generated mapping. + MappingAccuracy *float32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGenerateMappingMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGenerateMapping{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGenerateMapping{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GenerateMapping"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpGenerateMappingValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGenerateMapping(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGenerateMapping(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GenerateMapping", + } +} diff --git a/service/b2bi/api_op_UpdateTransformer.go b/service/b2bi/api_op_UpdateTransformer.go index d4a91e957fe..540cb0f5e99 100644 --- a/service/b2bi/api_op_UpdateTransformer.go +++ b/service/b2bi/api_op_UpdateTransformer.go @@ -91,8 +91,8 @@ type UpdateTransformerInput struct { // corresponding keys used to identify the location for your sample documents. SampleDocuments *types.SampleDocuments - // Specifies the transformer's status. You can update the state of the - // transformer, from active to inactive , or inactive to active . + // Specifies the transformer's status. You can update the state of the transformer + // from inactive to active . Status types.TransformerStatus noSmithyDocumentSerde diff --git a/service/b2bi/deserializers.go b/service/b2bi/deserializers.go index d6a11a65262..afaac94e803 100644 --- a/service/b2bi/deserializers.go +++ b/service/b2bi/deserializers.go @@ -18,6 +18,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" "io" "io/ioutil" + "math" "strings" "time" ) @@ -1082,6 +1083,126 @@ func awsAwsjson10_deserializeOpErrorDeleteTransformer(response *smithyhttp.Respo } } +type awsAwsjson10_deserializeOpGenerateMapping struct { +} + +func (*awsAwsjson10_deserializeOpGenerateMapping) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpGenerateMapping) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorGenerateMapping(response, &metadata) + } + output := &GenerateMappingOutput{} + 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 = awsAwsjson10_deserializeOpDocumentGenerateMappingOutput(&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 awsAwsjson10_deserializeOpErrorGenerateMapping(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson10_deserializeOpGetCapability struct { } @@ -6293,6 +6414,80 @@ func awsAwsjson10_deserializeOpDocumentCreateTransformerOutput(v **CreateTransfo return nil } +func awsAwsjson10_deserializeOpDocumentGenerateMappingOutput(v **GenerateMappingOutput, 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 *GenerateMappingOutput + if *v == nil { + sv = &GenerateMappingOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "mappingAccuracy": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.MappingAccuracy = ptr.Float32(float32(f64)) + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.MappingAccuracy = ptr.Float32(float32(f64)) + + default: + return fmt.Errorf("expected Float to be a JSON Number, got %T instead", value) + + } + } + + case "mappingTemplate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.MappingTemplate = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson10_deserializeOpDocumentGetCapabilityOutput(v **GetCapabilityOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/b2bi/generated.json b/service/b2bi/generated.json index 6222277d95a..e87d6e68dbe 100644 --- a/service/b2bi/generated.json +++ b/service/b2bi/generated.json @@ -17,6 +17,7 @@ "api_op_DeletePartnership.go", "api_op_DeleteProfile.go", "api_op_DeleteTransformer.go", + "api_op_GenerateMapping.go", "api_op_GetCapability.go", "api_op_GetPartnership.go", "api_op_GetProfile.go", diff --git a/service/b2bi/serializers.go b/service/b2bi/serializers.go index 0ee5a8e5d55..103a951989a 100644 --- a/service/b2bi/serializers.go +++ b/service/b2bi/serializers.go @@ -565,6 +565,67 @@ func (m *awsAwsjson10_serializeOpDeleteTransformer) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } +type awsAwsjson10_serializeOpGenerateMapping struct { +} + +func (*awsAwsjson10_serializeOpGenerateMapping) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpGenerateMapping) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GenerateMappingInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("B2BI.GenerateMapping") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentGenerateMappingInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsjson10_serializeOpGetCapability struct { } @@ -2647,6 +2708,28 @@ func awsAwsjson10_serializeOpDocumentDeleteTransformerInput(v *DeleteTransformer return nil } +func awsAwsjson10_serializeOpDocumentGenerateMappingInput(v *GenerateMappingInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.InputFileContent != nil { + ok := object.Key("inputFileContent") + ok.String(*v.InputFileContent) + } + + if len(v.MappingType) > 0 { + ok := object.Key("mappingType") + ok.String(string(v.MappingType)) + } + + if v.OutputFileContent != nil { + ok := object.Key("outputFileContent") + ok.String(*v.OutputFileContent) + } + + return nil +} + func awsAwsjson10_serializeOpDocumentGetCapabilityInput(v *GetCapabilityInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/b2bi/snapshot/api_op_GenerateMapping.go.snap b/service/b2bi/snapshot/api_op_GenerateMapping.go.snap new file mode 100644 index 00000000000..c55ecae525d --- /dev/null +++ b/service/b2bi/snapshot/api_op_GenerateMapping.go.snap @@ -0,0 +1,41 @@ +GenerateMapping + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/b2bi/snapshot_test.go b/service/b2bi/snapshot_test.go index 44a5b372d5c..2bd897a0af1 100644 --- a/service/b2bi/snapshot_test.go +++ b/service/b2bi/snapshot_test.go @@ -170,6 +170,18 @@ func TestCheckSnapshot_DeleteTransformer(t *testing.T) { } } +func TestCheckSnapshot_GenerateMapping(t *testing.T) { + svc := New(Options{}) + _, err := svc.GenerateMapping(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GenerateMapping") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GetCapability(t *testing.T) { svc := New(Options{}) _, err := svc.GetCapability(context.Background(), nil, func(o *Options) { @@ -517,6 +529,18 @@ func TestUpdateSnapshot_DeleteTransformer(t *testing.T) { } } +func TestUpdateSnapshot_GenerateMapping(t *testing.T) { + svc := New(Options{}) + _, err := svc.GenerateMapping(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GenerateMapping") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GetCapability(t *testing.T) { svc := New(Options{}) _, err := svc.GetCapability(context.Background(), nil, func(o *Options) { diff --git a/service/b2bi/validators.go b/service/b2bi/validators.go index be8305dc279..a255e1d99ab 100644 --- a/service/b2bi/validators.go +++ b/service/b2bi/validators.go @@ -190,6 +190,26 @@ func (m *validateOpDeleteTransformer) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpGenerateMapping struct { +} + +func (*validateOpGenerateMapping) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGenerateMapping) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GenerateMappingInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGenerateMappingInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetCapability struct { } @@ -546,6 +566,10 @@ func addOpDeleteTransformerValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteTransformer{}, middleware.After) } +func addOpGenerateMappingValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGenerateMapping{}, middleware.After) +} + func addOpGetCapabilityValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetCapability{}, middleware.After) } @@ -990,6 +1014,27 @@ func validateOpDeleteTransformerInput(v *DeleteTransformerInput) error { } } +func validateOpGenerateMappingInput(v *GenerateMappingInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GenerateMappingInput"} + if v.InputFileContent == nil { + invalidParams.Add(smithy.NewErrParamRequired("InputFileContent")) + } + if v.OutputFileContent == nil { + invalidParams.Add(smithy.NewErrParamRequired("OutputFileContent")) + } + if len(v.MappingType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("MappingType")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetCapabilityInput(v *GetCapabilityInput) error { if v == nil { return nil diff --git a/service/billing/LICENSE.txt b/service/billing/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/service/billing/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/service/billing/api_client.go b/service/billing/api_client.go new file mode 100644 index 00000000000..d96bde609c0 --- /dev/null +++ b/service/billing/api_client.go @@ -0,0 +1,912 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "context" + "errors" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/defaults" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/retry" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" + internalauth "github.com/aws/aws-sdk-go-v2/internal/auth" + internalauthsmithy "github.com/aws/aws-sdk-go-v2/internal/auth/smithy" + internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources" + internalmiddleware "github.com/aws/aws-sdk-go-v2/internal/middleware" + smithy "github.com/aws/smithy-go" + smithyauth "github.com/aws/smithy-go/auth" + smithydocument "github.com/aws/smithy-go/document" + "github.com/aws/smithy-go/logging" + "github.com/aws/smithy-go/metrics" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net" + "net/http" + "sync/atomic" + "time" +) + +const ServiceID = "Billing" +const ServiceAPIVersion = "2023-09-07" + +type operationMetrics struct { + Duration metrics.Float64Histogram + SerializeDuration metrics.Float64Histogram + ResolveIdentityDuration metrics.Float64Histogram + ResolveEndpointDuration metrics.Float64Histogram + SignRequestDuration metrics.Float64Histogram + DeserializeDuration metrics.Float64Histogram +} + +func (m *operationMetrics) histogramFor(name string) metrics.Float64Histogram { + switch name { + case "client.call.duration": + return m.Duration + case "client.call.serialization_duration": + return m.SerializeDuration + case "client.call.resolve_identity_duration": + return m.ResolveIdentityDuration + case "client.call.resolve_endpoint_duration": + return m.ResolveEndpointDuration + case "client.call.signing_duration": + return m.SignRequestDuration + case "client.call.deserialization_duration": + return m.DeserializeDuration + default: + panic("unrecognized operation metric") + } +} + +func timeOperationMetric[T any]( + ctx context.Context, metric string, fn func() (T, error), + opts ...metrics.RecordMetricOption, +) (T, error) { + instr := getOperationMetrics(ctx).histogramFor(metric) + opts = append([]metrics.RecordMetricOption{withOperationMetadata(ctx)}, opts...) + + start := time.Now() + v, err := fn() + end := time.Now() + + elapsed := end.Sub(start) + instr.Record(ctx, float64(elapsed)/1e9, opts...) + return v, err +} + +func startMetricTimer(ctx context.Context, metric string, opts ...metrics.RecordMetricOption) func() { + instr := getOperationMetrics(ctx).histogramFor(metric) + opts = append([]metrics.RecordMetricOption{withOperationMetadata(ctx)}, opts...) + + var ended bool + start := time.Now() + return func() { + if ended { + return + } + ended = true + + end := time.Now() + + elapsed := end.Sub(start) + instr.Record(ctx, float64(elapsed)/1e9, opts...) + } +} + +func withOperationMetadata(ctx context.Context) metrics.RecordMetricOption { + return func(o *metrics.RecordMetricOptions) { + o.Properties.Set("rpc.service", middleware.GetServiceID(ctx)) + o.Properties.Set("rpc.method", middleware.GetOperationName(ctx)) + } +} + +type operationMetricsKey struct{} + +func withOperationMetrics(parent context.Context, mp metrics.MeterProvider) (context.Context, error) { + meter := mp.Meter("github.com/aws/aws-sdk-go-v2/service/billing") + om := &operationMetrics{} + + var err error + + om.Duration, err = operationMetricTimer(meter, "client.call.duration", + "Overall call duration (including retries and time to send or receive request and response body)") + if err != nil { + return nil, err + } + om.SerializeDuration, err = operationMetricTimer(meter, "client.call.serialization_duration", + "The time it takes to serialize a message body") + if err != nil { + return nil, err + } + om.ResolveIdentityDuration, err = operationMetricTimer(meter, "client.call.auth.resolve_identity_duration", + "The time taken to acquire an identity (AWS credentials, bearer token, etc) from an Identity Provider") + if err != nil { + return nil, err + } + om.ResolveEndpointDuration, err = operationMetricTimer(meter, "client.call.resolve_endpoint_duration", + "The time it takes to resolve an endpoint (endpoint resolver, not DNS) for the request") + if err != nil { + return nil, err + } + om.SignRequestDuration, err = operationMetricTimer(meter, "client.call.auth.signing_duration", + "The time it takes to sign a request") + if err != nil { + return nil, err + } + om.DeserializeDuration, err = operationMetricTimer(meter, "client.call.deserialization_duration", + "The time it takes to deserialize a message body") + if err != nil { + return nil, err + } + + return context.WithValue(parent, operationMetricsKey{}, om), nil +} + +func operationMetricTimer(m metrics.Meter, name, desc string) (metrics.Float64Histogram, error) { + return m.Float64Histogram(name, func(o *metrics.InstrumentOptions) { + o.UnitLabel = "s" + o.Description = desc + }) +} + +func getOperationMetrics(ctx context.Context) *operationMetrics { + return ctx.Value(operationMetricsKey{}).(*operationMetrics) +} + +func operationTracer(p tracing.TracerProvider) tracing.Tracer { + return p.Tracer("github.com/aws/aws-sdk-go-v2/service/billing") +} + +// Client provides the API client to make operations call for AWS Billing. +type Client struct { + options Options + + // Difference between the time reported by the server and the client + timeOffset *atomic.Int64 +} + +// New returns an initialized Client based on the functional options. Provide +// additional functional options to further configure the behavior of the client, +// such as changing the client's endpoint or adding custom middleware behavior. +func New(options Options, optFns ...func(*Options)) *Client { + options = options.Copy() + + resolveDefaultLogger(&options) + + setResolvedDefaultsMode(&options) + + resolveRetryer(&options) + + resolveHTTPClient(&options) + + resolveHTTPSignerV4(&options) + + resolveEndpointResolverV2(&options) + + resolveTracerProvider(&options) + + resolveMeterProvider(&options) + + resolveAuthSchemeResolver(&options) + + for _, fn := range optFns { + fn(&options) + } + + finalizeRetryMaxAttempts(&options) + + ignoreAnonymousAuth(&options) + + wrapWithAnonymousAuth(&options) + + resolveAuthSchemes(&options) + + client := &Client{ + options: options, + } + + initializeTimeOffsetResolver(client) + + return client +} + +// Options returns a copy of the client configuration. +// +// Callers SHOULD NOT perform mutations on any inner structures within client +// config. Config overrides should instead be made on a per-operation basis through +// functional options. +func (c *Client) Options() Options { + return c.options.Copy() +} + +func (c *Client) invokeOperation( + ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error, +) ( + result interface{}, metadata middleware.Metadata, err error, +) { + ctx = middleware.ClearStackValues(ctx) + ctx = middleware.WithServiceID(ctx, ServiceID) + ctx = middleware.WithOperationName(ctx, opID) + + stack := middleware.NewStack(opID, smithyhttp.NewStackRequest) + options := c.options.Copy() + + for _, fn := range optFns { + fn(&options) + } + + finalizeOperationRetryMaxAttempts(&options, *c) + + finalizeClientEndpointResolverOptions(&options) + + for _, fn := range stackFns { + if err := fn(stack, options); err != nil { + return nil, metadata, err + } + } + + for _, fn := range options.APIOptions { + if err := fn(stack); err != nil { + return nil, metadata, err + } + } + + ctx, err = withOperationMetrics(ctx, options.MeterProvider) + if err != nil { + return nil, metadata, err + } + + tracer := operationTracer(options.TracerProvider) + spanName := fmt.Sprintf("%s.%s", ServiceID, opID) + + ctx = tracing.WithOperationTracer(ctx, tracer) + + ctx, span := tracer.StartSpan(ctx, spanName, func(o *tracing.SpanOptions) { + o.Kind = tracing.SpanKindClient + o.Properties.Set("rpc.system", "aws-api") + o.Properties.Set("rpc.method", opID) + o.Properties.Set("rpc.service", ServiceID) + }) + endTimer := startMetricTimer(ctx, "client.call.duration") + defer endTimer() + defer span.End() + + handler := smithyhttp.NewClientHandlerWithOptions(options.HTTPClient, func(o *smithyhttp.ClientHandler) { + o.Meter = options.MeterProvider.Meter("github.com/aws/aws-sdk-go-v2/service/billing") + }) + decorated := middleware.DecorateHandler(handler, stack) + result, metadata, err = decorated.Handle(ctx, params) + if err != nil { + span.SetProperty("exception.type", fmt.Sprintf("%T", err)) + span.SetProperty("exception.message", err.Error()) + + var aerr smithy.APIError + if errors.As(err, &aerr) { + span.SetProperty("api.error_code", aerr.ErrorCode()) + span.SetProperty("api.error_message", aerr.ErrorMessage()) + span.SetProperty("api.error_fault", aerr.ErrorFault().String()) + } + + err = &smithy.OperationError{ + ServiceID: ServiceID, + OperationName: opID, + Err: err, + } + } + + span.SetProperty("error", err != nil) + if err == nil { + span.SetStatus(tracing.SpanStatusOK) + } else { + span.SetStatus(tracing.SpanStatusError) + } + + return result, metadata, err +} + +type operationInputKey struct{} + +func setOperationInput(ctx context.Context, input interface{}) context.Context { + return middleware.WithStackValue(ctx, operationInputKey{}, input) +} + +func getOperationInput(ctx context.Context) interface{} { + return middleware.GetStackValue(ctx, operationInputKey{}) +} + +type setOperationInputMiddleware struct { +} + +func (*setOperationInputMiddleware) ID() string { + return "setOperationInput" +} + +func (m *setOperationInputMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + ctx = setOperationInput(ctx, in.Parameters) + return next.HandleSerialize(ctx, in) +} + +func addProtocolFinalizerMiddlewares(stack *middleware.Stack, options Options, operation string) error { + if err := stack.Finalize.Add(&resolveAuthSchemeMiddleware{operation: operation, options: options}, middleware.Before); err != nil { + return fmt.Errorf("add ResolveAuthScheme: %w", err) + } + if err := stack.Finalize.Insert(&getIdentityMiddleware{options: options}, "ResolveAuthScheme", middleware.After); err != nil { + return fmt.Errorf("add GetIdentity: %v", err) + } + if err := stack.Finalize.Insert(&resolveEndpointV2Middleware{options: options}, "GetIdentity", middleware.After); err != nil { + return fmt.Errorf("add ResolveEndpointV2: %v", err) + } + if err := stack.Finalize.Insert(&signRequestMiddleware{options: options}, "ResolveEndpointV2", middleware.After); err != nil { + return fmt.Errorf("add Signing: %w", err) + } + return nil +} +func resolveAuthSchemeResolver(options *Options) { + if options.AuthSchemeResolver == nil { + options.AuthSchemeResolver = &defaultAuthSchemeResolver{} + } +} + +func resolveAuthSchemes(options *Options) { + if options.AuthSchemes == nil { + options.AuthSchemes = []smithyhttp.AuthScheme{ + internalauth.NewHTTPAuthScheme("aws.auth#sigv4", &internalauthsmithy.V4SignerAdapter{ + Signer: options.HTTPSignerV4, + Logger: options.Logger, + LogSigning: options.ClientLogMode.IsSigning(), + }), + } + } +} + +type noSmithyDocumentSerde = smithydocument.NoSerde + +type legacyEndpointContextSetter struct { + LegacyResolver EndpointResolver +} + +func (*legacyEndpointContextSetter) ID() string { + return "legacyEndpointContextSetter" +} + +func (m *legacyEndpointContextSetter) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.LegacyResolver != nil { + ctx = awsmiddleware.SetRequiresLegacyEndpoints(ctx, true) + } + + return next.HandleInitialize(ctx, in) + +} +func addlegacyEndpointContextSetter(stack *middleware.Stack, o Options) error { + return stack.Initialize.Add(&legacyEndpointContextSetter{ + LegacyResolver: o.EndpointResolver, + }, middleware.Before) +} + +func resolveDefaultLogger(o *Options) { + if o.Logger != nil { + return + } + o.Logger = logging.Nop{} +} + +func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error { + return middleware.AddSetLoggerMiddleware(stack, o.Logger) +} + +func setResolvedDefaultsMode(o *Options) { + if len(o.resolvedDefaultsMode) > 0 { + return + } + + var mode aws.DefaultsMode + mode.SetFromString(string(o.DefaultsMode)) + + if mode == aws.DefaultsModeAuto { + mode = defaults.ResolveDefaultsModeAuto(o.Region, o.RuntimeEnvironment) + } + + o.resolvedDefaultsMode = mode +} + +// NewFromConfig returns a new client from the provided config. +func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client { + opts := Options{ + Region: cfg.Region, + DefaultsMode: cfg.DefaultsMode, + RuntimeEnvironment: cfg.RuntimeEnvironment, + HTTPClient: cfg.HTTPClient, + Credentials: cfg.Credentials, + APIOptions: cfg.APIOptions, + Logger: cfg.Logger, + ClientLogMode: cfg.ClientLogMode, + AppID: cfg.AppID, + } + resolveAWSRetryerProvider(cfg, &opts) + resolveAWSRetryMaxAttempts(cfg, &opts) + resolveAWSRetryMode(cfg, &opts) + resolveAWSEndpointResolver(cfg, &opts) + resolveUseDualStackEndpoint(cfg, &opts) + resolveUseFIPSEndpoint(cfg, &opts) + resolveBaseEndpoint(cfg, &opts) + return New(opts, optFns...) +} + +func resolveHTTPClient(o *Options) { + var buildable *awshttp.BuildableClient + + if o.HTTPClient != nil { + var ok bool + buildable, ok = o.HTTPClient.(*awshttp.BuildableClient) + if !ok { + return + } + } else { + buildable = awshttp.NewBuildableClient() + } + + modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode) + if err == nil { + buildable = buildable.WithDialerOptions(func(dialer *net.Dialer) { + if dialerTimeout, ok := modeConfig.GetConnectTimeout(); ok { + dialer.Timeout = dialerTimeout + } + }) + + buildable = buildable.WithTransportOptions(func(transport *http.Transport) { + if tlsHandshakeTimeout, ok := modeConfig.GetTLSNegotiationTimeout(); ok { + transport.TLSHandshakeTimeout = tlsHandshakeTimeout + } + }) + } + + o.HTTPClient = buildable +} + +func resolveRetryer(o *Options) { + if o.Retryer != nil { + return + } + + if len(o.RetryMode) == 0 { + modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode) + if err == nil { + o.RetryMode = modeConfig.RetryMode + } + } + if len(o.RetryMode) == 0 { + o.RetryMode = aws.RetryModeStandard + } + + var standardOptions []func(*retry.StandardOptions) + if v := o.RetryMaxAttempts; v != 0 { + standardOptions = append(standardOptions, func(so *retry.StandardOptions) { + so.MaxAttempts = v + }) + } + + switch o.RetryMode { + case aws.RetryModeAdaptive: + var adaptiveOptions []func(*retry.AdaptiveModeOptions) + if len(standardOptions) != 0 { + adaptiveOptions = append(adaptiveOptions, func(ao *retry.AdaptiveModeOptions) { + ao.StandardOptions = append(ao.StandardOptions, standardOptions...) + }) + } + o.Retryer = retry.NewAdaptiveMode(adaptiveOptions...) + + default: + o.Retryer = retry.NewStandard(standardOptions...) + } +} + +func resolveAWSRetryerProvider(cfg aws.Config, o *Options) { + if cfg.Retryer == nil { + return + } + o.Retryer = cfg.Retryer() +} + +func resolveAWSRetryMode(cfg aws.Config, o *Options) { + if len(cfg.RetryMode) == 0 { + return + } + o.RetryMode = cfg.RetryMode +} +func resolveAWSRetryMaxAttempts(cfg aws.Config, o *Options) { + if cfg.RetryMaxAttempts == 0 { + return + } + o.RetryMaxAttempts = cfg.RetryMaxAttempts +} + +func finalizeRetryMaxAttempts(o *Options) { + if o.RetryMaxAttempts == 0 { + return + } + + o.Retryer = retry.AddWithMaxAttempts(o.Retryer, o.RetryMaxAttempts) +} + +func finalizeOperationRetryMaxAttempts(o *Options, client Client) { + if v := o.RetryMaxAttempts; v == 0 || v == client.options.RetryMaxAttempts { + return + } + + o.Retryer = retry.AddWithMaxAttempts(o.Retryer, o.RetryMaxAttempts) +} + +func resolveAWSEndpointResolver(cfg aws.Config, o *Options) { + if cfg.EndpointResolver == nil && cfg.EndpointResolverWithOptions == nil { + return + } + o.EndpointResolver = withEndpointResolver(cfg.EndpointResolver, cfg.EndpointResolverWithOptions) +} + +func addClientUserAgent(stack *middleware.Stack, options Options) error { + ua, err := getOrAddRequestUserAgent(stack) + if err != nil { + return err + } + + ua.AddSDKAgentKeyValue(awsmiddleware.APIMetadata, "billing", goModuleVersion) + if len(options.AppID) > 0 { + ua.AddSDKAgentKey(awsmiddleware.ApplicationIdentifier, options.AppID) + } + + return nil +} + +func getOrAddRequestUserAgent(stack *middleware.Stack) (*awsmiddleware.RequestUserAgent, error) { + id := (*awsmiddleware.RequestUserAgent)(nil).ID() + mw, ok := stack.Build.Get(id) + if !ok { + mw = awsmiddleware.NewRequestUserAgent() + if err := stack.Build.Add(mw, middleware.After); err != nil { + return nil, err + } + } + + ua, ok := mw.(*awsmiddleware.RequestUserAgent) + if !ok { + return nil, fmt.Errorf("%T for %s middleware did not match expected type", mw, id) + } + + return ua, nil +} + +type HTTPSignerV4 interface { + SignHTTP(ctx context.Context, credentials aws.Credentials, r *http.Request, payloadHash string, service string, region string, signingTime time.Time, optFns ...func(*v4.SignerOptions)) error +} + +func resolveHTTPSignerV4(o *Options) { + if o.HTTPSignerV4 != nil { + return + } + o.HTTPSignerV4 = newDefaultV4Signer(*o) +} + +func newDefaultV4Signer(o Options) *v4.Signer { + return v4.NewSigner(func(so *v4.SignerOptions) { + so.Logger = o.Logger + so.LogSigning = o.ClientLogMode.IsSigning() + }) +} + +func addClientRequestID(stack *middleware.Stack) error { + return stack.Build.Add(&awsmiddleware.ClientRequestID{}, middleware.After) +} + +func addComputeContentLength(stack *middleware.Stack) error { + return stack.Build.Add(&smithyhttp.ComputeContentLength{}, middleware.After) +} + +func addRawResponseToMetadata(stack *middleware.Stack) error { + return stack.Deserialize.Add(&awsmiddleware.AddRawResponse{}, middleware.Before) +} + +func addRecordResponseTiming(stack *middleware.Stack) error { + return stack.Deserialize.Add(&awsmiddleware.RecordResponseTiming{}, middleware.After) +} + +func addSpanRetryLoop(stack *middleware.Stack, options Options) error { + return stack.Finalize.Insert(&spanRetryLoop{options: options}, "Retry", middleware.Before) +} + +type spanRetryLoop struct { + options Options +} + +func (*spanRetryLoop) ID() string { + return "spanRetryLoop" +} + +func (m *spanRetryLoop) HandleFinalize( + ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler, +) ( + middleware.FinalizeOutput, middleware.Metadata, error, +) { + tracer := operationTracer(m.options.TracerProvider) + ctx, span := tracer.StartSpan(ctx, "RetryLoop") + defer span.End() + + return next.HandleFinalize(ctx, in) +} +func addStreamingEventsPayload(stack *middleware.Stack) error { + return stack.Finalize.Add(&v4.StreamingEventsPayload{}, middleware.Before) +} + +func addUnsignedPayload(stack *middleware.Stack) error { + return stack.Finalize.Insert(&v4.UnsignedPayload{}, "ResolveEndpointV2", middleware.After) +} + +func addComputePayloadSHA256(stack *middleware.Stack) error { + return stack.Finalize.Insert(&v4.ComputePayloadSHA256{}, "ResolveEndpointV2", middleware.After) +} + +func addContentSHA256Header(stack *middleware.Stack) error { + return stack.Finalize.Insert(&v4.ContentSHA256Header{}, (*v4.ComputePayloadSHA256)(nil).ID(), middleware.After) +} + +func addIsWaiterUserAgent(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + ua, err := getOrAddRequestUserAgent(stack) + if err != nil { + return err + } + + ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureWaiter) + return nil + }) +} + +func addIsPaginatorUserAgent(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + ua, err := getOrAddRequestUserAgent(stack) + if err != nil { + return err + } + + ua.AddUserAgentFeature(awsmiddleware.UserAgentFeaturePaginator) + return nil + }) +} + +func addRetry(stack *middleware.Stack, o Options) error { + attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) { + m.LogAttempts = o.ClientLogMode.IsRetries() + m.OperationMeter = o.MeterProvider.Meter("github.com/aws/aws-sdk-go-v2/service/billing") + }) + if err := stack.Finalize.Insert(attempt, "Signing", middleware.Before); err != nil { + return err + } + if err := stack.Finalize.Insert(&retry.MetricsHeader{}, attempt.ID(), middleware.After); err != nil { + return err + } + return nil +} + +// resolves dual-stack endpoint configuration +func resolveUseDualStackEndpoint(cfg aws.Config, o *Options) error { + if len(cfg.ConfigSources) == 0 { + return nil + } + value, found, err := internalConfig.ResolveUseDualStackEndpoint(context.Background(), cfg.ConfigSources) + if err != nil { + return err + } + if found { + o.EndpointOptions.UseDualStackEndpoint = value + } + return nil +} + +// resolves FIPS endpoint configuration +func resolveUseFIPSEndpoint(cfg aws.Config, o *Options) error { + if len(cfg.ConfigSources) == 0 { + return nil + } + value, found, err := internalConfig.ResolveUseFIPSEndpoint(context.Background(), cfg.ConfigSources) + if err != nil { + return err + } + if found { + o.EndpointOptions.UseFIPSEndpoint = value + } + return nil +} + +func resolveAccountID(identity smithyauth.Identity, mode aws.AccountIDEndpointMode) *string { + if mode == aws.AccountIDEndpointModeDisabled { + return nil + } + + if ca, ok := identity.(*internalauthsmithy.CredentialsAdapter); ok && ca.Credentials.AccountID != "" { + return aws.String(ca.Credentials.AccountID) + } + + return nil +} + +func addTimeOffsetBuild(stack *middleware.Stack, c *Client) error { + mw := internalmiddleware.AddTimeOffsetMiddleware{Offset: c.timeOffset} + if err := stack.Build.Add(&mw, middleware.After); err != nil { + return err + } + return stack.Deserialize.Insert(&mw, "RecordResponseTiming", middleware.Before) +} +func initializeTimeOffsetResolver(c *Client) { + c.timeOffset = new(atomic.Int64) +} + +func addUserAgentRetryMode(stack *middleware.Stack, options Options) error { + ua, err := getOrAddRequestUserAgent(stack) + if err != nil { + return err + } + + switch options.Retryer.(type) { + case *retry.Standard: + ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeStandard) + case *retry.AdaptiveMode: + ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeAdaptive) + } + return nil +} + +func resolveTracerProvider(options *Options) { + if options.TracerProvider == nil { + options.TracerProvider = &tracing.NopTracerProvider{} + } +} + +func resolveMeterProvider(options *Options) { + if options.MeterProvider == nil { + options.MeterProvider = metrics.NopMeterProvider{} + } +} + +func addRecursionDetection(stack *middleware.Stack) error { + return stack.Build.Add(&awsmiddleware.RecursionDetection{}, middleware.After) +} + +func addRequestIDRetrieverMiddleware(stack *middleware.Stack) error { + return stack.Deserialize.Insert(&awsmiddleware.RequestIDRetriever{}, "OperationDeserializer", middleware.Before) + +} + +func addResponseErrorMiddleware(stack *middleware.Stack) error { + return stack.Deserialize.Insert(&awshttp.ResponseErrorWrapper{}, "RequestIDRetriever", middleware.Before) + +} + +func addRequestResponseLogging(stack *middleware.Stack, o Options) error { + return stack.Deserialize.Add(&smithyhttp.RequestResponseLogger{ + LogRequest: o.ClientLogMode.IsRequest(), + LogRequestWithBody: o.ClientLogMode.IsRequestWithBody(), + LogResponse: o.ClientLogMode.IsResponse(), + LogResponseWithBody: o.ClientLogMode.IsResponseWithBody(), + }, middleware.After) +} + +type disableHTTPSMiddleware struct { + DisableHTTPS bool +} + +func (*disableHTTPSMiddleware) ID() string { + return "disableHTTPS" +} + +func (m *disableHTTPSMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + if m.DisableHTTPS && !smithyhttp.GetHostnameImmutable(ctx) { + req.URL.Scheme = "http" + } + + return next.HandleFinalize(ctx, in) +} + +func addDisableHTTPSMiddleware(stack *middleware.Stack, o Options) error { + return stack.Finalize.Insert(&disableHTTPSMiddleware{ + DisableHTTPS: o.EndpointOptions.DisableHTTPS, + }, "ResolveEndpointV2", middleware.After) +} + +type spanInitializeStart struct { +} + +func (*spanInitializeStart) ID() string { + return "spanInitializeStart" +} + +func (m *spanInitializeStart) HandleInitialize( + ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler, +) ( + middleware.InitializeOutput, middleware.Metadata, error, +) { + ctx, _ = tracing.StartSpan(ctx, "Initialize") + + return next.HandleInitialize(ctx, in) +} + +type spanInitializeEnd struct { +} + +func (*spanInitializeEnd) ID() string { + return "spanInitializeEnd" +} + +func (m *spanInitializeEnd) HandleInitialize( + ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler, +) ( + middleware.InitializeOutput, middleware.Metadata, error, +) { + ctx, span := tracing.PopSpan(ctx) + span.End() + + return next.HandleInitialize(ctx, in) +} + +type spanBuildRequestStart struct { +} + +func (*spanBuildRequestStart) ID() string { + return "spanBuildRequestStart" +} + +func (m *spanBuildRequestStart) HandleSerialize( + ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler, +) ( + middleware.SerializeOutput, middleware.Metadata, error, +) { + ctx, _ = tracing.StartSpan(ctx, "BuildRequest") + + return next.HandleSerialize(ctx, in) +} + +type spanBuildRequestEnd struct { +} + +func (*spanBuildRequestEnd) ID() string { + return "spanBuildRequestEnd" +} + +func (m *spanBuildRequestEnd) HandleBuild( + ctx context.Context, in middleware.BuildInput, next middleware.BuildHandler, +) ( + middleware.BuildOutput, middleware.Metadata, error, +) { + ctx, span := tracing.PopSpan(ctx) + span.End() + + return next.HandleBuild(ctx, in) +} + +func addSpanInitializeStart(stack *middleware.Stack) error { + return stack.Initialize.Add(&spanInitializeStart{}, middleware.Before) +} + +func addSpanInitializeEnd(stack *middleware.Stack) error { + return stack.Initialize.Add(&spanInitializeEnd{}, middleware.After) +} + +func addSpanBuildRequestStart(stack *middleware.Stack) error { + return stack.Serialize.Add(&spanBuildRequestStart{}, middleware.Before) +} + +func addSpanBuildRequestEnd(stack *middleware.Stack) error { + return stack.Build.Add(&spanBuildRequestEnd{}, middleware.After) +} diff --git a/service/billing/api_client_test.go b/service/billing/api_client_test.go new file mode 100644 index 00000000000..3263a300c3c --- /dev/null +++ b/service/billing/api_client_test.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "io/ioutil" + "net/http" + "strings" + "testing" +) + +func TestClient_resolveRetryOptions(t *testing.T) { + nopClient := smithyhttp.ClientDoFunc(func(_ *http.Request) (*http.Response, error) { + return &http.Response{ + StatusCode: 200, + Header: http.Header{}, + Body: ioutil.NopCloser(strings.NewReader("")), + }, nil + }) + + cases := map[string]struct { + defaultsMode aws.DefaultsMode + retryer aws.Retryer + retryMaxAttempts int + opRetryMaxAttempts *int + retryMode aws.RetryMode + expectClientRetryMode aws.RetryMode + expectClientMaxAttempts int + expectOpMaxAttempts int + }{ + "defaults": { + defaultsMode: aws.DefaultsModeStandard, + expectClientRetryMode: aws.RetryModeStandard, + expectClientMaxAttempts: 3, + expectOpMaxAttempts: 3, + }, + "custom default retry": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 10, + }, + "custom op max attempts": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + opRetryMaxAttempts: aws.Int(2), + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 2, + }, + "custom op no change max attempts": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + opRetryMaxAttempts: aws.Int(10), + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 10, + }, + "custom op 0 max attempts": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + opRetryMaxAttempts: aws.Int(0), + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 10, + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + client := NewFromConfig(aws.Config{ + DefaultsMode: c.defaultsMode, + Retryer: func() func() aws.Retryer { + if c.retryer == nil { + return nil + } + + return func() aws.Retryer { return c.retryer } + }(), + HTTPClient: nopClient, + RetryMaxAttempts: c.retryMaxAttempts, + RetryMode: c.retryMode, + }, func(o *Options) { + if o.Retryer == nil { + t.Errorf("retryer must not be nil in functional options") + } + }) + + if e, a := c.expectClientRetryMode, client.options.RetryMode; e != a { + t.Errorf("expect %v retry mode, got %v", e, a) + } + if e, a := c.expectClientMaxAttempts, client.options.Retryer.MaxAttempts(); e != a { + t.Errorf("expect %v max attempts, got %v", e, a) + } + + _, _, err := client.invokeOperation(context.Background(), "mockOperation", struct{}{}, + []func(*Options){ + func(o *Options) { + if c.opRetryMaxAttempts == nil { + return + } + o.RetryMaxAttempts = *c.opRetryMaxAttempts + }, + }, + func(s *middleware.Stack, o Options) error { + s.Initialize.Clear() + s.Serialize.Clear() + s.Build.Clear() + s.Finalize.Clear() + s.Deserialize.Clear() + + if e, a := c.expectOpMaxAttempts, o.Retryer.MaxAttempts(); e != a { + t.Errorf("expect %v op max attempts, got %v", e, a) + } + return nil + }) + if err != nil { + t.Fatalf("expect no operation error, got %v", err) + } + }) + } +} diff --git a/service/billing/api_op_ListBillingViews.go b/service/billing/api_op_ListBillingViews.go new file mode 100644 index 00000000000..572db413f5f --- /dev/null +++ b/service/billing/api_op_ListBillingViews.go @@ -0,0 +1,269 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/billing/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the billing views available for a given time period. +// +// Every Amazon Web Services account has a unique PRIMARY billing view that +// represents the billing data available by default. Accounts that use Billing +// Conductor also have BILLING_GROUP billing views representing pro forma costs +// associated with each created billing group. +func (c *Client) ListBillingViews(ctx context.Context, params *ListBillingViewsInput, optFns ...func(*Options)) (*ListBillingViewsOutput, error) { + if params == nil { + params = &ListBillingViewsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListBillingViews", params, optFns, c.addOperationListBillingViewsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListBillingViewsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListBillingViewsInput struct { + + // The time range for the billing views listed. PRIMARY billing view is always + // listed. BILLING_GROUP billing views are listed for time ranges when the + // associated billing group resource in Billing Conductor is active. The time range + // must be within one calendar month. + // + // This member is required. + ActiveTimeRange *types.ActiveTimeRange + + // The maximum number of billing views to retrieve. Default is 100. + MaxResults *int32 + + // The pagination token that is used on subsequent calls to list billing views. + NextToken *string + + noSmithyDocumentSerde +} + +type ListBillingViewsOutput struct { + + // A list of BillingViewListElement retrieved. + // + // This member is required. + BillingViews []types.BillingViewListElement + + // The pagination token to use on subsequent calls to list billing views. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListBillingViewsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListBillingViews{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListBillingViews{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListBillingViews"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListBillingViewsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListBillingViews(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListBillingViewsPaginatorOptions is the paginator options for ListBillingViews +type ListBillingViewsPaginatorOptions struct { + // The maximum number of billing views to retrieve. Default is 100. + 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 +} + +// ListBillingViewsPaginator is a paginator for ListBillingViews +type ListBillingViewsPaginator struct { + options ListBillingViewsPaginatorOptions + client ListBillingViewsAPIClient + params *ListBillingViewsInput + nextToken *string + firstPage bool +} + +// NewListBillingViewsPaginator returns a new ListBillingViewsPaginator +func NewListBillingViewsPaginator(client ListBillingViewsAPIClient, params *ListBillingViewsInput, optFns ...func(*ListBillingViewsPaginatorOptions)) *ListBillingViewsPaginator { + if params == nil { + params = &ListBillingViewsInput{} + } + + options := ListBillingViewsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListBillingViewsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListBillingViewsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListBillingViews page. +func (p *ListBillingViewsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListBillingViewsOutput, 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 + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListBillingViews(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 +} + +// ListBillingViewsAPIClient is a client that implements the ListBillingViews +// operation. +type ListBillingViewsAPIClient interface { + ListBillingViews(context.Context, *ListBillingViewsInput, ...func(*Options)) (*ListBillingViewsOutput, error) +} + +var _ ListBillingViewsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListBillingViews(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListBillingViews", + } +} diff --git a/service/billing/auth.go b/service/billing/auth.go new file mode 100644 index 00000000000..04272ab9192 --- /dev/null +++ b/service/billing/auth.go @@ -0,0 +1,313 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + smithy "github.com/aws/smithy-go" + smithyauth "github.com/aws/smithy-go/auth" + "github.com/aws/smithy-go/metrics" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +func bindAuthParamsRegion(_ interface{}, params *AuthResolverParameters, _ interface{}, options Options) { + params.Region = options.Region +} + +type setLegacyContextSigningOptionsMiddleware struct { +} + +func (*setLegacyContextSigningOptionsMiddleware) ID() string { + return "setLegacyContextSigningOptions" +} + +func (m *setLegacyContextSigningOptionsMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + rscheme := getResolvedAuthScheme(ctx) + schemeID := rscheme.Scheme.SchemeID() + + if sn := awsmiddleware.GetSigningName(ctx); sn != "" { + if schemeID == "aws.auth#sigv4" { + smithyhttp.SetSigV4SigningName(&rscheme.SignerProperties, sn) + } else if schemeID == "aws.auth#sigv4a" { + smithyhttp.SetSigV4ASigningName(&rscheme.SignerProperties, sn) + } + } + + if sr := awsmiddleware.GetSigningRegion(ctx); sr != "" { + if schemeID == "aws.auth#sigv4" { + smithyhttp.SetSigV4SigningRegion(&rscheme.SignerProperties, sr) + } else if schemeID == "aws.auth#sigv4a" { + smithyhttp.SetSigV4ASigningRegions(&rscheme.SignerProperties, []string{sr}) + } + } + + return next.HandleFinalize(ctx, in) +} + +func addSetLegacyContextSigningOptionsMiddleware(stack *middleware.Stack) error { + return stack.Finalize.Insert(&setLegacyContextSigningOptionsMiddleware{}, "Signing", middleware.Before) +} + +type withAnonymous struct { + resolver AuthSchemeResolver +} + +var _ AuthSchemeResolver = (*withAnonymous)(nil) + +func (v *withAnonymous) ResolveAuthSchemes(ctx context.Context, params *AuthResolverParameters) ([]*smithyauth.Option, error) { + opts, err := v.resolver.ResolveAuthSchemes(ctx, params) + if err != nil { + return nil, err + } + + opts = append(opts, &smithyauth.Option{ + SchemeID: smithyauth.SchemeIDAnonymous, + }) + return opts, nil +} + +func wrapWithAnonymousAuth(options *Options) { + if _, ok := options.AuthSchemeResolver.(*defaultAuthSchemeResolver); !ok { + return + } + + options.AuthSchemeResolver = &withAnonymous{ + resolver: options.AuthSchemeResolver, + } +} + +// AuthResolverParameters contains the set of inputs necessary for auth scheme +// resolution. +type AuthResolverParameters struct { + // The name of the operation being invoked. + Operation string + + // The region in which the operation is being invoked. + Region string +} + +func bindAuthResolverParams(ctx context.Context, operation string, input interface{}, options Options) *AuthResolverParameters { + params := &AuthResolverParameters{ + Operation: operation, + } + + bindAuthParamsRegion(ctx, params, input, options) + + return params +} + +// AuthSchemeResolver returns a set of possible authentication options for an +// operation. +type AuthSchemeResolver interface { + ResolveAuthSchemes(context.Context, *AuthResolverParameters) ([]*smithyauth.Option, error) +} + +type defaultAuthSchemeResolver struct{} + +var _ AuthSchemeResolver = (*defaultAuthSchemeResolver)(nil) + +func (*defaultAuthSchemeResolver) ResolveAuthSchemes(ctx context.Context, params *AuthResolverParameters) ([]*smithyauth.Option, error) { + if overrides, ok := operationAuthOptions[params.Operation]; ok { + return overrides(params), nil + } + return serviceAuthOptions(params), nil +} + +var operationAuthOptions = map[string]func(*AuthResolverParameters) []*smithyauth.Option{} + +func serviceAuthOptions(params *AuthResolverParameters) []*smithyauth.Option { + return []*smithyauth.Option{ + { + SchemeID: smithyauth.SchemeIDSigV4, + SignerProperties: func() smithy.Properties { + var props smithy.Properties + smithyhttp.SetSigV4SigningName(&props, "billing") + smithyhttp.SetSigV4SigningRegion(&props, params.Region) + return props + }(), + }, + } +} + +type resolveAuthSchemeMiddleware struct { + operation string + options Options +} + +func (*resolveAuthSchemeMiddleware) ID() string { + return "ResolveAuthScheme" +} + +func (m *resolveAuthSchemeMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "ResolveAuthScheme") + defer span.End() + + params := bindAuthResolverParams(ctx, m.operation, getOperationInput(ctx), m.options) + options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params) + if err != nil { + return out, metadata, fmt.Errorf("resolve auth scheme: %w", err) + } + + scheme, ok := m.selectScheme(options) + if !ok { + return out, metadata, fmt.Errorf("could not select an auth scheme") + } + + ctx = setResolvedAuthScheme(ctx, scheme) + + span.SetProperty("auth.scheme_id", scheme.Scheme.SchemeID()) + span.End() + return next.HandleFinalize(ctx, in) +} + +func (m *resolveAuthSchemeMiddleware) selectScheme(options []*smithyauth.Option) (*resolvedAuthScheme, bool) { + for _, option := range options { + if option.SchemeID == smithyauth.SchemeIDAnonymous { + return newResolvedAuthScheme(smithyhttp.NewAnonymousScheme(), option), true + } + + for _, scheme := range m.options.AuthSchemes { + if scheme.SchemeID() != option.SchemeID { + continue + } + + if scheme.IdentityResolver(m.options) != nil { + return newResolvedAuthScheme(scheme, option), true + } + } + } + + return nil, false +} + +type resolvedAuthSchemeKey struct{} + +type resolvedAuthScheme struct { + Scheme smithyhttp.AuthScheme + IdentityProperties smithy.Properties + SignerProperties smithy.Properties +} + +func newResolvedAuthScheme(scheme smithyhttp.AuthScheme, option *smithyauth.Option) *resolvedAuthScheme { + return &resolvedAuthScheme{ + Scheme: scheme, + IdentityProperties: option.IdentityProperties, + SignerProperties: option.SignerProperties, + } +} + +func setResolvedAuthScheme(ctx context.Context, scheme *resolvedAuthScheme) context.Context { + return middleware.WithStackValue(ctx, resolvedAuthSchemeKey{}, scheme) +} + +func getResolvedAuthScheme(ctx context.Context) *resolvedAuthScheme { + v, _ := middleware.GetStackValue(ctx, resolvedAuthSchemeKey{}).(*resolvedAuthScheme) + return v +} + +type getIdentityMiddleware struct { + options Options +} + +func (*getIdentityMiddleware) ID() string { + return "GetIdentity" +} + +func (m *getIdentityMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + innerCtx, span := tracing.StartSpan(ctx, "GetIdentity") + defer span.End() + + rscheme := getResolvedAuthScheme(innerCtx) + if rscheme == nil { + return out, metadata, fmt.Errorf("no resolved auth scheme") + } + + resolver := rscheme.Scheme.IdentityResolver(m.options) + if resolver == nil { + return out, metadata, fmt.Errorf("no identity resolver") + } + + identity, err := timeOperationMetric(ctx, "client.call.resolve_identity_duration", + func() (smithyauth.Identity, error) { + return resolver.GetIdentity(innerCtx, rscheme.IdentityProperties) + }, + func(o *metrics.RecordMetricOptions) { + o.Properties.Set("auth.scheme_id", rscheme.Scheme.SchemeID()) + }) + if err != nil { + return out, metadata, fmt.Errorf("get identity: %w", err) + } + + ctx = setIdentity(ctx, identity) + + span.End() + return next.HandleFinalize(ctx, in) +} + +type identityKey struct{} + +func setIdentity(ctx context.Context, identity smithyauth.Identity) context.Context { + return middleware.WithStackValue(ctx, identityKey{}, identity) +} + +func getIdentity(ctx context.Context) smithyauth.Identity { + v, _ := middleware.GetStackValue(ctx, identityKey{}).(smithyauth.Identity) + return v +} + +type signRequestMiddleware struct { + options Options +} + +func (*signRequestMiddleware) ID() string { + return "Signing" +} + +func (m *signRequestMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "SignRequest") + defer span.End() + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unexpected transport type %T", in.Request) + } + + rscheme := getResolvedAuthScheme(ctx) + if rscheme == nil { + return out, metadata, fmt.Errorf("no resolved auth scheme") + } + + identity := getIdentity(ctx) + if identity == nil { + return out, metadata, fmt.Errorf("no identity") + } + + signer := rscheme.Scheme.Signer() + if signer == nil { + return out, metadata, fmt.Errorf("no signer") + } + + _, err = timeOperationMetric(ctx, "client.call.signing_duration", func() (any, error) { + return nil, signer.SignRequest(ctx, req, identity, rscheme.SignerProperties) + }, func(o *metrics.RecordMetricOptions) { + o.Properties.Set("auth.scheme_id", rscheme.Scheme.SchemeID()) + }) + if err != nil { + return out, metadata, fmt.Errorf("sign request: %w", err) + } + + span.End() + return next.HandleFinalize(ctx, in) +} diff --git a/service/billing/deserializers.go b/service/billing/deserializers.go new file mode 100644 index 00000000000..70cfb72349e --- /dev/null +++ b/service/billing/deserializers.go @@ -0,0 +1,722 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws/protocol/restjson" + "github.com/aws/aws-sdk-go-v2/service/billing/types" + smithy "github.com/aws/smithy-go" + smithyio "github.com/aws/smithy-go/io" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/ptr" + smithytime "github.com/aws/smithy-go/time" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "io" + "strings" + "time" +) + +func deserializeS3Expires(v string) (*time.Time, error) { + t, err := smithytime.ParseHTTPDate(v) + if err != nil { + return nil, nil + } + return &t, nil +} + +type awsAwsjson10_deserializeOpListBillingViews struct { +} + +func (*awsAwsjson10_deserializeOpListBillingViews) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListBillingViews) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorListBillingViews(response, &metadata) + } + output := &ListBillingViewsOutput{} + 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 = awsAwsjson10_deserializeOpDocumentListBillingViewsOutput(&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 awsAwsjson10_deserializeOpErrorListBillingViews(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +func awsAwsjson10_deserializeErrorAccessDeniedException(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.AccessDeniedException{} + err := awsAwsjson10_deserializeDocumentAccessDeniedException(&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 awsAwsjson10_deserializeErrorInternalServerException(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.InternalServerException{} + err := awsAwsjson10_deserializeDocumentInternalServerException(&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 awsAwsjson10_deserializeErrorThrottlingException(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.ThrottlingException{} + err := awsAwsjson10_deserializeDocumentThrottlingException(&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 awsAwsjson10_deserializeErrorValidationException(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.ValidationException{} + err := awsAwsjson10_deserializeDocumentValidationException(&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 awsAwsjson10_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, 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.AccessDeniedException + if *v == nil { + sv = &types.AccessDeniedException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "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 awsAwsjson10_deserializeDocumentBillingViewList(v *[]types.BillingViewListElement, 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.BillingViewListElement + if *v == nil { + cv = []types.BillingViewListElement{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.BillingViewListElement + destAddr := &col + if err := awsAwsjson10_deserializeDocumentBillingViewListElement(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentBillingViewListElement(v **types.BillingViewListElement, 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.BillingViewListElement + if *v == nil { + sv = &types.BillingViewListElement{} + } 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 BillingViewArn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "billingViewType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BillingViewType to be of type string, got %T instead", value) + } + sv.BillingViewType = types.BillingViewType(jtv) + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BillingViewName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "ownerAccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AccountId to be of type string, got %T instead", value) + } + sv.OwnerAccountId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentInternalServerException(v **types.InternalServerException, 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.InternalServerException + if *v == nil { + sv = &types.InternalServerException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "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 awsAwsjson10_deserializeDocumentThrottlingException(v **types.ThrottlingException, 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.ThrottlingException + if *v == nil { + sv = &types.ThrottlingException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "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 awsAwsjson10_deserializeDocumentValidationException(v **types.ValidationException, 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.ValidationException + if *v == nil { + sv = &types.ValidationException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "fieldList": + if err := awsAwsjson10_deserializeDocumentValidationExceptionFieldList(&sv.FieldList, value); err != nil { + return err + } + + case "message", "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 "reason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ValidationExceptionReason to be of type string, got %T instead", value) + } + sv.Reason = types.ValidationExceptionReason(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentValidationExceptionField(v **types.ValidationExceptionField, 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.ValidationExceptionField + if *v == nil { + sv = &types.ValidationExceptionField{} + } 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) + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FieldName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentValidationExceptionFieldList(v *[]types.ValidationExceptionField, 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.ValidationExceptionField + if *v == nil { + cv = []types.ValidationExceptionField{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ValidationExceptionField + destAddr := &col + if err := awsAwsjson10_deserializeDocumentValidationExceptionField(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeOpDocumentListBillingViewsOutput(v **ListBillingViewsOutput, 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 *ListBillingViewsOutput + if *v == nil { + sv = &ListBillingViewsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "billingViews": + if err := awsAwsjson10_deserializeDocumentBillingViewList(&sv.BillingViews, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PageToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type protocolErrorInfo struct { + Type string `json:"__type"` + Message string + Code any // nonstandard for awsjson but some services do present the type here +} + +func getProtocolErrorInfo(decoder *json.Decoder) (protocolErrorInfo, error) { + var errInfo protocolErrorInfo + if err := decoder.Decode(&errInfo); err != nil { + if err == io.EOF { + return errInfo, nil + } + return errInfo, err + } + + return errInfo, nil +} + +func resolveProtocolErrorType(headerType string, bodyInfo protocolErrorInfo) (string, bool) { + if len(headerType) != 0 { + return headerType, true + } else if len(bodyInfo.Type) != 0 { + return bodyInfo.Type, true + } else if code, ok := bodyInfo.Code.(string); ok && len(code) != 0 { + return code, true + } + return "", false +} diff --git a/service/billing/doc.go b/service/billing/doc.go new file mode 100644 index 00000000000..1fc6ec81399 --- /dev/null +++ b/service/billing/doc.go @@ -0,0 +1,14 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +// Package billing provides the API client, operations, and parameter types for +// AWS Billing. +// +// You can use the Billing API to programatically list the billing views +// +// available to you for a given time period. A billing view represents a set of +// billing data. +// +// The Billing API provides the following endpoint: +// +// https://billing.us-east-1.api.aws +package billing diff --git a/service/billing/endpoints.go b/service/billing/endpoints.go new file mode 100644 index 00000000000..07ef38dd409 --- /dev/null +++ b/service/billing/endpoints.go @@ -0,0 +1,491 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "context" + "errors" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources" + "github.com/aws/aws-sdk-go-v2/internal/endpoints" + "github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn" + internalendpoints "github.com/aws/aws-sdk-go-v2/service/billing/internal/endpoints" + smithy "github.com/aws/smithy-go" + smithyauth "github.com/aws/smithy-go/auth" + smithyendpoints "github.com/aws/smithy-go/endpoints" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/ptr" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net/http" + "net/url" + "os" + "strings" +) + +// EndpointResolverOptions is the service endpoint resolver options +type EndpointResolverOptions = internalendpoints.Options + +// EndpointResolver interface for resolving service endpoints. +type EndpointResolver interface { + ResolveEndpoint(region string, options EndpointResolverOptions) (aws.Endpoint, error) +} + +var _ EndpointResolver = &internalendpoints.Resolver{} + +// NewDefaultEndpointResolver constructs a new service endpoint resolver +func NewDefaultEndpointResolver() *internalendpoints.Resolver { + return internalendpoints.New() +} + +// EndpointResolverFunc is a helper utility that wraps a function so it satisfies +// the EndpointResolver interface. This is useful when you want to add additional +// endpoint resolving logic, or stub out specific endpoints with custom values. +type EndpointResolverFunc func(region string, options EndpointResolverOptions) (aws.Endpoint, error) + +func (fn EndpointResolverFunc) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { + return fn(region, options) +} + +// EndpointResolverFromURL returns an EndpointResolver configured using the +// provided endpoint url. By default, the resolved endpoint resolver uses the +// client region as signing region, and the endpoint source is set to +// EndpointSourceCustom.You can provide functional options to configure endpoint +// values for the resolved endpoint. +func EndpointResolverFromURL(url string, optFns ...func(*aws.Endpoint)) EndpointResolver { + e := aws.Endpoint{URL: url, Source: aws.EndpointSourceCustom} + for _, fn := range optFns { + fn(&e) + } + + return EndpointResolverFunc( + func(region string, options EndpointResolverOptions) (aws.Endpoint, error) { + if len(e.SigningRegion) == 0 { + e.SigningRegion = region + } + return e, nil + }, + ) +} + +type ResolveEndpoint struct { + Resolver EndpointResolver + Options EndpointResolverOptions +} + +func (*ResolveEndpoint) ID() string { + return "ResolveEndpoint" +} + +func (m *ResolveEndpoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if !awsmiddleware.GetRequiresLegacyEndpoints(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + if m.Resolver == nil { + return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil") + } + + eo := m.Options + eo.Logger = middleware.GetLogger(ctx) + + var endpoint aws.Endpoint + endpoint, err = m.Resolver.ResolveEndpoint(awsmiddleware.GetRegion(ctx), eo) + if err != nil { + nf := (&aws.EndpointNotFoundError{}) + if errors.As(err, &nf) { + ctx = awsmiddleware.SetRequiresLegacyEndpoints(ctx, false) + return next.HandleSerialize(ctx, in) + } + return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) + } + + req.URL, err = url.Parse(endpoint.URL) + if err != nil { + return out, metadata, fmt.Errorf("failed to parse endpoint URL: %w", err) + } + + if len(awsmiddleware.GetSigningName(ctx)) == 0 { + signingName := endpoint.SigningName + if len(signingName) == 0 { + signingName = "billing" + } + ctx = awsmiddleware.SetSigningName(ctx, signingName) + } + ctx = awsmiddleware.SetEndpointSource(ctx, endpoint.Source) + ctx = smithyhttp.SetHostnameImmutable(ctx, endpoint.HostnameImmutable) + ctx = awsmiddleware.SetSigningRegion(ctx, endpoint.SigningRegion) + ctx = awsmiddleware.SetPartitionID(ctx, endpoint.PartitionID) + return next.HandleSerialize(ctx, in) +} +func addResolveEndpointMiddleware(stack *middleware.Stack, o Options) error { + return stack.Serialize.Insert(&ResolveEndpoint{ + Resolver: o.EndpointResolver, + Options: o.EndpointOptions, + }, "OperationSerializer", middleware.Before) +} + +func removeResolveEndpointMiddleware(stack *middleware.Stack) error { + _, err := stack.Serialize.Remove((&ResolveEndpoint{}).ID()) + return err +} + +type wrappedEndpointResolver struct { + awsResolver aws.EndpointResolverWithOptions +} + +func (w *wrappedEndpointResolver) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { + return w.awsResolver.ResolveEndpoint(ServiceID, region, options) +} + +type awsEndpointResolverAdaptor func(service, region string) (aws.Endpoint, error) + +func (a awsEndpointResolverAdaptor) ResolveEndpoint(service, region string, options ...interface{}) (aws.Endpoint, error) { + return a(service, region) +} + +var _ aws.EndpointResolverWithOptions = awsEndpointResolverAdaptor(nil) + +// withEndpointResolver returns an aws.EndpointResolverWithOptions that first delegates endpoint resolution to the awsResolver. +// If awsResolver returns aws.EndpointNotFoundError error, the v1 resolver middleware will swallow the error, +// and set an appropriate context flag such that fallback will occur when EndpointResolverV2 is invoked +// via its middleware. +// +// If another error (besides aws.EndpointNotFoundError) is returned, then that error will be propagated. +func withEndpointResolver(awsResolver aws.EndpointResolver, awsResolverWithOptions aws.EndpointResolverWithOptions) EndpointResolver { + var resolver aws.EndpointResolverWithOptions + + if awsResolverWithOptions != nil { + resolver = awsResolverWithOptions + } else if awsResolver != nil { + resolver = awsEndpointResolverAdaptor(awsResolver.ResolveEndpoint) + } + + return &wrappedEndpointResolver{ + awsResolver: resolver, + } +} + +func finalizeClientEndpointResolverOptions(options *Options) { + options.EndpointOptions.LogDeprecated = options.ClientLogMode.IsDeprecatedUsage() + + if len(options.EndpointOptions.ResolvedRegion) == 0 { + const fipsInfix = "-fips-" + const fipsPrefix = "fips-" + const fipsSuffix = "-fips" + + if strings.Contains(options.Region, fipsInfix) || + strings.Contains(options.Region, fipsPrefix) || + strings.Contains(options.Region, fipsSuffix) { + options.EndpointOptions.ResolvedRegion = strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll( + options.Region, fipsInfix, "-"), fipsPrefix, ""), fipsSuffix, "") + options.EndpointOptions.UseFIPSEndpoint = aws.FIPSEndpointStateEnabled + } + } + +} + +func resolveEndpointResolverV2(options *Options) { + if options.EndpointResolverV2 == nil { + options.EndpointResolverV2 = NewDefaultEndpointResolverV2() + } +} + +func resolveBaseEndpoint(cfg aws.Config, o *Options) { + if cfg.BaseEndpoint != nil { + o.BaseEndpoint = cfg.BaseEndpoint + } + + _, g := os.LookupEnv("AWS_ENDPOINT_URL") + _, s := os.LookupEnv("AWS_ENDPOINT_URL_BILLING") + + if g && !s { + return + } + + value, found, err := internalConfig.ResolveServiceBaseEndpoint(context.Background(), "Billing", cfg.ConfigSources) + if found && err == nil { + o.BaseEndpoint = &value + } +} + +func bindRegion(region string) *string { + if region == "" { + return nil + } + return aws.String(endpoints.MapFIPSRegion(region)) +} + +// EndpointParameters provides the parameters that influence how endpoints are +// resolved. +type EndpointParameters struct { + // When true, send this request to the FIPS-compliant regional endpoint. If the + // configured endpoint does not have a FIPS compliant endpoint, dispatching the + // request will return an error. + // + // Defaults to false if no value is + // provided. + // + // AWS::UseFIPS + UseFIPS *bool + + // Override the endpoint used to send this request + // + // Parameter is + // required. + // + // SDK::Endpoint + Endpoint *string + + // The AWS region used to dispatch the request. + // + // Parameter is + // required. + // + // AWS::Region + Region *string +} + +// ValidateRequired validates required parameters are set. +func (p EndpointParameters) ValidateRequired() error { + if p.UseFIPS == nil { + return fmt.Errorf("parameter UseFIPS is required") + } + + return nil +} + +// WithDefaults returns a shallow copy of EndpointParameterswith default values +// applied to members where applicable. +func (p EndpointParameters) WithDefaults() EndpointParameters { + if p.UseFIPS == nil { + p.UseFIPS = ptr.Bool(false) + } + return p +} + +type stringSlice []string + +func (s stringSlice) Get(i int) *string { + if i < 0 || i >= len(s) { + return nil + } + + v := s[i] + return &v +} + +// EndpointResolverV2 provides the interface for resolving service endpoints. +type EndpointResolverV2 interface { + // ResolveEndpoint attempts to resolve the endpoint with the provided options, + // returning the endpoint if found. Otherwise an error is returned. + ResolveEndpoint(ctx context.Context, params EndpointParameters) ( + smithyendpoints.Endpoint, error, + ) +} + +// resolver provides the implementation for resolving endpoints. +type resolver struct{} + +func NewDefaultEndpointResolverV2() EndpointResolverV2 { + return &resolver{} +} + +// ResolveEndpoint attempts to resolve the endpoint with the provided options, +// returning the endpoint if found. Otherwise an error is returned. +func (r *resolver) ResolveEndpoint( + ctx context.Context, params EndpointParameters, +) ( + endpoint smithyendpoints.Endpoint, err error, +) { + params = params.WithDefaults() + if err = params.ValidateRequired(); err != nil { + return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err) + } + _UseFIPS := *params.UseFIPS + + if exprVal := params.Endpoint; exprVal != nil { + _Endpoint := *exprVal + _ = _Endpoint + if _UseFIPS == true { + return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: FIPS and custom endpoint are not supported") + } + uriString := _Endpoint + + uri, err := url.Parse(uriString) + if err != nil { + return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) + } + + return smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + }, nil + } + if exprVal := params.Region; exprVal != nil { + _Region := *exprVal + _ = _Region + if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { + _PartitionResult := *exprVal + _ = _PartitionResult + if _UseFIPS == true { + uriString := func() string { + var out strings.Builder + out.WriteString("https://billing-fips.") + out.WriteString(_PartitionResult.ImplicitGlobalRegion) + out.WriteString(".") + out.WriteString(_PartitionResult.DualStackDnsSuffix) + return out.String() + }() + + uri, err := url.Parse(uriString) + if err != nil { + return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) + } + + return smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, _PartitionResult.ImplicitGlobalRegion) + return sp + }(), + }, + }) + return out + }(), + }, nil + } + uriString := func() string { + var out strings.Builder + out.WriteString("https://billing.") + out.WriteString(_PartitionResult.ImplicitGlobalRegion) + out.WriteString(".") + out.WriteString(_PartitionResult.DualStackDnsSuffix) + return out.String() + }() + + uri, err := url.Parse(uriString) + if err != nil { + return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) + } + + return smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, _PartitionResult.ImplicitGlobalRegion) + return sp + }(), + }, + }) + return out + }(), + }, nil + } + return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") + } + return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: Missing Region") +} + +type endpointParamsBinder interface { + bindEndpointParams(*EndpointParameters) +} + +func bindEndpointParams(ctx context.Context, input interface{}, options Options) *EndpointParameters { + params := &EndpointParameters{} + + params.UseFIPS = aws.Bool(options.EndpointOptions.UseFIPSEndpoint == aws.FIPSEndpointStateEnabled) + params.Endpoint = options.BaseEndpoint + params.Region = bindRegion(options.Region) + + if b, ok := input.(endpointParamsBinder); ok { + b.bindEndpointParams(params) + } + + return params +} + +type resolveEndpointV2Middleware struct { + options Options +} + +func (*resolveEndpointV2Middleware) ID() string { + return "ResolveEndpointV2" +} + +func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "ResolveEndpoint") + defer span.End() + + if awsmiddleware.GetRequiresLegacyEndpoints(ctx) { + return next.HandleFinalize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + if m.options.EndpointResolverV2 == nil { + return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil") + } + + params := bindEndpointParams(ctx, getOperationInput(ctx), m.options) + endpt, err := timeOperationMetric(ctx, "client.call.resolve_endpoint_duration", + func() (smithyendpoints.Endpoint, error) { + return m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params) + }) + if err != nil { + return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) + } + + span.SetProperty("client.call.resolved_endpoint", endpt.URI.String()) + + if endpt.URI.RawPath == "" && req.URL.RawPath != "" { + endpt.URI.RawPath = endpt.URI.Path + } + req.URL.Scheme = endpt.URI.Scheme + req.URL.Host = endpt.URI.Host + req.URL.Path = smithyhttp.JoinPath(endpt.URI.Path, req.URL.Path) + req.URL.RawPath = smithyhttp.JoinPath(endpt.URI.RawPath, req.URL.RawPath) + for k := range endpt.Headers { + req.Header.Set(k, endpt.Headers.Get(k)) + } + + rscheme := getResolvedAuthScheme(ctx) + if rscheme == nil { + return out, metadata, fmt.Errorf("no resolved auth scheme") + } + + opts, _ := smithyauth.GetAuthOptions(&endpt.Properties) + for _, o := range opts { + rscheme.SignerProperties.SetAll(&o.SignerProperties) + } + + span.End() + return next.HandleFinalize(ctx, in) +} diff --git a/service/billing/endpoints_config_test.go b/service/billing/endpoints_config_test.go new file mode 100644 index 00000000000..5eb41b8d3b2 --- /dev/null +++ b/service/billing/endpoints_config_test.go @@ -0,0 +1,139 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/aws" + "os" + "reflect" + "testing" +) + +type mockConfigSource struct { + global string + service string + ignore bool +} + +// GetIgnoreConfiguredEndpoints is used in knowing when to disable configured +// endpoints feature. +func (m mockConfigSource) GetIgnoreConfiguredEndpoints(context.Context) (bool, bool, error) { + return m.ignore, m.ignore, nil +} + +// GetServiceBaseEndpoint is used to retrieve a normalized SDK ID for use +// with configured endpoints. +func (m mockConfigSource) GetServiceBaseEndpoint(ctx context.Context, sdkID string) (string, bool, error) { + if m.service != "" { + return m.service, true, nil + } + return "", false, nil +} + +func TestResolveBaseEndpoint(t *testing.T) { + cases := map[string]struct { + envGlobal string + envService string + envIgnore bool + configGlobal string + configService string + configIgnore bool + clientEndpoint *string + expectURL *string + }{ + "env ignore": { + envGlobal: "https://env-global.dev", + envService: "https://env-billing.dev", + envIgnore: true, + configGlobal: "http://config-global.dev", + configService: "http://config-billing.dev", + expectURL: nil, + }, + "env global": { + envGlobal: "https://env-global.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-billing.dev", + expectURL: aws.String("https://env-global.dev"), + }, + "env service": { + envGlobal: "https://env-global.dev", + envService: "https://env-billing.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-billing.dev", + expectURL: aws.String("https://env-billing.dev"), + }, + "config ignore": { + envGlobal: "https://env-global.dev", + envService: "https://env-billing.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-billing.dev", + configIgnore: true, + expectURL: nil, + }, + "config global": { + configGlobal: "http://config-global.dev", + expectURL: aws.String("http://config-global.dev"), + }, + "config service": { + configGlobal: "http://config-global.dev", + configService: "http://config-billing.dev", + expectURL: aws.String("http://config-billing.dev"), + }, + "client": { + envGlobal: "https://env-global.dev", + envService: "https://env-billing.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-billing.dev", + clientEndpoint: aws.String("https://client-billing.dev"), + expectURL: aws.String("https://client-billing.dev"), + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + os.Clearenv() + + awsConfig := aws.Config{} + ignore := c.envIgnore || c.configIgnore + + if c.configGlobal != "" && !ignore { + awsConfig.BaseEndpoint = aws.String(c.configGlobal) + } + + if c.envGlobal != "" { + t.Setenv("AWS_ENDPOINT_URL", c.envGlobal) + if !ignore { + awsConfig.BaseEndpoint = aws.String(c.envGlobal) + } + } + + if c.envService != "" { + t.Setenv("AWS_ENDPOINT_URL_BILLING", c.envService) + } + + awsConfig.ConfigSources = []interface{}{ + mockConfigSource{ + global: c.envGlobal, + service: c.envService, + ignore: c.envIgnore, + }, + mockConfigSource{ + global: c.configGlobal, + service: c.configService, + ignore: c.configIgnore, + }, + } + + client := NewFromConfig(awsConfig, func(o *Options) { + if c.clientEndpoint != nil { + o.BaseEndpoint = c.clientEndpoint + } + }) + + if e, a := c.expectURL, client.options.BaseEndpoint; !reflect.DeepEqual(e, a) { + t.Errorf("expect endpoint %v , got %v", e, a) + } + }) + } +} diff --git a/service/billing/endpoints_test.go b/service/billing/endpoints_test.go new file mode 100644 index 00000000000..bac891ff84c --- /dev/null +++ b/service/billing/endpoints_test.go @@ -0,0 +1,774 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "context" + smithy "github.com/aws/smithy-go" + smithyauth "github.com/aws/smithy-go/auth" + smithyendpoints "github.com/aws/smithy-go/endpoints" + "github.com/aws/smithy-go/ptr" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net/http" + "net/url" + "reflect" + "strings" + "testing" +) + +// For custom endpoint with region not set and fips disabled +func TestEndpointCase0(t *testing.T) { + var params = EndpointParameters{ + Endpoint: ptr.String("https://example.com"), + UseFIPS: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://example.com") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For custom endpoint with fips enabled +func TestEndpointCase1(t *testing.T) { + var params = EndpointParameters{ + Endpoint: ptr.String("https://example.com"), + UseFIPS: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "Invalid Configuration: FIPS and custom endpoint are not supported", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// For region us-east-1 with FIPS enabled and DualStack enabled +func TestEndpointCase2(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing-fips.us-east-1.api.aws") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-east-1 with FIPS disabled and DualStack enabled +func TestEndpointCase3(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing.us-east-1.api.aws") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region cn-northwest-1 with FIPS enabled and DualStack enabled +func TestEndpointCase4(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("cn-northwest-1"), + UseFIPS: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing-fips.cn-northwest-1.api.amazonwebservices.com.cn") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "cn-northwest-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region cn-northwest-1 with FIPS disabled and DualStack enabled +func TestEndpointCase5(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("cn-northwest-1"), + UseFIPS: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing.cn-northwest-1.api.amazonwebservices.com.cn") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "cn-northwest-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-gov-west-1 with FIPS enabled and DualStack enabled +func TestEndpointCase6(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-gov-west-1"), + UseFIPS: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing-fips.us-gov-west-1.api.aws") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-gov-west-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-gov-west-1 with FIPS disabled and DualStack enabled +func TestEndpointCase7(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-gov-west-1"), + UseFIPS: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing.us-gov-west-1.api.aws") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-gov-west-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-iso-east-1 with FIPS enabled and DualStack enabled +func TestEndpointCase8(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-iso-east-1"), + UseFIPS: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing-fips.us-iso-east-1.c2s.ic.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-iso-east-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-iso-east-1 with FIPS disabled and DualStack enabled +func TestEndpointCase9(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-iso-east-1"), + UseFIPS: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing.us-iso-east-1.c2s.ic.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-iso-east-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-isob-east-1 with FIPS enabled and DualStack enabled +func TestEndpointCase10(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-isob-east-1"), + UseFIPS: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing-fips.us-isob-east-1.sc2s.sgov.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-isob-east-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-isob-east-1 with FIPS disabled and DualStack enabled +func TestEndpointCase11(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-isob-east-1"), + UseFIPS: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing.us-isob-east-1.sc2s.sgov.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-isob-east-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region eu-isoe-west-1 with FIPS enabled and DualStack enabled +func TestEndpointCase12(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("eu-isoe-west-1"), + UseFIPS: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing-fips.eu-isoe-west-1.cloud.adc-e.uk") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "eu-isoe-west-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region eu-isoe-west-1 with FIPS disabled and DualStack enabled +func TestEndpointCase13(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("eu-isoe-west-1"), + UseFIPS: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing.eu-isoe-west-1.cloud.adc-e.uk") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "eu-isoe-west-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-isof-south-1 with FIPS enabled and DualStack enabled +func TestEndpointCase14(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-isof-south-1"), + UseFIPS: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing-fips.us-isof-south-1.csp.hci.ic.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-isof-south-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-isof-south-1 with FIPS disabled and DualStack enabled +func TestEndpointCase15(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-isof-south-1"), + UseFIPS: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://billing.us-isof-south-1.csp.hci.ic.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: func() smithy.Properties { + var out smithy.Properties + smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ + { + SchemeID: "aws.auth#sigv4", + SignerProperties: func() smithy.Properties { + var sp smithy.Properties + smithyhttp.SetSigV4SigningRegion(&sp, "us-isof-south-1") + return sp + }(), + }, + }) + return out + }(), + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// Missing region +func TestEndpointCase16(t *testing.T) { + var params = EndpointParameters{} + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "Invalid Configuration: Missing Region", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} diff --git a/service/billing/generated.json b/service/billing/generated.json new file mode 100644 index 00000000000..7d9cd6edbb3 --- /dev/null +++ b/service/billing/generated.json @@ -0,0 +1,33 @@ +{ + "dependencies": { + "github.com/aws/aws-sdk-go-v2": "v1.4.0", + "github.com/aws/aws-sdk-go-v2/internal/configsources": "v0.0.0-00010101000000-000000000000", + "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2": "v2.0.0-00010101000000-000000000000", + "github.com/aws/smithy-go": "v1.4.0" + }, + "files": [ + "api_client.go", + "api_client_test.go", + "api_op_ListBillingViews.go", + "auth.go", + "deserializers.go", + "doc.go", + "endpoints.go", + "endpoints_config_test.go", + "endpoints_test.go", + "generated.json", + "internal/endpoints/endpoints.go", + "internal/endpoints/endpoints_test.go", + "options.go", + "protocol_test.go", + "serializers.go", + "snapshot_test.go", + "types/enums.go", + "types/errors.go", + "types/types.go", + "validators.go" + ], + "go": "1.15", + "module": "github.com/aws/aws-sdk-go-v2/service/billing", + "unstable": false +} diff --git a/service/billing/go.mod b/service/billing/go.mod new file mode 100644 index 00000000000..cbade2b887c --- /dev/null +++ b/service/billing/go.mod @@ -0,0 +1,16 @@ +module github.com/aws/aws-sdk-go-v2/service/billing + +go 1.21 + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.4 + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 + github.com/aws/smithy-go v1.22.0 +) + +replace github.com/aws/aws-sdk-go-v2 => ../../ + +replace github.com/aws/aws-sdk-go-v2/internal/configsources => ../../internal/configsources/ + +replace github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 => ../../internal/endpoints/v2/ diff --git a/service/billing/go.sum b/service/billing/go.sum new file mode 100644 index 00000000000..70a20636e37 --- /dev/null +++ b/service/billing/go.sum @@ -0,0 +1,2 @@ +github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= +github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= diff --git a/service/billing/go_module_metadata.go b/service/billing/go_module_metadata.go new file mode 100644 index 00000000000..9cf06b5862d --- /dev/null +++ b/service/billing/go_module_metadata.go @@ -0,0 +1,6 @@ +// Code generated by internal/repotools/cmd/updatemodulemeta DO NOT EDIT. + +package billing + +// goModuleVersion is the tagged release for this module +const goModuleVersion = "tip" diff --git a/service/billing/internal/endpoints/endpoints.go b/service/billing/internal/endpoints/endpoints.go new file mode 100644 index 00000000000..095425af0a2 --- /dev/null +++ b/service/billing/internal/endpoints/endpoints.go @@ -0,0 +1,296 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package endpoints + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + endpoints "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2" + "github.com/aws/smithy-go/logging" + "regexp" +) + +// Options is the endpoint resolver configuration options +type Options struct { + // Logger is a logging implementation that log events should be sent to. + Logger logging.Logger + + // LogDeprecated indicates that deprecated endpoints should be logged to the + // provided logger. + LogDeprecated bool + + // ResolvedRegion is used to override the region to be resolved, rather then the + // using the value passed to the ResolveEndpoint method. This value is used by the + // SDK to translate regions like fips-us-east-1 or us-east-1-fips to an alternative + // name. You must not set this value directly in your application. + ResolvedRegion string + + // DisableHTTPS informs the resolver to return an endpoint that does not use the + // HTTPS scheme. + DisableHTTPS bool + + // UseDualStackEndpoint specifies the resolver must resolve a dual-stack endpoint. + UseDualStackEndpoint aws.DualStackEndpointState + + // UseFIPSEndpoint specifies the resolver must resolve a FIPS endpoint. + UseFIPSEndpoint aws.FIPSEndpointState +} + +func (o Options) GetResolvedRegion() string { + return o.ResolvedRegion +} + +func (o Options) GetDisableHTTPS() bool { + return o.DisableHTTPS +} + +func (o Options) GetUseDualStackEndpoint() aws.DualStackEndpointState { + return o.UseDualStackEndpoint +} + +func (o Options) GetUseFIPSEndpoint() aws.FIPSEndpointState { + return o.UseFIPSEndpoint +} + +func transformToSharedOptions(options Options) endpoints.Options { + return endpoints.Options{ + Logger: options.Logger, + LogDeprecated: options.LogDeprecated, + ResolvedRegion: options.ResolvedRegion, + DisableHTTPS: options.DisableHTTPS, + UseDualStackEndpoint: options.UseDualStackEndpoint, + UseFIPSEndpoint: options.UseFIPSEndpoint, + } +} + +// Resolver Billing endpoint resolver +type Resolver struct { + partitions endpoints.Partitions +} + +// ResolveEndpoint resolves the service endpoint for the given region and options +func (r *Resolver) ResolveEndpoint(region string, options Options) (endpoint aws.Endpoint, err error) { + if len(region) == 0 { + return endpoint, &aws.MissingRegionError{} + } + + opt := transformToSharedOptions(options) + return r.partitions.ResolveEndpoint(region, opt) +} + +// New returns a new Resolver +func New() *Resolver { + return &Resolver{ + partitions: defaultPartitions, + } +} + +var partitionRegexp = struct { + Aws *regexp.Regexp + AwsCn *regexp.Regexp + AwsIso *regexp.Regexp + AwsIsoB *regexp.Regexp + AwsIsoE *regexp.Regexp + AwsIsoF *regexp.Regexp + AwsUsGov *regexp.Regexp +}{ + + Aws: regexp.MustCompile("^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$"), + AwsCn: regexp.MustCompile("^cn\\-\\w+\\-\\d+$"), + AwsIso: regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"), + AwsIsoB: regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"), + AwsIsoE: regexp.MustCompile("^eu\\-isoe\\-\\w+\\-\\d+$"), + AwsIsoF: regexp.MustCompile("^us\\-isof\\-\\w+\\-\\d+$"), + AwsUsGov: regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"), +} + +var defaultPartitions = endpoints.Partitions{ + { + ID: "aws", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.DualStackVariant, + }: { + Hostname: "billing.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "billing-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "billing-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "billing.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.Aws, + IsRegionalized: true, + }, + { + ID: "aws-cn", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.DualStackVariant, + }: { + Hostname: "billing.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "billing-fips.{region}.amazonaws.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "billing-fips.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "billing.{region}.amazonaws.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsCn, + IsRegionalized: true, + }, + { + ID: "aws-iso", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "billing-fips.{region}.c2s.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "billing.{region}.c2s.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIso, + IsRegionalized: true, + }, + { + ID: "aws-iso-b", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "billing-fips.{region}.sc2s.sgov.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "billing.{region}.sc2s.sgov.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIsoB, + IsRegionalized: true, + }, + { + ID: "aws-iso-e", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "billing-fips.{region}.cloud.adc-e.uk", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "billing.{region}.cloud.adc-e.uk", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIsoE, + IsRegionalized: true, + }, + { + ID: "aws-iso-f", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "billing-fips.{region}.csp.hci.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "billing.{region}.csp.hci.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIsoF, + IsRegionalized: true, + }, + { + ID: "aws-us-gov", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.DualStackVariant, + }: { + Hostname: "billing.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "billing-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "billing-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "billing.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsUsGov, + IsRegionalized: true, + }, +} diff --git a/service/billing/internal/endpoints/endpoints_test.go b/service/billing/internal/endpoints/endpoints_test.go new file mode 100644 index 00000000000..08e5da2d833 --- /dev/null +++ b/service/billing/internal/endpoints/endpoints_test.go @@ -0,0 +1,11 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package endpoints + +import ( + "testing" +) + +func TestRegexCompile(t *testing.T) { + _ = defaultPartitions +} diff --git a/service/billing/options.go b/service/billing/options.go new file mode 100644 index 00000000000..27e9f5a7f5b --- /dev/null +++ b/service/billing/options.go @@ -0,0 +1,232 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/aws" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + internalauthsmithy "github.com/aws/aws-sdk-go-v2/internal/auth/smithy" + smithyauth "github.com/aws/smithy-go/auth" + "github.com/aws/smithy-go/logging" + "github.com/aws/smithy-go/metrics" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net/http" +) + +type HTTPClient interface { + Do(*http.Request) (*http.Response, error) +} + +type Options struct { + // Set of options to modify how an operation is invoked. These apply to all + // operations invoked for this client. Use functional options on operation call to + // modify this list for per operation behavior. + APIOptions []func(*middleware.Stack) error + + // The optional application specific identifier appended to the User-Agent header. + AppID string + + // This endpoint will be given as input to an EndpointResolverV2. It is used for + // providing a custom base endpoint that is subject to modifications by the + // processing EndpointResolverV2. + BaseEndpoint *string + + // Configures the events that will be sent to the configured logger. + ClientLogMode aws.ClientLogMode + + // The credentials object to use when signing requests. + Credentials aws.CredentialsProvider + + // The configuration DefaultsMode that the SDK should use when constructing the + // clients initial default settings. + DefaultsMode aws.DefaultsMode + + // The endpoint options to be used when attempting to resolve an endpoint. + EndpointOptions EndpointResolverOptions + + // The service endpoint resolver. + // + // Deprecated: Deprecated: EndpointResolver and WithEndpointResolver. Providing a + // value for this field will likely prevent you from using any endpoint-related + // service features released after the introduction of EndpointResolverV2 and + // BaseEndpoint. + // + // To migrate an EndpointResolver implementation that uses a custom endpoint, set + // the client option BaseEndpoint instead. + EndpointResolver EndpointResolver + + // Resolves the endpoint used for a particular service operation. This should be + // used over the deprecated EndpointResolver. + EndpointResolverV2 EndpointResolverV2 + + // Signature Version 4 (SigV4) Signer + HTTPSignerV4 HTTPSignerV4 + + // The logger writer interface to write logging messages to. + Logger logging.Logger + + // The client meter provider. + MeterProvider metrics.MeterProvider + + // The region to send requests to. (Required) + Region string + + // RetryMaxAttempts specifies the maximum number attempts an API client will call + // an operation that fails with a retryable error. A value of 0 is ignored, and + // will not be used to configure the API client created default retryer, or modify + // per operation call's retry max attempts. + // + // If specified in an operation call's functional options with a value that is + // different than the constructed client's Options, the Client's Retryer will be + // wrapped to use the operation's specific RetryMaxAttempts value. + RetryMaxAttempts int + + // RetryMode specifies the retry mode the API client will be created with, if + // Retryer option is not also specified. + // + // When creating a new API Clients this member will only be used if the Retryer + // Options member is nil. This value will be ignored if Retryer is not nil. + // + // Currently does not support per operation call overrides, may in the future. + RetryMode aws.RetryMode + + // Retryer guides how HTTP requests should be retried in case of recoverable + // failures. When nil the API client will use a default retryer. The kind of + // default retry created by the API client can be changed with the RetryMode + // option. + Retryer aws.Retryer + + // The RuntimeEnvironment configuration, only populated if the DefaultsMode is set + // to DefaultsModeAuto and is initialized using config.LoadDefaultConfig . You + // should not populate this structure programmatically, or rely on the values here + // within your applications. + RuntimeEnvironment aws.RuntimeEnvironment + + // The client tracer provider. + TracerProvider tracing.TracerProvider + + // The initial DefaultsMode used when the client options were constructed. If the + // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved + // value was at that point in time. + // + // Currently does not support per operation call overrides, may in the future. + resolvedDefaultsMode aws.DefaultsMode + + // The HTTP client to invoke API calls with. Defaults to client's default HTTP + // implementation if nil. + HTTPClient HTTPClient + + // The auth scheme resolver which determines how to authenticate for each + // operation. + AuthSchemeResolver AuthSchemeResolver + + // The list of auth schemes supported by the client. + AuthSchemes []smithyhttp.AuthScheme +} + +// Copy creates a clone where the APIOptions list is deep copied. +func (o Options) Copy() Options { + to := o + to.APIOptions = make([]func(*middleware.Stack) error, len(o.APIOptions)) + copy(to.APIOptions, o.APIOptions) + + return to +} + +func (o Options) GetIdentityResolver(schemeID string) smithyauth.IdentityResolver { + if schemeID == "aws.auth#sigv4" { + return getSigV4IdentityResolver(o) + } + if schemeID == "smithy.api#noAuth" { + return &smithyauth.AnonymousIdentityResolver{} + } + return nil +} + +// WithAPIOptions returns a functional option for setting the Client's APIOptions +// option. +func WithAPIOptions(optFns ...func(*middleware.Stack) error) func(*Options) { + return func(o *Options) { + o.APIOptions = append(o.APIOptions, optFns...) + } +} + +// Deprecated: EndpointResolver and WithEndpointResolver. Providing a value for +// this field will likely prevent you from using any endpoint-related service +// features released after the introduction of EndpointResolverV2 and BaseEndpoint. +// +// To migrate an EndpointResolver implementation that uses a custom endpoint, set +// the client option BaseEndpoint instead. +func WithEndpointResolver(v EndpointResolver) func(*Options) { + return func(o *Options) { + o.EndpointResolver = v + } +} + +// WithEndpointResolverV2 returns a functional option for setting the Client's +// EndpointResolverV2 option. +func WithEndpointResolverV2(v EndpointResolverV2) func(*Options) { + return func(o *Options) { + o.EndpointResolverV2 = v + } +} + +func getSigV4IdentityResolver(o Options) smithyauth.IdentityResolver { + if o.Credentials != nil { + return &internalauthsmithy.CredentialsProviderAdapter{Provider: o.Credentials} + } + return nil +} + +// WithSigV4SigningName applies an override to the authentication workflow to +// use the given signing name for SigV4-authenticated operations. +// +// This is an advanced setting. The value here is FINAL, taking precedence over +// the resolved signing name from both auth scheme resolution and endpoint +// resolution. +func WithSigV4SigningName(name string) func(*Options) { + fn := func(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, + ) { + return next.HandleInitialize(awsmiddleware.SetSigningName(ctx, name), in) + } + return func(o *Options) { + o.APIOptions = append(o.APIOptions, func(s *middleware.Stack) error { + return s.Initialize.Add( + middleware.InitializeMiddlewareFunc("withSigV4SigningName", fn), + middleware.Before, + ) + }) + } +} + +// WithSigV4SigningRegion applies an override to the authentication workflow to +// use the given signing region for SigV4-authenticated operations. +// +// This is an advanced setting. The value here is FINAL, taking precedence over +// the resolved signing region from both auth scheme resolution and endpoint +// resolution. +func WithSigV4SigningRegion(region string) func(*Options) { + fn := func(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, + ) { + return next.HandleInitialize(awsmiddleware.SetSigningRegion(ctx, region), in) + } + return func(o *Options) { + o.APIOptions = append(o.APIOptions, func(s *middleware.Stack) error { + return s.Initialize.Add( + middleware.InitializeMiddlewareFunc("withSigV4SigningRegion", fn), + middleware.Before, + ) + }) + } +} + +func ignoreAnonymousAuth(options *Options) { + if aws.IsCredentialsProvider(options.Credentials, (*aws.AnonymousCredentials)(nil)) { + options.Credentials = nil + } +} diff --git a/service/billing/protocol_test.go b/service/billing/protocol_test.go new file mode 100644 index 00000000000..4288eb6efe1 --- /dev/null +++ b/service/billing/protocol_test.go @@ -0,0 +1,3 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing diff --git a/service/billing/serializers.go b/service/billing/serializers.go new file mode 100644 index 00000000000..c2c39601fa0 --- /dev/null +++ b/service/billing/serializers.go @@ -0,0 +1,119 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "bytes" + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/billing/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/encoding/httpbinding" + smithyjson "github.com/aws/smithy-go/encoding/json" + "github.com/aws/smithy-go/middleware" + smithytime "github.com/aws/smithy-go/time" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "path" +) + +type awsAwsjson10_serializeOpListBillingViews struct { +} + +func (*awsAwsjson10_serializeOpListBillingViews) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListBillingViews) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListBillingViewsInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSBilling.ListBillingViews") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListBillingViewsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsAwsjson10_serializeDocumentActiveTimeRange(v *types.ActiveTimeRange, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ActiveAfterInclusive != nil { + ok := object.Key("activeAfterInclusive") + ok.Double(smithytime.FormatEpochSeconds(*v.ActiveAfterInclusive)) + } + + if v.ActiveBeforeInclusive != nil { + ok := object.Key("activeBeforeInclusive") + ok.Double(smithytime.FormatEpochSeconds(*v.ActiveBeforeInclusive)) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentListBillingViewsInput(v *ListBillingViewsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ActiveTimeRange != nil { + ok := object.Key("activeTimeRange") + if err := awsAwsjson10_serializeDocumentActiveTimeRange(v.ActiveTimeRange, ok); err != nil { + return err + } + } + + if v.MaxResults != nil { + ok := object.Key("maxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("nextToken") + ok.String(*v.NextToken) + } + + return nil +} diff --git a/service/billing/snapshot/api_op_ListBillingViews.go.snap b/service/billing/snapshot/api_op_ListBillingViews.go.snap new file mode 100644 index 00000000000..1a881f169a1 --- /dev/null +++ b/service/billing/snapshot/api_op_ListBillingViews.go.snap @@ -0,0 +1,41 @@ +ListBillingViews + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/billing/snapshot_test.go b/service/billing/snapshot_test.go new file mode 100644 index 00000000000..c18a1e0f7eb --- /dev/null +++ b/service/billing/snapshot_test.go @@ -0,0 +1,86 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +//go:build snapshot + +package billing + +import ( + "context" + "errors" + "fmt" + "github.com/aws/smithy-go/middleware" + "io" + "io/fs" + "os" + "testing" +) + +const ssprefix = "snapshot" + +type snapshotOK struct{} + +func (snapshotOK) Error() string { return "error: success" } + +func createp(path string) (*os.File, error) { + if err := os.Mkdir(ssprefix, 0700); err != nil && !errors.Is(err, fs.ErrExist) { + return nil, err + } + return os.Create(path) +} + +func sspath(op string) string { + return fmt.Sprintf("%s/api_op_%s.go.snap", ssprefix, op) +} + +func updateSnapshot(stack *middleware.Stack, operation string) error { + f, err := createp(sspath(operation)) + if err != nil { + return err + } + defer f.Close() + if _, err := f.Write([]byte(stack.String())); err != nil { + return err + } + return snapshotOK{} +} + +func testSnapshot(stack *middleware.Stack, operation string) error { + f, err := os.Open(sspath(operation)) + if errors.Is(err, fs.ErrNotExist) { + return snapshotOK{} + } + if err != nil { + return err + } + defer f.Close() + expected, err := io.ReadAll(f) + if err != nil { + return err + } + if actual := stack.String(); actual != string(expected) { + return fmt.Errorf("%s != %s", expected, actual) + } + return snapshotOK{} +} +func TestCheckSnapshot_ListBillingViews(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListBillingViews(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListBillingViews") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} +func TestUpdateSnapshot_ListBillingViews(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListBillingViews(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListBillingViews") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} diff --git a/service/billing/types/enums.go b/service/billing/types/enums.go new file mode 100644 index 00000000000..430b27efe51 --- /dev/null +++ b/service/billing/types/enums.go @@ -0,0 +1,45 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +type BillingViewType string + +// Enum values for BillingViewType +const ( + BillingViewTypePrimary BillingViewType = "PRIMARY" + BillingViewTypeBillingGroup BillingViewType = "BILLING_GROUP" +) + +// Values returns all known values for BillingViewType. 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 (BillingViewType) Values() []BillingViewType { + return []BillingViewType{ + "PRIMARY", + "BILLING_GROUP", + } +} + +type ValidationExceptionReason string + +// Enum values for ValidationExceptionReason +const ( + ValidationExceptionReasonUnknownOperation ValidationExceptionReason = "unknownOperation" + ValidationExceptionReasonCannotParse ValidationExceptionReason = "cannotParse" + ValidationExceptionReasonFieldValidationFailed ValidationExceptionReason = "fieldValidationFailed" + ValidationExceptionReasonOther ValidationExceptionReason = "other" +) + +// Values returns all known values for ValidationExceptionReason. 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 (ValidationExceptionReason) Values() []ValidationExceptionReason { + return []ValidationExceptionReason{ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other", + } +} diff --git a/service/billing/types/errors.go b/service/billing/types/errors.go new file mode 100644 index 00000000000..2332d811601 --- /dev/null +++ b/service/billing/types/errors.go @@ -0,0 +1,117 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + "fmt" + smithy "github.com/aws/smithy-go" +) + +// You don't have sufficient access to perform this action. +type AccessDeniedException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *AccessDeniedException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *AccessDeniedException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "AccessDeniedException" + } + return *e.ErrorCodeOverride +} +func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// The request processing failed because of an unknown error, exception, or +// failure. +type InternalServerException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *InternalServerException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *InternalServerException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "InternalServerException" + } + return *e.ErrorCodeOverride +} +func (e *InternalServerException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } + +// The request was denied due to request throttling. +type ThrottlingException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ThrottlingException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ThrottlingException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ThrottlingException" + } + return *e.ErrorCodeOverride +} +func (e *ThrottlingException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +type ValidationException struct { + Message *string + + ErrorCodeOverride *string + + Reason ValidationExceptionReason + FieldList []ValidationExceptionField + + noSmithyDocumentSerde +} + +func (e *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ValidationException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ValidationException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ValidationException" + } + return *e.ErrorCodeOverride +} +func (e *ValidationException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } diff --git a/service/billing/types/types.go b/service/billing/types/types.go new file mode 100644 index 00000000000..2cbeadec158 --- /dev/null +++ b/service/billing/types/types.go @@ -0,0 +1,61 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + smithydocument "github.com/aws/smithy-go/document" + "time" +) + +// A time range with a start and end time. +type ActiveTimeRange struct { + + // The inclusive time range start date. + // + // This member is required. + ActiveAfterInclusive *time.Time + + // The inclusive time range end date. + // + // This member is required. + ActiveBeforeInclusive *time.Time + + noSmithyDocumentSerde +} + +// A representation of a billing view. +type BillingViewListElement struct { + + // The Amazon Resource Name (ARN) that can be used to uniquely identify the + // billing view. + Arn *string + + // The type of billing view. + BillingViewType BillingViewType + + // A list of names of the Billing view. + Name *string + + // The list of owners of the Billing view. + OwnerAccountId *string + + noSmithyDocumentSerde +} + +// The field's information of a request that resulted in an exception. +type ValidationExceptionField struct { + + // The message describing why the field failed validation. + // + // This member is required. + Message *string + + // The name of the field. + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + +type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/billing/validators.go b/service/billing/validators.go new file mode 100644 index 00000000000..12c647a2d1e --- /dev/null +++ b/service/billing/validators.go @@ -0,0 +1,72 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package billing + +import ( + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/billing/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" +) + +type validateOpListBillingViews struct { +} + +func (*validateOpListBillingViews) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListBillingViews) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListBillingViewsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListBillingViewsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +func addOpListBillingViewsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListBillingViews{}, middleware.After) +} + +func validateActiveTimeRange(v *types.ActiveTimeRange) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ActiveTimeRange"} + if v.ActiveAfterInclusive == nil { + invalidParams.Add(smithy.NewErrParamRequired("ActiveAfterInclusive")) + } + if v.ActiveBeforeInclusive == nil { + invalidParams.Add(smithy.NewErrParamRequired("ActiveBeforeInclusive")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListBillingViewsInput(v *ListBillingViewsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListBillingViewsInput"} + if v.ActiveTimeRange == nil { + invalidParams.Add(smithy.NewErrParamRequired("ActiveTimeRange")) + } else if v.ActiveTimeRange != nil { + if err := validateActiveTimeRange(v.ActiveTimeRange); err != nil { + invalidParams.AddNested("ActiveTimeRange", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} diff --git a/service/cloudtrail/api_op_DescribeQuery.go b/service/cloudtrail/api_op_DescribeQuery.go index 06fb8bb506b..c7c75717aa1 100644 --- a/service/cloudtrail/api_op_DescribeQuery.go +++ b/service/cloudtrail/api_op_DescribeQuery.go @@ -62,6 +62,12 @@ type DescribeQueryOutput struct { // The error message returned if a query failed. ErrorMessage *string + // The prompt used for a generated query. For information about generated + // queries, see [Create CloudTrail Lake queries from natural language prompts]in the CloudTrail user guide. + // + // [Create CloudTrail Lake queries from natural language prompts]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-query-generator.html + Prompt *string + // The ID of the query. QueryId *string diff --git a/service/cloudtrail/api_op_GenerateQuery.go b/service/cloudtrail/api_op_GenerateQuery.go new file mode 100644 index 00000000000..bf0994b90a6 --- /dev/null +++ b/service/cloudtrail/api_op_GenerateQuery.go @@ -0,0 +1,187 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package cloudtrail + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Generates a query from a natural language prompt. This operation uses +// +// generative artificial intelligence (generative AI) to produce a ready-to-use SQL +// query from the prompt. +// +// The prompt can be a question or a statement about the event data in your event +// data store. For example, you can enter prompts like "What are my top errors in +// the past month?" and “Give me a list of users that used SNS.” +// +// The prompt must be in English. For information about limitations, permissions, +// and supported Regions, see [Create CloudTrail Lake queries from natural language prompts]in the CloudTrail user guide. +// +// Do not include any personally identifying, confidential, or sensitive +// information in your prompts. +// +// This feature uses generative AI large language models (LLMs); we recommend +// double-checking the LLM response. +// +// [Create CloudTrail Lake queries from natural language prompts]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-query-generator.html +func (c *Client) GenerateQuery(ctx context.Context, params *GenerateQueryInput, optFns ...func(*Options)) (*GenerateQueryOutput, error) { + if params == nil { + params = &GenerateQueryInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GenerateQuery", params, optFns, c.addOperationGenerateQueryMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GenerateQueryOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GenerateQueryInput struct { + + // The ARN (or ID suffix of the ARN) of the event data store that you want to + // query. You can only specify one event data store. + // + // This member is required. + EventDataStores []string + + // The prompt that you want to use to generate the query. The prompt must be in + // English. For example prompts, see [Example prompts]in the CloudTrail user guide. + // + // [Example prompts]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-query-generator.html#lake-query-generator-examples + // + // This member is required. + Prompt *string + + noSmithyDocumentSerde +} + +type GenerateQueryOutput struct { + + // An alias that identifies the prompt. When you run the StartQuery operation, + // you can pass in either the QueryAlias or QueryStatement parameter. + QueryAlias *string + + // The SQL query statement generated from the prompt. + QueryStatement *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGenerateQueryMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson11_serializeOpGenerateQuery{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGenerateQuery{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GenerateQuery"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpGenerateQueryValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGenerateQuery(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGenerateQuery(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GenerateQuery", + } +} diff --git a/service/cloudtrail/deserializers.go b/service/cloudtrail/deserializers.go index 482353b3e5f..9782776853c 100644 --- a/service/cloudtrail/deserializers.go +++ b/service/cloudtrail/deserializers.go @@ -2074,6 +2074,138 @@ func awsAwsjson11_deserializeOpErrorEnableFederation(response *smithyhttp.Respon } } +type awsAwsjson11_deserializeOpGenerateQuery struct { +} + +func (*awsAwsjson11_deserializeOpGenerateQuery) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpGenerateQuery) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson11_deserializeOpErrorGenerateQuery(response, &metadata) + } + output := &GenerateQueryOutput{} + 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_deserializeOpDocumentGenerateQueryOutput(&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_deserializeOpErrorGenerateQuery(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("EventDataStoreARNInvalidException", errorCode): + return awsAwsjson11_deserializeErrorEventDataStoreARNInvalidException(response, errorBody) + + case strings.EqualFold("EventDataStoreNotFoundException", errorCode): + return awsAwsjson11_deserializeErrorEventDataStoreNotFoundException(response, errorBody) + + case strings.EqualFold("GenerateResponseException", errorCode): + return awsAwsjson11_deserializeErrorGenerateResponseException(response, errorBody) + + case strings.EqualFold("InactiveEventDataStoreException", errorCode): + return awsAwsjson11_deserializeErrorInactiveEventDataStoreException(response, errorBody) + + case strings.EqualFold("InvalidParameterException", errorCode): + return awsAwsjson11_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("NoManagementAccountSLRExistsException", errorCode): + return awsAwsjson11_deserializeErrorNoManagementAccountSLRExistsException(response, errorBody) + + case strings.EqualFold("OperationNotPermittedException", errorCode): + return awsAwsjson11_deserializeErrorOperationNotPermittedException(response, errorBody) + + case strings.EqualFold("UnsupportedOperationException", errorCode): + return awsAwsjson11_deserializeErrorUnsupportedOperationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpGetChannel struct { } @@ -5145,6 +5277,9 @@ func awsAwsjson11_deserializeOpErrorRemoveTags(response *smithyhttp.Response, me case strings.EqualFold("CloudTrailARNInvalidException", errorCode): return awsAwsjson11_deserializeErrorCloudTrailARNInvalidException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson11_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("EventDataStoreARNInvalidException", errorCode): return awsAwsjson11_deserializeErrorEventDataStoreARNInvalidException(response, errorBody) @@ -7695,6 +7830,41 @@ func awsAwsjson11_deserializeErrorEventDataStoreTerminationProtectedException(re return output } +func awsAwsjson11_deserializeErrorGenerateResponseException(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.GenerateResponseException{} + err := awsAwsjson11_deserializeDocumentGenerateResponseException(&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_deserializeErrorImportNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -11636,6 +11806,46 @@ func awsAwsjson11_deserializeDocumentExcludeManagementEventSources(v *[]string, return nil } +func awsAwsjson11_deserializeDocumentGenerateResponseException(v **types.GenerateResponseException, 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.GenerateResponseException + if *v == nil { + sv = &types.GenerateResponseException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "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_deserializeDocumentImportDestinations(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -16542,6 +16752,15 @@ func awsAwsjson11_deserializeOpDocumentDescribeQueryOutput(v **DescribeQueryOutp sv.ErrorMessage = ptr.String(jtv) } + case "Prompt": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Prompt to be of type string, got %T instead", value) + } + sv.Prompt = ptr.String(jtv) + } + case "QueryId": if value != nil { jtv, ok := value.(string) @@ -16726,6 +16945,55 @@ func awsAwsjson11_deserializeOpDocumentEnableFederationOutput(v **EnableFederati return nil } +func awsAwsjson11_deserializeOpDocumentGenerateQueryOutput(v **GenerateQueryOutput, 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 *GenerateQueryOutput + if *v == nil { + sv = &GenerateQueryOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "QueryAlias": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected QueryAlias to be of type string, got %T instead", value) + } + sv.QueryAlias = ptr.String(jtv) + } + + case "QueryStatement": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected QueryStatement to be of type string, got %T instead", value) + } + sv.QueryStatement = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentGetChannelOutput(v **GetChannelOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/cloudtrail/generated.json b/service/cloudtrail/generated.json index 7565d0069fa..0f5acfb5881 100644 --- a/service/cloudtrail/generated.json +++ b/service/cloudtrail/generated.json @@ -22,6 +22,7 @@ "api_op_DescribeTrails.go", "api_op_DisableFederation.go", "api_op_EnableFederation.go", + "api_op_GenerateQuery.go", "api_op_GetChannel.go", "api_op_GetEventDataStore.go", "api_op_GetEventSelectors.go", diff --git a/service/cloudtrail/serializers.go b/service/cloudtrail/serializers.go index ce409badadd..2138f3c9da1 100644 --- a/service/cloudtrail/serializers.go +++ b/service/cloudtrail/serializers.go @@ -871,6 +871,67 @@ func (m *awsAwsjson11_serializeOpEnableFederation) HandleSerialize(ctx context.C return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpGenerateQuery struct { +} + +func (*awsAwsjson11_serializeOpGenerateQuery) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpGenerateQuery) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GenerateQueryInput) + _ = 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("CloudTrail_20131101.GenerateQuery") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentGenerateQueryInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsjson11_serializeOpGetChannel struct { } @@ -3177,6 +3238,17 @@ func awsAwsjson11_serializeDocumentDestinations(v []types.Destination, value smi return nil } +func awsAwsjson11_serializeDocumentEventDataStoreList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsAwsjson11_serializeDocumentEventSelector(v *types.EventSelector, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3735,6 +3807,25 @@ func awsAwsjson11_serializeOpDocumentEnableFederationInput(v *EnableFederationIn return nil } +func awsAwsjson11_serializeOpDocumentGenerateQueryInput(v *GenerateQueryInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EventDataStores != nil { + ok := object.Key("EventDataStores") + if err := awsAwsjson11_serializeDocumentEventDataStoreList(v.EventDataStores, ok); err != nil { + return err + } + } + + if v.Prompt != nil { + ok := object.Key("Prompt") + ok.String(*v.Prompt) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentGetChannelInput(v *GetChannelInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/cloudtrail/snapshot/api_op_GenerateQuery.go.snap b/service/cloudtrail/snapshot/api_op_GenerateQuery.go.snap new file mode 100644 index 00000000000..377624f1a5f --- /dev/null +++ b/service/cloudtrail/snapshot/api_op_GenerateQuery.go.snap @@ -0,0 +1,41 @@ +GenerateQuery + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/cloudtrail/snapshot_test.go b/service/cloudtrail/snapshot_test.go index 689b690f417..2f16766b56a 100644 --- a/service/cloudtrail/snapshot_test.go +++ b/service/cloudtrail/snapshot_test.go @@ -230,6 +230,18 @@ func TestCheckSnapshot_EnableFederation(t *testing.T) { } } +func TestCheckSnapshot_GenerateQuery(t *testing.T) { + svc := New(Options{}) + _, err := svc.GenerateQuery(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GenerateQuery") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GetChannel(t *testing.T) { svc := New(Options{}) _, err := svc.GetChannel(context.Background(), nil, func(o *Options) { @@ -817,6 +829,18 @@ func TestUpdateSnapshot_EnableFederation(t *testing.T) { } } +func TestUpdateSnapshot_GenerateQuery(t *testing.T) { + svc := New(Options{}) + _, err := svc.GenerateQuery(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GenerateQuery") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GetChannel(t *testing.T) { svc := New(Options{}) _, err := svc.GetChannel(context.Background(), nil, func(o *Options) { diff --git a/service/cloudtrail/types/errors.go b/service/cloudtrail/types/errors.go index 06946767bc0..4e73a6a5f21 100644 --- a/service/cloudtrail/types/errors.go +++ b/service/cloudtrail/types/errors.go @@ -719,6 +719,34 @@ func (e *EventDataStoreTerminationProtectedException) ErrorFault() smithy.ErrorF return smithy.FaultClient } +// This exception is thrown when a valid query could not be generated for the +// +// provided prompt. +type GenerateResponseException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *GenerateResponseException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *GenerateResponseException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *GenerateResponseException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "GenerateResponseException" + } + return *e.ErrorCodeOverride +} +func (e *GenerateResponseException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // The specified import was not found. type ImportNotFoundException struct { Message *string diff --git a/service/cloudtrail/types/types.go b/service/cloudtrail/types/types.go index bd00a1313cf..23b28733e7e 100644 --- a/service/cloudtrail/types/types.go +++ b/service/cloudtrail/types/types.go @@ -23,6 +23,16 @@ import ( // // - readOnly // +// The following additional fields are available for event data stores: +// +// - eventName +// +// - eventType +// +// - sessionCredentialFromConsole +// +// - userIdentity.arn +// // Supported CloudTrail event record fields for data events // // - eventCategory (required) @@ -35,6 +45,16 @@ import ( // // - resources.ARN // +// The following additional fields are available for event data stores: +// +// - eventSource +// +// - eventType +// +// - sessionCredentialFromConsole +// +// - userIdentity.arn +// // # Supported CloudTrail event record fields for network activity events // // Network activity events is in preview release for CloudTrail and is subject to @@ -80,10 +100,14 @@ type AdvancedFieldSelector struct { // field is used only for selecting events as filtering is not supported. // // For CloudTrail management events, supported fields include eventCategory - // (required), eventSource , and readOnly . + // (required), eventSource , and readOnly . The following additional fields are + // available for event data stores: eventName , eventType , + // sessionCredentialFromConsole , and userIdentity.arn . // // For CloudTrail data events, supported fields include eventCategory (required), - // resources.type (required), eventName , readOnly , and resources.ARN . + // resources.type (required), eventName , readOnly , and resources.ARN . The + // following additional fields are available for event data stores: eventSource , + // eventType , sessionCredentialFromConsole , and userIdentity.arn . // // For CloudTrail network activity events, supported fields include eventCategory // (required), eventSource (required), eventName , errorCode , and vpcEndpointId . @@ -97,13 +121,16 @@ type AdvancedFieldSelector struct { // . If you do not add this field, CloudTrail logs both read and write events. A // value of true logs only read events. A value of false logs only write events. // - // - eventSource - This field is only used for management events and network - // activity events. + // - eventSource - This field is only used for management events, data events + // (for event data stores only), and network activity events. // - // For management events, this is an optional field that can be set to NotEquals - // kms.amazonaws.com to exclude KMS management events, or NotEquals + // For management events for trails, this is an optional field that can be set to + // NotEquals kms.amazonaws.com to exclude KMS management events, or NotEquals // rdsdata.amazonaws.com to exclude RDS management events. // + // For management and data events for event data stores, you can use it to include + // or exclude any event source and can use any operator. + // // For network activity events, this is a required field that only uses the Equals // operator. Set this field to the event source for which you want to log network // activity events. If you want to log network activity events for multiple event @@ -119,10 +146,11 @@ type AdvancedFieldSelector struct { // // - secretsmanager.amazonaws.com // - // - eventName - This is an optional field that is only used for data events and - // network activity events. You can use any operator with eventName . You can use - // it to filter in or filter out specific events. You can have multiple values for - // this field, separated by commas. + // - eventName - This is an optional field that is only used for data events, + // management events (for event data stores only), and network activity events. You + // can use any operator with eventName . You can use it to filter in or filter out + // specific events. You can have multiple values for this field, separated by + // commas. // // - eventCategory - This field is required and must be set to Equals . // @@ -140,167 +168,29 @@ type AdvancedFieldSelector struct { // // - For Audit Manager evidence, the value must be Evidence . // - // - For non-Amazon Web Services events, the value must be ActivityAuditLog . + // - For events outside of Amazon Web Services, the value must be + // ActivityAuditLog . + // + // - eventType - This is an optional field available only for event data stores, + // which is used to filter management and data events on the event type. For + // information about available event types, see [CloudTrail record contents]in the CloudTrail user guide. // // - errorCode - This field is only used to filter CloudTrail network activity // events and is optional. This is the error code to filter on. Currently, the only // valid errorCode is VpceAccessDenied . errorCode can only use the Equals // operator. // + // - sessionCredentialFromConsole - This is an optional field available only for + // event data stores, which is used to filter management and data events based on + // whether the events originated from an Amazon Web Services Management Console + // session. sessionCredentialFromConsole can only use the Equals and NotEquals + // operators. + // // - resources.type - This field is required for CloudTrail data events. // resources.type can only use the Equals operator. // - // The value can be one of the following: - // - // - AWS::AppConfig::Configuration - // - // - AWS::B2BI::Transformer - // - // - AWS::Bedrock::AgentAlias - // - // - AWS::Bedrock::FlowAlias - // - // - AWS::Bedrock::Guardrail - // - // - AWS::Bedrock::KnowledgeBase - // - // - AWS::Cassandra::Table - // - // - AWS::CloudFront::KeyValueStore - // - // - AWS::CloudTrail::Channel - // - // - AWS::CloudWatch::Metric - // - // - AWS::CodeWhisperer::Customization - // - // - AWS::CodeWhisperer::Profile - // - // - AWS::Cognito::IdentityPool - // - // - AWS::DynamoDB::Stream - // - // - AWS::DynamoDB::Table - // - // - AWS::EC2::Snapshot - // - // - AWS::EMRWAL::Workspace - // - // - AWS::FinSpace::Environment - // - // - AWS::Glue::Table - // - // - AWS::GreengrassV2::ComponentVersion - // - // - AWS::GreengrassV2::Deployment - // - // - AWS::GuardDuty::Detector - // - // - AWS::IoT::Certificate - // - // - AWS::IoT::Thing - // - // - AWS::IoTSiteWise::Asset - // - // - AWS::IoTSiteWise::TimeSeries - // - // - AWS::IoTTwinMaker::Entity - // - // - AWS::IoTTwinMaker::Workspace - // - // - AWS::KendraRanking::ExecutionPlan - // - // - AWS::Kinesis::Stream - // - // - AWS::Kinesis::StreamConsumer - // - // - AWS::KinesisVideo::Stream - // - // - AWS::Lambda::Function - // - // - AWS::MachineLearning::MlModel - // - // - AWS::ManagedBlockchain::Network - // - // - AWS::ManagedBlockchain::Node - // - // - AWS::MedicalImaging::Datastore - // - // - AWS::NeptuneGraph::Graph - // - // - AWS::One::UKey - // - // - AWS::One::User - // - // - AWS::PaymentCryptography::Alias - // - // - AWS::PaymentCryptography::Key - // - // - AWS::PCAConnectorAD::Connector - // - // - AWS::PCAConnectorSCEP::Connector - // - // - AWS::QApps:QApp - // - // - AWS::QBusiness::Application - // - // - AWS::QBusiness::DataSource - // - // - AWS::QBusiness::Index - // - // - AWS::QBusiness::WebExperience - // - // - AWS::RDS::DBCluster - // - // - AWS::RUM::AppMonitor - // - // - AWS::S3::AccessPoint - // - // - AWS::S3::Object - // - // - AWS::S3Express::Object - // - // - AWS::S3ObjectLambda::AccessPoint - // - // - AWS::S3Outposts::Object - // - // - AWS::SageMaker::Endpoint - // - // - AWS::SageMaker::ExperimentTrialComponent - // - // - AWS::SageMaker::FeatureGroup - // - // - AWS::ServiceDiscovery::Namespace - // - // - AWS::ServiceDiscovery::Service - // - // - AWS::SCN::Instance - // - // - AWS::SNS::PlatformEndpoint - // - // - AWS::SNS::Topic - // - // - AWS::SQS::Queue - // - // - AWS::SSM::ManagedNode - // - // - AWS::SSMMessages::ControlChannel - // - // - AWS::StepFunctions::StateMachine - // - // - AWS::SWF::Domain - // - // - AWS::ThinClient::Device - // - // - AWS::ThinClient::Environment - // - // - AWS::Timestream::Database - // - // - AWS::Timestream::Table - // - // - AWS::VerifiedPermissions::PolicyStore - // - // - AWS::XRay::Trace + // For a list of available resource types for data events, see [Data events]in the CloudTrail + // User Guide. // // You can have only one resources.type field per selector. To log events on more // than one resource type, add another selector. @@ -318,11 +208,19 @@ type AdvancedFieldSelector struct { // You can't use the resources.ARN field to filter resource types that do not have // ARNs. // + // - userIdentity.arn - This is an optional field available only for event data + // stores, which is used to filter management and data events on the userIdentity + // ARN. You can use any operator with userIdentity.arn . For more information on + // the userIdentity element, see [CloudTrail userIdentity element]in the CloudTrail User Guide. + // // - vpcEndpointId - This field is only used to filter CloudTrail network activity // events and is optional. This field identifies the VPC endpoint that the request // passed through. You can use any operator with vpcEndpointId . // + // [CloudTrail record contents]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html#ct-event-type + // [Data events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events // [Filtering data events by resources.ARN]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/filtering-data-events.html#filtering-data-events-resourcearn + // [CloudTrail userIdentity element]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html // // This member is required. Field *string @@ -439,9 +337,9 @@ type DataResource struct { // - AWS::S3::Object // // Additional resource types are available through advanced event selectors. For - // more information about these additional resource types, see [AdvancedFieldSelector]. + // more information, see [AdvancedEventSelector]. // - // [AdvancedFieldSelector]: https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html + // [AdvancedEventSelector]: https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedEventSelector.html Type *string // An array of Amazon Resource Name (ARN) strings or partial ARN strings for the diff --git a/service/cloudtrail/validators.go b/service/cloudtrail/validators.go index b680932e78c..e65609aa959 100644 --- a/service/cloudtrail/validators.go +++ b/service/cloudtrail/validators.go @@ -250,6 +250,26 @@ func (m *validateOpEnableFederation) HandleInitialize(ctx context.Context, in mi return next.HandleInitialize(ctx, in) } +type validateOpGenerateQuery struct { +} + +func (*validateOpGenerateQuery) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGenerateQuery) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GenerateQueryInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGenerateQueryInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetChannel struct { } @@ -858,6 +878,10 @@ func addOpEnableFederationValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpEnableFederation{}, middleware.After) } +func addOpGenerateQueryValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGenerateQuery{}, middleware.After) +} + func addOpGetChannelValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetChannel{}, middleware.After) } @@ -1403,6 +1427,24 @@ func validateOpEnableFederationInput(v *EnableFederationInput) error { } } +func validateOpGenerateQueryInput(v *GenerateQueryInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GenerateQueryInput"} + if v.EventDataStores == nil { + invalidParams.Add(smithy.NewErrParamRequired("EventDataStores")) + } + if v.Prompt == nil { + invalidParams.Add(smithy.NewErrParamRequired("Prompt")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetChannelInput(v *GetChannelInput) error { if v == nil { return nil diff --git a/service/dynamodb/api_op_CreateTable.go b/service/dynamodb/api_op_CreateTable.go index 3b469642069..fa592994d73 100644 --- a/service/dynamodb/api_op_CreateTable.go +++ b/service/dynamodb/api_op_CreateTable.go @@ -246,6 +246,10 @@ type CreateTableInput struct { // [Tagging for DynamoDB]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html Tags []types.Tag + // Represents the warm throughput (in read units per second and write units per + // second) for creating a table. + WarmThroughput *types.WarmThroughput + noSmithyDocumentSerde } diff --git a/service/dynamodb/api_op_UpdateTable.go b/service/dynamodb/api_op_UpdateTable.go index 39c9189bfa4..feed31998b9 100644 --- a/service/dynamodb/api_op_UpdateTable.go +++ b/service/dynamodb/api_op_UpdateTable.go @@ -126,6 +126,10 @@ type UpdateTableInput struct { // STANDARD_INFREQUENT_ACCESS . TableClass types.TableClass + // Represents the warm throughput (in read units per second and write units per + // second) for updating a table. + WarmThroughput *types.WarmThroughput + noSmithyDocumentSerde } diff --git a/service/dynamodb/deserializers.go b/service/dynamodb/deserializers.go index 78f8e9733b0..ee0687204eb 100644 --- a/service/dynamodb/deserializers.go +++ b/service/dynamodb/deserializers.go @@ -10881,6 +10881,11 @@ func awsAwsjson10_deserializeDocumentGlobalSecondaryIndex(v **types.GlobalSecond return err } + case "WarmThroughput": + if err := awsAwsjson10_deserializeDocumentWarmThroughput(&sv.WarmThroughput, value); err != nil { + return err + } + default: _, _ = key, value @@ -10994,6 +10999,11 @@ func awsAwsjson10_deserializeDocumentGlobalSecondaryIndexDescription(v **types.G return err } + case "WarmThroughput": + if err := awsAwsjson10_deserializeDocumentGlobalSecondaryIndexWarmThroughputDescription(&sv.WarmThroughput, value); err != nil { + return err + } + default: _, _ = key, value @@ -11165,6 +11175,72 @@ func awsAwsjson10_deserializeDocumentGlobalSecondaryIndexList(v *[]types.GlobalS return nil } +func awsAwsjson10_deserializeDocumentGlobalSecondaryIndexWarmThroughputDescription(v **types.GlobalSecondaryIndexWarmThroughputDescription, 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.GlobalSecondaryIndexWarmThroughputDescription + if *v == nil { + sv = &types.GlobalSecondaryIndexWarmThroughputDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ReadUnitsPerSecond": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected PositiveLongObject to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ReadUnitsPerSecond = ptr.Int64(i64) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IndexStatus to be of type string, got %T instead", value) + } + sv.Status = types.IndexStatus(jtv) + } + + case "WriteUnitsPerSecond": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected PositiveLongObject to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.WriteUnitsPerSecond = ptr.Int64(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson10_deserializeDocumentGlobalTable(v **types.GlobalTable, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14165,6 +14241,11 @@ func awsAwsjson10_deserializeDocumentReplicaDescription(v **types.ReplicaDescrip return err } + case "WarmThroughput": + if err := awsAwsjson10_deserializeDocumentTableWarmThroughputDescription(&sv.WarmThroughput, value); err != nil { + return err + } + default: _, _ = key, value @@ -14342,6 +14423,11 @@ func awsAwsjson10_deserializeDocumentReplicaGlobalSecondaryIndexDescription(v ** return err } + case "WarmThroughput": + if err := awsAwsjson10_deserializeDocumentGlobalSecondaryIndexWarmThroughputDescription(&sv.WarmThroughput, value); err != nil { + return err + } + default: _, _ = key, value @@ -15826,6 +15912,11 @@ func awsAwsjson10_deserializeDocumentTableDescription(v **types.TableDescription sv.TableStatus = types.TableStatus(jtv) } + case "WarmThroughput": + if err := awsAwsjson10_deserializeDocumentTableWarmThroughputDescription(&sv.WarmThroughput, value); err != nil { + return err + } + default: _, _ = key, value @@ -15951,6 +16042,72 @@ func awsAwsjson10_deserializeDocumentTableNotFoundException(v **types.TableNotFo return nil } +func awsAwsjson10_deserializeDocumentTableWarmThroughputDescription(v **types.TableWarmThroughputDescription, 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.TableWarmThroughputDescription + if *v == nil { + sv = &types.TableWarmThroughputDescription{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ReadUnitsPerSecond": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected PositiveLongObject to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ReadUnitsPerSecond = ptr.Int64(i64) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TableStatus to be of type string, got %T instead", value) + } + sv.Status = types.TableStatus(jtv) + } + + case "WriteUnitsPerSecond": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected PositiveLongObject to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.WriteUnitsPerSecond = ptr.Int64(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson10_deserializeDocumentTag(v **types.Tag, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -16297,6 +16454,63 @@ func awsAwsjson10_deserializeDocumentUpdateKinesisStreamingConfiguration(v **typ return nil } +func awsAwsjson10_deserializeDocumentWarmThroughput(v **types.WarmThroughput, 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.WarmThroughput + if *v == nil { + sv = &types.WarmThroughput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ReadUnitsPerSecond": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected LongObject to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ReadUnitsPerSecond = ptr.Int64(i64) + } + + case "WriteUnitsPerSecond": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected LongObject to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.WriteUnitsPerSecond = ptr.Int64(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson10_deserializeDocumentWriteRequest(v **types.WriteRequest, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/dynamodb/serializers.go b/service/dynamodb/serializers.go index 4170a614cf4..56379c54a94 100644 --- a/service/dynamodb/serializers.go +++ b/service/dynamodb/serializers.go @@ -3911,6 +3911,13 @@ func awsAwsjson10_serializeDocumentCreateGlobalSecondaryIndexAction(v *types.Cre } } + if v.WarmThroughput != nil { + ok := object.Key("WarmThroughput") + if err := awsAwsjson10_serializeDocumentWarmThroughput(v.WarmThroughput, ok); err != nil { + return err + } + } + return nil } @@ -4258,6 +4265,13 @@ func awsAwsjson10_serializeDocumentGlobalSecondaryIndex(v *types.GlobalSecondary } } + if v.WarmThroughput != nil { + ok := object.Key("WarmThroughput") + if err := awsAwsjson10_serializeDocumentWarmThroughput(v.WarmThroughput, ok); err != nil { + return err + } + } + return nil } @@ -5486,6 +5500,13 @@ func awsAwsjson10_serializeDocumentUpdateGlobalSecondaryIndexAction(v *types.Upd } } + if v.WarmThroughput != nil { + ok := object.Key("WarmThroughput") + if err := awsAwsjson10_serializeDocumentWarmThroughput(v.WarmThroughput, ok); err != nil { + return err + } + } + return nil } @@ -5544,6 +5565,23 @@ func awsAwsjson10_serializeDocumentUpdateReplicationGroupMemberAction(v *types.U return nil } +func awsAwsjson10_serializeDocumentWarmThroughput(v *types.WarmThroughput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ReadUnitsPerSecond != nil { + ok := object.Key("ReadUnitsPerSecond") + ok.Long(*v.ReadUnitsPerSecond) + } + + if v.WriteUnitsPerSecond != nil { + ok := object.Key("WriteUnitsPerSecond") + ok.Long(*v.WriteUnitsPerSecond) + } + + return nil +} + func awsAwsjson10_serializeDocumentWriteRequest(v *types.WriteRequest, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -5768,6 +5806,13 @@ func awsAwsjson10_serializeOpDocumentCreateTableInput(v *CreateTableInput, value } } + if v.WarmThroughput != nil { + ok := object.Key("WarmThroughput") + if err := awsAwsjson10_serializeDocumentWarmThroughput(v.WarmThroughput, ok); err != nil { + return err + } + } + return nil } @@ -7270,6 +7315,13 @@ func awsAwsjson10_serializeOpDocumentUpdateTableInput(v *UpdateTableInput, value ok.String(*v.TableName) } + if v.WarmThroughput != nil { + ok := object.Key("WarmThroughput") + if err := awsAwsjson10_serializeDocumentWarmThroughput(v.WarmThroughput, ok); err != nil { + return err + } + } + return nil } diff --git a/service/dynamodb/types/types.go b/service/dynamodb/types/types.go index 31f30fcee3c..194a069b85e 100644 --- a/service/dynamodb/types/types.go +++ b/service/dynamodb/types/types.go @@ -968,6 +968,10 @@ type CreateGlobalSecondaryIndexAction struct { // [Service, Account, and Table Quotas]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html ProvisionedThroughput *ProvisionedThroughput + // Represents the warm throughput value (in read units per second and write units + // per second) when creating a secondary index. + WarmThroughput *WarmThroughput + noSmithyDocumentSerde } @@ -1528,6 +1532,11 @@ type GlobalSecondaryIndex struct { // [Service, Account, and Table Quotas]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html ProvisionedThroughput *ProvisionedThroughput + // Represents the warm throughput value (in read units per second and write units + // per second) for the specified secondary index. If you use this parameter, you + // must specify ReadUnitsPerSecond , WriteUnitsPerSecond , or both. + WarmThroughput *WarmThroughput + noSmithyDocumentSerde } @@ -1627,6 +1636,10 @@ type GlobalSecondaryIndexDescription struct { // [Service, Account, and Table Quotas]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html ProvisionedThroughput *ProvisionedThroughputDescription + // Represents the warm throughput value (in read units per second and write units + // per second) for the specified secondary index. + WarmThroughput *GlobalSecondaryIndexWarmThroughputDescription + noSmithyDocumentSerde } @@ -1705,6 +1718,24 @@ type GlobalSecondaryIndexUpdate struct { noSmithyDocumentSerde } +// The description of the warm throughput value on a global secondary index. +type GlobalSecondaryIndexWarmThroughputDescription struct { + + // Represents warm throughput read units per second value for a global secondary + // index. + ReadUnitsPerSecond *int64 + + // Represents the warm throughput status being created or updated on a global + // secondary index. The status can only be UPDATING or ACTIVE . + Status IndexStatus + + // Represents warm throughput write units per second value for a global secondary + // index. + WriteUnitsPerSecond *int64 + + noSmithyDocumentSerde +} + // Represents the properties of a global table. type GlobalTable struct { @@ -2550,6 +2581,9 @@ type ReplicaDescription struct { // Contains details of the table class. ReplicaTableClassSummary *TableClassSummary + // Represents the warm throughput value for this replica. + WarmThroughput *TableWarmThroughputDescription + noSmithyDocumentSerde } @@ -2628,6 +2662,9 @@ type ReplicaGlobalSecondaryIndexDescription struct { // If not described, uses the source table GSI's read capacity settings. ProvisionedThroughputOverride *ProvisionedThroughputOverride + // Represents the warm throughput of the global secondary index for this replica. + WarmThroughput *GlobalSecondaryIndexWarmThroughputDescription + noSmithyDocumentSerde } @@ -3360,6 +3397,25 @@ type TableDescription struct { // information. TableStatus TableStatus + // Describes the warm throughput value of the base table. + WarmThroughput *TableWarmThroughputDescription + + noSmithyDocumentSerde +} + +// Represents the warm throughput value (in read units per second and write units +// per second) of the base table. +type TableWarmThroughputDescription struct { + + // Represents the base table's warm throughput value in read units per second. + ReadUnitsPerSecond *int64 + + // Represents warm throughput value of the base table.. + Status TableStatus + + // Represents the base table's warm throughput value in write units per second. + WriteUnitsPerSecond *int64 + noSmithyDocumentSerde } @@ -3516,6 +3572,10 @@ type UpdateGlobalSecondaryIndexAction struct { // [Service, Account, and Table Quotas]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html ProvisionedThroughput *ProvisionedThroughput + // Represents the warm throughput value of the new provisioned throughput settings + // to be applied to a global secondary index. + WarmThroughput *WarmThroughput + noSmithyDocumentSerde } @@ -3559,6 +3619,23 @@ type UpdateReplicationGroupMemberAction struct { noSmithyDocumentSerde } +// Provides visibility into the number of read and write operations your table or +// secondary index can instantaneously support. The settings can be modified using +// the UpdateTable operation to meet the throughput requirements of an upcoming +// peak event. +type WarmThroughput struct { + + // Represents the number of read operations your base table can instantaneously + // support. + ReadUnitsPerSecond *int64 + + // Represents the number of write operations your base table can instantaneously + // support. + WriteUnitsPerSecond *int64 + + noSmithyDocumentSerde +} + // Represents an operation to perform - either DeleteItem or PutItem . You can only // request one of these operations, not both, in a single WriteRequest . If you do // need to perform both of these operations, you need to provide two separate diff --git a/service/ec2/api_op_CreateCapacityReservationBySplitting.go b/service/ec2/api_op_CreateCapacityReservationBySplitting.go index a671b60e06b..077fb661c04 100644 --- a/service/ec2/api_op_CreateCapacityReservationBySplitting.go +++ b/service/ec2/api_op_CreateCapacityReservationBySplitting.go @@ -11,12 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Create a new Capacity Reservation by splitting the available capacity of the +// Create a new Capacity Reservation by splitting the capacity of the source // -// source Capacity Reservation. The new Capacity Reservation will have the same -// attributes as the source Capacity Reservation except for tags. The source -// Capacity Reservation must be active and owned by your Amazon Web Services -// account. +// Capacity Reservation. The new Capacity Reservation will have the same attributes +// as the source Capacity Reservation except for tags. The source Capacity +// Reservation must be active and owned by your Amazon Web Services account. func (c *Client) CreateCapacityReservationBySplitting(ctx context.Context, params *CreateCapacityReservationBySplittingInput, optFns ...func(*Options)) (*CreateCapacityReservationBySplittingOutput, error) { if params == nil { params = &CreateCapacityReservationBySplittingInput{} @@ -39,8 +38,7 @@ type CreateCapacityReservationBySplittingInput struct { // This member is required. InstanceCount *int32 - // The ID of the Capacity Reservation from which you want to split the available - // capacity. + // The ID of the Capacity Reservation from which you want to split the capacity. // // This member is required. SourceCapacityReservationId *string diff --git a/service/ec2/api_op_CreateKeyPair.go b/service/ec2/api_op_CreateKeyPair.go index 0b795fc1011..f6450c3ed29 100644 --- a/service/ec2/api_op_CreateKeyPair.go +++ b/service/ec2/api_op_CreateKeyPair.go @@ -12,11 +12,11 @@ import ( ) // Creates an ED25519 or 2048-bit RSA key pair with the specified name and in the -// specified PEM or PPK format. Amazon EC2 stores the public key and displays the -// private key for you to save to a file. The private key is returned as an -// unencrypted PEM encoded PKCS#1 private key or an unencrypted PPK formatted -// private key for use with PuTTY. If a key with the specified name already exists, -// Amazon EC2 returns an error. +// specified format. Amazon EC2 stores the public key and displays the private key +// for you to save to a file. The private key is returned as an unencrypted PEM +// encoded PKCS#1 private key or an unencrypted PPK formatted private key for use +// with PuTTY. If a key with the specified name already exists, Amazon EC2 returns +// an error. // // The key pair returned to you is available only in the Amazon Web Services // Region in which you create it. If you prefer, you can create your own key pair @@ -24,7 +24,7 @@ import ( // // You can have up to 5,000 key pairs per Amazon Web Services Region. // -// For more information, see [Amazon EC2 key pairs] in the Amazon Elastic Compute Cloud User Guide. +// For more information, see [Amazon EC2 key pairs] in the Amazon EC2 User Guide. // // [Amazon EC2 key pairs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html func (c *Client) CreateKeyPair(ctx context.Context, params *CreateKeyPairInput, optFns ...func(*Options)) (*CreateKeyPairOutput, error) { diff --git a/service/ec2/api_op_CreateSecurityGroup.go b/service/ec2/api_op_CreateSecurityGroup.go index 8c6a5903bbe..f34ef98e3e7 100644 --- a/service/ec2/api_op_CreateSecurityGroup.go +++ b/service/ec2/api_op_CreateSecurityGroup.go @@ -14,8 +14,8 @@ import ( // Creates a security group. // // A security group acts as a virtual firewall for your instance to control -// inbound and outbound traffic. For more information, see [Amazon EC2 security groups]in the Amazon Elastic -// Compute Cloud User Guide and [Security groups for your VPC]in the Amazon Virtual Private Cloud User Guide. +// inbound and outbound traffic. For more information, see [Amazon EC2 security groups]in the Amazon EC2 User +// Guide and [Security groups for your VPC]in the Amazon VPC User Guide. // // When you create a security group, you specify a friendly name of your choice. // You can't have two security groups for the same VPC with the same name. diff --git a/service/ec2/api_op_DescribeImages.go b/service/ec2/api_op_DescribeImages.go index 3a7e9390f05..91a69fb8073 100644 --- a/service/ec2/api_op_DescribeImages.go +++ b/service/ec2/api_op_DescribeImages.go @@ -120,10 +120,10 @@ type DescribeImagesInput struct { // // - name - The name of the AMI (provided during image creation). // - // - owner-alias - The owner alias ( amazon | aws-marketplace ). The valid - // aliases are defined in an Amazon-maintained list. This is not the Amazon Web - // Services account alias that can be set using the IAM console. We recommend that - // you use the Owner request parameter instead of this filter. + // - owner-alias - The owner alias ( amazon | aws-backup-vault | aws-marketplace + // ). The valid aliases are defined in an Amazon-maintained list. This is not the + // Amazon Web Services account alias that can be set using the IAM console. We + // recommend that you use the Owner request parameter instead of this filter. // // - owner-id - The Amazon Web Services account ID of the owner. We recommend // that you use the Owner request parameter instead of this filter. @@ -198,9 +198,9 @@ type DescribeImagesInput struct { 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 - // which you have launch permissions, regardless of ownership. + // combination of Amazon Web Services account IDs, self , amazon , aws-backup-vault + // , and aws-marketplace . If you omit this parameter, the results include all + // images for which you have launch permissions, regardless of ownership. Owners []string noSmithyDocumentSerde diff --git a/service/ec2/api_op_DescribeKeyPairs.go b/service/ec2/api_op_DescribeKeyPairs.go index 4e5370016cb..37b19eef080 100644 --- a/service/ec2/api_op_DescribeKeyPairs.go +++ b/service/ec2/api_op_DescribeKeyPairs.go @@ -19,8 +19,7 @@ import ( // Describes the specified key pairs or all of your key pairs. // -// For more information about key pairs, see [Amazon EC2 key pairs] in the Amazon Elastic Compute Cloud -// User Guide. +// For more information about key pairs, see [Amazon EC2 key pairs] in the Amazon EC2 User Guide. // // [Amazon EC2 key pairs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html func (c *Client) DescribeKeyPairs(ctx context.Context, params *DescribeKeyPairsInput, optFns ...func(*Options)) (*DescribeKeyPairsOutput, error) { diff --git a/service/ec2/api_op_ImportKeyPair.go b/service/ec2/api_op_ImportKeyPair.go index 8a3bfd78ea0..36b15cb491a 100644 --- a/service/ec2/api_op_ImportKeyPair.go +++ b/service/ec2/api_op_ImportKeyPair.go @@ -11,17 +11,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Imports the public key from an RSA or ED25519 key pair that you created with a -// third-party tool. Compare this with CreateKeyPair, in which Amazon Web Services creates the -// key pair and gives the keys to you (Amazon Web Services keeps a copy of the -// public key). With ImportKeyPair, you create the key pair and give Amazon Web -// Services just the public key. The private key is never transferred between you -// and Amazon Web Services. +// Imports the public key from an RSA or ED25519 key pair that you created using a +// third-party tool. You give Amazon Web Services only the public key. The private +// key is never transferred between you and Amazon Web Services. // -// For more information about key pairs, see [Amazon EC2 key pairs] in the Amazon Elastic Compute Cloud -// User Guide. +// For more information about the requirements for importing a key pair, see [Create a key pair and import the public key to Amazon EC2] in +// the Amazon EC2 User Guide. // -// [Amazon EC2 key pairs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html +// [Create a key pair and import the public key to Amazon EC2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws func (c *Client) ImportKeyPair(ctx context.Context, params *ImportKeyPairInput, optFns ...func(*Options)) (*ImportKeyPairOutput, error) { if params == nil { params = &ImportKeyPairInput{} @@ -44,8 +41,7 @@ type ImportKeyPairInput struct { // This member is required. KeyName *string - // The public key. For API calls, the text must be base64-encoded. For command - // line tools, base64 encoding is performed for you. + // The public key. // // This member is required. PublicKeyMaterial []byte diff --git a/service/ec2/api_op_RevokeClientVpnIngress.go b/service/ec2/api_op_RevokeClientVpnIngress.go index a116e68ea35..24084e3fac6 100644 --- a/service/ec2/api_op_RevokeClientVpnIngress.go +++ b/service/ec2/api_op_RevokeClientVpnIngress.go @@ -50,7 +50,10 @@ type RevokeClientVpnIngressInput struct { // UnauthorizedOperation . DryRun *bool - // Indicates whether access should be revoked for all clients. + // Indicates whether access should be revoked for all groups for a single + // TargetNetworkCidr that earlier authorized ingress for all groups using + // AuthorizeAllGroups . This does not impact other authorization rules that allowed + // ingress to the same TargetNetworkCidr with a specific AccessGroupId . RevokeAllGroups *bool noSmithyDocumentSerde diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index 13a4e364ab7..7d24ae7b260 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -84816,6 +84816,32 @@ func awsEc2query_deserializeDocumentImage(v **types.Image, decoder smithyxml.Nod sv.RootDeviceType = types.DeviceType(xtv) } + case strings.EqualFold("sourceImageId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.SourceImageId = ptr.String(xtv) + } + + case strings.EqualFold("sourceImageRegion", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.SourceImageRegion = ptr.String(xtv) + } + case strings.EqualFold("sourceInstanceId", t.Name.Local): val, err := decoder.Value() if err != nil { diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index d4169cc7168..57109edaafe 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -5788,7 +5788,7 @@ type Image struct { // The location of the AMI. ImageLocation *string - // The owner alias ( amazon | aws-marketplace ). + // The owner alias ( amazon | aws-backup-vault | aws-marketplace ). ImageOwnerAlias *string // The type of image. @@ -5850,6 +5850,25 @@ type Image struct { // or an instance store volume. RootDeviceType DeviceType + // The ID of the source AMI from which the AMI was created. + // + // The ID only appears if the AMI was created using CreateImage, CopyImage, or CreateRestoreImageTask. The ID does not + // appear if the AMI was created using any other API. For some older AMIs, the ID + // might not be available. For more information, see [Identify the source AMI used to create a new AMI]in the Amazon EC2 User Guide. + // + // [Identify the source AMI used to create a new AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/identify-source-ami-used-to-create-new-ami.html + SourceImageId *string + + // The Region of the source AMI. + // + // The Region only appears if the AMI was created using CreateImage, CopyImage, or CreateRestoreImageTask. The Region does + // not appear if the AMI was created using any other API. For some older AMIs, the + // Region might not be available. For more information, see [Identify the source AMI used to create a new AMI]in the Amazon EC2 User + // Guide. + // + // [Identify the source AMI used to create a new AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/identify-source-ami-used-to-create-new-ami.html + SourceImageRegion *string + // The ID of the instance that the AMI was created from if the AMI was created // using [CreateImage]. This field only appears if the AMI was created using CreateImage. // @@ -5937,7 +5956,7 @@ type ImageMetadata struct { // The alias of the AMI owner. // - // Valid values: amazon | aws-marketplace + // Valid values: amazon | aws-backup-vault | aws-marketplace ImageOwnerAlias *string // Indicates whether the AMI has public launch permissions. A value of true means @@ -6333,7 +6352,9 @@ type Instance struct { // pair. KeyName *string - // The time the instance was launched. + // The time that the instance was last launched. To determine the time that + // instance was first launched, see the attachment time for the primary network + // interface. LaunchTime *time.Time // The license configurations for the instance. diff --git a/service/glue/internal/endpoints/endpoints.go b/service/glue/internal/endpoints/endpoints.go index 3994887ff92..f161e7af175 100644 --- a/service/glue/internal/endpoints/endpoints.go +++ b/service/glue/internal/endpoints/endpoints.go @@ -172,6 +172,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-4", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-5", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, diff --git a/service/internetmonitor/api_op_StartQuery.go b/service/internetmonitor/api_op_StartQuery.go index e2a89170858..47a924637b5 100644 --- a/service/internetmonitor/api_op_StartQuery.go +++ b/service/internetmonitor/api_op_StartQuery.go @@ -68,7 +68,11 @@ type StartQueryInput struct { // // - OVERALL_TRAFFIC_SUGGESTIONS_DETAILS : Provides TTFB, using a 30-day weighted // average, for each top location, for a proposed Amazon Web Services location. - // Must provide a Amazon Web Services location to search. + // Must provide an Amazon Web Services location to search. + // + // - ROUTING_SUGGESTIONS : Provides the predicted average round-trip time (RTT) + // from an IP prefix toward an Amazon Web Services location for a DNS resolver. The + // RTT is calculated at one hour intervals, over a one hour period. // // For lists of the fields returned with each query type and more information // about how each type of query is performed, see [Using the Amazon CloudWatch Internet Monitor query interface]in the Amazon CloudWatch diff --git a/service/internetmonitor/types/enums.go b/service/internetmonitor/types/enums.go index e6ca3466859..34b64125ad3 100644 --- a/service/internetmonitor/types/enums.go +++ b/service/internetmonitor/types/enums.go @@ -224,6 +224,7 @@ const ( QueryTypeTopLocationDetails QueryType = "TOP_LOCATION_DETAILS" QueryTypeOverallTrafficSuggestions QueryType = "OVERALL_TRAFFIC_SUGGESTIONS" QueryTypeOverallTrafficSuggestionsDetails QueryType = "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS" + QueryTypeRoutingSuggestions QueryType = "ROUTING_SUGGESTIONS" ) // Values returns all known values for QueryType. Note that this can be expanded @@ -237,6 +238,7 @@ func (QueryType) Values() []QueryType { "TOP_LOCATION_DETAILS", "OVERALL_TRAFFIC_SUGGESTIONS", "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS", + "ROUTING_SUGGESTIONS", } } diff --git a/service/iotfleetwise/internal/endpoints/endpoints.go b/service/iotfleetwise/internal/endpoints/endpoints.go index e5ba808cd36..74e4daff08a 100644 --- a/service/iotfleetwise/internal/endpoints/endpoints.go +++ b/service/iotfleetwise/internal/endpoints/endpoints.go @@ -139,6 +139,9 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.Aws, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "ap-south-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, diff --git a/service/mediaconvert/deserializers.go b/service/mediaconvert/deserializers.go index c06af0c8d0b..0c85f25d9ad 100644 --- a/service/mediaconvert/deserializers.go +++ b/service/mediaconvert/deserializers.go @@ -17059,7 +17059,7 @@ func awsRestjson1_deserializeDocumentKantarWatermarkSettings(v **types.KantarWat if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected __stringMin1Max512PatternAZAZ09 to be of type string, got %T instead", value) + return fmt.Errorf("expected __stringMin1Max2048PatternArnAwsAwsUsGovAwsCnSecretsmanagerUsGovApCaCnEuSaCentralNorthSouthEastWestDD12SecretAZAZ09 to be of type string, got %T instead", value) } sv.CredentialsSecretName = ptr.String(jtv) } diff --git a/service/mediaconvert/types/types.go b/service/mediaconvert/types/types.go index 83c44f477a0..83b63a36346 100644 --- a/service/mediaconvert/types/types.go +++ b/service/mediaconvert/types/types.go @@ -5275,8 +5275,8 @@ type JobSettings struct { // watermarks in your output audio. In addition to specifying these values, you // also need to set up your cloud TIC server. These settings apply to every output // in your job. The MediaConvert implementation is currently with the following - // Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark - // Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0] + // Nielsen versions: Nielsen Watermark SDK Version 6.0.13 Nielsen NLM Watermark + // Engine Version 1.3.3 Nielsen Watermark Authenticator [SID_TIC] Version [7.0.0] NielsenNonLinearWatermark *NielsenNonLinearWatermarkSettings // Contains one group of settings for each set of outputs that share a common @@ -5427,8 +5427,8 @@ type JobTemplateSettings struct { // watermarks in your output audio. In addition to specifying these values, you // also need to set up your cloud TIC server. These settings apply to every output // in your job. The MediaConvert implementation is currently with the following - // Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark - // Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0] + // Nielsen versions: Nielsen Watermark SDK Version 6.0.13 Nielsen NLM Watermark + // Engine Version 1.3.3 Nielsen Watermark Authenticator [SID_TIC] Version [7.0.0] NielsenNonLinearWatermark *NielsenNonLinearWatermarkSettings // Contains one group of settings for each set of outputs that share a common @@ -6662,8 +6662,8 @@ type NielsenConfiguration struct { // watermarks in your output audio. In addition to specifying these values, you // also need to set up your cloud TIC server. These settings apply to every output // in your job. The MediaConvert implementation is currently with the following -// Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark -// Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0] +// Nielsen versions: Nielsen Watermark SDK Version 6.0.13 Nielsen NLM Watermark +// Engine Version 1.3.3 Nielsen Watermark Authenticator [SID_TIC] Version [7.0.0] type NielsenNonLinearWatermarkSettings struct { // Choose the type of Nielsen watermarks that you want in your outputs. When you diff --git a/service/organizations/api_op_AttachPolicy.go b/service/organizations/api_op_AttachPolicy.go index b4ed4136894..d800a4ef90c 100644 --- a/service/organizations/api_op_AttachPolicy.go +++ b/service/organizations/api_op_AttachPolicy.go @@ -16,6 +16,8 @@ import ( // // [SERVICE_CONTROL_POLICY] // +// [RESOURCE_CONTROL_POLICY] +// // [BACKUP_POLICY] // // [TAG_POLICY] @@ -33,6 +35,7 @@ import ( // [SERVICE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html // [CHATBOT_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_chatbot.html // [TAG_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html +// [RESOURCE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html func (c *Client) AttachPolicy(ctx context.Context, params *AttachPolicyInput, optFns ...func(*Options)) (*AttachPolicyOutput, error) { if params == nil { params = &AttachPolicyInput{} diff --git a/service/organizations/api_op_CreatePolicy.go b/service/organizations/api_op_CreatePolicy.go index 73cddd66624..df6bfc62097 100644 --- a/service/organizations/api_op_CreatePolicy.go +++ b/service/organizations/api_op_CreatePolicy.go @@ -71,6 +71,8 @@ type CreatePolicyInput struct { // // [SERVICE_CONTROL_POLICY] // + // [RESOURCE_CONTROL_POLICY] + // // [BACKUP_POLICY] // // [TAG_POLICY] @@ -84,6 +86,7 @@ type CreatePolicyInput struct { // [SERVICE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html // [CHATBOT_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_chatbot.html // [TAG_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html + // [RESOURCE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html // // This member is required. Type types.PolicyType diff --git a/service/organizations/api_op_DisablePolicyType.go b/service/organizations/api_op_DisablePolicyType.go index 537f003fb6d..9dfd0524e01 100644 --- a/service/organizations/api_op_DisablePolicyType.go +++ b/service/organizations/api_op_DisablePolicyType.go @@ -52,6 +52,8 @@ type DisablePolicyTypeInput struct { // // [SERVICE_CONTROL_POLICY] // + // [RESOURCE_CONTROL_POLICY] + // // [BACKUP_POLICY] // // [TAG_POLICY] @@ -65,6 +67,7 @@ type DisablePolicyTypeInput struct { // [SERVICE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html // [CHATBOT_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_chatbot.html // [TAG_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html + // [RESOURCE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html // // This member is required. PolicyType types.PolicyType diff --git a/service/organizations/api_op_EnablePolicyType.go b/service/organizations/api_op_EnablePolicyType.go index 43972172e65..9fd0338482c 100644 --- a/service/organizations/api_op_EnablePolicyType.go +++ b/service/organizations/api_op_EnablePolicyType.go @@ -48,6 +48,8 @@ type EnablePolicyTypeInput struct { // // [SERVICE_CONTROL_POLICY] // + // [RESOURCE_CONTROL_POLICY] + // // [BACKUP_POLICY] // // [TAG_POLICY] @@ -61,6 +63,7 @@ type EnablePolicyTypeInput struct { // [SERVICE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html // [CHATBOT_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_chatbot.html // [TAG_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html + // [RESOURCE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html // // This member is required. PolicyType types.PolicyType diff --git a/service/organizations/api_op_ListPolicies.go b/service/organizations/api_op_ListPolicies.go index e0d5ff986e6..2df9b4d68bd 100644 --- a/service/organizations/api_op_ListPolicies.go +++ b/service/organizations/api_op_ListPolicies.go @@ -43,6 +43,8 @@ type ListPoliciesInput struct { // // [SERVICE_CONTROL_POLICY] // + // [RESOURCE_CONTROL_POLICY] + // // [BACKUP_POLICY] // // [TAG_POLICY] @@ -56,6 +58,7 @@ type ListPoliciesInput struct { // [SERVICE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html // [CHATBOT_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_chatbot.html // [TAG_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html + // [RESOURCE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html // // This member is required. Filter types.PolicyType diff --git a/service/organizations/api_op_ListPoliciesForTarget.go b/service/organizations/api_op_ListPoliciesForTarget.go index b3fb236f490..f0986c9e4be 100644 --- a/service/organizations/api_op_ListPoliciesForTarget.go +++ b/service/organizations/api_op_ListPoliciesForTarget.go @@ -45,6 +45,8 @@ type ListPoliciesForTargetInput struct { // // [SERVICE_CONTROL_POLICY] // + // [RESOURCE_CONTROL_POLICY] + // // [BACKUP_POLICY] // // [TAG_POLICY] @@ -58,6 +60,7 @@ type ListPoliciesForTargetInput struct { // [SERVICE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html // [CHATBOT_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_chatbot.html // [TAG_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html + // [RESOURCE_CONTROL_POLICY]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html // // This member is required. Filter types.PolicyType diff --git a/service/organizations/types/enums.go b/service/organizations/types/enums.go index 748434de691..ffbe8ce18a6 100644 --- a/service/organizations/types/enums.go +++ b/service/organizations/types/enums.go @@ -440,9 +440,11 @@ const ( InvalidInputExceptionReasonTargetNotSupported InvalidInputExceptionReason = "TARGET_NOT_SUPPORTED" InvalidInputExceptionReasonInvalidEmailAddressTarget InvalidInputExceptionReason = "INVALID_EMAIL_ADDRESS_TARGET" InvalidInputExceptionReasonInvalidResourcePolicyJson InvalidInputExceptionReason = "INVALID_RESOURCE_POLICY_JSON" + InvalidInputExceptionReasonInvalidPrincipal InvalidInputExceptionReason = "INVALID_PRINCIPAL" InvalidInputExceptionReasonUnsupportedActionInResourcePolicy InvalidInputExceptionReason = "UNSUPPORTED_ACTION_IN_RESOURCE_POLICY" InvalidInputExceptionReasonUnsupportedPolicyTypeInResourcePolicy InvalidInputExceptionReason = "UNSUPPORTED_POLICY_TYPE_IN_RESOURCE_POLICY" InvalidInputExceptionReasonUnsupportedResourceInResourcePolicy InvalidInputExceptionReason = "UNSUPPORTED_RESOURCE_IN_RESOURCE_POLICY" + InvalidInputExceptionReasonNonDetachablePolicy InvalidInputExceptionReason = "NON_DETACHABLE_POLICY" ) // Values returns all known values for InvalidInputExceptionReason. Note that this @@ -476,9 +478,11 @@ func (InvalidInputExceptionReason) Values() []InvalidInputExceptionReason { "TARGET_NOT_SUPPORTED", "INVALID_EMAIL_ADDRESS_TARGET", "INVALID_RESOURCE_POLICY_JSON", + "INVALID_PRINCIPAL", "UNSUPPORTED_ACTION_IN_RESOURCE_POLICY", "UNSUPPORTED_POLICY_TYPE_IN_RESOURCE_POLICY", "UNSUPPORTED_RESOURCE_IN_RESOURCE_POLICY", + "NON_DETACHABLE_POLICY", } } @@ -525,6 +529,7 @@ type PolicyType string // Enum values for PolicyType const ( PolicyTypeServiceControlPolicy PolicyType = "SERVICE_CONTROL_POLICY" + PolicyTypeResourceControlPolicy PolicyType = "RESOURCE_CONTROL_POLICY" PolicyTypeTagPolicy PolicyType = "TAG_POLICY" PolicyTypeBackupPolicy PolicyType = "BACKUP_POLICY" PolicyTypeAiservicesOptOutPolicy PolicyType = "AISERVICES_OPT_OUT_POLICY" @@ -538,6 +543,7 @@ const ( func (PolicyType) Values() []PolicyType { return []PolicyType{ "SERVICE_CONTROL_POLICY", + "RESOURCE_CONTROL_POLICY", "TAG_POLICY", "BACKUP_POLICY", "AISERVICES_OPT_OUT_POLICY", diff --git a/service/organizations/types/errors.go b/service/organizations/types/errors.go index 794defa2dcd..c1da2f31c2f 100644 --- a/service/organizations/types/errors.go +++ b/service/organizations/types/errors.go @@ -988,6 +988,8 @@ func (e *InvalidHandshakeTransitionException) ErrorFault() smithy.ErrorFault { // - INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't // match the required pattern. // +// - INVALID_PRINCIPAL: You specified an invalid principal element in the policy. +// // - INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name // can't begin with the reserved prefix AWSServiceRoleFor . // @@ -1019,6 +1021,9 @@ func (e *InvalidHandshakeTransitionException) ErrorFault() smithy.ErrorFault { // - MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only // between entities in the same root. // +// - NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed +// Policy. +// // - TARGET_NOT_SUPPORTED: You can't perform the specified operation on that // target entity. // diff --git a/service/vpclattice/internal/endpoints/endpoints.go b/service/vpclattice/internal/endpoints/endpoints.go index 4a2bf45d300..2b0c4d75325 100644 --- a/service/vpclattice/internal/endpoints/endpoints.go +++ b/service/vpclattice/internal/endpoints/endpoints.go @@ -163,6 +163,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{}, From 27326538a1c06974dc3e3d819888ef4bf1ef4820 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Wed, 13 Nov 2024 19:27:51 +0000 Subject: [PATCH 16/20] Release 2024-11-13 --- .../09bc016ba3c64c46be73703eef9fd91b.json | 8 ------ .../41575353444b40ffbf474f4155544f00.json | 8 ------ .../68c9980b3bda4b63bbf292ac26d577b2.json | 8 ------ .../7bf5c87c9b5f4ac991fa047a0efe64fd.json | 8 ------ .../866ea2c0da8749a0876df26d4b730a01.json | 8 ------ .../9568ac14ebfa482b9a3f3863500e5504.json | 8 ------ .../9d7ed864744b4db398563a2652f6479c.json | 8 ------ .../a3bfcbba77654c979f00be111c8ddde2.json | 8 ------ .../ca0253aece414f608f490ff7d789afe3.json | 8 ------ .../d3b411031f7d4f618f2895212ecb66d3.json | 8 ------ .../de2569e95acf4fc88d0e091dd30a43a1.json | 8 ------ CHANGELOG.md | 28 +++++++++++++++++++ example/service/dynamodb/createTable/go.mod | 2 +- example/service/dynamodb/scanItems/go.mod | 4 +-- feature/dynamodb/attributevalue/CHANGELOG.md | 4 +++ feature/dynamodb/attributevalue/go.mod | 2 +- .../attributevalue/go_module_metadata.go | 2 +- feature/dynamodb/expression/CHANGELOG.md | 4 +++ feature/dynamodb/expression/go.mod | 4 +-- .../dynamodb/expression/go_module_metadata.go | 2 +- .../attributevalue/CHANGELOG.md | 4 +++ feature/dynamodbstreams/attributevalue/go.mod | 2 +- .../attributevalue/go_module_metadata.go | 2 +- service/accessanalyzer/CHANGELOG.md | 4 +++ service/accessanalyzer/go_module_metadata.go | 2 +- service/applicationsignals/CHANGELOG.md | 4 +++ .../applicationsignals/go_module_metadata.go | 2 +- service/b2bi/CHANGELOG.md | 4 +++ service/b2bi/go_module_metadata.go | 2 +- service/billing/CHANGELOG.md | 5 ++++ service/billing/go_module_metadata.go | 2 +- service/cloudtrail/CHANGELOG.md | 4 +++ service/cloudtrail/go_module_metadata.go | 2 +- service/dynamodb/CHANGELOG.md | 4 +++ service/dynamodb/go_module_metadata.go | 2 +- service/ec2/CHANGELOG.md | 4 +++ service/ec2/go_module_metadata.go | 2 +- service/glue/CHANGELOG.md | 4 +++ service/glue/go_module_metadata.go | 2 +- service/internal/benchmark/go.mod | 2 +- service/internal/integrationtest/go.mod | 8 +++--- service/internetmonitor/CHANGELOG.md | 4 +++ service/internetmonitor/go_module_metadata.go | 2 +- service/iotfleetwise/CHANGELOG.md | 4 +++ service/iotfleetwise/go_module_metadata.go | 2 +- service/mediaconvert/CHANGELOG.md | 4 +++ service/mediaconvert/go_module_metadata.go | 2 +- service/organizations/CHANGELOG.md | 4 +++ service/organizations/go_module_metadata.go | 2 +- service/vpclattice/CHANGELOG.md | 4 +++ service/vpclattice/go_module_metadata.go | 2 +- 51 files changed, 121 insertions(+), 116 deletions(-) delete mode 100644 .changelog/09bc016ba3c64c46be73703eef9fd91b.json delete mode 100644 .changelog/41575353444b40ffbf474f4155544f00.json delete mode 100644 .changelog/68c9980b3bda4b63bbf292ac26d577b2.json delete mode 100644 .changelog/7bf5c87c9b5f4ac991fa047a0efe64fd.json delete mode 100644 .changelog/866ea2c0da8749a0876df26d4b730a01.json delete mode 100644 .changelog/9568ac14ebfa482b9a3f3863500e5504.json delete mode 100644 .changelog/9d7ed864744b4db398563a2652f6479c.json delete mode 100644 .changelog/a3bfcbba77654c979f00be111c8ddde2.json delete mode 100644 .changelog/ca0253aece414f608f490ff7d789afe3.json delete mode 100644 .changelog/d3b411031f7d4f618f2895212ecb66d3.json delete mode 100644 .changelog/de2569e95acf4fc88d0e091dd30a43a1.json create mode 100644 service/billing/CHANGELOG.md diff --git a/.changelog/09bc016ba3c64c46be73703eef9fd91b.json b/.changelog/09bc016ba3c64c46be73703eef9fd91b.json deleted file mode 100644 index 894aafb9a81..00000000000 --- a/.changelog/09bc016ba3c64c46be73703eef9fd91b.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "09bc016b-a3c6-4c46-be73-703eef9fd91b", - "type": "feature", - "description": "Amazon CloudWatch Application Signals now supports creating Service Level Objectives with burn rates. Users can now create or update SLOs with burn rate configurations to meet their specific business requirements.", - "modules": [ - "service/applicationsignals" - ] -} \ No newline at end of file diff --git a/.changelog/41575353444b40ffbf474f4155544f00.json b/.changelog/41575353444b40ffbf474f4155544f00.json deleted file mode 100644 index 678740c5dbc..00000000000 --- a/.changelog/41575353444b40ffbf474f4155544f00.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "41575353-444b-40ff-bf47-4f4155544f00", - "type": "release", - "description": "New AWS service client module", - "modules": [ - "service/billing" - ] -} \ No newline at end of file diff --git a/.changelog/68c9980b3bda4b63bbf292ac26d577b2.json b/.changelog/68c9980b3bda4b63bbf292ac26d577b2.json deleted file mode 100644 index 2379a221052..00000000000 --- a/.changelog/68c9980b3bda4b63bbf292ac26d577b2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "68c9980b-3bda-4b63-bbf2-92ac26d577b2", - "type": "feature", - "description": "This release adds support for policy validation and external access findings for resource control policies (RCP). IAM Access Analyzer helps you author functional and secure RCPs and awareness that a RCP may restrict external access. Updated service API, documentation, and paginators.", - "modules": [ - "service/accessanalyzer" - ] -} \ No newline at end of file diff --git a/.changelog/7bf5c87c9b5f4ac991fa047a0efe64fd.json b/.changelog/7bf5c87c9b5f4ac991fa047a0efe64fd.json deleted file mode 100644 index 1ed2ad71b38..00000000000 --- a/.changelog/7bf5c87c9b5f4ac991fa047a0efe64fd.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "7bf5c87c-9b5f-4ac9-91fa-047a0efe64fd", - "type": "feature", - "description": "This release includes supports the new WarmThroughput feature for DynamoDB. You can now provide an optional WarmThroughput attribute for CreateTable or UpdateTable APIs to pre-warm your table or global secondary index. You can also use DescribeTable to see the latest WarmThroughput value.", - "modules": [ - "service/dynamodb" - ] -} \ No newline at end of file diff --git a/.changelog/866ea2c0da8749a0876df26d4b730a01.json b/.changelog/866ea2c0da8749a0876df26d4b730a01.json deleted file mode 100644 index 9af42b5227c..00000000000 --- a/.changelog/866ea2c0da8749a0876df26d4b730a01.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "866ea2c0-da87-49a0-876d-f26d4b730a01", - "type": "feature", - "description": "Today, AWS announces the general availability of ListBillingViews API in the AWS SDKs, to enable AWS Billing Conductor (ABC) users to create proforma Cost and Usage Reports (CUR) programmatically.", - "modules": [ - "service/billing" - ] -} \ No newline at end of file diff --git a/.changelog/9568ac14ebfa482b9a3f3863500e5504.json b/.changelog/9568ac14ebfa482b9a3f3863500e5504.json deleted file mode 100644 index 888fa5f3644..00000000000 --- a/.changelog/9568ac14ebfa482b9a3f3863500e5504.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "9568ac14-ebfa-482b-9a3f-3863500e5504", - "type": "feature", - "description": "Add new query type Routing_Suggestions regarding querying interface", - "modules": [ - "service/internetmonitor" - ] -} \ No newline at end of file diff --git a/.changelog/9d7ed864744b4db398563a2652f6479c.json b/.changelog/9d7ed864744b4db398563a2652f6479c.json deleted file mode 100644 index c412da2292f..00000000000 --- a/.changelog/9d7ed864744b4db398563a2652f6479c.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "9d7ed864-744b-4db3-9856-3a2652f6479c", - "type": "feature", - "description": "Add support for policy operations on the Resource Control Polices.", - "modules": [ - "service/organizations" - ] -} \ No newline at end of file diff --git a/.changelog/a3bfcbba77654c979f00be111c8ddde2.json b/.changelog/a3bfcbba77654c979f00be111c8ddde2.json deleted file mode 100644 index 35d7b7d6823..00000000000 --- a/.changelog/a3bfcbba77654c979f00be111c8ddde2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "a3bfcbba-7765-4c97-9f00-be111c8ddde2", - "type": "feature", - "description": "This release adds a new API GenerateQuery that generates a query from a natural language prompt about the event data in your event data store. This operation uses generative artificial intelligence (generative AI) to produce a ready-to-use SQL query from the prompt.", - "modules": [ - "service/cloudtrail" - ] -} \ No newline at end of file diff --git a/.changelog/ca0253aece414f608f490ff7d789afe3.json b/.changelog/ca0253aece414f608f490ff7d789afe3.json deleted file mode 100644 index 51d5dc1b877..00000000000 --- a/.changelog/ca0253aece414f608f490ff7d789afe3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "ca0253ae-ce41-4f60-8f49-0ff7d789afe3", - "type": "feature", - "description": "This release adds a GenerateMapping API to allow generation of JSONata or XSLT transformer code based on input and output samples.", - "modules": [ - "service/b2bi" - ] -} \ No newline at end of file diff --git a/.changelog/d3b411031f7d4f618f2895212ecb66d3.json b/.changelog/d3b411031f7d4f618f2895212ecb66d3.json deleted file mode 100644 index dad87d9eeac..00000000000 --- a/.changelog/d3b411031f7d4f618f2895212ecb66d3.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "d3b41103-1f7d-4f61-8f28-95212ecb66d3", - "type": "feature", - "description": "This release adds support for ARN inputs in the Kantar credentials secrets name field and the MSPR field to the manifests for PlayReady DRM protected outputs.", - "modules": [ - "service/mediaconvert" - ] -} \ No newline at end of file diff --git a/.changelog/de2569e95acf4fc88d0e091dd30a43a1.json b/.changelog/de2569e95acf4fc88d0e091dd30a43a1.json deleted file mode 100644 index e88a6e43efd..00000000000 --- a/.changelog/de2569e95acf4fc88d0e091dd30a43a1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "de2569e9-5acf-4fc8-8d0e-091dd30a43a1", - "type": "feature", - "description": "This release adds the source AMI details in DescribeImages API", - "modules": [ - "service/ec2" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 0487506decf..9797c55df29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,31 @@ +# Release (2024-11-13) + +## General Highlights +* **Dependency Update**: Updated to the latest SDK module versions + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/accessanalyzer`: [v1.35.0](service/accessanalyzer/CHANGELOG.md#v1350-2024-11-13) + * **Feature**: This release adds support for policy validation and external access findings for resource control policies (RCP). IAM Access Analyzer helps you author functional and secure RCPs and awareness that a RCP may restrict external access. Updated service API, documentation, and paginators. +* `github.com/aws/aws-sdk-go-v2/service/applicationsignals`: [v1.7.0](service/applicationsignals/CHANGELOG.md#v170-2024-11-13) + * **Feature**: Amazon CloudWatch Application Signals now supports creating Service Level Objectives with burn rates. Users can now create or update SLOs with burn rate configurations to meet their specific business requirements. +* `github.com/aws/aws-sdk-go-v2/service/b2bi`: [v1.0.0-preview.52](service/b2bi/CHANGELOG.md#v100-preview52-2024-11-13) + * **Feature**: This release adds a GenerateMapping API to allow generation of JSONata or XSLT transformer code based on input and output samples. +* `github.com/aws/aws-sdk-go-v2/service/billing`: [v1.0.0](service/billing/CHANGELOG.md#v100-2024-11-13) + * **Release**: New AWS service client module + * **Feature**: Today, AWS announces the general availability of ListBillingViews API in the AWS SDKs, to enable AWS Billing Conductor (ABC) users to create proforma Cost and Usage Reports (CUR) programmatically. +* `github.com/aws/aws-sdk-go-v2/service/cloudtrail`: [v1.45.0](service/cloudtrail/CHANGELOG.md#v1450-2024-11-13) + * **Feature**: This release adds a new API GenerateQuery that generates a query from a natural language prompt about the event data in your event data store. This operation uses generative artificial intelligence (generative AI) to produce a ready-to-use SQL query from the prompt. +* `github.com/aws/aws-sdk-go-v2/service/dynamodb`: [v1.37.0](service/dynamodb/CHANGELOG.md#v1370-2024-11-13) + * **Feature**: This release includes supports the new WarmThroughput feature for DynamoDB. You can now provide an optional WarmThroughput attribute for CreateTable or UpdateTable APIs to pre-warm your table or global secondary index. You can also use DescribeTable to see the latest WarmThroughput value. +* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.188.0](service/ec2/CHANGELOG.md#v11880-2024-11-13) + * **Feature**: This release adds the source AMI details in DescribeImages API +* `github.com/aws/aws-sdk-go-v2/service/internetmonitor`: [v1.20.0](service/internetmonitor/CHANGELOG.md#v1200-2024-11-13) + * **Feature**: Add new query type Routing_Suggestions regarding querying interface +* `github.com/aws/aws-sdk-go-v2/service/mediaconvert`: [v1.62.0](service/mediaconvert/CHANGELOG.md#v1620-2024-11-13) + * **Feature**: This release adds support for ARN inputs in the Kantar credentials secrets name field and the MSPR field to the manifests for PlayReady DRM protected outputs. +* `github.com/aws/aws-sdk-go-v2/service/organizations`: [v1.35.0](service/organizations/CHANGELOG.md#v1350-2024-11-13) + * **Feature**: Add support for policy operations on the Resource Control Polices. + # Release (2024-11-12) ## Module Highlights diff --git a/example/service/dynamodb/createTable/go.mod b/example/service/dynamodb/createTable/go.mod index dbc4d5c43bc..4acc0d40f52 100644 --- a/example/service/dynamodb/createTable/go.mod +++ b/example/service/dynamodb/createTable/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 github.com/aws/aws-sdk-go-v2/config v1.28.3 - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.5 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 ) require ( diff --git a/example/service/dynamodb/scanItems/go.mod b/example/service/dynamodb/scanItems/go.mod index 3ffaa736a05..008cc7629b9 100644 --- a/example/service/dynamodb/scanItems/go.mod +++ b/example/service/dynamodb/scanItems/go.mod @@ -5,8 +5,8 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 github.com/aws/aws-sdk-go-v2/config v1.28.3 - github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.15 - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.5 + github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.16 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 ) require ( diff --git a/feature/dynamodb/attributevalue/CHANGELOG.md b/feature/dynamodb/attributevalue/CHANGELOG.md index d958083ad15..6b3bdff329b 100644 --- a/feature/dynamodb/attributevalue/CHANGELOG.md +++ b/feature/dynamodb/attributevalue/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.15.16 (2024-11-13) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.15.15 (2024-11-07) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/feature/dynamodb/attributevalue/go.mod b/feature/dynamodb/attributevalue/go.mod index 859c715565b..77cb7ba1c55 100644 --- a/feature/dynamodb/attributevalue/go.mod +++ b/feature/dynamodb/attributevalue/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.5 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.5 ) diff --git a/feature/dynamodb/attributevalue/go_module_metadata.go b/feature/dynamodb/attributevalue/go_module_metadata.go index 5ae724976f6..70cc9805e28 100644 --- a/feature/dynamodb/attributevalue/go_module_metadata.go +++ b/feature/dynamodb/attributevalue/go_module_metadata.go @@ -3,4 +3,4 @@ package attributevalue // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.15.15" +const goModuleVersion = "1.15.16" diff --git a/feature/dynamodb/expression/CHANGELOG.md b/feature/dynamodb/expression/CHANGELOG.md index 03a5f1ff2fe..a333a64212d 100644 --- a/feature/dynamodb/expression/CHANGELOG.md +++ b/feature/dynamodb/expression/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.7.51 (2024-11-13) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.7.50 (2024-11-07) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/feature/dynamodb/expression/go.mod b/feature/dynamodb/expression/go.mod index f9b124296e2..54966f7f7ac 100644 --- a/feature/dynamodb/expression/go.mod +++ b/feature/dynamodb/expression/go.mod @@ -4,8 +4,8 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.15 - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.5 + github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.16 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 ) require ( diff --git a/feature/dynamodb/expression/go_module_metadata.go b/feature/dynamodb/expression/go_module_metadata.go index dd0c11f752e..e494cabd595 100644 --- a/feature/dynamodb/expression/go_module_metadata.go +++ b/feature/dynamodb/expression/go_module_metadata.go @@ -3,4 +3,4 @@ package expression // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.7.50" +const goModuleVersion = "1.7.51" diff --git a/feature/dynamodbstreams/attributevalue/CHANGELOG.md b/feature/dynamodbstreams/attributevalue/CHANGELOG.md index 748c970fbee..6cfe98aed2d 100644 --- a/feature/dynamodbstreams/attributevalue/CHANGELOG.md +++ b/feature/dynamodbstreams/attributevalue/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.14.51 (2024-11-13) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.14.50 (2024-11-07) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/feature/dynamodbstreams/attributevalue/go.mod b/feature/dynamodbstreams/attributevalue/go.mod index a06a6286fa9..6754de6080a 100644 --- a/feature/dynamodbstreams/attributevalue/go.mod +++ b/feature/dynamodbstreams/attributevalue/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.5 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.24.5 ) diff --git a/feature/dynamodbstreams/attributevalue/go_module_metadata.go b/feature/dynamodbstreams/attributevalue/go_module_metadata.go index 1456df8acf0..cf9560eb0cf 100644 --- a/feature/dynamodbstreams/attributevalue/go_module_metadata.go +++ b/feature/dynamodbstreams/attributevalue/go_module_metadata.go @@ -3,4 +3,4 @@ package attributevalue // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.14.50" +const goModuleVersion = "1.14.51" diff --git a/service/accessanalyzer/CHANGELOG.md b/service/accessanalyzer/CHANGELOG.md index 70e4be1dc1a..676900d511d 100644 --- a/service/accessanalyzer/CHANGELOG.md +++ b/service/accessanalyzer/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.35.0 (2024-11-13) + +* **Feature**: This release adds support for policy validation and external access findings for resource control policies (RCP). IAM Access Analyzer helps you author functional and secure RCPs and awareness that a RCP may restrict external access. Updated service API, documentation, and paginators. + # v1.34.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/accessanalyzer/go_module_metadata.go b/service/accessanalyzer/go_module_metadata.go index af74d1bdd09..d344732d013 100644 --- a/service/accessanalyzer/go_module_metadata.go +++ b/service/accessanalyzer/go_module_metadata.go @@ -3,4 +3,4 @@ package accessanalyzer // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.34.5" +const goModuleVersion = "1.35.0" diff --git a/service/applicationsignals/CHANGELOG.md b/service/applicationsignals/CHANGELOG.md index fb879bbb719..5cb00974782 100644 --- a/service/applicationsignals/CHANGELOG.md +++ b/service/applicationsignals/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.7.0 (2024-11-13) + +* **Feature**: Amazon CloudWatch Application Signals now supports creating Service Level Objectives with burn rates. Users can now create or update SLOs with burn rate configurations to meet their specific business requirements. + # v1.6.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/applicationsignals/go_module_metadata.go b/service/applicationsignals/go_module_metadata.go index ec97aae6f14..7a8031c5515 100644 --- a/service/applicationsignals/go_module_metadata.go +++ b/service/applicationsignals/go_module_metadata.go @@ -3,4 +3,4 @@ package applicationsignals // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.6.5" +const goModuleVersion = "1.7.0" diff --git a/service/b2bi/CHANGELOG.md b/service/b2bi/CHANGELOG.md index 47341ce46c2..1c8613670c3 100644 --- a/service/b2bi/CHANGELOG.md +++ b/service/b2bi/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.0.0-preview.52 (2024-11-13) + +* **Feature**: This release adds a GenerateMapping API to allow generation of JSONata or XSLT transformer code based on input and output samples. + # v1.0.0-preview.51 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/b2bi/go_module_metadata.go b/service/b2bi/go_module_metadata.go index 4373d9e4652..b36359235e2 100644 --- a/service/b2bi/go_module_metadata.go +++ b/service/b2bi/go_module_metadata.go @@ -3,4 +3,4 @@ package b2bi // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.0.0-preview.51" +const goModuleVersion = "1.0.0-preview.52" diff --git a/service/billing/CHANGELOG.md b/service/billing/CHANGELOG.md new file mode 100644 index 00000000000..29f61fe741e --- /dev/null +++ b/service/billing/CHANGELOG.md @@ -0,0 +1,5 @@ +# v1.0.0 (2024-11-13) + +* **Release**: New AWS service client module +* **Feature**: Today, AWS announces the general availability of ListBillingViews API in the AWS SDKs, to enable AWS Billing Conductor (ABC) users to create proforma Cost and Usage Reports (CUR) programmatically. + diff --git a/service/billing/go_module_metadata.go b/service/billing/go_module_metadata.go index 9cf06b5862d..efe41ba7041 100644 --- a/service/billing/go_module_metadata.go +++ b/service/billing/go_module_metadata.go @@ -3,4 +3,4 @@ package billing // goModuleVersion is the tagged release for this module -const goModuleVersion = "tip" +const goModuleVersion = "1.0.0" diff --git a/service/cloudtrail/CHANGELOG.md b/service/cloudtrail/CHANGELOG.md index cad878c4eca..8822355184d 100644 --- a/service/cloudtrail/CHANGELOG.md +++ b/service/cloudtrail/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.45.0 (2024-11-13) + +* **Feature**: This release adds a new API GenerateQuery that generates a query from a natural language prompt about the event data in your event data store. This operation uses generative artificial intelligence (generative AI) to produce a ready-to-use SQL query from the prompt. + # v1.44.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/cloudtrail/go_module_metadata.go b/service/cloudtrail/go_module_metadata.go index ed7e3d00d89..2d03ac0bafb 100644 --- a/service/cloudtrail/go_module_metadata.go +++ b/service/cloudtrail/go_module_metadata.go @@ -3,4 +3,4 @@ package cloudtrail // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.44.5" +const goModuleVersion = "1.45.0" diff --git a/service/dynamodb/CHANGELOG.md b/service/dynamodb/CHANGELOG.md index 35be46020f8..5edb0521ed5 100644 --- a/service/dynamodb/CHANGELOG.md +++ b/service/dynamodb/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.37.0 (2024-11-13) + +* **Feature**: This release includes supports the new WarmThroughput feature for DynamoDB. You can now provide an optional WarmThroughput attribute for CreateTable or UpdateTable APIs to pre-warm your table or global secondary index. You can also use DescribeTable to see the latest WarmThroughput value. + # v1.36.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/dynamodb/go_module_metadata.go b/service/dynamodb/go_module_metadata.go index c6146ac9a61..e4df2652ba2 100644 --- a/service/dynamodb/go_module_metadata.go +++ b/service/dynamodb/go_module_metadata.go @@ -3,4 +3,4 @@ package dynamodb // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.36.5" +const goModuleVersion = "1.37.0" diff --git a/service/ec2/CHANGELOG.md b/service/ec2/CHANGELOG.md index 0107797288c..c842b7387d3 100644 --- a/service/ec2/CHANGELOG.md +++ b/service/ec2/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.188.0 (2024-11-13) + +* **Feature**: This release adds the source AMI details in DescribeImages API + # v1.187.1 (2024-11-06) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/ec2/go_module_metadata.go b/service/ec2/go_module_metadata.go index c9503aac94e..ad7bbe3afc0 100644 --- a/service/ec2/go_module_metadata.go +++ b/service/ec2/go_module_metadata.go @@ -3,4 +3,4 @@ package ec2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.187.1" +const goModuleVersion = "1.188.0" diff --git a/service/glue/CHANGELOG.md b/service/glue/CHANGELOG.md index 919fded9740..7fe5549a60c 100644 --- a/service/glue/CHANGELOG.md +++ b/service/glue/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.101.3 (2024-11-13) + +* No change notes available for this release. + # v1.101.2 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/glue/go_module_metadata.go b/service/glue/go_module_metadata.go index 82935b3d742..be0e89a4dc9 100644 --- a/service/glue/go_module_metadata.go +++ b/service/glue/go_module_metadata.go @@ -3,4 +3,4 @@ package glue // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.101.2" +const goModuleVersion = "1.101.3" diff --git a/service/internal/benchmark/go.mod b/service/internal/benchmark/go.mod index 3bebecd8093..d9cfd81eb30 100644 --- a/service/internal/benchmark/go.mod +++ b/service/internal/benchmark/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/aws/aws-sdk-go v1.44.28 github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.5 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 github.com/aws/aws-sdk-go-v2/service/lexruntimeservice v1.24.5 github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 github.com/aws/aws-sdk-go-v2/service/schemas v1.28.6 diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index 896eb751582..08a91a52ee4 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -14,7 +14,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/cloudformation v1.55.5 github.com/aws/aws-sdk-go-v2/service/cloudfront v1.41.0 github.com/aws/aws-sdk-go-v2/service/cloudhsmv2 v1.27.6 - github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.44.5 + github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.45.0 github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.42.4 github.com/aws/aws-sdk-go-v2/service/codebuild v1.49.0 github.com/aws/aws-sdk-go-v2/service/codecommit v1.27.5 @@ -28,8 +28,8 @@ require ( github.com/aws/aws-sdk-go-v2/service/directconnect v1.29.5 github.com/aws/aws-sdk-go-v2/service/directoryservice v1.30.6 github.com/aws/aws-sdk-go-v2/service/docdb v1.39.4 - github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.5 - github.com/aws/aws-sdk-go-v2/service/ec2 v1.187.1 + github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.188.0 github.com/aws/aws-sdk-go-v2/service/ecr v1.36.5 github.com/aws/aws-sdk-go-v2/service/ecs v1.49.2 github.com/aws/aws-sdk-go-v2/service/efs v1.33.5 @@ -44,7 +44,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/firehose v1.35.0 github.com/aws/aws-sdk-go-v2/service/gamelift v1.37.0 github.com/aws/aws-sdk-go-v2/service/glacier v1.26.5 - github.com/aws/aws-sdk-go-v2/service/glue v1.101.2 + github.com/aws/aws-sdk-go-v2/service/glue v1.101.3 github.com/aws/aws-sdk-go-v2/service/health v1.28.5 github.com/aws/aws-sdk-go-v2/service/iam v1.37.4 github.com/aws/aws-sdk-go-v2/service/inspector v1.25.5 diff --git a/service/internetmonitor/CHANGELOG.md b/service/internetmonitor/CHANGELOG.md index 877511a5474..c42a83e945d 100644 --- a/service/internetmonitor/CHANGELOG.md +++ b/service/internetmonitor/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.20.0 (2024-11-13) + +* **Feature**: Add new query type Routing_Suggestions regarding querying interface + # v1.19.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/internetmonitor/go_module_metadata.go b/service/internetmonitor/go_module_metadata.go index d1e73ad1453..6b6d64a6303 100644 --- a/service/internetmonitor/go_module_metadata.go +++ b/service/internetmonitor/go_module_metadata.go @@ -3,4 +3,4 @@ package internetmonitor // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.19.5" +const goModuleVersion = "1.20.0" diff --git a/service/iotfleetwise/CHANGELOG.md b/service/iotfleetwise/CHANGELOG.md index eb22083d1f9..c5ea2b1e639 100644 --- a/service/iotfleetwise/CHANGELOG.md +++ b/service/iotfleetwise/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.21.3 (2024-11-13) + +* No change notes available for this release. + # v1.21.2 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/iotfleetwise/go_module_metadata.go b/service/iotfleetwise/go_module_metadata.go index 686a3a7f6c1..fca33c54c3e 100644 --- a/service/iotfleetwise/go_module_metadata.go +++ b/service/iotfleetwise/go_module_metadata.go @@ -3,4 +3,4 @@ package iotfleetwise // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.21.2" +const goModuleVersion = "1.21.3" diff --git a/service/mediaconvert/CHANGELOG.md b/service/mediaconvert/CHANGELOG.md index 1c8f2348582..538c7f6492f 100644 --- a/service/mediaconvert/CHANGELOG.md +++ b/service/mediaconvert/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.62.0 (2024-11-13) + +* **Feature**: This release adds support for ARN inputs in the Kantar credentials secrets name field and the MSPR field to the manifests for PlayReady DRM protected outputs. + # v1.61.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/mediaconvert/go_module_metadata.go b/service/mediaconvert/go_module_metadata.go index dd24dbc61c6..e83e360ad01 100644 --- a/service/mediaconvert/go_module_metadata.go +++ b/service/mediaconvert/go_module_metadata.go @@ -3,4 +3,4 @@ package mediaconvert // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.61.5" +const goModuleVersion = "1.62.0" diff --git a/service/organizations/CHANGELOG.md b/service/organizations/CHANGELOG.md index 7e55e26cb0e..c8eb365d937 100644 --- a/service/organizations/CHANGELOG.md +++ b/service/organizations/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.35.0 (2024-11-13) + +* **Feature**: Add support for policy operations on the Resource Control Polices. + # v1.34.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/organizations/go_module_metadata.go b/service/organizations/go_module_metadata.go index 241cc639287..1a33da74e33 100644 --- a/service/organizations/go_module_metadata.go +++ b/service/organizations/go_module_metadata.go @@ -3,4 +3,4 @@ package organizations // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.34.5" +const goModuleVersion = "1.35.0" diff --git a/service/vpclattice/CHANGELOG.md b/service/vpclattice/CHANGELOG.md index 9f47a02bd9e..3a518142e42 100644 --- a/service/vpclattice/CHANGELOG.md +++ b/service/vpclattice/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.12.6 (2024-11-13) + +* No change notes available for this release. + # v1.12.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/vpclattice/go_module_metadata.go b/service/vpclattice/go_module_metadata.go index 6b96dd862b5..9230206fad8 100644 --- a/service/vpclattice/go_module_metadata.go +++ b/service/vpclattice/go_module_metadata.go @@ -3,4 +3,4 @@ package vpclattice // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.12.5" +const goModuleVersion = "1.12.6" From 6646f21285baf44d9c89945ef22ca99b87009c2b Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 14 Nov 2024 19:05:39 +0000 Subject: [PATCH 17/20] Update API model --- .../aws-models/accessanalyzer.json | 144 +- .../sdk-codegen/aws-models/cloudcontrol.json | 170 +- codegen/sdk-codegen/aws-models/deadline.json | 109 +- codegen/sdk-codegen/aws-models/iam.json | 471 +- .../sdk-codegen/aws-models/iot-wireless.json | 187 +- codegen/sdk-codegen/aws-models/ivs.json | 200 +- .../license-manager-user-subscriptions.json | 1185 ++- .../aws-models/partnercentral-selling.json | 8879 +++++++++++++++++ .../sdk-codegen/aws-models/quicksight.json | 2441 ++++- codegen/sdk-codegen/aws-models/redshift.json | 42 + codegen/sdk-codegen/aws-models/s3.json | 340 +- codegen/sdk-codegen/aws-models/sagemaker.json | 66 + codegen/sdk-codegen/aws-models/sts.json | 171 +- 13 files changed, 14176 insertions(+), 229 deletions(-) create mode 100644 codegen/sdk-codegen/aws-models/partnercentral-selling.json diff --git a/codegen/sdk-codegen/aws-models/accessanalyzer.json b/codegen/sdk-codegen/aws-models/accessanalyzer.json index 1e9fd2345fd..74e06f8fbbf 100644 --- a/codegen/sdk-codegen/aws-models/accessanalyzer.json +++ b/codegen/sdk-codegen/aws-models/accessanalyzer.json @@ -1554,6 +1554,12 @@ "target": "com.amazonaws.accessanalyzer#AccessPreviewSummary" } }, + "com.amazonaws.accessanalyzer#AccountIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, "com.amazonaws.accessanalyzer#AclCanonicalId": { "type": "string" }, @@ -1622,6 +1628,46 @@ "target": "com.amazonaws.accessanalyzer#Action" } }, + "com.amazonaws.accessanalyzer#AnalysisRule": { + "type": "structure", + "members": { + "exclusions": { + "target": "com.amazonaws.accessanalyzer#AnalysisRuleCriteriaList", + "traits": { + "smithy.api#documentation": "

A list of rules for the analyzer containing criteria to exclude from analysis. Entities\n that meet the rule criteria will not generate findings.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about analysis rules for the analyzer. Analysis rules determine\n which entities will generate findings based on the criteria you define when you create the\n rule.

" + } + }, + "com.amazonaws.accessanalyzer#AnalysisRuleCriteria": { + "type": "structure", + "members": { + "accountIds": { + "target": "com.amazonaws.accessanalyzer#AccountIdsList", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services account IDs to apply to the analysis rule criteria. The accounts cannot\n include the organization analyzer owner account. Account IDs can only be applied to the\n analysis rule criteria for organization-level analyzers. The list cannot include more than\n 2,000 account IDs.

" + } + }, + "resourceTags": { + "target": "com.amazonaws.accessanalyzer#TagsList", + "traits": { + "smithy.api#documentation": "

An array of key-value pairs to match for your resources. You can use the set of Unicode\n letters, digits, whitespace, _, ., /,\n =, +, and -.

\n

For the tag key, you can specify a value that is 1 to 128 characters in length and\n cannot be prefixed with aws:.

\n

For the tag value, you can specify a value that is 0 to 256 characters in length. If the\n specified tag value is 0 characters, the rule is applied to all principals with the\n specified tag key.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The criteria for an analysis rule for an analyzer. The criteria determine which entities\n will generate findings.

" + } + }, + "com.amazonaws.accessanalyzer#AnalysisRuleCriteriaList": { + "type": "list", + "member": { + "target": "com.amazonaws.accessanalyzer#AnalysisRuleCriteria" + } + }, "com.amazonaws.accessanalyzer#AnalyzedResource": { "type": "structure", "members": { @@ -1751,6 +1797,9 @@ "read": { "target": "com.amazonaws.accessanalyzer#GetAnalyzer" }, + "update": { + "target": "com.amazonaws.accessanalyzer#UpdateAnalyzer" + }, "delete": { "target": "com.amazonaws.accessanalyzer#DeleteAnalyzer" }, @@ -1781,12 +1830,12 @@ "unusedAccess": { "target": "com.amazonaws.accessanalyzer#UnusedAccessConfiguration", "traits": { - "smithy.api#documentation": "

Specifies the configuration of an unused access analyzer for an Amazon Web Services organization or\n account. External access analyzers do not support any configuration.

" + "smithy.api#documentation": "

Specifies the configuration of an unused access analyzer for an Amazon Web Services organization or\n account.

" } } }, "traits": { - "smithy.api#documentation": "

Contains information about the configuration of an unused access analyzer for an Amazon Web Services\n organization or account.

" + "smithy.api#documentation": "

Contains information about the configuration of an analyzer for an Amazon Web Services organization or\n account.

" } }, "com.amazonaws.accessanalyzer#AnalyzerStatus": { @@ -2020,7 +2069,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains information about an archive rule.

" + "smithy.api#documentation": "

Contains information about an archive rule. Archive rules automatically archive new\n findings that meet the criteria you define when you create the rule.

" } }, "com.amazonaws.accessanalyzer#ArchiveRulesList": { @@ -2857,7 +2906,7 @@ "tags": { "target": "com.amazonaws.accessanalyzer#TagsMap", "traits": { - "smithy.api#documentation": "

An array of key-value pairs to apply to the analyzer.

" + "smithy.api#documentation": "

An array of key-value pairs to apply to the analyzer. You can use the set of Unicode\n letters, digits, whitespace, _, ., /,\n =, +, and -.

\n

For the tag key, you can specify a value that is 1 to 128 characters in length and\n cannot be prefixed with aws:.

\n

For the tag value, you can specify a value that is 0 to 256 characters in length.

" } }, "clientToken": { @@ -2870,7 +2919,7 @@ "configuration": { "target": "com.amazonaws.accessanalyzer#AnalyzerConfiguration", "traits": { - "smithy.api#documentation": "

Specifies the configuration of the analyzer. If the analyzer is an unused access\n analyzer, the specified scope of unused access is used for the configuration. If the\n analyzer is an external access analyzer, this field is not used.

" + "smithy.api#documentation": "

Specifies the configuration of the analyzer. If the analyzer is an unused access\n analyzer, the specified scope of unused access is used for the configuration.

" } } }, @@ -5383,7 +5432,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a list of resources of the specified type that have been analyzed by the\n specified external access analyzer. This action is not supported for unused access\n analyzers.

", + "smithy.api#documentation": "

Retrieves a list of resources of the specified type that have been analyzed by the\n specified analyzer.

", "smithy.api#http": { "uri": "/analyzed-resource", "method": "POST", @@ -6634,6 +6683,10 @@ { "value": "AWS::DynamoDB::Stream", "name": "AWS_DYNAMODB_STREAM" + }, + { + "value": "AWS::IAM::User", + "name": "AWS_IAM_USER" } ] } @@ -7196,6 +7249,12 @@ "smithy.api#documentation": "

The response to the request.

" } }, + "com.amazonaws.accessanalyzer#TagsList": { + "type": "list", + "member": { + "target": "com.amazonaws.accessanalyzer#TagsMap" + } + }, "com.amazonaws.accessanalyzer#TagsMap": { "type": "map", "key": { @@ -7417,8 +7476,11 @@ "unusedAccessAge": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

The specified access age in days for which to generate findings for unused access. For\n example, if you specify 90 days, the analyzer will generate findings for IAM entities\n within the accounts of the selected organization for any access that hasn't been used in 90\n or more days since the analyzer's last scan. You can choose a value between 1 and 180\n days.

" + "smithy.api#documentation": "

The specified access age in days for which to generate findings for unused access. For\n example, if you specify 90 days, the analyzer will generate findings for IAM entities\n within the accounts of the selected organization for any access that hasn't been used in 90\n or more days since the analyzer's last scan. You can choose a value between 1 and 365\n days.

" } + }, + "analysisRule": { + "target": "com.amazonaws.accessanalyzer#AnalysisRule" } }, "traits": { @@ -7561,6 +7623,74 @@ "smithy.api#documentation": "

Contains information about the action to take for a policy in an unused permissions\n finding.

" } }, + "com.amazonaws.accessanalyzer#UpdateAnalyzer": { + "type": "operation", + "input": { + "target": "com.amazonaws.accessanalyzer#UpdateAnalyzerRequest" + }, + "output": { + "target": "com.amazonaws.accessanalyzer#UpdateAnalyzerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.accessanalyzer#AccessDeniedException" + }, + { + "target": "com.amazonaws.accessanalyzer#ConflictException" + }, + { + "target": "com.amazonaws.accessanalyzer#InternalServerException" + }, + { + "target": "com.amazonaws.accessanalyzer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.accessanalyzer#ThrottlingException" + }, + { + "target": "com.amazonaws.accessanalyzer#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the configuration of an existing analyzer.

", + "smithy.api#http": { + "uri": "/analyzer/{analyzerName}", + "method": "PUT", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.accessanalyzer#UpdateAnalyzerRequest": { + "type": "structure", + "members": { + "analyzerName": { + "target": "com.amazonaws.accessanalyzer#Name", + "traits": { + "smithy.api#documentation": "

The name of the analyzer to modify.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "configuration": { + "target": "com.amazonaws.accessanalyzer#AnalyzerConfiguration" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.accessanalyzer#UpdateAnalyzerResponse": { + "type": "structure", + "members": { + "configuration": { + "target": "com.amazonaws.accessanalyzer#AnalyzerConfiguration" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.accessanalyzer#UpdateArchiveRule": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/cloudcontrol.json b/codegen/sdk-codegen/aws-models/cloudcontrol.json index e479fe67210..8d0c09d6226 100644 --- a/codegen/sdk-codegen/aws-models/cloudcontrol.json +++ b/codegen/sdk-codegen/aws-models/cloudcontrol.json @@ -169,7 +169,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -212,7 +211,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -225,7 +225,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -239,7 +238,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -262,7 +260,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -297,7 +294,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -308,14 +304,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -329,14 +327,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -345,11 +341,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -360,14 +356,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -381,7 +379,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -401,7 +398,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -412,14 +408,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -430,9 +428,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -1400,7 +1400,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 1024 + "max": 2048 }, "smithy.api#pattern": "^.+$" } @@ -1607,6 +1607,12 @@ "traits": { "smithy.api#documentation": "

Represents the current status of the resource operation request.

" } + }, + "HooksProgressEvent": { + "target": "com.amazonaws.cloudcontrol#HooksProgressEvent", + "traits": { + "smithy.api#documentation": "

Lists Hook invocations for the specified target in the request. This is a list since the same target can invoke multiple Hooks.

" + } } } }, @@ -1626,6 +1632,10 @@ "value": "AccessDenied", "name": "ACCESS_DENIED" }, + { + "value": "UnauthorizedTaggingOperation", + "name": "UNAUTHORIZED_TAGGING_OPERATION" + }, { "value": "InvalidCredentials", "name": "INVALID_CREDENTIALS" @@ -1716,11 +1726,113 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 2048 + "max": 4096 }, "smithy.api#pattern": "^.+$" } }, + "com.amazonaws.cloudcontrol#HookFailureMode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[-A-Za-z_]+$" + } + }, + "com.amazonaws.cloudcontrol#HookInvocationPoint": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[-A-Za-z_]+$" + } + }, + "com.amazonaws.cloudcontrol#HookProgressEvent": { + "type": "structure", + "members": { + "HookTypeName": { + "target": "com.amazonaws.cloudcontrol#TypeName", + "traits": { + "smithy.api#documentation": "

The type name of the Hook being invoked.

" + } + }, + "HookTypeVersionId": { + "target": "com.amazonaws.cloudcontrol#TypeVersionId", + "traits": { + "smithy.api#documentation": "

The type version of the Hook being invoked.

" + } + }, + "HookTypeArn": { + "target": "com.amazonaws.cloudcontrol#HookTypeArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Hook being invoked.

" + } + }, + "InvocationPoint": { + "target": "com.amazonaws.cloudcontrol#HookInvocationPoint", + "traits": { + "smithy.api#documentation": "

States whether the Hook is invoked before or after resource provisioning.

" + } + }, + "HookStatus": { + "target": "com.amazonaws.cloudcontrol#HookStatus", + "traits": { + "smithy.api#documentation": "

The status of the Hook invocation. The following are potential statuses:

\n
    \n
  • \n

    \n HOOK_PENDING: The Hook was added to the invocation plan, but not yet invoked.

    \n
  • \n
  • \n

    \n HOOK_IN_PROGRESS: The Hook was invoked, but hasn't completed.

    \n
  • \n
  • \n

    \n HOOK_COMPLETE_SUCCEEDED: The Hook invocation is complete with a successful result.

    \n
  • \n
  • \n

    \n HOOK_COMPLETE_FAILED: The Hook invocation is complete with a failed result.

    \n
  • \n
  • \n

    \n HOOK_FAILED: The Hook invocation didn't complete successfully.

    \n
  • \n
" + } + }, + "HookEventTime": { + "target": "com.amazonaws.cloudcontrol#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the Hook invocation request initiated.

" + } + }, + "HookStatusMessage": { + "target": "com.amazonaws.cloudcontrol#StatusMessage", + "traits": { + "smithy.api#documentation": "

The message explaining the current Hook status.

" + } + }, + "FailureMode": { + "target": "com.amazonaws.cloudcontrol#HookFailureMode", + "traits": { + "smithy.api#documentation": "

The failure mode of the invocation. The following are the potential statuses:

\n
    \n
  • \n

    \n FAIL: This will fail the Hook invocation and the request associated with it.

    \n
  • \n
  • \n

    \n WARN: This will fail the Hook invocation, but not the request associated with it.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the current status of applicable Hooks for a resource operation request. It contains list of \n Hook invocation information for the resource specified in the request since the same target can invoke multiple Hooks. \n For more information, see Managing resource operation requests with Amazon Web Services Cloud Control API\n .

" + } + }, + "com.amazonaws.cloudcontrol#HookStatus": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[-A-Za-z_]+$" + } + }, + "com.amazonaws.cloudcontrol#HookTypeArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws.*:.+:.*:.*:.+$" + } + }, + "com.amazonaws.cloudcontrol#HooksProgressEvent": { + "type": "list", + "member": { + "target": "com.amazonaws.cloudcontrol#HookProgressEvent" + } + }, "com.amazonaws.cloudcontrol#Identifier": { "type": "string", "traits": { @@ -2100,9 +2212,10 @@ "com.amazonaws.cloudcontrol#PatchDocument": { "type": "string", "traits": { + "smithy.api#documentation": "Allow up to 256K length of Resource properties", "smithy.api#length": { "min": 1, - "max": 65536 + "max": 262144 }, "smithy.api#pattern": "^[\\s\\S]*$", "smithy.api#sensitive": {} @@ -2146,6 +2259,12 @@ "smithy.api#documentation": "

The unique token representing this resource operation request.

\n

Use the RequestToken with GetResourceRequestStatus to return the current status of a resource operation\n request.

" } }, + "HooksRequestToken": { + "target": "com.amazonaws.cloudcontrol#RequestToken", + "traits": { + "smithy.api#documentation": "

The unique token representing the Hooks operation for the request.

" + } + }, "Operation": { "target": "com.amazonaws.cloudcontrol#Operation", "traits": { @@ -2196,9 +2315,10 @@ "com.amazonaws.cloudcontrol#Properties": { "type": "string", "traits": { + "smithy.api#documentation": "Allow up to 256K length of Resource properties", "smithy.api#length": { "min": 1, - "max": 65536 + "max": 262144 }, "smithy.api#pattern": "^[\\s\\S]*$", "smithy.api#sensitive": {} @@ -2366,7 +2486,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 1024 + "max": 2048 }, "smithy.api#pattern": "^[\\s\\S]*$" } diff --git a/codegen/sdk-codegen/aws-models/deadline.json b/codegen/sdk-codegen/aws-models/deadline.json index 903bfb185f1..f1304f8b3a6 100644 --- a/codegen/sdk-codegen/aws-models/deadline.json +++ b/codegen/sdk-codegen/aws-models/deadline.json @@ -16,20 +16,41 @@ "smithy.api#private": {} } }, + "com.amazonaws.deadline#AcceleratorCapabilities": { + "type": "structure", + "members": { + "selections": { + "target": "com.amazonaws.deadline#AcceleratorSelections", + "traits": { + "smithy.api#documentation": "

A list of objects that contain the GPU name of the accelerator and driver for the\n instance types that support the accelerator.

", + "smithy.api#required": {} + } + }, + "count": { + "target": "com.amazonaws.deadline#AcceleratorCountRange", + "traits": { + "smithy.api#documentation": "

The number of GPUs on each worker. The default is 1.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides information about the GPU accelerators and drivers for the instance types in a\n fleet. If you include the acceleratorCapabilities property in the ServiceManagedEc2InstanceCapabilities object, all of the Amazon EC2\n instances will have at least one accelerator.

" + } + }, "com.amazonaws.deadline#AcceleratorCountRange": { "type": "structure", "members": { "min": { "target": "com.amazonaws.deadline#MinZeroMaxInteger", "traits": { - "smithy.api#documentation": "

The minimum GPU for the accelerator.

", + "smithy.api#documentation": "

The minimum number of GPUs for the accelerator. If you set the value to 0, a worker will\n still have 1 GPU.

", "smithy.api#required": {} } }, "max": { "target": "com.amazonaws.deadline#MinZeroMaxInteger", "traits": { - "smithy.api#documentation": "

The maximum GPU for the accelerator.

" + "smithy.api#documentation": "

The maximum number of GPUs for the accelerator.

" } } }, @@ -37,6 +58,72 @@ "smithy.api#documentation": "

The range for the GPU fleet acceleration.

" } }, + "com.amazonaws.deadline#AcceleratorName": { + "type": "enum", + "members": { + "T4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "t4" + } + }, + "A10G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "a10g" + } + }, + "L4": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "l4" + } + }, + "L40S": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "l40s" + } + } + } + }, + "com.amazonaws.deadline#AcceleratorRuntime": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.deadline#AcceleratorSelection": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.deadline#AcceleratorName", + "traits": { + "smithy.api#documentation": "

The name of the GPU accelerator.

", + "smithy.api#required": {} + } + }, + "runtime": { + "target": "com.amazonaws.deadline#AcceleratorRuntime", + "traits": { + "smithy.api#default": "latest", + "smithy.api#documentation": "

The driver version that the GPU accelerator uses.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Values that you can use to select a particular Amazon EC2 instance type.

" + } + }, + "com.amazonaws.deadline#AcceleratorSelections": { + "type": "list", + "member": { + "target": "com.amazonaws.deadline#AcceleratorSelection" + } + }, "com.amazonaws.deadline#AcceleratorTotalMemoryMiBRange": { "type": "structure", "members": { @@ -16150,6 +16237,12 @@ "smithy.api#documentation": "

The root EBS volume.

" } }, + "acceleratorCapabilities": { + "target": "com.amazonaws.deadline#AcceleratorCapabilities", + "traits": { + "smithy.api#documentation": "

The GPU accelerator capabilities required for the Amazon EC2 instances. If you\n include the acceleratorCapabilities property in the ServiceManagedEc2InstanceCapabilities object, all of the Amazon EC2\n instances will have at least one accelerator.

" + } + }, "allowedInstanceTypes": { "target": "com.amazonaws.deadline#InstanceTypes", "traits": { @@ -16999,6 +17092,12 @@ "type": "list", "member": { "target": "com.amazonaws.deadline#StepAmountCapability" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } } }, "com.amazonaws.deadline#StepAmountCapability": { @@ -17038,6 +17137,12 @@ "type": "list", "member": { "target": "com.amazonaws.deadline#StepAttributeCapability" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } } }, "com.amazonaws.deadline#StepAttributeCapability": { diff --git a/codegen/sdk-codegen/aws-models/iam.json b/codegen/sdk-codegen/aws-models/iam.json index 35d29c78745..780e888265b 100644 --- a/codegen/sdk-codegen/aws-models/iam.json +++ b/codegen/sdk-codegen/aws-models/iam.json @@ -177,9 +177,21 @@ { "target": "com.amazonaws.iam#DetachUserPolicy" }, + { + "target": "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagement" + }, + { + "target": "com.amazonaws.iam#DisableOrganizationsRootSessions" + }, { "target": "com.amazonaws.iam#EnableMFADevice" }, + { + "target": "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagement" + }, + { + "target": "com.amazonaws.iam#EnableOrganizationsRootSessions" + }, { "target": "com.amazonaws.iam#GenerateCredentialReport" }, @@ -315,6 +327,9 @@ { "target": "com.amazonaws.iam#ListOpenIDConnectProviderTags" }, + { + "target": "com.amazonaws.iam#ListOrganizationsFeatures" + }, { "target": "com.amazonaws.iam#ListPolicies" }, @@ -2049,6 +2064,19 @@ "smithy.api#documentation": "

Contains information about an Amazon Web Services access key, without its secret key.

\n

This data type is used as a response element in the ListAccessKeys\n operation.

" } }, + "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because the account making the request is not the management\n account or delegated administrator account for centralized root\n access.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.iam#ActionNameListType": { "type": "list", "member": { @@ -2473,6 +2501,19 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.iam#CallerIsNotManagementAccountException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because the account making the request is not the management\n account for the organization.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.iam#CertificationKeyType": { "type": "string", "traits": { @@ -3071,15 +3112,13 @@ "UserName": { "target": "com.amazonaws.iam#userNameType", "traits": { - "smithy.api#documentation": "

The name of the IAM user to create a password for. The user must already\n exist.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the IAM user to create a password for. The user must already\n exist.

\n

This parameter is optional. If no user name is included, it defaults to the principal\n making the request. When you make this request with root user credentials, you must use\n an AssumeRoot session to omit the user name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" } }, "Password": { "target": "com.amazonaws.iam#passwordType", "traits": { - "smithy.api#documentation": "

The new password for the user.

\n

The regex pattern \n that is used to validate this parameter is a string of characters. That string can include almost any printable \n ASCII character from the space (\\u0020) through the end of the ASCII character range (\\u00FF). \n You can also include the tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) \n characters. Any of these characters are valid in a password. However, many tools, such \n as the Amazon Web Services Management Console, might restrict the ability to type certain characters because they have \n special meaning within that tool.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The new password for the user.

\n

This parameter must be omitted when you make the request with an AssumeRoot session. It is required in all other cases.

\n

The regex pattern \n that is used to validate this parameter is a string of characters. That string can include almost any printable \n ASCII character from the space (\\u0020) through the end of the ASCII character range (\\u00FF). \n You can also include the tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) \n characters. Any of these characters are valid in a password. However, many tools, such \n as the Amazon Web Services Management Console, might restrict the ability to type certain characters because they have \n special meaning within that tool.

" } }, "PasswordResetRequired": { @@ -3955,8 +3994,7 @@ "UserName": { "target": "com.amazonaws.iam#existingUserNameType", "traits": { - "smithy.api#documentation": "

The name of the user whose MFA device you want to deactivate.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the user whose MFA device you want to deactivate.

\n

This parameter is optional. If no user name is included, it defaults to the principal\n making the request. When you make this request with root user credentials, you must use\n an AssumeRoot session to omit the user name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" } }, "SerialNumber": { @@ -4308,8 +4346,7 @@ "UserName": { "target": "com.amazonaws.iam#userNameType", "traits": { - "smithy.api#documentation": "

The name of the user whose password you want to delete.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the user whose password you want to delete.

\n

This parameter is optional. If no user name is included, it defaults to the principal\n making the request. When you make this request with root user credentials, you must use\n an AssumeRoot session to omit the user name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" } } }, @@ -5272,6 +5309,136 @@ "smithy.api#input": {} } }, + "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagement": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementRequest" + }, + "output": { + "target": "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Disables the management of privileged root user credentials across member accounts in\n your organization. When you disable this feature, the management account and the\n delegated admininstrator for IAM can no longer manage root user credentials for member\n accounts in your organization.

", + "smithy.api#examples": [ + { + "title": "To disable the RootCredentialsManagement feature in your organization", + "documentation": "The following command disables the management of privileged root user credentials across member accounts in your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootSessions" + ] + } + } + ] + } + }, + "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DisableOrganizationsRootCredentialsManagementResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

The features enabled for centralized root access for member accounts in your\n organization.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#DisableOrganizationsRootSessions": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#DisableOrganizationsRootSessionsRequest" + }, + "output": { + "target": "com.amazonaws.iam#DisableOrganizationsRootSessionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Disables root user sessions for privileged tasks across member accounts in your\n organization. When you disable this feature, the management account and the delegated\n admininstrator for IAM can no longer perform privileged tasks on member accounts in\n your organization.

", + "smithy.api#examples": [ + { + "title": "To disable the RootSessions feature in your organization", + "documentation": "The following command disables root user sessions for privileged tasks across member accounts in your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootCredentialsManagement" + ] + } + } + ] + } + }, + "com.amazonaws.iam#DisableOrganizationsRootSessionsRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#DisableOrganizationsRootSessionsResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

The features you have enabled for centralized root access of member accounts in your\n organization.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iam#DuplicateCertificateException": { "type": "structure", "members": { @@ -5377,6 +5544,143 @@ "smithy.api#input": {} } }, + "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagement": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementRequest" + }, + "output": { + "target": "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#CallerIsNotManagementAccountException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Enables the management of privileged root user credentials across member accounts in your\n organization. When you enable root credentials management for centralized root access, the management account and the delegated\n admininstrator for IAM can manage root user credentials for member accounts in your\n organization.

\n

Before you enable centralized root access, you must have an account configured with\n the following settings:

\n
    \n
  • \n

    You must manage your Amazon Web Services accounts in Organizations.

    \n
  • \n
  • \n

    Enable trusted access for Identity and Access Management in Organizations. For details, see\n IAM and Organizations in the Organizations User\n Guide.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To enable the RootCredentialsManagement feature in your organization", + "documentation": "The following command enables the management of privileged root user credentials across member accounts in your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootCredentialsManagement" + ] + } + } + ] + } + }, + "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#EnableOrganizationsRootCredentialsManagementResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

The features you have enabled for centralized root access.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.iam#EnableOrganizationsRootSessions": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#EnableOrganizationsRootSessionsRequest" + }, + "output": { + "target": "com.amazonaws.iam#EnableOrganizationsRootSessionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#CallerIsNotManagementAccountException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Allows the management account or delegated administrator to perform privileged tasks\n on member accounts in your organization. For more information, see Centrally manage root access for member accounts in the Identity and Access Management\n User Guide.

\n

Before you enable this feature, you must have an account configured with the following\n settings:

\n
    \n
  • \n

    You must manage your Amazon Web Services accounts in Organizations.

    \n
  • \n
  • \n

    Enable trusted access for Identity and Access Management in Organizations. For details, see\n IAM and Organizations in the Organizations User\n Guide.

    \n
  • \n
", + "smithy.api#examples": [ + { + "title": "To enable the RootSessions feature in your organization", + "documentation": "The following command allows the management account or delegated administrator to perform privileged tasks on member accounts in your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootCredentialsManagement", + "RootSessions" + ] + } + } + ] + } + }, + "com.amazonaws.iam#EnableOrganizationsRootSessionsRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#EnableOrganizationsRootSessionsResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

The features you have enabled for centralized root access.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iam#EntityAlreadyExistsException": { "type": "structure", "members": { @@ -5618,6 +5922,32 @@ "target": "com.amazonaws.iam#EvaluationResult" } }, + "com.amazonaws.iam#ExceptionMessage": { + "type": "string" + }, + "com.amazonaws.iam#FeatureType": { + "type": "enum", + "members": { + "ROOT_CREDENTIALS_MANAGEMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RootCredentialsManagement" + } + }, + "ROOT_SESSIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RootSessions" + } + } + } + }, + "com.amazonaws.iam#FeaturesListType": { + "type": "list", + "member": { + "target": "com.amazonaws.iam#FeatureType" + } + }, "com.amazonaws.iam#GenerateCredentialReport": { "type": "operation", "input": { @@ -6496,8 +6826,7 @@ "UserName": { "target": "com.amazonaws.iam#userNameType", "traits": { - "smithy.api#documentation": "

The name of the user whose login profile you want to retrieve.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the user whose login profile you want to retrieve.

\n

This parameter is optional. If no user name is included, it defaults to the principal\n making the request. When you make this request with root user credentials, you must use\n an AssumeRoot session to omit the user name.

\n

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric \n characters with no spaces. You can also include any of the following characters: _+=,.@-

" } } }, @@ -8224,7 +8553,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the account alias associated with the Amazon Web Services account (Note: you can have only\n one). For information about using an Amazon Web Services account alias, see Creating,\n deleting, and listing an Amazon Web Services account alias in the\n IAM User Guide.

", + "smithy.api#documentation": "

Lists the account alias associated with the Amazon Web Services account (Note: you can have only\n one). For information about using an Amazon Web Services account alias, see Creating,\n deleting, and listing an Amazon Web Services account alias in the Amazon Web Services Sign-In\n User Guide.

", "smithy.api#examples": [ { "title": "To list account aliases", @@ -9520,6 +9849,71 @@ "smithy.api#output": {} } }, + "com.amazonaws.iam#ListOrganizationsFeatures": { + "type": "operation", + "input": { + "target": "com.amazonaws.iam#ListOrganizationsFeaturesRequest" + }, + "output": { + "target": "com.amazonaws.iam#ListOrganizationsFeaturesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.iam#AccountNotManagementOrDelegatedAdministratorException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException" + }, + { + "target": "com.amazonaws.iam#ServiceAccessNotEnabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the centralized root access features enabled for your organization. For more\n information, see Centrally manage root access for member accounts.

", + "smithy.api#examples": [ + { + "title": "To list the centralized root access features enabled for your organization", + "documentation": "he following command lists the centralized root access features enabled for your organization.", + "output": { + "OrganizationId": "o-aa111bb222", + "EnabledFeatures": [ + "RootCredentialsManagement" + ] + } + } + ] + } + }, + "com.amazonaws.iam#ListOrganizationsFeaturesRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.iam#ListOrganizationsFeaturesResponse": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.iam#OrganizationIdType", + "traits": { + "smithy.api#documentation": "

The unique identifier (ID) of an organization.

" + } + }, + "EnabledFeatures": { + "target": "com.amazonaws.iam#FeaturesListType", + "traits": { + "smithy.api#documentation": "

Specifies the features that are currently available in your organization.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.iam#ListPolicies": { "type": "operation", "input": { @@ -11332,6 +11726,42 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.iam#OrganizationIdType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 34 + }, + "smithy.api#pattern": "^o-[a-z0-9]{10,32}$" + } + }, + "com.amazonaws.iam#OrganizationNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because no organization is associated with your account.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.iam#OrganizationNotInAllFeaturesModeException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because your organization does not have All features enabled. For\n more information, see Available feature sets in the Organizations User\n Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.iam#OrganizationsDecisionDetail": { "type": "structure", "members": { @@ -13011,6 +13441,19 @@ "smithy.api#documentation": "

Contains information about a server certificate without its certificate body,\n certificate chain, and private key.

\n

This data type is used as a response element in the UploadServerCertificate and ListServerCertificates\n operations.

" } }, + "com.amazonaws.iam#ServiceAccessNotEnabledException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.iam#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

The request was rejected because trusted access is not enabled for IAM in Organizations. For details, see IAM and Organizations in the Organizations User Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.iam#ServiceFailureException": { "type": "structure", "members": { @@ -16844,6 +17287,12 @@ "smithy.api#enumValue": "AccountAccessKeysPresent" } }, + "AccountPasswordPresent": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AccountPasswordPresent" + } + }, "AccountSigningCertificatesPresent": { "target": "smithy.api#Unit", "traits": { diff --git a/codegen/sdk-codegen/aws-models/iot-wireless.json b/codegen/sdk-codegen/aws-models/iot-wireless.json index 92d58ae8835..07a6bf4f841 100644 --- a/codegen/sdk-codegen/aws-models/iot-wireless.json +++ b/codegen/sdk-codegen/aws-models/iot-wireless.json @@ -1610,6 +1610,9 @@ }, "FragmentIntervalMS": { "target": "com.amazonaws.iotwireless#FragmentIntervalMS" + }, + "Descriptor": { + "target": "com.amazonaws.iotwireless#FileDescriptor" } }, "traits": { @@ -4229,6 +4232,12 @@ "com.amazonaws.iotwireless#EventNotificationResourceType": { "type": "enum", "members": { + "FuotaTask": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FuotaTask" + } + }, "SidewalkAccount": { "target": "smithy.api#Unit", "traits": { @@ -4362,6 +4371,17 @@ "com.amazonaws.iotwireless#FactorySupport": { "type": "boolean" }, + "com.amazonaws.iotwireless#FileDescriptor": { + "type": "string", + "traits": { + "smithy.api#documentation": "

The Descriptor specifies some metadata about the File being transferred using FUOTA e.g. the software version.\n It is sent transparently to the device. It is a binary field encoded in base64

", + "smithy.api#length": { + "min": 0, + "max": 332 + }, + "smithy.api#pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" + } + }, "com.amazonaws.iotwireless#Fingerprint": { "type": "string", "traits": { @@ -4518,6 +4538,49 @@ } } }, + "com.amazonaws.iotwireless#FuotaTaskEvent": { + "type": "enum", + "members": { + "Fuota": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Fuota" + } + } + }, + "traits": { + "smithy.api#documentation": "

The event for a log message, if the log message is tied to a fuota task.

" + } + }, + "com.amazonaws.iotwireless#FuotaTaskEventLogOption": { + "type": "structure", + "members": { + "Event": { + "target": "com.amazonaws.iotwireless#FuotaTaskEvent", + "traits": { + "smithy.api#required": {} + } + }, + "LogLevel": { + "target": "com.amazonaws.iotwireless#LogLevel", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The log options for a FUOTA task event and can be used to set log levels for a\n specific fuota task event.

\n

For a LoRaWAN FuotaTask type, possible event for a log message is Fuota.

" + } + }, + "com.amazonaws.iotwireless#FuotaTaskEventLogOptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.iotwireless#FuotaTaskEventLogOption" + }, + "traits": { + "smithy.api#documentation": "

The list of FUOTA task event log options.

" + } + }, "com.amazonaws.iotwireless#FuotaTaskId": { "type": "string", "traits": { @@ -4537,6 +4600,39 @@ "smithy.api#documentation": "

Lists the FUOTA tasks registered to your AWS account.

" } }, + "com.amazonaws.iotwireless#FuotaTaskLogOption": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.iotwireless#FuotaTaskType", + "traits": { + "smithy.api#documentation": "

The fuota task type.

", + "smithy.api#required": {} + } + }, + "LogLevel": { + "target": "com.amazonaws.iotwireless#LogLevel", + "traits": { + "smithy.api#required": {} + } + }, + "Events": { + "target": "com.amazonaws.iotwireless#FuotaTaskEventLogOptionList" + } + }, + "traits": { + "smithy.api#documentation": "

The log options for fuota tasks and can be used to set log levels for a specific\n type of fuota task.

" + } + }, + "com.amazonaws.iotwireless#FuotaTaskLogOptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.iotwireless#FuotaTaskLogOption" + }, + "traits": { + "smithy.api#documentation": "

The list of fuota task log options.

" + } + }, "com.amazonaws.iotwireless#FuotaTaskName": { "type": "string", "traits": { @@ -4585,6 +4681,20 @@ "smithy.api#documentation": "

The status of a FUOTA task.

" } }, + "com.amazonaws.iotwireless#FuotaTaskType": { + "type": "enum", + "members": { + "LoRaWAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LoRaWAN" + } + } + }, + "traits": { + "smithy.api#documentation": "

The fuota task type.

" + } + }, "com.amazonaws.iotwireless#GPST": { "type": "float" }, @@ -4622,6 +4732,18 @@ "smithy.api#documentation": "

Gateway list item object that specifies the frequency and list of gateways for which\n the downlink message should be sent.

" } }, + "com.amazonaws.iotwireless#GatewayListMulticast": { + "type": "list", + "member": { + "target": "com.amazonaws.iotwireless#WirelessGatewayId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, "com.amazonaws.iotwireless#GatewayMaxEirp": { "type": "float", "traits": { @@ -4991,6 +5113,9 @@ }, "FragmentIntervalMS": { "target": "com.amazonaws.iotwireless#FragmentIntervalMS" + }, + "Descriptor": { + "target": "com.amazonaws.iotwireless#FileDescriptor" } }, "traits": { @@ -5049,6 +5174,9 @@ }, "WirelessDeviceLogOptions": { "target": "com.amazonaws.iotwireless#WirelessDeviceLogOptionList" + }, + "FuotaTaskLogOptions": { + "target": "com.amazonaws.iotwireless#FuotaTaskLogOptionList" } }, "traits": { @@ -5896,7 +6024,7 @@ } ], "traits": { - "smithy.api#documentation": "

Fetches the log-level override, if any, for a given resource-ID and resource-type. It\n can be used for a wireless device or a wireless gateway.

", + "smithy.api#documentation": "

Fetches the log-level override, if any, for a given resource-ID and resource-type. It\n can be used for a wireless device, wireless gateway or fuota task.

", "smithy.api#http": { "method": "GET", "uri": "/log-levels/{ResourceIdentifier}", @@ -5917,7 +6045,7 @@ "ResourceType": { "target": "com.amazonaws.iotwireless#ResourceType", "traits": { - "smithy.api#documentation": "

The type of the resource, which can be WirelessDevice or\n WirelessGateway.

", + "smithy.api#documentation": "

The type of the resource, which can be WirelessDevice,\n WirelessGateway or FuotaTask.

", "smithy.api#httpQuery": "resourceType", "smithy.api#required": {} } @@ -7277,6 +7405,12 @@ "smithy.api#enumValue": "DevEui" } }, + "FuotaTaskId": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FuotaTaskId" + } + }, "GatewayEui": { "target": "smithy.api#Unit", "traits": { @@ -9533,6 +9667,9 @@ }, "DlClass": { "target": "com.amazonaws.iotwireless#DlClass" + }, + "ParticipatingGateways": { + "target": "com.amazonaws.iotwireless#ParticipatingGatewaysMulticast" } }, "traits": { @@ -9553,6 +9690,9 @@ }, "NumberOfDevicesInGroup": { "target": "com.amazonaws.iotwireless#NumberOfDevicesInGroup" + }, + "ParticipatingGateways": { + "target": "com.amazonaws.iotwireless#ParticipatingGatewaysMulticast" } }, "traits": { @@ -10903,6 +11043,26 @@ "smithy.api#documentation": "

Specify the list of gateways to which you want to send downlink data traffic when the\n wireless device is running in class B or class C mode.

" } }, + "com.amazonaws.iotwireless#ParticipatingGatewaysMulticast": { + "type": "structure", + "members": { + "GatewayList": { + "target": "com.amazonaws.iotwireless#GatewayListMulticast", + "traits": { + "smithy.api#documentation": "

The list of gateways that you want to use for sending the multicast downlink. Each downlink will be\n sent to all the gateways in the list with transmission interval between them. If list is empty the gateway\n list will be dynamically selected similar to the case of no ParticipatingGateways\n

" + } + }, + "TransmissionInterval": { + "target": "com.amazonaws.iotwireless#TransmissionIntervalMulticast", + "traits": { + "smithy.api#documentation": "

The duration of time for which AWS IoT Core for LoRaWAN will wait before transmitting\n the multicast payload to the next gateway in the list.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specify the list of gateways to which you want to send the multicast downlink messages.\n The multicast message will be sent to each gateway in the sequence provided in the list.

" + } + }, "com.amazonaws.iotwireless#PartnerAccountArn": { "type": "string" }, @@ -11385,7 +11545,7 @@ "ResourceType": { "target": "com.amazonaws.iotwireless#ResourceType", "traits": { - "smithy.api#documentation": "

The type of the resource, which can be WirelessDevice or\n WirelessGateway.

", + "smithy.api#documentation": "

The type of the resource, which can be WirelessDevice,\n WirelessGateway, or FuotaTask.

", "smithy.api#httpQuery": "resourceType", "smithy.api#required": {} } @@ -11529,7 +11689,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the log-level overrides for all resources; both wireless devices and wireless\n gateways.

", + "smithy.api#documentation": "

Removes the log-level overrides for all resources; wireless devices, wireless\n gateways, and fuota tasks.

", "smithy.api#http": { "method": "DELETE", "uri": "/log-levels", @@ -11577,7 +11737,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the log-level override, if any, for a specific resource-ID and resource-type.\n It can be used for a wireless device or a wireless gateway.

", + "smithy.api#documentation": "

Removes the log-level override, if any, for a specific resource-ID and resource-type.\n It can be used for a wireless device, a wireless gateway, or a fuota task.

", "smithy.api#http": { "method": "DELETE", "uri": "/log-levels/{ResourceIdentifier}", @@ -11598,7 +11758,7 @@ "ResourceType": { "target": "com.amazonaws.iotwireless#ResourceType", "traits": { - "smithy.api#documentation": "

The type of the resource, which can be WirelessDevice or\n WirelessGateway.

", + "smithy.api#documentation": "

The type of the resource, which can be WirelessDevice,\n WirelessGateway, or FuotaTask.

", "smithy.api#httpQuery": "resourceType", "smithy.api#required": {} } @@ -13678,6 +13838,15 @@ } } }, + "com.amazonaws.iotwireless#TransmissionIntervalMulticast": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 60000 + } + } + }, "com.amazonaws.iotwireless#TransmitMode": { "type": "integer", "traits": { @@ -14081,6 +14250,9 @@ }, "FragmentIntervalMS": { "target": "com.amazonaws.iotwireless#FragmentIntervalMS" + }, + "Descriptor": { + "target": "com.amazonaws.iotwireless#FileDescriptor" } }, "traits": { @@ -14137,6 +14309,9 @@ "DefaultLogLevel": { "target": "com.amazonaws.iotwireless#LogLevel" }, + "FuotaTaskLogOptions": { + "target": "com.amazonaws.iotwireless#FuotaTaskLogOptionList" + }, "WirelessDeviceLogOptions": { "target": "com.amazonaws.iotwireless#WirelessDeviceLogOptionList" }, diff --git a/codegen/sdk-codegen/aws-models/ivs.json b/codegen/sdk-codegen/aws-models/ivs.json index bd40fc7c47f..eb1f138452d 100644 --- a/codegen/sdk-codegen/aws-models/ivs.json +++ b/codegen/sdk-codegen/aws-models/ivs.json @@ -896,10 +896,22 @@ "smithy.api#default": 0, "smithy.api#documentation": "

Number of audio channels.

" } + }, + "track": { + "target": "com.amazonaws.ivs#String", + "traits": { + "smithy.api#documentation": "

Name of the audio track (if the stream has an audio track). If multitrack is not enabled, this is track0 (the sole track).

" + } } }, "traits": { - "smithy.api#documentation": "

Object specifying a stream’s audio configuration, as set up by the broadcaster (usually in\n an encoder). This is part of the IngestConfiguration object and used for\n monitoring stream health.

" + "smithy.api#documentation": "

Object specifying a stream’s audio configuration, as set up by the broadcaster (usually in an encoder). This is part of the IngestConfigurations object and the deprecated IngestConfiguration object. It is used for monitoring stream health.

" + } + }, + "com.amazonaws.ivs#AudioConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ivs#AudioConfiguration" } }, "com.amazonaws.ivs#BatchError": { @@ -1249,6 +1261,18 @@ "traits": { "smithy.api#documentation": "

Playback-restriction-policy ARN. A valid ARN value here both specifies the ARN and enables\n playback restriction. Default: \"\" (empty string, no playback restriction policy is\n applied).

" } + }, + "multitrackInputConfiguration": { + "target": "com.amazonaws.ivs#MultitrackInputConfiguration", + "traits": { + "smithy.api#documentation": "

Object specifying multitrack input configuration. Default: no multitrack input configuration is specified.

" + } + }, + "containerFormat": { + "target": "com.amazonaws.ivs#ContainerFormat", + "traits": { + "smithy.api#documentation": "

Indicates which content-packaging format is used (MPEG-TS or fMP4). If multitrackInputConfiguration is specified and enabled is true, then containerFormat is required and must be set to FRAGMENTED_MP4. Otherwise, containerFormat may be set to TS or FRAGMENTED_MP4. Default: TS.

" + } } }, "traits": { @@ -1465,6 +1489,21 @@ "smithy.api#httpError": 409 } }, + "com.amazonaws.ivs#ContainerFormat": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "TS", + "name": "TS" + }, + { + "value": "FRAGMENTED_MP4", + "name": "FragmentedMP4" + } + ] + } + }, "com.amazonaws.ivs#CreateChannel": { "type": "operation", "input": { @@ -1556,6 +1595,18 @@ "traits": { "smithy.api#documentation": "

Playback-restriction-policy ARN. A valid ARN value here both specifies the ARN and enables playback restriction.\n Default: \"\" (empty string, no playback restriction policy is applied).

" } + }, + "multitrackInputConfiguration": { + "target": "com.amazonaws.ivs#MultitrackInputConfiguration", + "traits": { + "smithy.api#documentation": "

Object specifying multitrack input configuration. Default: no multitrack input configuration is specified.

" + } + }, + "containerFormat": { + "target": "com.amazonaws.ivs#ContainerFormat", + "traits": { + "smithy.api#documentation": "

Indicates which content-packaging format is used (MPEG-TS or fMP4). If multitrackInputConfiguration is specified and enabled is true, then containerFormat is required and must be set to FRAGMENTED_MP4. Otherwise, containerFormat may be set to TS or FRAGMENTED_MP4. Default: TS.

" + } } } }, @@ -2520,7 +2571,29 @@ } }, "traits": { - "smithy.api#documentation": "

Object specifying the ingest configuration set up by the broadcaster, usually in an\n encoder.

" + "smithy.api#documentation": "

Object specifying the ingest configuration set up by the broadcaster, usually in an\n encoder.

\n

\n Note: IngestConfiguration is deprecated in favor of IngestConfigurations but retained to ensure backward compatibility. If multitrack is not enabled, IngestConfiguration and IngestConfigurations contain the same data, namely information about track0 (the sole track). If multitrack is enabled, IngestConfiguration contains data for only the first track (track0) and IngestConfigurations contains data for all tracks.

" + } + }, + "com.amazonaws.ivs#IngestConfigurations": { + "type": "structure", + "members": { + "videoConfigurations": { + "target": "com.amazonaws.ivs#VideoConfigurationList", + "traits": { + "smithy.api#documentation": "

Encoder settings for video

", + "smithy.api#required": {} + } + }, + "audioConfigurations": { + "target": "com.amazonaws.ivs#AudioConfigurationList", + "traits": { + "smithy.api#documentation": "

Encoder settings for audio.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Object specifying the ingest configuration set up by the broadcaster, usually in an encoder.

\n

\n Note: Use IngestConfigurations instead of IngestConfiguration (which is deprecated). If multitrack is not enabled, IngestConfiguration and IngestConfigurations contain the same data, namely information about track0 (the sole track). If multitrack is enabled, IngestConfiguration contains data for only the first track (track0) and IngestConfigurations contains data for all tracks.

" } }, "com.amazonaws.ivs#IngestEndpoint": { @@ -2560,6 +2633,12 @@ "smithy.api#default": false } }, + "com.amazonaws.ivs#IsMultitrackInputEnabled": { + "type": "boolean", + "traits": { + "smithy.api#default": false + } + }, "com.amazonaws.ivs#ListChannels": { "type": "operation", "input": { @@ -3184,6 +3263,73 @@ } } }, + "com.amazonaws.ivs#MultitrackInputConfiguration": { + "type": "structure", + "members": { + "enabled": { + "target": "com.amazonaws.ivs#IsMultitrackInputEnabled", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether multitrack input is enabled. Can be set to true only if channel type is STANDARD. Setting enabled to true with any other channel type will cause an exception. If true, then policy, maximumResolution, and containerFormat are required, and containerFormat must be set to FRAGMENTED_MP4. Default: false.

" + } + }, + "policy": { + "target": "com.amazonaws.ivs#MultitrackPolicy", + "traits": { + "smithy.api#documentation": "

Indicates whether multitrack input is allowed or required. Required if enabled is true.

" + } + }, + "maximumResolution": { + "target": "com.amazonaws.ivs#MultitrackMaximumResolution", + "traits": { + "smithy.api#documentation": "

Maximum resolution for multitrack input. Required if enabled is true.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A complex type that specifies multitrack input configuration.

" + } + }, + "com.amazonaws.ivs#MultitrackMaximumResolution": { + "type": "enum", + "members": { + "SD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SD" + } + }, + "HD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HD" + } + }, + "FULL_HD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FULL_HD" + } + } + } + }, + "com.amazonaws.ivs#MultitrackPolicy": { + "type": "enum", + "members": { + "ALLOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALLOW" + } + }, + "REQUIRE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REQUIRE" + } + } + } + }, "com.amazonaws.ivs#PaginationToken": { "type": "string", "traits": { @@ -4041,7 +4187,7 @@ "code": { "target": "com.amazonaws.ivs#String", "traits": { - "smithy.api#documentation": "

Provides additional details about the stream event. There are several values; note that \n\t\t\tthe long descriptions are provided in the IVS console but not delivered through \n\t \t the IVS API or EventBridge:

\n
    \n
  • \n

    \n StreamTakeoverMediaMismatch — The broadcast client attempted to take over \n\t\t\twith different media properties (e.g., codec, resolution, or video track type) from the \n\t\t\toriginal stream.

    \n
  • \n
  • \n

    \n StreamTakeoverInvalidPriority — The broadcast client attempted a takeover \n\t\t\twith either a priority integer value equal to or lower than the original stream's value or a value outside \n\t\t\tthe allowed range of 1 to 2,147,483,647.

    \n
  • \n
  • \n

    \n StreamTakeoverLimitBreached — The broadcast client reached the maximum allowed \n\t\t\ttakeover attempts for this stream.

    \n
  • \n
" + "smithy.api#documentation": "

Provides additional details about the stream event. There are several values; the long descriptions are provided in the IVS console but not delivered through the IVS API or EventBridge. Multitrack-related codes are used only for certain Session Ended events.

\n
    \n
  • \n

    \n MultitrackInputNotAllowed — The broadcast client attempted to connect with multitrack input, but multitrack input was not enabled on the channel. Check your broadcast software settings or set MultitrackInputConfiguration.Policy to ALLOW or REQUIRE.

    \n
  • \n
  • \n

    \n MultitrackInputRequired — The broadcast client attempted to connect with single-track video, but multitrack input is required on this channel. Enable multitrack video in your broadcast software or configure the channel’s MultitrackInputConfiguration.Policy to ALLOW.

    \n
  • \n
  • \n

    \n InvalidGetClientConfigurationStreamKey — The broadcast client attempted to connect with an invalid, expired, or corrupt stream key.

    \n
  • \n
  • \n

    \n GetClientConfigurationStreamKeyRequired — The broadcast client attempted to stream multitrack video without providing an authenticated stream key from GetClientConfiguration.

    \n
  • \n
  • \n

    \n InvalidMultitrackInputTrackCount — The multitrack input stream contained an invalid number of tracks.

    \n
  • \n
  • \n

    \n InvalidMultitrackInputVideoTrackMediaProperties — The multitrack input stream contained one or more tracks with an invalid codec, resolution, bitrate, or framerate.

    \n
  • \n
  • \n

    \n StreamTakeoverMediaMismatch — The broadcast client attempted to take over with different media properties (e.g., codec, resolution, or video track type) from the original stream.

    \n
  • \n
  • \n

    \n StreamTakeoverInvalidPriority — The broadcast client attempted a takeover with either a priority integer value equal to or lower than the original stream's value or a value outside the allowed range of 1 to 2,147,483,647.

    \n

    \n StreamTakeoverLimitBreached — The broadcast client reached the maximum allowed takeover attempts for this stream.

    \n
  • \n
" } } }, @@ -4246,7 +4392,13 @@ "ingestConfiguration": { "target": "com.amazonaws.ivs#IngestConfiguration", "traits": { - "smithy.api#documentation": "

The properties of the incoming RTMP stream for the stream.

" + "smithy.api#documentation": "

The properties of the incoming RTMP stream.

\n

\n Note:\n ingestConfiguration is deprecated in favor of ingestConfigurations but retained to ensure backward compatibility. If multitrack is not enabled, ingestConfiguration and ingestConfigurations contain the same data, namely information about track0 (the sole track). If multitrack is enabled, ingestConfiguration contains data for only the first track (track0) and ingestConfigurations contains data for all tracks.

" + } + }, + "ingestConfigurations": { + "target": "com.amazonaws.ivs#IngestConfigurations", + "traits": { + "smithy.api#documentation": "

The properties of the incoming RTMP stream. If multitrack is enabled, ingestConfigurations contains data for all tracks; otherwise, it contains data only for track0 (the sole track).

" } }, "recordingConfiguration": { @@ -4528,7 +4680,7 @@ "targetIntervalSeconds": { "target": "com.amazonaws.ivs#TargetIntervalSeconds", "traits": { - "smithy.api#documentation": "

The targeted thumbnail-generation interval in seconds. This is configurable (and required)\n only if recordingMode is INTERVAL. Default: 60.

\n

\n Important: For the BASIC channel type,\n setting a value for targetIntervalSeconds does not guarantee that thumbnails are\n generated at the specified interval. For thumbnails to be generated at the\n targetIntervalSeconds interval, the IDR/Keyframe value for the\n input video must be less than the targetIntervalSeconds value. See Amazon IVS Streaming\n Configuration for information on setting IDR/Keyframe to the\n recommended value in video-encoder settings.

" + "smithy.api#documentation": "

The targeted thumbnail-generation interval in seconds. This is configurable (and required)\n only if recordingMode is INTERVAL. Default: 60.

\n

\n Important: For the BASIC channel type,\n or the STANDARD channel type with multitrack input,\n setting a value for targetIntervalSeconds does not guarantee that thumbnails are\n generated at the specified interval. For thumbnails to be generated at the\n targetIntervalSeconds interval, the IDR/Keyframe value for the\n input video must be less than the targetIntervalSeconds value. See Amazon IVS Streaming\n Configuration for information on setting IDR/Keyframe to the\n recommended value in video-encoder settings.

" } }, "resolution": { @@ -4766,6 +4918,18 @@ "traits": { "smithy.api#documentation": "

Playback-restriction-policy ARN. A valid ARN value here both specifies the ARN and enables playback restriction.\n If this is set to an empty string, playback restriction policy is disabled.

" } + }, + "multitrackInputConfiguration": { + "target": "com.amazonaws.ivs#MultitrackInputConfiguration", + "traits": { + "smithy.api#documentation": "

Object specifying multitrack input configuration. Default: no multitrack input configuration is specified.

" + } + }, + "containerFormat": { + "target": "com.amazonaws.ivs#ContainerFormat", + "traits": { + "smithy.api#documentation": "

Indicates which content-packaging format is used (MPEG-TS or fMP4). If multitrackInputConfiguration is specified and enabled is true, then containerFormat is required and must be set to FRAGMENTED_MP4. Otherwise, containerFormat may be set to TS or FRAGMENTED_MP4. Default: TS.

" + } } } }, @@ -4936,10 +5100,34 @@ "smithy.api#default": 0, "smithy.api#documentation": "

Video-resolution width in pixels.

" } + }, + "level": { + "target": "com.amazonaws.ivs#String", + "traits": { + "smithy.api#documentation": "

Indicates the degree of required decoder performance for a profile. Normally this is set automatically by the encoder. When an AVC codec is used, this field has the same value as avcLevel.

" + } + }, + "track": { + "target": "com.amazonaws.ivs#String", + "traits": { + "smithy.api#documentation": "

Name of the video track. If multitrack is not enabled, this is track0 (the sole track).

" + } + }, + "profile": { + "target": "com.amazonaws.ivs#String", + "traits": { + "smithy.api#documentation": "

Indicates to the decoder the requirements for decoding the stream. When an AVC codec is used, this field has the same value as avcProfile.

" + } } }, "traits": { - "smithy.api#documentation": "

Object specifying a stream’s video configuration, as set up by the broadcaster (usually in\n an encoder). This is part of the IngestConfiguration object and used for\n monitoring stream health.

" + "smithy.api#documentation": "

Object specifying a stream’s video configuration, as set up by the broadcaster (usually in\n an encoder). This is part of the IngestConfigurations object and the deprecated\n IngestConfiguration object. It is used for monitoring stream health.\n

" + } + }, + "com.amazonaws.ivs#VideoConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ivs#VideoConfiguration" } }, "com.amazonaws.ivs#ViewerId": { diff --git a/codegen/sdk-codegen/aws-models/license-manager-user-subscriptions.json b/codegen/sdk-codegen/aws-models/license-manager-user-subscriptions.json index db82722fba1..bd0cd0097a6 100644 --- a/codegen/sdk-codegen/aws-models/license-manager-user-subscriptions.json +++ b/codegen/sdk-codegen/aws-models/license-manager-user-subscriptions.json @@ -17,16 +17,87 @@ "type": "structure", "members": { "DirectoryId": { - "target": "smithy.api#String", + "target": "com.amazonaws.licensemanagerusersubscriptions#Directory", "traits": { "smithy.api#documentation": "

The directory ID for an Active Directory identity provider.

" } + }, + "ActiveDirectorySettings": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ActiveDirectorySettings", + "traits": { + "smithy.api#documentation": "

The ActiveDirectorySettings resource contains details about \n\t\t\tthe Active Directory, including network access details such as domain name and IP \n\t\t\taddresses, and the credential provider for user administration.

" + } + }, + "ActiveDirectoryType": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ActiveDirectoryType", + "traits": { + "smithy.api#documentation": "

The type of Active Directory – either a self-managed Active Directory or an \n\t\t\tAmazon Web Services Managed Active Directory.

" + } } }, "traits": { "smithy.api#documentation": "

Details about an Active Directory identity provider.

" } }, + "com.amazonaws.licensemanagerusersubscriptions#ActiveDirectorySettings": { + "type": "structure", + "members": { + "DomainName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The domain name for the Active Directory.

" + } + }, + "DomainIpv4List": { + "target": "com.amazonaws.licensemanagerusersubscriptions#IpV4List", + "traits": { + "smithy.api#documentation": "

A list of domain IPv4 addresses that are used for the Active Directory.

", + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, + "DomainCredentialsProvider": { + "target": "com.amazonaws.licensemanagerusersubscriptions#CredentialsProvider", + "traits": { + "smithy.api#documentation": "

Points to the CredentialsProvider resource that contains \n\t\t\tinformation about the credential provider for user administration.

" + } + }, + "DomainNetworkSettings": { + "target": "com.amazonaws.licensemanagerusersubscriptions#DomainNetworkSettings", + "traits": { + "smithy.api#documentation": "

The DomainNetworkSettings resource contains an array of \n\t\t\tsubnets that apply for the Active Directory.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains network access and credential details that are needed for \n\t\t\tuser administration in the Active Directory.

" + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ActiveDirectoryType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "SELF_MANAGED", + "value": "SELF_MANAGED", + "documentation": "SELF_MANAGED type of Active Directory" + }, + { + "name": "AWS_MANAGED", + "value": "AWS_MANAGED", + "documentation": "AWS_MANAGED type of Active Directory" + } + ] + } + }, + "com.amazonaws.licensemanagerusersubscriptions#Arn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{1,63}:[a-zA-Z0-9-\\.]{1,510}/[a-zA-Z0-9-\\.]{1,510}$" + } + }, "com.amazonaws.licensemanagerusersubscriptions#AssociateUser": { "type": "operation", "input": { @@ -59,7 +130,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates the user to an EC2 instance to utilize user-based subscriptions.

\n \n

Your estimated bill for charges on the number of users and related costs will take 48\n hours to appear for billing periods that haven't closed (marked as Pending billing status) in Amazon Web Services Billing. For more information, see Viewing your\n monthly charges in the Amazon Web Services Billing User Guide.

\n
", + "smithy.api#documentation": "

Associates the user to an EC2 instance to utilize user-based subscriptions.

\n \n

Your estimated bill for charges on the number of users and related costs will take 48\n\t\t\thours to appear for billing periods that haven't closed (marked as Pending billing status) in Amazon Web Services Billing. For more information, see Viewing your\n\t\t\t\tmonthly charges in the Amazon Web Services Billing User Guide.

\n
", "smithy.api#http": { "code": 200, "method": "POST", @@ -74,30 +145,39 @@ "Username": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The user name from the identity provider for the user.

", + "smithy.api#documentation": "

The user name from the identity provider.

", "smithy.api#required": {} } }, "InstanceId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The ID of the EC2 instance, which provides user-based subscriptions.

", + "smithy.api#documentation": "

The ID of the EC2 instance that provides the user-based subscription.

", "smithy.api#required": {} } }, "IdentityProvider": { "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProvider", "traits": { - "smithy.api#documentation": "

The identity provider of the user.

", + "smithy.api#documentation": "

The identity provider for the user.

", "smithy.api#required": {} } }, "Domain": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The domain name of the user.

" + "smithy.api#documentation": "

The domain name of the Active Directory that contains information for the user to associate.

" + } + }, + "Tags": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Tags", + "traits": { + "smithy.api#documentation": "

The tags that apply for the user association.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#AssociateUserResponse": { @@ -110,6 +190,9 @@ "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.licensemanagerusersubscriptions#BoxInteger": { @@ -123,10 +206,190 @@ } }, "traits": { - "smithy.api#documentation": "

The request couldn't be completed because it conflicted with the current state of the\n resource.

", + "smithy.api#documentation": "

The request couldn't be completed because it conflicted with the current state of the\n\t\t\tresource.

", "smithy.api#error": "server" } }, + "com.amazonaws.licensemanagerusersubscriptions#CreateLicenseServerEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanagerusersubscriptions#CreateLicenseServerEndpointRequest" + }, + "output": { + "target": "com.amazonaws.licensemanagerusersubscriptions#CreateLicenseServerEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanagerusersubscriptions#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ConflictException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#InternalServerException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ThrottlingException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a network endpoint for the Remote Desktop Services (RDS) license server.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/license-server/CreateLicenseServerEndpoint" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#CreateLicenseServerEndpointRequest": { + "type": "structure", + "members": { + "IdentityProviderArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the IdentityProvider resource that contains details \n\t\t\tabout a registered identity provider. In the case of Active Directory, that can be \n\t\t\ta self-managed Active Directory or an Amazon Web Services Managed Active Directory that contains user identity details.

", + "smithy.api#required": {} + } + }, + "LicenseServerSettings": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServerSettings", + "traits": { + "smithy.api#documentation": "

The LicenseServerSettings resource to create for the endpoint. The \n\t\t\tsettings include the type of license server and the Secrets Manager secret that \n\t\t\tenables administrators to add or remove users associated with the \n\t\t\tlicense server.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Tags", + "traits": { + "smithy.api#documentation": "

The tags that apply for the license server endpoint.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#CreateLicenseServerEndpointResponse": { + "type": "structure", + "members": { + "IdentityProviderArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the identity provider specified in the request.

" + } + }, + "LicenseServerEndpointArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the LicenseServerEndpoint resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#CredentialsProvider": { + "type": "union", + "members": { + "SecretsManagerCredentialsProvider": { + "target": "com.amazonaws.licensemanagerusersubscriptions#SecretsManagerCredentialsProvider", + "traits": { + "smithy.api#documentation": "

Identifies the Secrets Manager secret that contains credentials needed for \n\t\t\tuser administration in the Active Directory.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains information about the credential provider for user \n\t\t\tadministration.

" + } + }, + "com.amazonaws.licensemanagerusersubscriptions#DeleteLicenseServerEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanagerusersubscriptions#DeleteLicenseServerEndpointRequest" + }, + "output": { + "target": "com.amazonaws.licensemanagerusersubscriptions#DeleteLicenseServerEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanagerusersubscriptions#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ConflictException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#InternalServerException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ThrottlingException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a LicenseServerEndpoint resource.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/license-server/DeleteLicenseServerEndpoint" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#DeleteLicenseServerEndpointRequest": { + "type": "structure", + "members": { + "LicenseServerEndpointArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the LicenseServerEndpoint \n\t\t\tresource to delete.

", + "smithy.api#required": {} + } + }, + "ServerType": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ServerType", + "traits": { + "smithy.api#documentation": "

The type of License Server that the delete request refers to.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#DeleteLicenseServerEndpointResponse": { + "type": "structure", + "members": { + "LicenseServerEndpoint": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpoint", + "traits": { + "smithy.api#documentation": "

Shows details from the LicenseServerEndpoint resource that was deleted.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.licensemanagerusersubscriptions#DeregisterIdentityProvider": { "type": "operation", "input": { @@ -159,7 +422,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deregisters the identity provider from providing user-based subscriptions.

", + "smithy.api#documentation": "

Deregisters the Active Directory identity provider from License Manager user-based subscriptions.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -174,17 +437,24 @@ "IdentityProvider": { "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProvider", "traits": { - "smithy.api#documentation": "

An object that specifies details for the identity provider.

", - "smithy.api#required": {} + "smithy.api#documentation": "

An object that specifies details for the Active Directory identity provider.

" } }, "Product": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the user-based subscription product.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the user-based subscription product.

\n

Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS\n

" + } + }, + "IdentityProviderArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the identity provider to deregister.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#DeregisterIdentityProviderResponse": { @@ -197,6 +467,15 @@ "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#Directory": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(d|sd)-[0-9a-f]{10}$" } }, "com.amazonaws.licensemanagerusersubscriptions#DisassociateUser": { @@ -246,30 +525,36 @@ "Username": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The user name from the identity provider for the user.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The user name from the Active Directory identity provider for the user.

" } }, "InstanceId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The ID of the EC2 instance, which provides user-based subscriptions.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The ID of the EC2 instance which provides user-based subscriptions.

" } }, "IdentityProvider": { "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProvider", "traits": { - "smithy.api#documentation": "

An object that specifies details for the identity provider.

", - "smithy.api#required": {} + "smithy.api#documentation": "

An object that specifies details for the Active Directory identity provider.

" + } + }, + "InstanceUserArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the user to disassociate from the EC2 instance.

" } }, "Domain": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The domain name of the user.

" + "smithy.api#documentation": "

The domain name of the Active Directory that contains information for the user to disassociate.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#DisassociateUserResponse": { @@ -282,6 +567,27 @@ "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#DomainNetworkSettings": { + "type": "structure", + "members": { + "Subnets": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Subnets", + "traits": { + "smithy.api#documentation": "

Contains a list of subnets that apply for the Active Directory domain.

", + "smithy.api#length": { + "min": 1 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains network settings for the Active Directory domain.

" } }, "com.amazonaws.licensemanagerusersubscriptions#Filter": { @@ -307,7 +613,7 @@ } }, "traits": { - "smithy.api#documentation": "

A filter name and value pair that is used to return more specific results from a describe\n operation. Filters can be used to match a set of resources by specific criteria, such as tags,\n attributes, or IDs.

" + "smithy.api#documentation": "

A filter name and value pair that is used to return more specific results from a describe\n\t\t\tor list operation. You can use filters can be used to match a set of resources by specific \n\t\t\tcriteria, such as tags, attributes, or IDs.

" } }, "com.amazonaws.licensemanagerusersubscriptions#FilterList": { @@ -322,12 +628,12 @@ "ActiveDirectoryIdentityProvider": { "target": "com.amazonaws.licensemanagerusersubscriptions#ActiveDirectoryIdentityProvider", "traits": { - "smithy.api#documentation": "

An object that details an Active Directory identity provider.

" + "smithy.api#documentation": "

The ActiveDirectoryIdentityProvider resource contains settings \n\t\t\tand other details about a specific Active Directory identity provider.

" } } }, "traits": { - "smithy.api#documentation": "

Details about an identity provider.

" + "smithy.api#documentation": "

Refers to an identity provider.

" } }, "com.amazonaws.licensemanagerusersubscriptions#IdentityProviderSummary": { @@ -336,14 +642,14 @@ "IdentityProvider": { "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProvider", "traits": { - "smithy.api#documentation": "

An object that specifies details for the identity provider.

", + "smithy.api#documentation": "

The IdentityProvider resource contains information about \n\t\t\tan identity provider.

", "smithy.api#required": {} } }, "Settings": { "target": "com.amazonaws.licensemanagerusersubscriptions#Settings", "traits": { - "smithy.api#documentation": "

An object that details the registered identity provider’s product related configuration\n settings such as the subnets to provision VPC endpoints.

", + "smithy.api#documentation": "

The Settings resource contains details about the registered \n\t\t\tidentity provider’s product related configuration settings, such as the \n\t\t\tsubnets to provision VPC endpoints.

", "smithy.api#required": {} } }, @@ -357,10 +663,16 @@ "Status": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The status of an identity provider.

", + "smithy.api#documentation": "

The status of the identity provider.

", "smithy.api#required": {} } }, + "IdentityProviderArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the identity provider.

" + } + }, "FailureMessage": { "target": "smithy.api#String", "traits": { @@ -438,14 +750,14 @@ "InstanceId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The ID of the EC2 instance, which provides user-based subscriptions.

", + "smithy.api#documentation": "

The ID of the EC2 instance that provides user-based subscriptions.

", "smithy.api#required": {} } }, "IdentityProvider": { "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProvider", "traits": { - "smithy.api#documentation": "

An object that specifies details for the identity provider.

", + "smithy.api#documentation": "

The IdentityProvider resource specifies details \n\t\t\tabout the identity provider.

", "smithy.api#required": {} } }, @@ -456,6 +768,12 @@ "smithy.api#required": {} } }, + "InstanceUserArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that identifies the instance user.

" + } + }, "StatusMessage": { "target": "smithy.api#String", "traits": { @@ -465,7 +783,7 @@ "Domain": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The domain name of the user.

" + "smithy.api#documentation": "

The domain name of the Active Directory that contains the user information for the product subscription.

" } }, "AssociationDate": { @@ -500,7 +818,20 @@ }, "traits": { "smithy.api#documentation": "

An exception occurred with the service.

", - "smithy.api#error": "server" + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.licensemanagerusersubscriptions#IpV4": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(?:(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(\\.(?!$)|$)){4}$" + } + }, + "com.amazonaws.licensemanagerusersubscriptions#IpV4List": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanagerusersubscriptions#IpV4" } }, "com.amazonaws.licensemanagerusersubscriptions#LicenseManagerUserSubscriptions": { @@ -510,6 +841,12 @@ { "target": "com.amazonaws.licensemanagerusersubscriptions#AssociateUser" }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#CreateLicenseServerEndpoint" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#DeleteLicenseServerEndpoint" + }, { "target": "com.amazonaws.licensemanagerusersubscriptions#DeregisterIdentityProvider" }, @@ -522,9 +859,15 @@ { "target": "com.amazonaws.licensemanagerusersubscriptions#ListInstances" }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ListLicenseServerEndpoints" + }, { "target": "com.amazonaws.licensemanagerusersubscriptions#ListProductSubscriptions" }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ListTagsForResource" + }, { "target": "com.amazonaws.licensemanagerusersubscriptions#ListUserAssociations" }, @@ -537,6 +880,12 @@ { "target": "com.amazonaws.licensemanagerusersubscriptions#StopProductSubscription" }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#TagResource" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#UntagResource" + }, { "target": "com.amazonaws.licensemanagerusersubscriptions#UpdateIdentityProviderSettings" } @@ -574,7 +923,7 @@ "x-amzn-trace-id" ] }, - "smithy.api#documentation": "

With License Manager, you can create user-based subscriptions to utilize licensed software with\n a per user subscription fee on Amazon EC2 instances.

", + "smithy.api#documentation": "

With License Manager, you can create user-based subscriptions to utilize licensed software with\n\t\ta per user subscription fee on Amazon EC2 instances.

", "smithy.api#title": "AWS License Manager User Subscriptions", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -618,7 +967,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -661,7 +1009,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -674,7 +1023,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -688,7 +1036,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -711,7 +1058,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -746,7 +1092,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -757,14 +1102,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -778,14 +1125,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -794,11 +1139,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -809,14 +1154,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -830,7 +1177,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -850,7 +1196,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -861,14 +1206,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -879,9 +1226,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -1206,6 +1555,190 @@ } } }, + "com.amazonaws.licensemanagerusersubscriptions#LicenseServer": { + "type": "structure", + "members": { + "ProvisioningStatus": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpointProvisioningStatus", + "traits": { + "smithy.api#documentation": "

The current state of the provisioning process for the RDS \n\t\t\tlicense server.

" + } + }, + "HealthStatus": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServerHealthStatus", + "traits": { + "smithy.api#documentation": "

The health status of the RDS license server.

" + } + }, + "Ipv4Address": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A list of domain IPv4 addresses that are used for the RDS \n\t\t\tlicense server.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a Remote Desktop Services (RDS) license server.

" + } + }, + "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpoint": { + "type": "structure", + "members": { + "IdentityProviderArn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the identity provider that's associated with \n\t\t\tthe RDS license server endpoint.

" + } + }, + "ServerType": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ServerType", + "traits": { + "smithy.api#documentation": "

The type of license server.

" + } + }, + "ServerEndpoint": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ServerEndpoint", + "traits": { + "smithy.api#documentation": "

The ServerEndpoint resource contains the network \n\t\t\taddress of the RDS license server endpoint.

" + } + }, + "StatusMessage": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The message associated with the provisioning status, if there is one.

" + } + }, + "LicenseServerEndpointId": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpointId", + "traits": { + "smithy.api#documentation": "

The ID of the license server endpoint.

" + } + }, + "LicenseServerEndpointArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The ARN of the ServerEndpoint resource for the RDS \n\t\t\tlicense server.

" + } + }, + "LicenseServerEndpointProvisioningStatus": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpointProvisioningStatus", + "traits": { + "smithy.api#documentation": "

The current state of the provisioning process for the RDS license \n\t\t\tserver endpoint

" + } + }, + "LicenseServers": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServerList", + "traits": { + "smithy.api#documentation": "

An array of LicenseServer resources that represent the \n\t\t\tlicense servers that are accessed through this endpoint.

" + } + }, + "CreationTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when License Manager created the license server endpoint.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about a network endpoint for a Remote Desktop Services (RDS) \n\t\t\tlicense server.

" + } + }, + "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpointId": { + "type": "string" + }, + "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpointList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpoint" + } + }, + "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpointProvisioningStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "PROVISIONING", + "value": "PROVISIONING", + "documentation": "" + }, + { + "name": "PROVISIONING_FAILED", + "value": "PROVISIONING_FAILED", + "documentation": "" + }, + { + "name": "PROVISIONED", + "value": "PROVISIONED", + "documentation": "" + }, + { + "name": "DELETING", + "value": "DELETING", + "documentation": "" + }, + { + "name": "DELETION_FAILED", + "value": "DELETION_FAILED", + "documentation": "" + }, + { + "name": "DELETED", + "value": "DELETED", + "documentation": "" + } + ] + } + }, + "com.amazonaws.licensemanagerusersubscriptions#LicenseServerHealthStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "HEALTHY", + "value": "HEALTHY", + "documentation": "" + }, + { + "name": "UNHEALTHY", + "value": "UNHEALTHY", + "documentation": "" + }, + { + "name": "NOT_APPLICABLE", + "value": "NOT_APPLICABLE", + "documentation": "" + } + ] + } + }, + "com.amazonaws.licensemanagerusersubscriptions#LicenseServerList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServer" + } + }, + "com.amazonaws.licensemanagerusersubscriptions#LicenseServerSettings": { + "type": "structure", + "members": { + "ServerType": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ServerType", + "traits": { + "smithy.api#documentation": "

The type of license server.

", + "smithy.api#required": {} + } + }, + "ServerSettings": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ServerSettings", + "traits": { + "smithy.api#documentation": "

The ServerSettings resource contains the settings for your \n\t\t\tserver.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The settings to configure your license server.

" + } + }, "com.amazonaws.licensemanagerusersubscriptions#ListIdentityProviders": { "type": "operation", "input": { @@ -1238,7 +1771,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists the identity providers for user-based subscriptions.

", + "smithy.api#documentation": "

Lists the Active Directory identity providers for user-based subscriptions.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -1258,15 +1791,24 @@ "MaxResults": { "target": "com.amazonaws.licensemanagerusersubscriptions#BoxInteger", "traits": { - "smithy.api#documentation": "

Maximum number of results to return in a single call.

" + "smithy.api#documentation": "

The maximum number of results to return from a single request.

" + } + }, + "Filters": { + "target": "com.amazonaws.licensemanagerusersubscriptions#FilterList", + "traits": { + "smithy.api#documentation": "

You can use the following filters to streamline results:

\n
    \n
  • \n

    Product

    \n
  • \n
  • \n

    DirectoryId

    \n
  • \n
" } }, "NextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Token for the next set of results.

" + "smithy.api#documentation": "

A token to specify where to start paginating. This is the nextToken \n\tfrom a previously truncated response.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#ListIdentityProvidersResponse": { @@ -1275,16 +1817,19 @@ "IdentityProviderSummaries": { "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProviderSummaryList", "traits": { - "smithy.api#documentation": "

Metadata that describes the list identity providers operation.

", + "smithy.api#documentation": "

An array of IdentityProviderSummary resources that contain \n\t\t\tdetails about the Active Directory identity providers that meet the request criteria.

", "smithy.api#required": {} } }, "NextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Token for the next set of results.

" + "smithy.api#documentation": "

The next token used for paginated responses. When this field isn't empty, \n\tthere are additional elements that the service hasn't included in this request. Use this token \n\t\twith the next request to retrieve additional objects.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.licensemanagerusersubscriptions#ListInstances": { @@ -1339,21 +1884,24 @@ "MaxResults": { "target": "com.amazonaws.licensemanagerusersubscriptions#BoxInteger", "traits": { - "smithy.api#documentation": "

Maximum number of results to return in a single call.

" + "smithy.api#documentation": "

The maximum number of results to return from a single request.

" } }, "NextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Token for the next set of results.

" + "smithy.api#documentation": "

A token to specify where to start paginating. This is the nextToken \n\tfrom a previously truncated response.

" } }, "Filters": { "target": "com.amazonaws.licensemanagerusersubscriptions#FilterList", "traits": { - "smithy.api#documentation": "

An array of structures that you can use to filter the results to those that match one or\n more sets of key-value pairs that you specify.

" + "smithy.api#documentation": "

You can use the following filters to streamline results:

\n
    \n
  • \n

    Status

    \n
  • \n
  • \n

    InstanceId

    \n
  • \n
" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#ListInstancesResponse": { @@ -1362,15 +1910,111 @@ "InstanceSummaries": { "target": "com.amazonaws.licensemanagerusersubscriptions#InstanceSummaryList", "traits": { - "smithy.api#documentation": "

Metadata that describes the list instances operation.

" + "smithy.api#documentation": "

An array of InstanceSummary resources that contain details \n\t\t\tabout the instances that provide user-based subscriptions and also meet the \n\t\t\trequest criteria.

" } }, "NextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Token for the next set of results.

" + "smithy.api#documentation": "

The next token used for paginated responses. When this field isn't empty, \n\tthere are additional elements that the service hasn't included in this request. Use this token \n\t\twith the next request to retrieve additional objects.

" } } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ListLicenseServerEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ListLicenseServerEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ListLicenseServerEndpointsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanagerusersubscriptions#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ConflictException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#InternalServerException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ThrottlingException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

List the Remote Desktop Services (RDS) License Server endpoints

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/license-server/ListLicenseServerEndpoints" + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "LicenseServerEndpoints" + } + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ListLicenseServerEndpointsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.licensemanagerusersubscriptions#BoxInteger", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return from a single request.

", + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "Filters": { + "target": "com.amazonaws.licensemanagerusersubscriptions#FilterList", + "traits": { + "smithy.api#documentation": "

You can use the following filters to streamline results:

\n
    \n
  • \n

    IdentityProviderArn

    \n
  • \n
" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A token to specify where to start paginating. This is the nextToken \n\tfrom a previously truncated response.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ListLicenseServerEndpointsResponse": { + "type": "structure", + "members": { + "LicenseServerEndpoints": { + "target": "com.amazonaws.licensemanagerusersubscriptions#LicenseServerEndpointList", + "traits": { + "smithy.api#documentation": "

An array of LicenseServerEndpoint resources that \n\t\t\tcontain detailed information about the RDS License Servers that meet \n\t\t\tthe request criteria.

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The next token used for paginated responses. When this field isn't empty, \n\tthere are additional elements that the service hasn't included in this request. Use this token \n\t\twith the next request to retrieve additional objects.

" + } + } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.licensemanagerusersubscriptions#ListProductSubscriptions": { @@ -1425,8 +2069,7 @@ "Product": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the user-based subscription product.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the user-based subscription product.

\n

Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS\n

" } }, "IdentityProvider": { @@ -1439,21 +2082,24 @@ "MaxResults": { "target": "com.amazonaws.licensemanagerusersubscriptions#BoxInteger", "traits": { - "smithy.api#documentation": "

Maximum number of results to return in a single call.

" + "smithy.api#documentation": "

The maximum number of results to return from a single request.

" } }, "Filters": { "target": "com.amazonaws.licensemanagerusersubscriptions#FilterList", "traits": { - "smithy.api#documentation": "

An array of structures that you can use to filter the results to those that match one or\n more sets of key-value pairs that you specify.

" + "smithy.api#documentation": "

You can use the following filters to streamline results:

\n
    \n
  • \n

    Status

    \n
  • \n
  • \n

    Username

    \n
  • \n
  • \n

    Domain

    \n
  • \n
" } }, "NextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Token for the next set of results.

" + "smithy.api#documentation": "

A token to specify where to start paginating. This is the nextToken \n\tfrom a previously truncated response.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#ListProductSubscriptionsResponse": { @@ -1468,9 +2114,70 @@ "NextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Token for the next set of results.

" + "smithy.api#documentation": "

The next token used for paginated responses. When this field isn't empty, \n\tthere are additional elements that the service hasn't included in this request. Use this token \n\t\twith the next request to retrieve additional objects.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanagerusersubscriptions#InternalServerException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the list of tags for the specified resource.

", + "smithy.api#http": { + "method": "GET", + "uri": "/tags/{ResourceArn}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ResourceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Tags", + "traits": { + "smithy.api#documentation": "

The tags for the specified resource.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.licensemanagerusersubscriptions#ListUserAssociations": { @@ -1539,21 +2246,24 @@ "MaxResults": { "target": "com.amazonaws.licensemanagerusersubscriptions#BoxInteger", "traits": { - "smithy.api#documentation": "

Maximum number of results to return in a single call.

" + "smithy.api#documentation": "

The maximum number of results to return from a single request.

" } }, "Filters": { "target": "com.amazonaws.licensemanagerusersubscriptions#FilterList", "traits": { - "smithy.api#documentation": "

An array of structures that you can use to filter the results to those that match one or\n more sets of key-value pairs that you specify.

" + "smithy.api#documentation": "

You can use the following filters to streamline results:

\n
    \n
  • \n

    Status

    \n
  • \n
  • \n

    Username

    \n
  • \n
  • \n

    Domain

    \n
  • \n
" } }, "NextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Token for the next set of results.

" + "smithy.api#documentation": "

A token to specify where to start paginating. This is the nextToken \n\tfrom a previously truncated response.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#ListUserAssociationsResponse": { @@ -1568,9 +2278,12 @@ "NextToken": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Token for the next set of results.

" + "smithy.api#documentation": "

The next token used for paginated responses. When this field isn't empty, \n\tthere are additional elements that the service hasn't included in this request. Use this token \n\t\twith the next request to retrieve additional objects.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.licensemanagerusersubscriptions#ProductUserSummary": { @@ -1579,7 +2292,7 @@ "Username": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The user name from the identity provider of the user.

", + "smithy.api#documentation": "

The user name from the identity provider for this product user.

", "smithy.api#required": {} } }, @@ -1600,20 +2313,26 @@ "Status": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The status of a product for a user.

", + "smithy.api#documentation": "

The status of a product for this user.

", "smithy.api#required": {} } }, + "ProductUserArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for this product user.

" + } + }, "StatusMessage": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The status message for a product for a user.

" + "smithy.api#documentation": "

The status message for a product for this user.

" } }, "Domain": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The domain name of the user.

" + "smithy.api#documentation": "

The domain name of the Active Directory that contains the user information for the product subscription.

" } }, "SubscriptionStartDate": { @@ -1630,7 +2349,7 @@ } }, "traits": { - "smithy.api#documentation": "

The summary of the user-based subscription products for a user.

" + "smithy.api#documentation": "

A summary of the user-based subscription products for a specific user.

" } }, "com.amazonaws.licensemanagerusersubscriptions#ProductUserSummaryList": { @@ -1639,6 +2358,21 @@ "target": "com.amazonaws.licensemanagerusersubscriptions#ProductUserSummary" } }, + "com.amazonaws.licensemanagerusersubscriptions#RdsSalSettings": { + "type": "structure", + "members": { + "RdsSalCredentialsProvider": { + "target": "com.amazonaws.licensemanagerusersubscriptions#CredentialsProvider", + "traits": { + "smithy.api#documentation": "

The CredentialsProvider resource contains a reference to \n\t\t\tthe credentials provider that's used for RDS license server user administration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Server settings that are specific to a Remote Desktop Services (RDS) license server.

" + } + }, "com.amazonaws.licensemanagerusersubscriptions#RegisterIdentityProvider": { "type": "operation", "input": { @@ -1686,23 +2420,32 @@ "IdentityProvider": { "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProvider", "traits": { - "smithy.api#documentation": "

An object that specifies details for the identity provider.

", + "smithy.api#documentation": "

An object that specifies details for the identity provider to register.

", "smithy.api#required": {} } }, "Product": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the user-based subscription product.

", + "smithy.api#documentation": "

The name of the user-based subscription product.

\n

Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS\n

", "smithy.api#required": {} } }, "Settings": { "target": "com.amazonaws.licensemanagerusersubscriptions#Settings", "traits": { - "smithy.api#documentation": "

The registered identity provider’s product related configuration settings such as the\n subnets to provision VPC endpoints.

" + "smithy.api#documentation": "

The registered identity provider’s product related configuration \n\t\t\tsettings such as the subnets to provision VPC endpoints.

" + } + }, + "Tags": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Tags", + "traits": { + "smithy.api#documentation": "

The tags that apply to the identity provider's registration.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#RegisterIdentityProviderResponse": { @@ -1715,6 +2458,15 @@ "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ResourceArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:([a-z0-9-\\.]{1,63}):([a-z0-9-\\.]{1,63}):([a-z0-9-\\.]{1,63}):([a-z0-9-\\.]{1,63}):([a-z0-9-\\.]{1,510})/([a-z0-9-\\.]{1,510})$" } }, "com.amazonaws.licensemanagerusersubscriptions#ResourceNotFoundException": { @@ -1730,6 +2482,23 @@ "smithy.api#httpError": 404 } }, + "com.amazonaws.licensemanagerusersubscriptions#SecretsManagerCredentialsProvider": { + "type": "structure", + "members": { + "SecretId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The ID of the Secrets Manager secret that contains credentials.

", + "smithy.api#length": { + "min": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains a credentials secret that's stored in Secrets Manager.

" + } + }, "com.amazonaws.licensemanagerusersubscriptions#SecurityGroup": { "type": "string", "traits": { @@ -1740,6 +2509,46 @@ "smithy.api#pattern": "^sg-(([0-9a-z]{8})|([0-9a-z]{17}))$" } }, + "com.amazonaws.licensemanagerusersubscriptions#ServerEndpoint": { + "type": "structure", + "members": { + "Endpoint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The network address of the endpoint.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A network endpoint through which you can access one or more servers.

" + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ServerSettings": { + "type": "union", + "members": { + "RdsSalSettings": { + "target": "com.amazonaws.licensemanagerusersubscriptions#RdsSalSettings", + "traits": { + "smithy.api#documentation": "

The RdsSalSettings resource contains settings to configure \n\t\t\ta specific Remote Desktop Services (RDS) license server.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains settings for a specific server.

" + } + }, + "com.amazonaws.licensemanagerusersubscriptions#ServerType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "RDS_SAL", + "value": "RDS_SAL", + "documentation": "" + } + ] + } + }, "com.amazonaws.licensemanagerusersubscriptions#ServiceQuotaExceededException": { "type": "structure", "members": { @@ -1768,13 +2577,13 @@ "SecurityGroupId": { "target": "com.amazonaws.licensemanagerusersubscriptions#SecurityGroup", "traits": { - "smithy.api#documentation": "

A security group ID that allows inbound TCP port 1688 communication between resources in\n your VPC and the VPC endpoint for activation servers.

", + "smithy.api#documentation": "

A security group ID that allows inbound TCP port 1688 communication between resources in\n\t\t\tyour VPC and the VPC endpoint for activation servers.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

The registered identity provider’s product related configuration settings such as the\n subnets to provision VPC endpoints, and the security group ID that is associated with the VPC\n endpoints. The security group should permit inbound TCP port 1688 communication from resources\n in the VPC.

" + "smithy.api#documentation": "

The registered identity provider’s product related configuration settings such as the\n\t\t\tsubnets to provision VPC endpoints, and the security group ID that is associated with the VPC\n\t\t\tendpoints. The security group should permit inbound TCP port 1688 communication from resources\n\t\t\tin the VPC.

" } }, "com.amazonaws.licensemanagerusersubscriptions#StartProductSubscription": { @@ -1809,7 +2618,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts a product subscription for a user with the specified identity provider.

\n \n

Your estimated bill for charges on the number of users and related costs will take 48\n hours to appear for billing periods that haven't closed (marked as Pending billing status) in Amazon Web Services Billing. For more information, see Viewing your\n monthly charges in the Amazon Web Services Billing User Guide.

\n
", + "smithy.api#documentation": "

Starts a product subscription for a user with the specified identity provider.

\n \n

Your estimated bill for charges on the number of users and related costs will take 48\n\t\t\thours to appear for billing periods that haven't closed (marked as Pending billing status) in Amazon Web Services Billing. For more information, see Viewing your\n\t\t\t\tmonthly charges in the Amazon Web Services Billing User Guide.

\n
", "smithy.api#http": { "code": 200, "method": "POST", @@ -1837,16 +2646,25 @@ "Product": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the user-based subscription product.

", + "smithy.api#documentation": "

The name of the user-based subscription product.

\n

Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS\n

", "smithy.api#required": {} } }, "Domain": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The domain name of the user.

" + "smithy.api#documentation": "

The domain name of the Active Directory that contains the user for whom to start the product \n\t\t\tsubscription.

" + } + }, + "Tags": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Tags", + "traits": { + "smithy.api#documentation": "

The tags that apply to the product subscription.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#StartProductSubscriptionResponse": { @@ -1859,6 +2677,9 @@ "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.licensemanagerusersubscriptions#StopProductSubscription": { @@ -1907,30 +2728,36 @@ "Username": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The user name from the identity provider for the user.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The user name from the identity provider for the user.

" } }, "IdentityProvider": { "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProvider", "traits": { - "smithy.api#documentation": "

An object that specifies details for the identity provider.

", - "smithy.api#required": {} + "smithy.api#documentation": "

An object that specifies details for the identity provider.

" } }, "Product": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the user-based subscription product.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the user-based subscription product.

\n

Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS\n

" + } + }, + "ProductUserArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the product user.

" } }, "Domain": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The domain name of the user.

" + "smithy.api#documentation": "

The domain name of the Active Directory that contains the user for whom to stop the product \n\t\t\tsubscription.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#StopProductSubscriptionResponse": { @@ -1943,6 +2770,9 @@ "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.licensemanagerusersubscriptions#StringList": { @@ -1954,7 +2784,7 @@ "com.amazonaws.licensemanagerusersubscriptions#Subnet": { "type": "string", "traits": { - "smithy.api#pattern": "subnet-[a-z0-9]{8,17}" + "smithy.api#pattern": "^subnet-[a-z0-9]{8,17}" } }, "com.amazonaws.licensemanagerusersubscriptions#Subnets": { @@ -1963,6 +2793,93 @@ "target": "com.amazonaws.licensemanagerusersubscriptions#Subnet" } }, + "com.amazonaws.licensemanagerusersubscriptions#TagKeyList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanagerusersubscriptions#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.licensemanagerusersubscriptions#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanagerusersubscriptions#InternalServerException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds tags to a resource.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/tags/{ResourceArn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#TagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ResourceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource that you want to tag.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Tags", + "traits": { + "smithy.api#documentation": "

The tags to apply to the specified resource.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#TagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#Tags": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.licensemanagerusersubscriptions#ThrottlingException": { "type": "structure", "members": { @@ -1975,6 +2892,62 @@ "smithy.api#error": "client" } }, + "com.amazonaws.licensemanagerusersubscriptions#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanagerusersubscriptions#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.licensemanagerusersubscriptions#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanagerusersubscriptions#InternalServerException" + }, + { + "target": "com.amazonaws.licensemanagerusersubscriptions#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes tags from a resource.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/tags/{ResourceArn}" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#UntagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#ResourceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the resource that you want to remove tags from.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.licensemanagerusersubscriptions#TagKeyList", + "traits": { + "smithy.api#documentation": "

The tag keys to remove from the resource.

", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.licensemanagerusersubscriptions#UntagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.licensemanagerusersubscriptions#UpdateIdentityProviderSettings": { "type": "operation", "input": { @@ -1998,7 +2971,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates additional product configuration settings for the registered identity\n provider.

", + "smithy.api#documentation": "

Updates additional product configuration settings for the registered identity\n\t\t\tprovider.

", "smithy.api#http": { "code": 200, "method": "POST", @@ -2011,25 +2984,30 @@ "type": "structure", "members": { "IdentityProvider": { - "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProvider", - "traits": { - "smithy.api#required": {} - } + "target": "com.amazonaws.licensemanagerusersubscriptions#IdentityProvider" }, "Product": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the user-based subscription product.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the user-based subscription product.

\n

Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | OFFICE_PROFESSIONAL_PLUS\n

" + } + }, + "IdentityProviderArn": { + "target": "com.amazonaws.licensemanagerusersubscriptions#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the identity provider to update.

" } }, "UpdateSettings": { "target": "com.amazonaws.licensemanagerusersubscriptions#UpdateSettings", "traits": { - "smithy.api#documentation": "

Updates the registered identity provider’s product related configuration settings. You can\n update any combination of settings in a single operation such as the:

\n
    \n
  • \n

    Subnets which you want to add to provision VPC endpoints.

    \n
  • \n
  • \n

    Subnets which you want to remove the VPC endpoints from.

    \n
  • \n
  • \n

    Security group ID which permits traffic to the VPC endpoints.

    \n
  • \n
", + "smithy.api#documentation": "

Updates the registered identity provider’s product related configuration settings. You can\n\t\t\tupdate any combination of settings in a single operation such as the:

\n
    \n
  • \n

    Subnets which you want to add to provision VPC endpoints.

    \n
  • \n
  • \n

    Subnets which you want to remove the VPC endpoints from.

    \n
  • \n
  • \n

    Security group ID which permits traffic to the VPC endpoints.

    \n
  • \n
", "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.licensemanagerusersubscriptions#UpdateIdentityProviderSettingsResponse": { @@ -2041,6 +3019,9 @@ "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.licensemanagerusersubscriptions#UpdateSettings": { @@ -2049,7 +3030,7 @@ "AddSubnets": { "target": "com.amazonaws.licensemanagerusersubscriptions#Subnets", "traits": { - "smithy.api#documentation": "

The ID of one or more subnets in which License Manager will create a VPC endpoint for products that\n require connectivity to activation servers.

", + "smithy.api#documentation": "

The ID of one or more subnets in which License Manager will create a VPC endpoint for products that\n\t\t\trequire connectivity to activation servers.

", "smithy.api#required": {} } }, @@ -2063,12 +3044,12 @@ "SecurityGroupId": { "target": "com.amazonaws.licensemanagerusersubscriptions#SecurityGroup", "traits": { - "smithy.api#documentation": "

A security group ID that allows inbound TCP port 1688 communication between resources in\n your VPC and the VPC endpoints for activation servers.

" + "smithy.api#documentation": "

A security group ID that allows inbound TCP port 1688 communication between resources in\n\t\t\tyour VPC and the VPC endpoints for activation servers.

" } } }, "traits": { - "smithy.api#documentation": "

Updates the registered identity provider’s product related configuration settings such as\n the subnets to provision VPC endpoints.

" + "smithy.api#documentation": "

Updates the registered identity provider’s product related configuration settings such as\n\t\t\tthe subnets to provision VPC endpoints.

" } }, "com.amazonaws.licensemanagerusersubscriptions#ValidationException": { diff --git a/codegen/sdk-codegen/aws-models/partnercentral-selling.json b/codegen/sdk-codegen/aws-models/partnercentral-selling.json new file mode 100644 index 00000000000..eaa5ad3402a --- /dev/null +++ b/codegen/sdk-codegen/aws-models/partnercentral-selling.json @@ -0,0 +1,8879 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.partnercentralselling#AWSPartnerCentralSelling": { + "type": "service", + "version": "2022-07-26", + "resources": [ + { + "target": "com.amazonaws.partnercentralselling#EngagementByAcceptingInvitationTask" + }, + { + "target": "com.amazonaws.partnercentralselling#EngagementFromOpportunityTask" + }, + { + "target": "com.amazonaws.partnercentralselling#EngagementInvitation" + }, + { + "target": "com.amazonaws.partnercentralselling#Opportunity" + }, + { + "target": "com.amazonaws.partnercentralselling#Solution" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "PartnerCentral Selling", + "endpointPrefix": "partnercentral-selling", + "arnNamespace": "partnercentral", + "cloudTrailEventSource": "partnercentral-selling.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "partnercentral-selling" + }, + "aws.iam#defineConditionKeys": { + "partnercentral:RelatedEntityType": { + "type": "String", + "relativeDocumentation": "page.html#RelatedEntityType", + "documentation": "Filters access by entity types for Opportunity association. Accepted values: [Solutions, AwsProducts, AwsMarketplaceOffers]" + }, + "partnercentral:Catalog": { + "type": "String", + "relativeDocumentation": "page.html#Catalog", + "documentation": "Filters access by a specific Catalog. Accepted values: [AWS, Sandbox]" + } + }, + "aws.iam#supportedPrincipalTypes": [ + "Root", + "IAMUser", + "IAMRole", + "FederatedUser" + ], + "aws.protocols#awsJson1_0": {}, + "smithy.api#documentation": "AWS Partner Central API for Selling\n

\n AWS Partner Central API for Selling Reference Guide\n

\n

\n Amazon Web Services (AWS) Partner Central API reference guide is designed to help\n AWS Partners programmatically integrate their Customer Relationship Management (CRM) systems with AWS Partner Central. Through the Partner Central APIs, partners can automate and streamline their interactions with AWS Partner Central, ensuring a more efficient and effective engagement in joint business activities.\n

\n

\n The AWS Partner Central API service provides standard AWS API functionality. You can directly use the API Actions, or you can use an AWS SDK to access an API that's tailored to the programming language or platform that you're using. For more information about AWS application development, see Getting Started with AWS. For more information about using AWS SDKs, see AWS SDKs.\n

\n

\n Features offered by AWS Partner Central API\n

\n
    \n
  1. \n

    \n Opportunity management: Facilitates the management of co-selling opportunities with AWS using API actions such as CreateOpportunity, UpdateOpportunity, ListOpportunities, GetOpportunity, and AssignOpportunity.

    \n
  2. \n
  3. \n

    \n AWS referral management: Facilitates receiving referrals shared by AWS using actions like ListEngagementInvitations, GetEngagementInvitation, StartEngagementByAcceptingInvitation, and RejectEngagementInvitation.

    \n
  4. \n
  5. \n

    \n Entity association: Associate related entities such as AWS Products, Partner Solutions, and AWS Marketplace Private Offers with opportunities using the actions AssociateOpportunity and DisassociateOpportunity.

    \n
  6. \n
  7. \n

    \n View AWS opportunity details: Use the GetAWSOpportunitySummary action to retrieve real-time summaries of AWS opportunities that are linked to your opportunities.

    \n
  8. \n
  9. \n

    \n List solutions: Provides list APIs for listing solutions partners offer using ListSolutions.

    \n
  10. \n
  11. \n

    \n Event subscription: Partners can subscribe to real-time updates on opportunities by listening to events such as Opportunity Created, Opportunity Updated, Engagement Invitation Accepted, Engagement Invitation Rejected and Engagement Invitation Created using AWS EventBridge.

    \n
  12. \n
", + "smithy.api#title": "Partner Central Selling API", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://partnercentral-selling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://partnercentral-selling-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://partnercentral-selling.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://partnercentral-selling.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://partnercentral-selling.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.partnercentralselling#AccessDeniedException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

This error occurs when you don't have permission to perform the\n requested action.\n

\n

You don’t have access to this action or resource. Review IAM policies or contact your AWS administrator for assistance.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.partnercentralselling#Account": { + "type": "structure", + "members": { + "Industry": { + "target": "com.amazonaws.partnercentralselling#Industry", + "traits": { + "smithy.api#documentation": "

Specifies the industry the end Customer belongs to that's associated with the Opportunity . It refers to the category or sector where the customer's business operates. This is a required field.\n

" + } + }, + "OtherIndustry": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's industry associated with the Opportunity, when the selected value in the Industry field is Other.\n

", + "smithy.api#length": { + "max": 255 + } + } + }, + "CompanyName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's company name associated with the Opportunity.\n

", + "smithy.api#length": { + "max": 120 + }, + "smithy.api#required": {} + } + }, + "WebsiteUrl": { + "target": "com.amazonaws.partnercentralselling#WebsiteUrl", + "traits": { + "smithy.api#documentation": "

\n Specifies the end customer's company website URL associated with the Opportunity. This value is crucial to map the customer within the Amazon Web Services CRM system. This field is required in all cases except when the opportunity is related to national security.\n

" + } + }, + "AwsAccountId": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", + "traits": { + "smithy.api#documentation": "

Specifies the Customer Amazon Web Services account ID associated with the Opportunity.\n

" + } + }, + "Address": { + "target": "com.amazonaws.partnercentralselling#Address", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's address details associated with the Opportunity.\n

" + } + }, + "Duns": { + "target": "com.amazonaws.partnercentralselling#DunsNumber", + "traits": { + "smithy.api#documentation": "

Indicates the Customer DUNS number, if available.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the Customer's account details associated with the Opportunity.\n

" + } + }, + "com.amazonaws.partnercentralselling#AccountReceiver": { + "type": "structure", + "members": { + "Alias": { + "target": "com.amazonaws.partnercentralselling#Alias", + "traits": { + "smithy.api#documentation": "

Represents the alias of the partner account receiving the Engagement Invitation, making it easier to identify and track the recipient in reports or logs.

" + } + }, + "AwsAccountId": { + "target": "com.amazonaws.partnercentralselling#AwsAccount", + "traits": { + "smithy.api#documentation": "

Indicates the AWS account ID of the partner who received the Engagement Invitation. This is a unique identifier for managing engagements with specific AWS accounts.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the account details of the partner who received the Engagement Invitation, including the AWS account ID and company name.

" + } + }, + "com.amazonaws.partnercentralselling#AccountSummary": { + "type": "structure", + "members": { + "Industry": { + "target": "com.amazonaws.partnercentralselling#Industry", + "traits": { + "smithy.api#documentation": "

Specifies which industry the end Customer belongs to associated with the Opportunity .\n It refers to the category or sector that the customer's business operates in.\n

\n

To submit a value outside the picklist, use\n Other.\n

\n

Conditionally mandatory if Other is selected for Industry Vertical in LOVs.\n

" + } + }, + "OtherIndustry": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's industry associated with the \n Opportunity, when the selected value in the Industry field is Other. This field is relevant\n when the customer's industry doesn't fall under the predefined picklist values and requires a custom\n description.\n

", + "smithy.api#length": { + "max": 255 + } + } + }, + "CompanyName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's company name associated with the Opportunity.\n

", + "smithy.api#length": { + "max": 120 + }, + "smithy.api#required": {} + } + }, + "WebsiteUrl": { + "target": "com.amazonaws.partnercentralselling#WebsiteUrl", + "traits": { + "smithy.api#documentation": "

Specifies the end customer's company website URL associated with the Opportunity. This\n value is crucial to map the customer within the Amazon Web Services CRM system.\n

" + } + }, + "Address": { + "target": "com.amazonaws.partnercentralselling#AddressSummary", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's address details associated with the Opportunity.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains an Account's subset of fields.\n

" + } + }, + "com.amazonaws.partnercentralselling#Address": { + "type": "structure", + "members": { + "City": { + "target": "com.amazonaws.partnercentralselling#AddressPart", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's city associated with the Opportunity.\n

", + "smithy.api#length": { + "max": 255 + } + } + }, + "PostalCode": { + "target": "com.amazonaws.partnercentralselling#AddressPart", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's postal code associated with the Opportunity.\n

", + "smithy.api#length": { + "max": 20 + } + } + }, + "StateOrRegion": { + "target": "com.amazonaws.partnercentralselling#AddressPart", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's state or region associated with the Opportunity.\n

\n

Valid values: Alabama | Alaska | American Samoa | Arizona | Arkansas | California | Colorado | Connecticut | Delaware | Dist. of Columbia | Federated States of Micronesia | Florida | Georgia | Guam | Hawaii | Idaho | Illinois | Indiana | Iowa | Kansas | Kentucky | Louisiana | Maine | Marshall Islands | Maryland | Massachusetts | Michigan | Minnesota | Mississippi | Missouri | Montana | Nebraska | Nevada | New Hampshire | New Jersey | New Mexico | New York | North Carolina | North Dakota | Northern Mariana Islands | Ohio | Oklahoma | Oregon | Palau | Pennsylvania | Puerto Rico | Rhode Island | South Carolina | South Dakota | Tennessee | Texas | Utah | Vermont | Virginia | Virgin Islands | Washington | West Virginia | Wisconsin | Wyoming | APO/AE | AFO/FPO | FPO, AP\n

" + } + }, + "CountryCode": { + "target": "com.amazonaws.partnercentralselling#CountryCode", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's country associated with the Opportunity.\n

" + } + }, + "StreetAddress": { + "target": "com.amazonaws.partnercentralselling#AddressPart", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's street address associated with the Opportunity.\n

", + "smithy.api#length": { + "max": 255 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's address details associated with the Opportunity.\n

" + } + }, + "com.amazonaws.partnercentralselling#AddressPart": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#AddressSummary": { + "type": "structure", + "members": { + "City": { + "target": "com.amazonaws.partnercentralselling#AddressPart", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's city associated with the Opportunity.\n

", + "smithy.api#length": { + "max": 255 + } + } + }, + "PostalCode": { + "target": "com.amazonaws.partnercentralselling#AddressPart", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's postal code associated with the Opportunity.\n

", + "smithy.api#length": { + "max": 20 + } + } + }, + "StateOrRegion": { + "target": "com.amazonaws.partnercentralselling#AddressPart", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's state or region associated with the Opportunity.\n

\n

Valid values: Alabama | Alaska | American Samoa | Arizona | Arkansas | California | Colorado | Connecticut | Delaware | Dist. of Columbia | Federated States of Micronesia | Florida | Georgia | Guam | Hawaii | Idaho | Illinois | Indiana | Iowa | Kansas | Kentucky | Louisiana | Maine | Marshall Islands | Maryland | Massachusetts | Michigan | Minnesota | Mississippi | Missouri | Montana | Nebraska | Nevada | New Hampshire | New Jersey | New Mexico | New York | North Carolina | North Dakota | Northern Mariana Islands | Ohio | Oklahoma | Oregon | Palau | Pennsylvania | Puerto Rico | Rhode Island | South Carolina | South Dakota | Tennessee | Texas | Utah | Vermont | Virginia | Virgin Islands | Washington | West Virginia | Wisconsin | Wyoming | APO/AE | AFO/FPO | FPO, AP\n

" + } + }, + "CountryCode": { + "target": "com.amazonaws.partnercentralselling#CountryCode", + "traits": { + "smithy.api#documentation": "

Specifies the end Customer's country associated with the Opportunity.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains an Address object's subset of fields.\n

" + } + }, + "com.amazonaws.partnercentralselling#Alias": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 80 + }, + "smithy.api#pattern": "^[\\p{L}\\p{N}\\p{P}\\p{Z}]+$" + } + }, + "com.amazonaws.partnercentralselling#ApnPrograms": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.partnercentralselling#AssignOpportunity": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#AssignOpportunityRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to assign Opportunities on AWS Partner Central" + }, + "smithy.api#documentation": "

\n Enables you to reassign an existing Opportunity to another user within your\n Partner Central account. The specified user receives the opportunity, and it appears on their\n Partner Central dashboard, allowing them to take necessary actions or proceed with the opportunity.\n

\n

\n This is useful for distributing opportunities to the appropriate team members\n or departments within your organization, ensuring that each opportunity is handled by the right person. By default, the opportunity owner is the one who creates it. Currently, there's no API to enumerate the list of available users.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/AssignOpportunity", + "code": 200 + } + } + }, + "com.amazonaws.partnercentralselling#AssignOpportunityRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog associated with the request. This field takes a string value from a predefined list:\n AWS or Sandbox. The catalog determines which environment the opportunity\n is assigned in. Use AWS to assign real opportunities in the Amazon Web Services catalog,\n and Sandbox to test in a secure and isolated environment.\n

", + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

\n Requires the Opportunity's unique identifier when you want to\n assign it to another user. Provide the correct identifier so the intended opportunity is\n reassigned.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "Identifier" + } + }, + "Assignee": { + "target": "com.amazonaws.partnercentralselling#AssigneeContact", + "traits": { + "smithy.api#documentation": "

Specifies the user or team member responsible for managing the assigned opportunity. This field identifies the Assignee based on the partner's internal team structure. Ensure that the email address is associated with a registered user in your Partner Central account.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#AssigneeContact": { + "type": "structure", + "members": { + "Email": { + "target": "com.amazonaws.partnercentralselling#Email", + "traits": { + "smithy.api#documentation": "

Provides the email address of the assignee. This email is used for communications and notifications related to the opportunity.

", + "smithy.api#required": {} + } + }, + "FirstName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

Specifies the first name of the assignee managing the opportunity.

", + "smithy.api#length": { + "max": 80 + }, + "smithy.api#required": {} + } + }, + "LastName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

Specifies the last name of the assignee managing the opportunity.

", + "smithy.api#length": { + "max": 80 + }, + "smithy.api#required": {} + } + }, + "BusinessTitle": { + "target": "com.amazonaws.partnercentralselling#JobTitle", + "traits": { + "smithy.api#documentation": "

Specifies the business title of the assignee managing the opportunity. This helps clarify the individual's role and responsibilities within the organization.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the contact details of the individual assigned to manage the opportunity within the partner organization. This ensures that there is a clear point of contact for the opportunity's progress and updates.

" + } + }, + "com.amazonaws.partnercentralselling#AssociateOpportunity": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#AssociateOpportunityRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:RelatedEntityType", + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to associate Opportunities on AWS Partner Central with other entities" + }, + "smithy.api#documentation": "

\n Enables you to create a formal association between an Opportunity and various\n related entities, enriching the context and details of the opportunity for better collaboration and\n decision-making. You can associate an opportunity with the following types of entities:\n

\n
    \n
  • \n

    \n Partner Solution:\n A software product or consulting practice created and delivered by Partners. Partner Solutions help customers address specific business challenges or achieve particular goals using Amazon Web Services services.\n

    \n
  • \n
  • \n

    \n Amazon Web Services Product:\n Amazon Web Services offers a wide range of products and services designed to provide scalable, reliable, and cost-effective infrastructure solutions. For the latest list of Amazon Web Services products, refer to Amazon Web Services products.\n

    \n
  • \n
  • \n

    \n Amazon Web Services Marketplace private offer:\n Allows Amazon Web Services Marketplace sellers to extend custom pricing and terms to individual Amazon Web Services customers. Sellers can negotiate custom prices, payment schedules, and end user license terms through private offers, enabling Amazon Web Services customers to acquire software solutions tailored to their specific needs. For more information, refer to Private offers in Amazon Web Services Marketplace.\n

    \n
  • \n
\n

To obtain identifiers for these entities, use the following methods:

\n
    \n
  • \n

    Solution: Use the ListSolutions operation.

    \n
  • \n
  • \n

    \n AWS products: For the latest list of Amazon Web Services products, refer to\n the Amazon Web Services products list.

    \n
  • \n
  • \n

    \n Amazon Web Services Marketplace private offer: Use the AWS Marketplace Catalog API to list entities. Specifically, use the ListEntities operation to retrieve a list of private offers. The request to the ListEntities API returns the details of the private offers available to you. For more information, refer to ListEntities.\n

    \n
  • \n
", + "smithy.api#http": { + "method": "POST", + "uri": "/AssociateOpportunity", + "code": 200 + } + } + }, + "com.amazonaws.partnercentralselling#AssociateOpportunityRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog associated with the request. This field takes a string value from a predefined list:\n AWS or Sandbox. The catalog determines whichenvironment the opportunity\n association is made in. Use AWS to associate opportunities in the Amazon Web Services catalog,\n and Sandbox to test in a secure and isolated environment.\n

", + "smithy.api#required": {} + } + }, + "OpportunityIdentifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

Requires the Opportunity's unique identifier when you want to\n associate it with a related entity. Provide the correct identifier so the intended opportunity is\n updated with the association.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "Identifier" + } + }, + "RelatedEntityType": { + "target": "com.amazonaws.partnercentralselling#RelatedEntityType", + "traits": { + "smithy.api#documentation": "

Specifies the type of the related entity you're associating with the \n Opportunity. This helps to categorize and properly process the association.\n

", + "smithy.api#required": {} + } + }, + "RelatedEntityIdentifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Requires the related entity's unique identifier when you want to associate it with the \n Opportunity. For Amazon Web Services Marketplace entities, provide the Amazon Resource Name (ARN). Use the \n Amazon Web Services Marketplace API to obtain the ARN.\n

", + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#AwsAccount": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[0-9]{12}$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#AwsAccountIdOrLabel": { + "type": "string", + "traits": { + "smithy.api#pattern": "^(aws|[0-9]{12})$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#AwsClosedLostReason": { + "type": "enum", + "members": { + "ADMINISTRATIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Administrative" + } + }, + "BUSINESS_ASSOCIATE_AGREEMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Business Associate Agreement" + } + }, + "COMPANY_ACQUIRED_DISSOLVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Company Acquired/Dissolved" + } + }, + "COMPETITIVE_OFFERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Competitive Offering" + } + }, + "CUSTOMER_DATA_REQUIREMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Customer Data Requirement" + } + }, + "CUSTOMER_DEFICIENCY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Customer Deficiency" + } + }, + "CUSTOMER_EXPERIENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Customer Experience" + } + }, + "DELAY_CANCELLATION_OF_PROJECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Delay / Cancellation of Project" + } + }, + "DUPLICATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Duplicate" + } + }, + "DUPLICATE_OPPORTUNITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Duplicate Opportunity" + } + }, + "EXECUTIVE_BLOCKER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Executive Blocker" + } + }, + "FAILED_VETTING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Failed Vetting" + } + }, + "FEATURE_LIMITATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Feature Limitation" + } + }, + "FINANCIAL_COMMERCIAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Financial/Commercial" + } + }, + "INSUFFICIENT_AMAZON_VALUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Insufficient Amazon Value" + } + }, + "INSUFFICIENT_AWS_VALUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Insufficient AWS Value" + } + }, + "INTERNATIONAL_CONSTRAINTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "International Constraints" + } + }, + "LEGAL_TAX_REGULATORY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Legal / Tax / Regulatory" + } + }, + "LEGAL_TERMS_AND_CONDITIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Legal Terms and Conditions" + } + }, + "LOST_TO_COMPETITOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor" + } + }, + "LOST_TO_COMPETITOR_GOOGLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - Google" + } + }, + "LOST_TO_COMPETITOR_MICROSOFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - Microsoft" + } + }, + "LOST_TO_COMPETITOR_OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - Other" + } + }, + "LOST_TO_COMPETITOR_RACKSPACE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - Rackspace" + } + }, + "LOST_TO_COMPETITOR_SOFTLAYER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - SoftLayer" + } + }, + "LOST_TO_COMPETITOR_VMWARE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - VMWare" + } + }, + "NO_CUSTOMER_REFERENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No Customer Reference" + } + }, + "NO_INTEGRATION_RESOURCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No Integration Resources" + } + }, + "NO_OPPORTUNITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No Opportunity" + } + }, + "NO_PERCEIVED_VALUE_OF_MP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No Perceived Value of MP" + } + }, + "NO_RESPONSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No Response" + } + }, + "NOT_COMMITTED_TO_AWS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Not Committed to AWS" + } + }, + "NO_UPDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No Update" + } + }, + "ON_PREMISES_DEPLOYMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "On Premises Deployment" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Other" + } + }, + "OTHER_DETAILS_IN_DESCRIPTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Other (Details in Description)" + } + }, + "PARTNER_GAP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Partner Gap" + } + }, + "PAST_DUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Past Due" + } + }, + "PEOPLE_RELATIONSHIP_GOVERNANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "People/Relationship/Governance" + } + }, + "PLATFORM_TECHNOLOGY_LIMITATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Platform Technology Limitation" + } + }, + "PREFERENCE_FOR_COMPETITOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Preference for Competitor" + } + }, + "PRICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Price" + } + }, + "PRODUCT_TECHNOLOGY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Product/Technology" + } + }, + "PRODUCT_NOT_ON_AWS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Product Not on AWS" + } + }, + "SECURITY_COMPLIANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Security / Compliance" + } + }, + "SELF_SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Self-Service" + } + }, + "TECHNICAL_LIMITATIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Technical Limitations" + } + }, + "TERM_SHEET_IMPASSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Term Sheet Impasse" + } + } + } + }, + "com.amazonaws.partnercentralselling#AwsFundingUsed": { + "type": "enum", + "members": { + "YES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Yes" + } + }, + "NO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No" + } + } + } + }, + "com.amazonaws.partnercentralselling#AwsMarketplaceOfferIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws:aws-marketplace:[a-z]{1,2}-[a-z]*-\\d+:\\d{12}:AWSMarketplace/Offer/.*$" + } + }, + "com.amazonaws.partnercentralselling#AwsMarketplaceOfferIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#AwsMarketplaceOfferIdentifier" + } + }, + "com.amazonaws.partnercentralselling#AwsMemberBusinessTitle": { + "type": "enum", + "members": { + "AWS_SALES_REP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWSSalesRep" + } + }, + "AWS_ACCOUNT_OWNER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWSAccountOwner" + } + }, + "WWPSPDM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WWPSPDM" + } + }, + "PDM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PDM" + } + }, + "PSM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PSM" + } + }, + "ISVSM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ISVSM" + } + } + } + }, + "com.amazonaws.partnercentralselling#AwsOpportunityCustomer": { + "type": "structure", + "members": { + "Contacts": { + "target": "com.amazonaws.partnercentralselling#CustomerContactsList", + "traits": { + "smithy.api#documentation": "

Provides a list of customer contacts involved in the opportunity. These contacts may include decision-makers, influencers, and other key stakeholders within the customer's organization.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the customer associated with the AWS opportunity. This field captures key details about the customer that are necessary for managing the opportunity.

" + } + }, + "com.amazonaws.partnercentralselling#AwsOpportunityInsights": { + "type": "structure", + "members": { + "NextBestActions": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Provides recommendations from AWS on the next best actions to take in order to move the opportunity forward and increase the likelihood of success.

" + } + }, + "EngagementScore": { + "target": "com.amazonaws.partnercentralselling#EngagementScore", + "traits": { + "smithy.api#documentation": "

Represents a score assigned by AWS to indicate the level of engagement and potential success for the opportunity. This score helps partners prioritize their efforts.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains insights provided by AWS for the opportunity, offering recommendations and analysis that can help the partner optimize their engagement and strategy.

" + } + }, + "com.amazonaws.partnercentralselling#AwsOpportunityLifeCycle": { + "type": "structure", + "members": { + "TargetCloseDate": { + "target": "com.amazonaws.partnercentralselling#Date", + "traits": { + "smithy.api#documentation": "

Indicates the expected date by which the opportunity is projected to close. This field helps in planning resources and timelines for both the partner and AWS.

" + } + }, + "ClosedLostReason": { + "target": "com.amazonaws.partnercentralselling#AwsClosedLostReason", + "traits": { + "smithy.api#documentation": "

Indicates the reason why an opportunity was marked as Closed Lost. This helps in understanding the context behind the lost opportunity and aids in refining future strategies.

" + } + }, + "Stage": { + "target": "com.amazonaws.partnercentralselling#AwsOpportunityStage", + "traits": { + "smithy.api#documentation": "

Represents the current stage of the opportunity in its lifecycle, such as Qualification, Validation, or Closed Won. This helps in understanding the opportunity's progress.

" + } + }, + "NextSteps": { + "target": "com.amazonaws.partnercentralselling#PiiString", + "traits": { + "smithy.api#documentation": "

Specifies the immediate next steps required to progress the opportunity. These steps are based on AWS's guidance and the current stage of the opportunity.

", + "smithy.api#length": { + "max": 255 + } + } + }, + "NextStepsHistory": { + "target": "com.amazonaws.partnercentralselling#ProfileNextStepsHistories", + "traits": { + "smithy.api#documentation": "

Provides a historical log of previous next steps that were taken to move the opportunity forward. This helps in tracking the decision-making process and identifying any delays or obstacles encountered.

", + "smithy.api#length": { + "max": 50 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Tracks the lifecycle of the AWS opportunity, including stages such as qualification, validation, and closure. This field helps partners understand the current status and progression of the opportunity.

" + } + }, + "com.amazonaws.partnercentralselling#AwsOpportunityProject": { + "type": "structure", + "members": { + "ExpectedCustomerSpend": { + "target": "com.amazonaws.partnercentralselling#ExpectedCustomerSpendList", + "traits": { + "smithy.api#documentation": "

Indicates the expected spending by the customer over the course of the project. This value helps partners and AWS estimate the financial impact of the opportunity. Use the AWS Pricing Calculator to create an estimate of the customer’s total spend. If only annual recurring revenue (ARR) is available, distribute it across 12 months to provide an average monthly value.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Captures details about the project associated with the opportunity, including objectives, scope, and customer requirements.

" + } + }, + "com.amazonaws.partnercentralselling#AwsOpportunityRelatedEntities": { + "type": "structure", + "members": { + "AwsProducts": { + "target": "com.amazonaws.partnercentralselling#AwsProductIdentifiers", + "traits": { + "smithy.api#documentation": "

Specifies the AWS products associated with the opportunity. This field helps track the specific products that are part of the proposed solution.

" + } + }, + "Solutions": { + "target": "com.amazonaws.partnercentralselling#SolutionIdentifiers", + "traits": { + "smithy.api#documentation": "

Specifies the partner solutions related to the opportunity. These solutions represent the partner's offerings that are being positioned as part of the overall AWS opportunity.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents other entities related to the AWS opportunity, such as AWS products, partner solutions, and marketplace offers. These associations help build a complete picture of the solution being sold.

" + } + }, + "com.amazonaws.partnercentralselling#AwsOpportunityStage": { + "type": "enum", + "members": { + "NOT_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Not Started" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "In Progress" + } + }, + "PROSPECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Prospect" + } + }, + "ENGAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Engaged" + } + }, + "IDENTIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Identified" + } + }, + "QUALIFY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Qualify" + } + }, + "RESEARCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Research" + } + }, + "SELLER_ENGAGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Seller Engaged" + } + }, + "EVALUATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Evaluating" + } + }, + "SELLER_REGISTERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Seller Registered" + } + }, + "TERM_SHEET_NEGOTIATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Term Sheet Negotiation" + } + }, + "CONTRACT_NEGOTIATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Contract Negotiation" + } + }, + "ONBOARDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Onboarding" + } + }, + "BUILDING_INTEGRATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Building Integration" + } + }, + "QUALIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Qualified" + } + }, + "ON_HOLD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "On-hold" + } + }, + "TECHNICAL_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Technical Validation" + } + }, + "BUSINESS_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Business Validation" + } + }, + "COMMITTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Committed" + } + }, + "LAUNCHED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Launched" + } + }, + "DEFERRED_TO_PARTNER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Deferred to Partner" + } + }, + "CLOSED_LOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Closed Lost" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Completed" + } + }, + "CLOSED_INCOMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Closed Incomplete" + } + } + } + }, + "com.amazonaws.partnercentralselling#AwsOpportunityTeamMembersList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#AwsTeamMember" + } + }, + "com.amazonaws.partnercentralselling#AwsProductIdentifier": { + "type": "string" + }, + "com.amazonaws.partnercentralselling#AwsProductIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#AwsProductIdentifier" + } + }, + "com.amazonaws.partnercentralselling#AwsSubmission": { + "type": "structure", + "members": { + "InvolvementType": { + "target": "com.amazonaws.partnercentralselling#SalesInvolvementType", + "traits": { + "smithy.api#documentation": "

Specifies the type of AWS involvement in the opportunity, such as co-selling, deal support, or technical consultation. This helps categorize the nature of AWS's participation.

", + "smithy.api#required": {} + } + }, + "Visibility": { + "target": "com.amazonaws.partnercentralselling#Visibility", + "traits": { + "smithy.api#documentation": "

Determines who can view AWS's involvement in the opportunity. Typically, this field is set to Full for most cases, but it may be restricted based on special program requirements or confidentiality needs.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Indicates the level of AWS involvement in the opportunity. This field helps track AWS's role and participation throughout the engagement, such as providing technical support, deal assistance, or sales support.

" + } + }, + "com.amazonaws.partnercentralselling#AwsTeamMember": { + "type": "structure", + "members": { + "Email": { + "target": "com.amazonaws.partnercentralselling#Email", + "traits": { + "smithy.api#documentation": "

\n Provides the Amazon Web Services team member's email address.\n

" + } + }, + "FirstName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

\n Provides the Amazon Web Services team member's first name.\n

", + "smithy.api#length": { + "max": 80 + } + } + }, + "LastName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

\n Provides the Amazon Web Services team member's last name.\n

", + "smithy.api#length": { + "max": 80 + } + } + }, + "BusinessTitle": { + "target": "com.amazonaws.partnercentralselling#AwsMemberBusinessTitle", + "traits": { + "smithy.api#documentation": "

\n Specifies the Amazon Web Services team member's business title and indicates their organizational role.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Represents an Amazon Web Services team member for the engagement. This structure includes details such as name, email, and business title.\n

" + } + }, + "com.amazonaws.partnercentralselling#CatalogIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z]+$" + } + }, + "com.amazonaws.partnercentralselling#Channel": { + "type": "enum", + "members": { + "AWS_MARKETING_CENTRAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS Marketing Central" + } + }, + "CONTENT_SYNDICATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Content Syndication" + } + }, + "DISPLAY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Display" + } + }, + "EMAIL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Email" + } + }, + "LIVE_EVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Live Event" + } + }, + "OUT_OF_HOME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Out Of Home (OOH)" + } + }, + "PRINT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Print" + } + }, + "SEARCH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Search" + } + }, + "SOCIAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Social" + } + }, + "TELEMARKETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Telemarketing" + } + }, + "TV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TV" + } + }, + "VIDEO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Video" + } + }, + "VIRTUAL_EVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Virtual Event" + } + } + } + }, + "com.amazonaws.partnercentralselling#Channels": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#Channel" + } + }, + "com.amazonaws.partnercentralselling#ClosedLostReason": { + "type": "enum", + "members": { + "CUSTOMER_DEFICIENCY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Customer Deficiency" + } + }, + "DELAY_CANCELLATION_OF_PROJECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Delay / Cancellation of Project" + } + }, + "LEGAL_TAX_REGULATORY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Legal / Tax / Regulatory" + } + }, + "LOST_TO_COMPETITOR_GOOGLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - Google" + } + }, + "LOST_TO_COMPETITOR_MICROSOFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - Microsoft" + } + }, + "LOST_TO_COMPETITOR_SOFTLAYER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - SoftLayer" + } + }, + "LOST_TO_COMPETITOR_VMWARE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - VMWare" + } + }, + "LOST_TO_COMPETITOR_OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Lost to Competitor - Other" + } + }, + "NO_OPPORTUNITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No Opportunity" + } + }, + "ON_PREMISES_DEPLOYMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "On Premises Deployment" + } + }, + "PARTNER_GAP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Partner Gap" + } + }, + "PRICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Price" + } + }, + "SECURITY_COMPLIANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Security / Compliance" + } + }, + "TECHNICAL_LIMITATIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Technical Limitations" + } + }, + "CUSTOMER_EXPERIENCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Customer Experience" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Other" + } + }, + "PEOPLERELATIONSHIPGOVERNANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "People/Relationship/Governance" + } + }, + "PRODUCTTECHNOLOGY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Product/Technology" + } + }, + "FINANCIALCOMMERCIAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Financial/Commercial" + } + } + } + }, + "com.amazonaws.partnercentralselling#CompanyName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 120 + }, + "smithy.api#pattern": "^[\\p{L}\\p{N}\\p{P}\\p{Z}]+$" + } + }, + "com.amazonaws.partnercentralselling#CompanyWebsiteUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 4, + "max": 255 + }, + "smithy.api#pattern": "^((http|https)://)??(www[.])??([a-zA-Z0-9]|-)+?([.][a-zA-Z0-9(-|/|=|?)??]+?)+?$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#CompetitorName": { + "type": "enum", + "members": { + "ORACLE_CLOUD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Oracle Cloud" + } + }, + "ON_PREM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "On-Prem" + } + }, + "CO_LOCATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-location" + } + }, + "AKAMAI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Akamai" + } + }, + "ALICLOUD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AliCloud" + } + }, + "GOOGLE_CLOUD_PLATFORM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Google Cloud Platform" + } + }, + "IBM_SOFTLAYER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IBM Softlayer" + } + }, + "MICROSOFT_AZURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Microsoft Azure" + } + }, + "OTHER_COST_OPTIMIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Other- Cost Optimization" + } + }, + "NO_COMPETITION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No Competition" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "*Other" + } + } + } + }, + "com.amazonaws.partnercentralselling#ConflictException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

This error occurs when the request can’t be processed due to a conflict with the target resource's current state, which could result from updating or deleting the resource.\n

\n

Suggested action: Fetch the latest state of the resource, verify the state, and retry the request.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.partnercentralselling#Contact": { + "type": "structure", + "members": { + "Email": { + "target": "com.amazonaws.partnercentralselling#Email", + "traits": { + "smithy.api#documentation": "

The contact's email address associated with the Opportunity.\n

" + } + }, + "FirstName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

The contact's first name associated with the Opportunity.\n

", + "smithy.api#length": { + "max": 80 + } + } + }, + "LastName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

The contact's last name associated with the Opportunity.\n

", + "smithy.api#length": { + "max": 80 + } + } + }, + "BusinessTitle": { + "target": "com.amazonaws.partnercentralselling#JobTitle", + "traits": { + "smithy.api#documentation": "

The partner contact's title (job title or role) associated with the Opportunity.\n

" + } + }, + "Phone": { + "target": "com.amazonaws.partnercentralselling#PhoneNumber", + "traits": { + "smithy.api#documentation": "

The contact's phone number associated with the Opportunity.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains a Customer Partner's contact details.\n

" + } + }, + "com.amazonaws.partnercentralselling#CountryCode": { + "type": "enum", + "members": { + "US": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "US" + } + }, + "AF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AF" + } + }, + "AX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AX" + } + }, + "AL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AL" + } + }, + "DZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DZ" + } + }, + "AS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AS" + } + }, + "AD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AD" + } + }, + "AO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AO" + } + }, + "AI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AI" + } + }, + "AQ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AQ" + } + }, + "AG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AG" + } + }, + "AR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AR" + } + }, + "AM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AM" + } + }, + "AW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AW" + } + }, + "AU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AU" + } + }, + "AT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AT" + } + }, + "AZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AZ" + } + }, + "BS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BS" + } + }, + "BH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BH" + } + }, + "BD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BD" + } + }, + "BB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BB" + } + }, + "BY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BY" + } + }, + "BE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BE" + } + }, + "BZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BZ" + } + }, + "BJ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BJ" + } + }, + "BM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BM" + } + }, + "BT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BT" + } + }, + "BO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BO" + } + }, + "BQ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BQ" + } + }, + "BA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BA" + } + }, + "BW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BW" + } + }, + "BV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BV" + } + }, + "BR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BR" + } + }, + "IO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IO" + } + }, + "BN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BN" + } + }, + "BG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BG" + } + }, + "BF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BF" + } + }, + "BI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BI" + } + }, + "KH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KH" + } + }, + "CM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CM" + } + }, + "CA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CA" + } + }, + "CV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CV" + } + }, + "KY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KY" + } + }, + "CF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CF" + } + }, + "TD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TD" + } + }, + "CL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CL" + } + }, + "CN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CN" + } + }, + "CX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CX" + } + }, + "CC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CC" + } + }, + "CO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CO" + } + }, + "KM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KM" + } + }, + "CG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CG" + } + }, + "CK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CK" + } + }, + "CR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CR" + } + }, + "CI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CI" + } + }, + "HR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HR" + } + }, + "CU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CU" + } + }, + "CW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CW" + } + }, + "CY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CY" + } + }, + "CZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CZ" + } + }, + "CD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CD" + } + }, + "DK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DK" + } + }, + "DJ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DJ" + } + }, + "DM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DM" + } + }, + "DO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DO" + } + }, + "EC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EC" + } + }, + "EG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EG" + } + }, + "SV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SV" + } + }, + "GQ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GQ" + } + }, + "ER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ER" + } + }, + "EE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EE" + } + }, + "ET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ET" + } + }, + "FK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FK" + } + }, + "FO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FO" + } + }, + "FJ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FJ" + } + }, + "FI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FI" + } + }, + "FR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FR" + } + }, + "GF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GF" + } + }, + "PF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PF" + } + }, + "TF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TF" + } + }, + "GA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GA" + } + }, + "GM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GM" + } + }, + "GE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GE" + } + }, + "DE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DE" + } + }, + "GH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GH" + } + }, + "GI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GI" + } + }, + "GR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GR" + } + }, + "GL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GL" + } + }, + "GD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GD" + } + }, + "GP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GP" + } + }, + "GU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GU" + } + }, + "GT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GT" + } + }, + "GG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GG" + } + }, + "GN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GN" + } + }, + "GW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GW" + } + }, + "GY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GY" + } + }, + "HT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HT" + } + }, + "HM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HM" + } + }, + "VA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VA" + } + }, + "HN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HN" + } + }, + "HK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HK" + } + }, + "HU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HU" + } + }, + "IS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IS" + } + }, + "IN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN" + } + }, + "ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ID" + } + }, + "IR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IR" + } + }, + "IQ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IQ" + } + }, + "IE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IE" + } + }, + "IM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IM" + } + }, + "IL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IL" + } + }, + "IT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IT" + } + }, + "JM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JM" + } + }, + "JP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JP" + } + }, + "JE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JE" + } + }, + "JO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JO" + } + }, + "KZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KZ" + } + }, + "KE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KE" + } + }, + "KI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KI" + } + }, + "KR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KR" + } + }, + "KW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KW" + } + }, + "KG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KG" + } + }, + "LA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LA" + } + }, + "LV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LV" + } + }, + "LB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LB" + } + }, + "LS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LS" + } + }, + "LR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LR" + } + }, + "LY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LY" + } + }, + "LI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LI" + } + }, + "LT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LT" + } + }, + "LU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LU" + } + }, + "MO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MO" + } + }, + "MK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MK" + } + }, + "MG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MG" + } + }, + "MW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MW" + } + }, + "MY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MY" + } + }, + "MV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MV" + } + }, + "ML": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ML" + } + }, + "MT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MT" + } + }, + "MH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MH" + } + }, + "MQ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MQ" + } + }, + "MR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MR" + } + }, + "MU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MU" + } + }, + "YT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "YT" + } + }, + "MX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MX" + } + }, + "FM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FM" + } + }, + "MD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MD" + } + }, + "MC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MC" + } + }, + "MN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MN" + } + }, + "ME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ME" + } + }, + "MS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MS" + } + }, + "MA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MA" + } + }, + "MZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MZ" + } + }, + "MM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MM" + } + }, + "NA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NA" + } + }, + "NR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NR" + } + }, + "NP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NP" + } + }, + "NL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NL" + } + }, + "AN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AN" + } + }, + "NC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NC" + } + }, + "NZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NZ" + } + }, + "NI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NI" + } + }, + "NE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NE" + } + }, + "NG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NG" + } + }, + "NU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NU" + } + }, + "NF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NF" + } + }, + "MP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MP" + } + }, + "NO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO" + } + }, + "OM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OM" + } + }, + "PK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PK" + } + }, + "PW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PW" + } + }, + "PS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PS" + } + }, + "PA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PA" + } + }, + "PG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PG" + } + }, + "PY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PY" + } + }, + "PE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PE" + } + }, + "PH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PH" + } + }, + "PN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PN" + } + }, + "PL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PL" + } + }, + "PT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PT" + } + }, + "PR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PR" + } + }, + "QA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "QA" + } + }, + "RE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RE" + } + }, + "RO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RO" + } + }, + "RU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RU" + } + }, + "RW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RW" + } + }, + "BL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BL" + } + }, + "SH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SH" + } + }, + "KN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KN" + } + }, + "LC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LC" + } + }, + "MF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MF" + } + }, + "PM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PM" + } + }, + "VC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VC" + } + }, + "WS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WS" + } + }, + "SM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SM" + } + }, + "ST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ST" + } + }, + "SA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SA" + } + }, + "SN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SN" + } + }, + "RS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RS" + } + }, + "SC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SC" + } + }, + "SL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SL" + } + }, + "SG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SG" + } + }, + "SX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SX" + } + }, + "SK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SK" + } + }, + "SI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SI" + } + }, + "SB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SB" + } + }, + "SO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SO" + } + }, + "ZA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ZA" + } + }, + "GS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GS" + } + }, + "SS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SS" + } + }, + "ES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ES" + } + }, + "LK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LK" + } + }, + "SD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SD" + } + }, + "SR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SR" + } + }, + "SJ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SJ" + } + }, + "SZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SZ" + } + }, + "SE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SE" + } + }, + "CH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CH" + } + }, + "SY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SY" + } + }, + "TW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TW" + } + }, + "TJ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TJ" + } + }, + "TZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TZ" + } + }, + "TH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TH" + } + }, + "TL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TL" + } + }, + "TG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TG" + } + }, + "TK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TK" + } + }, + "TO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TO" + } + }, + "TT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TT" + } + }, + "TN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TN" + } + }, + "TR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TR" + } + }, + "TM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TM" + } + }, + "TC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TC" + } + }, + "TV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TV" + } + }, + "UG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UG" + } + }, + "UA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UA" + } + }, + "AE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AE" + } + }, + "GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GB" + } + }, + "UM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UM" + } + }, + "UY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UY" + } + }, + "UZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UZ" + } + }, + "VU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VU" + } + }, + "VE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VE" + } + }, + "VN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VN" + } + }, + "VG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VG" + } + }, + "VI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VI" + } + }, + "WF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WF" + } + }, + "EH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EH" + } + }, + "YE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "YE" + } + }, + "ZM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ZM" + } + }, + "ZW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ZW" + } + } + }, + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#CreateOpportunity": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#CreateOpportunityRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#CreateOpportunityResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ConflictException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to create new Opportunities on AWS Partner Central" + }, + "smithy.api#documentation": "

\n Creates an Opportunity record in Partner Central. Use this operation to create\n a potential business opportunity intended to be submitted to Amazon Web Services. Creating an opportunity sets its Lifecycle.ReviewStatus to\n Pending Submission.\n

\n

\n To fully submit an opportunity, follow these steps:\n

\n
    \n
  1. \n

    To create the opportunity, use CreateOpportunity.

    \n
  2. \n
  3. \n

    To associate a solution with the opportunity, use AssociateOpportunity.

    \n
  4. \n
  5. \n

    To submit the opportunity, use SubmitOpportunity.

    \n
  6. \n
\n

\n After submission, you can't edit the opportunity until the review is complete. However, opportunities in the\n Pending Submission state still need all details completed. You can update\n the opportunity while it's in the Pending Submission state.\n

\n

\n There's a set of mandatory fields required to create opportunities, but consider providing optional fields to\n enrich the opportunity record.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/CreateOpportunity", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.partnercentralselling#CreateOpportunityRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog associated with the request. This field takes a string value from a predefined list:\n AWS or Sandbox. The catalog determines which environment the opportunity\n is created in. Use AWS to create opportunities in the Amazon Web Services catalog,\n and Sandbox to test in a secure and isolated environment.\n

", + "smithy.api#required": {} + } + }, + "PrimaryNeedsFromAws": { + "target": "com.amazonaws.partnercentralselling#PrimaryNeedsFromAws", + "traits": { + "smithy.api#documentation": "

\n Identifies the type of support the partner needs from Amazon Web Services.\n

\n

\n Valid values:\n

\n
    \n
  • \n

    \n Co-Sell - Architectural Validation: Confirmation from Amazon Web Services that the partner's proposed solution architecture is aligned with Amazon Web Services best practices and poses minimal architectural risks.\n

    \n
  • \n
  • \n

    \n Co-Sell - Business Presentation: Request Amazon Web Services seller's participation in a joint customer presentation.\n

    \n
  • \n
  • \n

    \n Co-Sell - Competitive Information: Access to Amazon Web Services competitive resources and support for the partner's proposed solution.\n

    \n
  • \n
  • \n

    \n Co-Sell - Pricing Assistance: Connect with an Amazon Web Services seller for support situations where a partner may be receiving an upfront discount on a service (for example: EDP deals).\n

    \n
  • \n
  • \n

    \n Co-Sell - Technical Consultation: Connect with an Amazon Web Services Solutions Architect to address the partner's questions about the proposed solution.\n

    \n
  • \n
  • \n

    \n Co-Sell - Total Cost of Ownership Evaluation: Assistance with quoting different cost savings of proposed solutions on Amazon Web Services versus on-premises or a traditional hosting environment.\n

    \n
  • \n
  • \n

    \n Co-Sell - Deal Support: Request Amazon Web Services seller's support to progress the opportunity (for example: joint customer call, strategic positioning).\n

    \n
  • \n
  • \n

    \n Co-Sell - Support for Public Tender / RFx: Opportunity related to the public sector where the partner needs Amazon Web Services RFx support.\n

    \n
  • \n
  • \n

    \n Do Not Need Support from AWS Sales Rep: Indicates that a partner doesn't need support from an Amazon Web Services sales representative, and the partner solely manages the opportunity. It's possible to request co-selling support on these opportunities at any stage during their lifecycle. Also known as, for-visibility-only (FVO) opportunity.\n

    \n
  • \n
" + } + }, + "NationalSecurity": { + "target": "com.amazonaws.partnercentralselling#NationalSecurity", + "traits": { + "smithy.api#documentation": "

Indicates whether the Opportunity pertains to a national security project. This field must be set to true only when the customer's industry is Government. Additional privacy and security measures apply during the review and management process for opportunities marked as NationalSecurity.

" + } + }, + "PartnerOpportunityIdentifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n Specifies the opportunity's unique identifier in the partner's CRM system. This value is essential\n to track and reconcile because it's included in the outbound payload sent back to the partner.\n

\n

\n This field allows partners to link an opportunity to their CRM, to ensure seamless integration and accurate\n synchronization between the Partner Central API and the partner's internal systems.\n

", + "smithy.api#length": { + "max": 64 + } + } + }, + "Customer": { + "target": "com.amazonaws.partnercentralselling#Customer", + "traits": { + "smithy.api#documentation": "

Specifies customer details associated with the Opportunity.\n

" + } + }, + "Project": { + "target": "com.amazonaws.partnercentralselling#Project", + "traits": { + "smithy.api#documentation": "

An object that contains project details for the\n Opportunity.\n

" + } + }, + "OpportunityType": { + "target": "com.amazonaws.partnercentralselling#OpportunityType", + "traits": { + "smithy.api#documentation": "

\n Specifies the opportunity type as a renewal, new, or expansion.\n

\n

\n Opportunity types:\n

\n
    \n
  • \n

    \n New opportunity:\n Represents a new business opportunity with a potential customer that's not previously engaged with your solutions or services.\n

    \n
  • \n
  • \n

    \n Renewal opportunity:\n Represents an opportunity to renew an existing contract or subscription with a current customer, ensuring continuity of service.\n

    \n
  • \n
  • \n

    \n Expansion opportunity:\n Represents an opportunity to expand the scope of an existing contract or subscription, either by adding new services or increasing the volume of existing services for a current customer.\n

    \n
  • \n
" + } + }, + "Marketing": { + "target": "com.amazonaws.partnercentralselling#Marketing", + "traits": { + "smithy.api#documentation": "

This object contains marketing details and is optional for an opportunity.

" + } + }, + "SoftwareRevenue": { + "target": "com.amazonaws.partnercentralselling#SoftwareRevenue", + "traits": { + "smithy.api#documentation": "

Specifies details of a customer's procurement terms. Required only for partners in eligible programs.

" + } + }, + "ClientToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n Required to be unique, and should be unchanging, it can be randomly generated or a meaningful string.\n

\n

\n Default: None\n

\n

\n Best practice: To ensure uniqueness and avoid collisions, we recommend you use a UUID (Universally Unique Identifier) as the ClientToken. You can use standard libraries available in most programming languages to generated this. If you use the same client token, the API throws this error: \"Conflicting client token submitted for a new request body\".\n

", + "smithy.api#idempotencyToken": {}, + "smithy.api#length": { + "min": 1 + }, + "smithy.api#required": {} + } + }, + "LifeCycle": { + "target": "com.amazonaws.partnercentralselling#LifeCycle", + "traits": { + "smithy.api#documentation": "

An object that contains lifecycle details for the Opportunity.\n

" + } + }, + "Origin": { + "target": "com.amazonaws.partnercentralselling#OpportunityOrigin", + "traits": { + "smithy.api#documentation": "

\n Specifies the origin of the opportunity, indicating if it was sourced from Amazon Web Services or the partner.\n For all opportunities created with Catalog: AWS, this field must only be Partner Referral.\n However, when using Catalog: Sandbox, you can set this field to AWS Referral\n to simulate Amazon Web Services referral creation. This allows Amazon Web Services-originated flows testing in the sandbox catalog.\n

" + } + }, + "OpportunityTeam": { + "target": "com.amazonaws.partnercentralselling#PartnerOpportunityTeamMembersList", + "traits": { + "smithy.api#documentation": "

Represents the internal team handling the opportunity. Specify the members involved in collaborating on this opportunity within the partner's organization.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#CreateOpportunityResponse": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

\n Read-only, system-generated Opportunity unique identifier. Amazon Web Services creates this identifier, and it's\n used for all subsequent actions on the opportunity, such as updates, associations, and submissions. It ensures\n that each opportunity can be accurately tracked and managed within the system.\n

", + "smithy.api#required": {} + } + }, + "PartnerOpportunityIdentifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the opportunity's unique identifier in the partner's CRM system. This value is essential to\n track and reconcile because it's included in the outbound payload sent back to the partner.\n

" + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n DateTime\n when the opportunity was last modified. When the Opportunity is created, its value is equal to\n CreatedDate.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#CurrencyCode": { + "type": "enum", + "members": { + "USD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USD" + } + }, + "EUR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EUR" + } + }, + "GBP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GBP" + } + }, + "AUD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AUD" + } + }, + "CAD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CAD" + } + }, + "CNY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CNY" + } + }, + "NZD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NZD" + } + }, + "INR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INR" + } + }, + "JPY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JPY" + } + }, + "CHF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CHF" + } + }, + "SEK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SEK" + } + }, + "AED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AED" + } + }, + "AFN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AFN" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + }, + "AMD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AMD" + } + }, + "ANG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANG" + } + }, + "AOA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AOA" + } + }, + "ARS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ARS" + } + }, + "AWG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWG" + } + }, + "AZN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AZN" + } + }, + "BAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAM" + } + }, + "BBD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BBD" + } + }, + "BDT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BDT" + } + }, + "BGN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BGN" + } + }, + "BHD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BHD" + } + }, + "BIF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BIF" + } + }, + "BMD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BMD" + } + }, + "BND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BND" + } + }, + "BOB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BOB" + } + }, + "BOV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BOV" + } + }, + "BRL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BRL" + } + }, + "BSD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BSD" + } + }, + "BTN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BTN" + } + }, + "BWP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BWP" + } + }, + "BYN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BYN" + } + }, + "BZD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BZD" + } + }, + "CDF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CDF" + } + }, + "CHE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CHE" + } + }, + "CHW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CHW" + } + }, + "CLF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLF" + } + }, + "CLP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLP" + } + }, + "COP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COP" + } + }, + "COU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COU" + } + }, + "CRC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CRC" + } + }, + "CUC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUC" + } + }, + "CUP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUP" + } + }, + "CVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CVE" + } + }, + "CZK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CZK" + } + }, + "DJF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DJF" + } + }, + "DKK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DKK" + } + }, + "DOP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOP" + } + }, + "DZD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DZD" + } + }, + "EGP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EGP" + } + }, + "ERN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ERN" + } + }, + "ETB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ETB" + } + }, + "FJD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FJD" + } + }, + "FKP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FKP" + } + }, + "GEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GEL" + } + }, + "GHS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GHS" + } + }, + "GIP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GIP" + } + }, + "GMD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GMD" + } + }, + "GNF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GNF" + } + }, + "GTQ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GTQ" + } + }, + "GYD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GYD" + } + }, + "HKD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HKD" + } + }, + "HNL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HNL" + } + }, + "HRK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HRK" + } + }, + "HTG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HTG" + } + }, + "HUF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HUF" + } + }, + "IDR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IDR" + } + }, + "ILS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ILS" + } + }, + "IQD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IQD" + } + }, + "IRR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IRR" + } + }, + "ISK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ISK" + } + }, + "JMD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JMD" + } + }, + "JOD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JOD" + } + }, + "KES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KES" + } + }, + "KGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KGS" + } + }, + "KHR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KHR" + } + }, + "KMF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KMF" + } + }, + "KPW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KPW" + } + }, + "KRW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KRW" + } + }, + "KWD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KWD" + } + }, + "KYD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KYD" + } + }, + "KZT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KZT" + } + }, + "LAK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LAK" + } + }, + "LBP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LBP" + } + }, + "LKR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LKR" + } + }, + "LRD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LRD" + } + }, + "LSL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LSL" + } + }, + "LYD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LYD" + } + }, + "MAD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAD" + } + }, + "MDL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MDL" + } + }, + "MGA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MGA" + } + }, + "MKD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MKD" + } + }, + "MMK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MMK" + } + }, + "MNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MNT" + } + }, + "MOP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MOP" + } + }, + "MRU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MRU" + } + }, + "MUR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MUR" + } + }, + "MVR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MVR" + } + }, + "MWK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MWK" + } + }, + "MXN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MXN" + } + }, + "MXV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MXV" + } + }, + "MYR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MYR" + } + }, + "MZN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MZN" + } + }, + "NAD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NAD" + } + }, + "NGN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NGN" + } + }, + "NIO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NIO" + } + }, + "NOK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOK" + } + }, + "NPR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NPR" + } + }, + "OMR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OMR" + } + }, + "PAB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PAB" + } + }, + "PEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PEN" + } + }, + "PGK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PGK" + } + }, + "PHP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PHP" + } + }, + "PKR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PKR" + } + }, + "PLN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PLN" + } + }, + "PYG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PYG" + } + }, + "QAR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "QAR" + } + }, + "RON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RON" + } + }, + "RSD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RSD" + } + }, + "RUB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUB" + } + }, + "RWF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RWF" + } + }, + "SAR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SAR" + } + }, + "SBD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SBD" + } + }, + "SCR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SCR" + } + }, + "SDG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SDG" + } + }, + "SGD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SGD" + } + }, + "SHP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SHP" + } + }, + "SLL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SLL" + } + }, + "SOS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SOS" + } + }, + "SRD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SRD" + } + }, + "SSP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SSP" + } + }, + "STN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STN" + } + }, + "SVC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SVC" + } + }, + "SYP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SYP" + } + }, + "SZL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SZL" + } + }, + "THB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "THB" + } + }, + "TJS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TJS" + } + }, + "TMT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TMT" + } + }, + "TND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TND" + } + }, + "TOP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TOP" + } + }, + "TRY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRY" + } + }, + "TTD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TTD" + } + }, + "TWD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TWD" + } + }, + "TZS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TZS" + } + }, + "UAH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UAH" + } + }, + "UGX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UGX" + } + }, + "USN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USN" + } + }, + "UYI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UYI" + } + }, + "UYU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UYU" + } + }, + "UZS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UZS" + } + }, + "VEF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VEF" + } + }, + "VND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VND" + } + }, + "VUV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VUV" + } + }, + "WST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WST" + } + }, + "XAF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XAF" + } + }, + "XCD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XCD" + } + }, + "XDR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XDR" + } + }, + "XOF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XOF" + } + }, + "XPF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XPF" + } + }, + "XSU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XSU" + } + }, + "XUA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "XUA" + } + }, + "YER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "YER" + } + }, + "ZAR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ZAR" + } + }, + "ZMW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ZMW" + } + }, + "ZWL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ZWL" + } + } + } + }, + "com.amazonaws.partnercentralselling#Customer": { + "type": "structure", + "members": { + "Account": { + "target": "com.amazonaws.partnercentralselling#Account", + "traits": { + "smithy.api#documentation": "

An object that contains the customer's account details.

" + } + }, + "Contacts": { + "target": "com.amazonaws.partnercentralselling#CustomerContactsList", + "traits": { + "smithy.api#documentation": "

Represents the contact details for individuals associated with the customer of the Opportunity. This field captures relevant contacts, including decision-makers, influencers, and technical stakeholders within the customer organization. These contacts are key to progressing the opportunity.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains the customer's Account and Contact.\n

" + } + }, + "com.amazonaws.partnercentralselling#CustomerContactsList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#Contact" + } + }, + "com.amazonaws.partnercentralselling#CustomerSummary": { + "type": "structure", + "members": { + "Account": { + "target": "com.amazonaws.partnercentralselling#AccountSummary", + "traits": { + "smithy.api#documentation": "

An object that contains a customer's account details.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains a Customer object's subset of fields.\n

" + } + }, + "com.amazonaws.partnercentralselling#Date": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$" + } + }, + "com.amazonaws.partnercentralselling#DateTime": { + "type": "timestamp", + "traits": { + "smithy.api#timestampFormat": "date-time" + } + }, + "com.amazonaws.partnercentralselling#DeliveryModel": { + "type": "enum", + "members": { + "SAAS_OR_PAAS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SaaS or PaaS" + } + }, + "BYOL_OR_AMI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BYOL or AMI" + } + }, + "MANAGED_SERVICES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Managed Services" + } + }, + "PROFESSIONAL_SERVICES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Professional Services" + } + }, + "RESELL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Resell" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Other" + } + } + } + }, + "com.amazonaws.partnercentralselling#DeliveryModels": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#DeliveryModel" + } + }, + "com.amazonaws.partnercentralselling#DisassociateOpportunity": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#DisassociateOpportunityRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:RelatedEntityType", + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to disassociate Opportunities on AWS Partner Central from other entities" + }, + "smithy.api#documentation": "

\n Allows you to remove an existing association between an Opportunity and related entities such as a Partner Solution, Amazon Web Services product, or an Amazon Web Services Marketplace offer.\n This operation is the counterpart to AssociateOpportunity, and it provides flexibility to manage\n associations as business needs change.\n

\n

\n Use this operation to update the associations of an Opportunity due to changes in the related entities,\n or if an association was made in error. Ensuring accurate associations helps maintain clarity and accuracy to track\n and manage business opportunities. When you replace an entity, first attach the new entity and then disassociate the\n one to be removed, especially if it's the last remaining related entity that's required.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/DisassociateOpportunity", + "code": 200 + } + } + }, + "com.amazonaws.partnercentralselling#DisassociateOpportunityRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog associated with the request. This field takes a string value from a predefined list:\n AWS or Sandbox. The catalog determines which environment the opportunity\n disassociation is made in. Use AWS to disassociate opportunities in the Amazon Web Services catalog,\n and Sandbox to test in a secure and isolated environment.\n

", + "smithy.api#required": {} + } + }, + "OpportunityIdentifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

The opportunity's unique identifier for when you want to disassociate it from related entities. This identifier\n is crucial to ensure the correct opportunity is updated, especially in environments with numerous\n opportunities.\n

\n

Validation: Ensure that the identifier provided corresponds to an existing opportunity in the Amazon Web Services system because\n incorrect identifiers result in an error and no changes are made.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "Identifier" + } + }, + "RelatedEntityType": { + "target": "com.amazonaws.partnercentralselling#RelatedEntityType", + "traits": { + "smithy.api#documentation": "

The type of the entity that you're disassociating from the opportunity. When you specify the entity type, it helps\n the system correctly process the disassociation request and ensures that the right connections are removed.\n

\n

Examples of entity types include Partner Solution, Amazon Web Services product, and Amazon Web Services Marketplace offer. Ensure that the value\n matches one of the expected entity types.\n

\n

Validation: Provide a valid entity type to ensure successful disassociation. Invalid or incorrect entity\n types result in an error.\n

", + "smithy.api#required": {} + } + }, + "RelatedEntityIdentifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The related entity's identifier that you want to disassociate from the opportunity. Depending on the\n type of entity, this could be a simple identifier or an Amazon Resource Name (ARN) for entities managed\n through Amazon Web Services Marketplace.\n

\n

For Amazon Web Services Marketplace entities, use the Amazon Web Services Marketplace API to obtain the necessary ARNs.\n For guidance on retrieving these ARNs, refer to \n Amazon Web Services Marketplace Catalog API .\n

\n

Validation: Ensure the identifier or ARN is valid and corresponds to an existing related entity.\n An incorrect or invalid identifier results in an error.\n

", + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#DunsNumber": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[0-9]{9}$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#Email": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 80 + }, + "smithy.api#pattern": "^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#EngagementByAcceptingInvitationTask": { + "type": "resource", + "identifiers": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier" + }, + "TaskId": { + "target": "com.amazonaws.partnercentralselling#TaskIdentifier" + } + }, + "create": { + "target": "com.amazonaws.partnercentralselling#StartEngagementByAcceptingInvitationTask" + }, + "traits": { + "aws.api#arn": { + "template": "catalog/{Catalog}/engagement-by-accepting-invitation-task/{TaskId}", + "noAccount": true + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "name": "engagement-by-accepting-invitation-task", + "relativeDocumentation": "/working-with-tasks.html" + }, + "smithy.api#documentation": "Represents a task that starts an Engagement by accepting an Engagement Invitation in AWS Partner Central" + } + }, + "com.amazonaws.partnercentralselling#EngagementCustomer": { + "type": "structure", + "members": { + "Industry": { + "target": "com.amazonaws.partnercentralselling#Industry", + "traits": { + "smithy.api#documentation": "

Specifies the industry to which the customer’s company belongs. This field helps categorize the opportunity based on the customer’s business sector.

", + "smithy.api#required": {} + } + }, + "CompanyName": { + "target": "com.amazonaws.partnercentralselling#CompanyName", + "traits": { + "smithy.api#documentation": "

Represents the name of the customer’s company associated with the Engagement Invitation. This field is used to identify the customer.

", + "smithy.api#required": {} + } + }, + "WebsiteUrl": { + "target": "com.amazonaws.partnercentralselling#CompanyWebsiteUrl", + "traits": { + "smithy.api#documentation": "

Provides the website URL of the customer’s company. This field helps partners verify the legitimacy and size of the customer organization.

", + "smithy.api#required": {} + } + }, + "CountryCode": { + "target": "com.amazonaws.partnercentralselling#CountryCode", + "traits": { + "smithy.api#documentation": "

Indicates the country in which the customer’s company operates. This field is useful for understanding regional requirements or compliance needs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the customer associated with the Engagement Invitation, including key company information and industry.

" + } + }, + "com.amazonaws.partnercentralselling#EngagementCustomerBusinessProblem": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 255 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#EngagementFromOpportunityTask": { + "type": "resource", + "identifiers": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier" + }, + "TaskId": { + "target": "com.amazonaws.partnercentralselling#TaskIdentifier" + } + }, + "create": { + "target": "com.amazonaws.partnercentralselling#StartEngagementFromOpportunityTask" + }, + "traits": { + "aws.api#arn": { + "template": "catalog/{Catalog}/engagement-from-opportunity-task/{TaskId}", + "noAccount": true + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "name": "engagement-from-opportunity-task", + "relativeDocumentation": "/working-with-tasks.html" + }, + "smithy.api#documentation": "Represents a task that starts an Engagement from an Opportunity in AWS Partner Central" + } + }, + "com.amazonaws.partnercentralselling#EngagementInvitation": { + "type": "resource", + "identifiers": { + "Identifier": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier" + }, + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier" + } + }, + "read": { + "target": "com.amazonaws.partnercentralselling#GetEngagementInvitation" + }, + "list": { + "target": "com.amazonaws.partnercentralselling#ListEngagementInvitations" + }, + "operations": [ + { + "target": "com.amazonaws.partnercentralselling#RejectEngagementInvitation" + } + ], + "traits": { + "aws.api#arn": { + "template": "catalog/{Catalog}/engagement-invitation/{Identifier}", + "noAccount": true + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "name": "engagement-invitation", + "relativeDocumentation": "/working-with-engagement-invitations.html" + }, + "smithy.api#documentation": "Represents an Engagement Invitation that allows to join an Engagement on AWS Partner Central" + } + }, + "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier": { + "type": "string", + "traits": { + "aws.api#arnReference": { + "resource": "com.amazon.partnerintegrationapi.operation#EngagementInvitation" + }, + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^(arn:.*|engi-[0-9a-z]{13})$" + } + }, + "com.amazonaws.partnercentralselling#EngagementInvitationIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^engi-[0-9,a-z]{13}$" + } + }, + "com.amazonaws.partnercentralselling#EngagementInvitationPayloadType": { + "type": "enum", + "members": { + "OPPORTUNITY_INVITATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OpportunityInvitation" + } + } + } + }, + "com.amazonaws.partnercentralselling#EngagementInvitationSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationSummary" + } + }, + "com.amazonaws.partnercentralselling#EngagementInvitationSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Engagement Invitation. The ARN is a unique identifier that allows partners to reference the invitation in their system and manage its lifecycle.

" + } + }, + "PayloadType": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationPayloadType", + "traits": { + "smithy.api#documentation": "

Describes the type of payload associated with the Engagement Invitation, such as Opportunity or MarketplaceOffer. This helps partners understand the nature of the engagement request from AWS.

" + } + }, + "Id": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier", + "traits": { + "smithy.api#documentation": "

Represents the unique identifier of the Engagement Invitation. This identifier is used to track the invitation and to manage responses like acceptance or rejection.

", + "smithy.api#required": {} + } + }, + "EngagementTitle": { + "target": "com.amazonaws.partnercentralselling#EngagementTitle", + "traits": { + "smithy.api#documentation": "

Provides a short title or description of the Engagement Invitation. This title helps partners quickly identify and differentiate between multiple engagement opportunities.

" + } + }, + "Status": { + "target": "com.amazonaws.partnercentralselling#InvitationStatus", + "traits": { + "smithy.api#documentation": "

Represents the current status of the Engagement Invitation, such as Pending, Accepted, or Rejected. The status helps track the progress and response to the invitation.

" + } + }, + "InvitationDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

Indicates the date when the Engagement Invitation was sent to the partner. This provides context for when the opportunity was shared and helps in tracking the timeline for engagement.

" + } + }, + "ExpirationDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

Indicates the date and time when the Engagement Invitation will expire. After this date, the invitation can no longer be accepted, and the opportunity will no longer be available for the partner to engage.

" + } + }, + "SenderAwsAccountId": { + "target": "com.amazonaws.partnercentralselling#AwsAccountIdOrLabel", + "traits": { + "smithy.api#documentation": "

Specifies the AWS account ID of the sender who initiated the Engagement Invitation. This allows the partner to identify the AWS entity or representative responsible for sharing the opportunity.

" + } + }, + "SenderCompanyName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Indicates the name of the company or AWS division that sent the Engagement Invitation. This information is useful for partners to know which part of AWS is requesting engagement.

", + "smithy.api#length": { + "max": 120 + } + } + }, + "Receiver": { + "target": "com.amazonaws.partnercentralselling#Receiver", + "traits": { + "smithy.api#documentation": "

Specifies the partner company or individual that received the Engagement Invitation. This field is important for tracking who the invitation was sent to within the partner organization.

" + } + }, + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog in which the Engagement Invitation resides. This can be either the AWS or Sandbox catalog, indicating whether the opportunity is live or being tested.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides a summarized view of the Engagement Invitation, including key details like the identifier, status, and sender information. This summary helps partners track and manage AWS-originated opportunities.

" + } + }, + "com.amazonaws.partnercentralselling#EngagementInvitationsPayloadType": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationPayloadType" + } + }, + "com.amazonaws.partnercentralselling#EngagementScore": { + "type": "enum", + "members": { + "HIGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "High" + } + }, + "MEDIUM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Medium" + } + }, + "LOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Low" + } + } + } + }, + "com.amazonaws.partnercentralselling#EngagementTitle": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + } + } + }, + "com.amazonaws.partnercentralselling#ExpectedCustomerSpend": { + "type": "structure", + "members": { + "Amount": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Represents the estimated monthly revenue that the partner expects to earn from the opportunity. This helps in forecasting financial returns.

", + "smithy.api#pattern": "^(0|([1-9][0-9]{0,30}))(\\.[0-9]{0,2})?$", + "smithy.api#required": {} + } + }, + "CurrencyCode": { + "target": "com.amazonaws.partnercentralselling#CurrencyCode", + "traits": { + "smithy.api#documentation": "

Indicates the currency in which the revenue estimate is provided. This helps in understanding the financial impact across different markets.

", + "smithy.api#pattern": "^USD$", + "smithy.api#required": {} + } + }, + "Frequency": { + "target": "com.amazonaws.partnercentralselling#PaymentFrequency", + "traits": { + "smithy.api#documentation": "

Indicates how frequently the customer is expected to spend the projected amount. This can include values such as Monthly, Quarterly, or Annually. The default value is Monthly, representing recurring monthly spend.

", + "smithy.api#required": {} + } + }, + "TargetCompany": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the name of the partner company that is expected to generate revenue from the opportunity. This field helps track the partner’s involvement in the opportunity.

", + "smithy.api#length": { + "min": 1, + "max": 80 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides an estimate of the revenue that the partner is expected to generate from the opportunity. This information helps partners assess the financial value of the project.

" + } + }, + "com.amazonaws.partnercentralselling#ExpectedCustomerSpendList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#ExpectedCustomerSpend" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.partnercentralselling#FilterIdentifier": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier" + } + }, + "com.amazonaws.partnercentralselling#FilterLifeCycleReviewStatus": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#ReviewStatus" + } + }, + "com.amazonaws.partnercentralselling#FilterLifeCycleStage": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#Stage" + } + }, + "com.amazonaws.partnercentralselling#FilterStatus": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#SolutionStatus" + } + }, + "com.amazonaws.partnercentralselling#GetAwsOpportunitySummary": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#GetAwsOpportunitySummaryRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#GetAwsOpportunitySummaryResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve AWS Opportunity Summaries for Opportunities on AWS Partner Central" + }, + "smithy.api#documentation": "

\n Retrieves a summary of an AWS Opportunity. This summary includes high-level details about the opportunity\n sourced from AWS, such as lifecycle information, customer details, and involvement type.\n It is useful for tracking updates on the AWS opportunity corresponding to an opportunity in the partner's account.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetAwsOpportunitySummary", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#GetAwsOpportunitySummaryRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog in which the AWS Opportunity is located. Accepted values include AWS\n for production opportunities or Sandbox for testing purposes. The catalog determines\n which environment the opportunity data is pulled from.\n

", + "smithy.api#required": {} + } + }, + "RelatedOpportunityIdentifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

\n The unique identifier for the related partner opportunity. Use this field to correlate an AWS\n opportunity with its corresponding partner opportunity in your CRM system.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "Identifier" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#GetAwsOpportunitySummaryResponse": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog in which the AWS Opportunity exists. This is the environment (e.g., AWS\n or Sandbox) where the opportunity is being managed.\n

", + "smithy.api#required": {} + } + }, + "RelatedOpportunityId": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

\n Provides the unique identifier of the related partner opportunity, allowing partners to link the AWS\n Opportunity to their corresponding opportunity in their CRM system.\n

" + } + }, + "Origin": { + "target": "com.amazonaws.partnercentralselling#OpportunityOrigin", + "traits": { + "smithy.api#documentation": "

\n Specifies whether the AWS Opportunity originated from AWS or the partner. This helps distinguish between\n opportunities that were sourced by AWS and those referred by the partner.\n

" + } + }, + "InvolvementType": { + "target": "com.amazonaws.partnercentralselling#SalesInvolvementType", + "traits": { + "smithy.api#documentation": "

\n Specifies the type of involvement AWS has in the opportunity, such as direct co-sell or advisory support.\n This field helps partners understand the role AWS will play in advancing the opportunity.\n

" + } + }, + "Visibility": { + "target": "com.amazonaws.partnercentralselling#Visibility", + "traits": { + "smithy.api#documentation": "

\n Defines the visibility level for the AWS Opportunity. Use Full visibility for most cases,\n while Limited visibility is reserved for special programs or sensitive opportunities.\n

" + } + }, + "LifeCycle": { + "target": "com.amazonaws.partnercentralselling#AwsOpportunityLifeCycle", + "traits": { + "smithy.api#documentation": "

\n Contains lifecycle information for the AWS Opportunity, including review status, stage, and target close date.\n This field is crucial for partners to monitor the progression of the opportunity.\n

" + } + }, + "OpportunityTeam": { + "target": "com.amazonaws.partnercentralselling#AwsOpportunityTeamMembersList", + "traits": { + "smithy.api#documentation": "

\n Details the AWS Opportunity team, including key members involved in the opportunity. This information\n helps partners know who from AWS is engaged and their roles in the opportunity.\n

" + } + }, + "Insights": { + "target": "com.amazonaws.partnercentralselling#AwsOpportunityInsights", + "traits": { + "smithy.api#documentation": "

\n Provides insights into the AWS Opportunity, including engagement score and recommended actions that AWS suggests\n for the partner.\n

" + } + }, + "InvolvementTypeChangeReason": { + "target": "com.amazonaws.partnercentralselling#InvolvementTypeChangeReason", + "traits": { + "smithy.api#documentation": "

\n Provides a reason for any changes in the involvement type of AWS in the opportunity. This field is used to\n track why the level of AWS engagement has changed from For Visibility Only to Co-sell offering transparency into the partnership dynamics.\n

" + } + }, + "RelatedEntityIds": { + "target": "com.amazonaws.partnercentralselling#AwsOpportunityRelatedEntities", + "traits": { + "smithy.api#documentation": "

\n Lists related entity identifiers, such as AWS products or partner solutions, associated with the AWS\n Opportunity. These identifiers provide additional context and help partners understand which AWS services\n are involved.\n

" + } + }, + "Customer": { + "target": "com.amazonaws.partnercentralselling#AwsOpportunityCustomer", + "traits": { + "smithy.api#documentation": "

\n Provides details about the customer associated with the AWS Opportunity, including account information,\n industry, and other key customer data. These details help partners understand the business context of the\n opportunity.\n

" + } + }, + "Project": { + "target": "com.amazonaws.partnercentralselling#AwsOpportunityProject", + "traits": { + "smithy.api#documentation": "

\n Provides details about the project associated with the AWS Opportunity, including the customer’s business\n problem, expected outcomes, and project scope. This information is crucial for understanding the broader\n context of the opportunity.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#GetEngagementInvitation": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#GetEngagementInvitationRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#GetEngagementInvitationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve details of Engagement Invitations on AWS Partner Central" + }, + "smithy.api#documentation": "

Retrieves the details of an engagement invitation shared by AWS with a partner. The information includes key aspects such as the customer, project details, and lifecycle information related to the engagement.

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetEngagementInvitation", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#GetEngagementInvitationRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog associated with the request. The field accepts values from the predefined set: AWS for live operations or Sandbox for testing environments.

", + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the unique identifier for the engagement invitation being retrieved.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#GetEngagementInvitationResponse": { + "type": "structure", + "members": { + "Arn": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) that uniquely identifies the engagement invitation.

" + } + }, + "PayloadType": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationPayloadType", + "traits": { + "smithy.api#documentation": "

The type of payload contained in the engagement invitation, indicating what data or context the payload covers.

" + } + }, + "Id": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier", + "traits": { + "smithy.api#documentation": "

Unique identifier assigned to the engagement invitation being retrieved.

", + "smithy.api#required": {} + } + }, + "EngagementTitle": { + "target": "com.amazonaws.partnercentralselling#EngagementTitle", + "traits": { + "smithy.api#documentation": "

The title of the engagement invitation, summarizing the purpose or key objectives of the opportunity shared by AWS.

" + } + }, + "Status": { + "target": "com.amazonaws.partnercentralselling#InvitationStatus", + "traits": { + "smithy.api#documentation": "

The current status of the engagement invitation (e.g., Accepted, Pending, or Rejected).

" + } + }, + "InvitationDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

The date when the engagement invitation was sent to the partner.

" + } + }, + "ExpirationDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

Indicates the date on which the engagement invitation will expire if not accepted by the partner.

" + } + }, + "SenderAwsAccountId": { + "target": "com.amazonaws.partnercentralselling#AwsAccountIdOrLabel", + "traits": { + "smithy.api#documentation": "

Specifies the AWS Account ID of the sender, which identifies the AWS team responsible for sharing the engagement invitation.

" + } + }, + "SenderCompanyName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the AWS organization or team that sent the engagement invitation.

", + "smithy.api#length": { + "max": 120 + } + } + }, + "Receiver": { + "target": "com.amazonaws.partnercentralselling#Receiver", + "traits": { + "smithy.api#documentation": "

Information about the partner organization or team that received the engagement invitation, including contact details and identifiers.

" + } + }, + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Indicates the catalog from which the engagement invitation details are retrieved. This field helps in identifying the appropriate catalog (e.g., AWS or Sandbox) used in the request.

", + "smithy.api#required": {} + } + }, + "RejectionReason": { + "target": "com.amazonaws.partnercentralselling#RejectionReasonString", + "traits": { + "smithy.api#documentation": "

If the engagement invitation was rejected, this field specifies the reason provided by the partner for the rejection.

" + } + }, + "Payload": { + "target": "com.amazonaws.partnercentralselling#Payload", + "traits": { + "smithy.api#documentation": "

Details of the engagement invitation payload, including specific data relevant to the invitation's contents, such as customer information and opportunity insights.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#GetOpportunity": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#GetOpportunityRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#GetOpportunityResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve details of Opportunities on AWS Partner Central" + }, + "smithy.api#documentation": "

\n Fetches the Opportunity record from Partner Central by a given Identifier.\n

\n

\n Use the ListOpportunities action or the event notification (from Amazon EventBridge) to obtain this identifier.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/GetOpportunity", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#GetOpportunityRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog associated with the request. This field takes a string value from a predefined list:\n AWS or Sandbox. The catalog determines which environment the opportunity\n is fetched from. Use AWS to retrieve opportunities in the Amazon Web Services catalog,\n and Sandbox to retrieve opportunities in a secure and isolated testing environment.\n

", + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

Read-only, system generated Opportunity unique identifier.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#GetOpportunityResponse": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog associated with the request. This field takes a string value from a predefined list:\n AWS or Sandbox. The catalog determines which environment the opportunity\n information is retrieved from. Use AWS to retrieve opportunities in the Amazon Web Services catalog,\n and Sandbox to retrieve opportunities in a secure and isolated testing environment.\n

", + "smithy.api#required": {} + } + }, + "PrimaryNeedsFromAws": { + "target": "com.amazonaws.partnercentralselling#PrimaryNeedsFromAws", + "traits": { + "smithy.api#documentation": "

\n Identifies the type of support the partner needs from Amazon Web Services.\n

\n

\n Valid values:\n

\n
    \n
  • \n

    \n Co-Sell - Architectural Validation: Confirmation from Amazon Web Services that the partner's proposed solution architecture is aligned with Amazon Web Services best practices and poses minimal architectural risks.\n

    \n
  • \n
  • \n

    \n Co-Sell - Business Presentation: Request Amazon Web Services seller's participation in a joint customer presentation.\n

    \n
  • \n
  • \n

    \n Co-Sell - Competitive Information: Access to Amazon Web Services competitive resources and support for the partner's proposed solution.\n

    \n
  • \n
  • \n

    \n Co-Sell - Pricing Assistance: Connect with an Amazon Web Services seller for support situations where a partner may be receiving an upfront discount on a service (for example: EDP deals).\n

    \n
  • \n
  • \n

    \n Co-Sell - Technical Consultation: Connect with an Amazon Web Services Solutions Architect to address the partner's questions about the proposed solution.\n

    \n
  • \n
  • \n

    \n Co-Sell - Total Cost of Ownership Evaluation: Assistance with quoting different cost savings of proposed solutions on Amazon Web Services versus on-premises or a traditional hosting environment.\n

    \n
  • \n
  • \n

    \n Co-Sell - Deal Support: Request Amazon Web Services seller's support to progress the opportunity (for example: joint customer call, strategic positioning).\n

    \n
  • \n
  • \n

    \n Co-Sell - Support for Public Tender / RFx: Opportunity related to the public sector where the partner needs Amazon Web Services RFx support.\n

    \n
  • \n
  • \n

    \n Do Not Need Support from Amazon Web Services Sales Rep: Indicates that a partner doesn't need support from an Amazon Web Services sales representative, and the partner solely manages the opportunity. It's possible to request co-selling support on these opportunities at any stage during their lifecycle. Also known as, for-visibility-only (FVO) opportunity.\n

    \n
  • \n
" + } + }, + "NationalSecurity": { + "target": "com.amazonaws.partnercentralselling#NationalSecurity", + "traits": { + "smithy.api#documentation": "

Indicates whether the Opportunity pertains to a national security project. This field must be set to true only when the customer's industry is Government. Additional privacy and security measures apply during the review and management process for opportunities marked as NationalSecurity.

" + } + }, + "PartnerOpportunityIdentifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the opportunity's unique identifier in the partner's CRM system. This value is essential\n to track and reconcile because it's included in the outbound payload sent back to the partner.\n

", + "smithy.api#length": { + "max": 64 + } + } + }, + "Customer": { + "target": "com.amazonaws.partnercentralselling#Customer", + "traits": { + "smithy.api#documentation": "

Specifies details of the customer associated with the Opportunity.\n

" + } + }, + "Project": { + "target": "com.amazonaws.partnercentralselling#Project", + "traits": { + "smithy.api#documentation": "

An object that contains project details summary for the Opportunity.\n

" + } + }, + "OpportunityType": { + "target": "com.amazonaws.partnercentralselling#OpportunityType", + "traits": { + "smithy.api#documentation": "

\n Specifies the opportunity type as renewal, new, or expansion.\n

\n

\n Opportunity types:\n

\n
    \n
  • \n

    \n New opportunity:\n Represents a new business opportunity with a potential customer that's not previously engaged with your solutions or services.\n

    \n
  • \n
  • \n

    \n Renewal opportunity:\n Represents an opportunity to renew an existing contract or subscription with a current customer, ensuring continuity of service.\n

    \n
  • \n
  • \n

    \n Expansion opportunity:\n Represents an opportunity to expand the scope of an existing contract or subscription, either by adding new services or increasing the volume of existing services for a current customer.\n

    \n
  • \n
" + } + }, + "Marketing": { + "target": "com.amazonaws.partnercentralselling#Marketing", + "traits": { + "smithy.api#documentation": "

An object that contains marketing details for the Opportunity.\n

" + } + }, + "SoftwareRevenue": { + "target": "com.amazonaws.partnercentralselling#SoftwareRevenue", + "traits": { + "smithy.api#documentation": "

Specifies details of a customer's procurement terms. Required only for partners in eligible programs.

" + } + }, + "Id": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

Read-only, system generated Opportunity unique identifier.\n

", + "smithy.api#required": {} + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n DateTime\n when the opportunity was last modified.\n

", + "smithy.api#required": {} + } + }, + "CreatedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n DateTime when the Opportunity was last created.\n

", + "smithy.api#required": {} + } + }, + "RelatedEntityIdentifiers": { + "target": "com.amazonaws.partnercentralselling#RelatedEntityIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Provides information about the associations of other entities with the opportunity. These entities include identifiers for\n AWSProducts, Partner Solutions, and AWSMarketplaceOffers.\n

", + "smithy.api#required": {} + } + }, + "LifeCycle": { + "target": "com.amazonaws.partnercentralselling#LifeCycle", + "traits": { + "smithy.api#documentation": "

An object that contains lifecycle details for the Opportunity.\n

" + } + }, + "OpportunityTeam": { + "target": "com.amazonaws.partnercentralselling#PartnerOpportunityTeamMembersList", + "traits": { + "smithy.api#documentation": "

Represents the internal team handling the opportunity. Specify the members involved in collaborating on this opportunity within the partner's organization.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#Industry": { + "type": "enum", + "members": { + "AEROSPACE_SATELLITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Aerospace" + } + }, + "AGRICULTURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Agriculture" + } + }, + "AUTOMOTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Automotive" + } + }, + "COMPUTERS_ELECTRONICS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Computers and Electronics" + } + }, + "CONSUMER_GOODS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Consumer Goods" + } + }, + "EDUCATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Education" + } + }, + "ENERGY_OIL_GAS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Energy - Oil and Gas" + } + }, + "ENERGY_POWER_UTILITIES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Energy - Power and Utilities" + } + }, + "FINANCIAL_SERVICES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Financial Services" + } + }, + "GAMING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Gaming" + } + }, + "GOVERNMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Government" + } + }, + "HEALTHCARE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Healthcare" + } + }, + "HOSPITALITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Hospitality" + } + }, + "LIFE_SCIENCES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Life Sciences" + } + }, + "MANUFACTURING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Manufacturing" + } + }, + "MARKETING_ADVERTISING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Marketing and Advertising" + } + }, + "MEDIA_ENTERTAINMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Media and Entertainment" + } + }, + "MINING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Mining" + } + }, + "NON_PROFIT_ORGANIZATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Non-Profit Organization" + } + }, + "PROFESSIONAL_SERVICES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Professional Services" + } + }, + "REALESTATE_CONSTRUCTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Real Estate and Construction" + } + }, + "RETAIL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Retail" + } + }, + "SOFTWARE_INTERNET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Software and Internet" + } + }, + "TELECOMMUNICATIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Telecommunications" + } + }, + "TRANSPORTATION_LOGISTICS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Transportation and Logistics" + } + }, + "TRAVEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Travel" + } + }, + "WHOLESALE_DISTRIBUTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Wholesale and Distribution" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Other" + } + } + } + }, + "com.amazonaws.partnercentralselling#InternalServerException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

This error occurs when the specified resource can’t be found or doesn't exist. Resource ID and type might be incorrect.\n

\n

Suggested action: This is usually a transient error. Retry after the provided retry delay or a short interval. If the problem persists, contact AWS support.\n

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.partnercentralselling#InvitationStatus": { + "type": "enum", + "members": { + "ACCEPTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACCEPTED" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "REJECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REJECTED" + } + }, + "EXPIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPIRED" + } + } + } + }, + "com.amazonaws.partnercentralselling#InvolvementTypeChangeReason": { + "type": "enum", + "members": { + "EXPANSION_OPPORTUNITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Expansion Opportunity" + } + }, + "CHANGE_IN_DEAL_INFORMATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Change in Deal Information" + } + }, + "CUSTOMER_REQUESTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Customer Requested" + } + }, + "TECHNICAL_COMPLEXITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Technical Complexity" + } + }, + "RISK_MITIGATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Risk Mitigation" + } + } + } + }, + "com.amazonaws.partnercentralselling#JobTitle": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 80 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#LastModifiedDate": { + "type": "structure", + "members": { + "AfterLastModifiedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

Specifies the date after which the opportunities were modified. Use this filter to retrieve only those opportunities that were modified after a given timestamp.

" + } + }, + "BeforeLastModifiedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

Specifies the date before which the opportunities were modified. Use this filter to retrieve only those opportunities that were modified before a given timestamp.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines a filter to retrieve opportunities based on the last modified date. This filter is useful for tracking changes or updates to opportunities over time.

" + } + }, + "com.amazonaws.partnercentralselling#LifeCycle": { + "type": "structure", + "members": { + "Stage": { + "target": "com.amazonaws.partnercentralselling#Stage", + "traits": { + "smithy.api#documentation": "

\n Specifies the current stage of the Opportunity's lifecycle as it maps to Amazon Web Services stages from the current stage in the partner CRM. This field provides a translated value of the stage, and offers insight into the Opportunity's progression in the sales cycle, according to Amazon Web Services definitions.\n

\n \n

A lead and a prospect must be further matured to a Qualified opportunity before submission. Opportunities that were closed/lost before submission aren't suitable for submission.

\n
\n

\n The descriptions of each sales stage are:\n

\n
    \n
  • \n

    \n Prospect: Amazon Web Services identifies the opportunity. It can be active (Comes directly from the end customer through a lead) or latent (Your account team believes it exists based on research, account plans, sales plays).\n

    \n
  • \n
  • \n

    \n Qualified: Your account team engaged with the prospect/end customer to discuss viability and understand requirements. The prospect/end customer agreed that the opportunity is real, of interest, and may solve key business/technical needs.\n

    \n
  • \n
  • \n

    \n Technical Validation: All parties understand the implementation plan.\n

    \n
  • \n
  • \n

    \n Business Validation: Pricing was proposed, and all parties agree to the steps to close.\n

    \n
  • \n
  • \n

    \n Committed: The customer signed the contract, but Amazon Web Services hasn't started billing.\n

    \n
  • \n
  • \n

    \n Launched: The workload is complete, and Amazon Web Services has started billing.\n

    \n
  • \n
  • \n

    \n Closed Lost: The opportunity is lost, and there are no steps to move forward.\n

    \n
  • \n
" + } + }, + "ClosedLostReason": { + "target": "com.amazonaws.partnercentralselling#ClosedLostReason", + "traits": { + "smithy.api#documentation": "

\n Specifies the reason code when an opportunity is marked as Closed Lost. When you select an\n appropriate reason code, you communicate the context for closing the Opportunity,\n and aid in accurate reports and analysis of opportunity outcomes. The possible values are:\n

\n
    \n
  • \n

    Customer Deficiency: The customer lacked necessary resources or capabilities.

    \n
  • \n
  • \n

    Delay/Cancellation of Project: The project was delayed or canceled.

    \n
  • \n
  • \n

    Legal/Tax/Regulatory: Legal, tax, or regulatory issues prevented progress.

    \n
  • \n
  • \n

    Lost to Competitor - Google: The opportunity was lost to Google.

    \n
  • \n
  • \n

    Lost to Competitor - Microsoft: The opportunity was lost to Microsoft.

    \n
  • \n
  • \n

    Lost to Competitor - SoftLayer: The opportunity was lost to SoftLayer.

    \n
  • \n
  • \n

    Lost to Competitor - VMWare: The opportunity was lost to VMWare.

    \n
  • \n
  • \n

    Lost to Competitor - Other: The opportunity was lost to a competitor not listed above.

    \n
  • \n
  • \n

    No Opportunity: There was no opportunity to pursue.

    \n
  • \n
  • \n

    On Premises Deployment: The customer chose an on-premises solution.

    \n
  • \n
  • \n

    Partner Gap: The partner lacked necessary resources or capabilities.

    \n
  • \n
  • \n

    Price: The price was not competitive or acceptable to the customer.

    \n
  • \n
  • \n

    Security/Compliance: Security or compliance issues prevented progress.

    \n
  • \n
  • \n

    Technical Limitations: Technical limitations prevented progress.

    \n
  • \n
  • \n

    Customer Experience: Issues related to the customer's experience impacted the decision.

    \n
  • \n
  • \n

    Other: Any reason not covered by the other values.

    \n
  • \n
  • \n

    People/Relationship/Governance: Issues related to people, relationships, or governance.

    \n
  • \n
  • \n

    Product/Technology: Issues related to the product or technology.

    \n
  • \n
  • \n

    Financial/Commercial: Financial or commercial issues impacted the decision.

    \n
  • \n
" + } + }, + "NextSteps": { + "target": "com.amazonaws.partnercentralselling#PiiString", + "traits": { + "smithy.api#documentation": "

Specifies the upcoming actions or tasks for the Opportunity. This field\n is utilized to communicate to Amazon Web Services the next actions required for the Opportunity.\n

", + "smithy.api#length": { + "max": 255 + } + } + }, + "TargetCloseDate": { + "target": "com.amazonaws.partnercentralselling#Date", + "traits": { + "smithy.api#documentation": "

\n Specifies the date when Amazon Web Services expects to start significant billing, when the project finishes, and when it moves into production. This field informs the Amazon Web Services seller about when the opportunity launches and starts to incur Amazon Web Services usage.\n

\n

\n Ensure the Target Close Date isn't in the past.\n

" + } + }, + "ReviewStatus": { + "target": "com.amazonaws.partnercentralselling#ReviewStatus", + "traits": { + "smithy.api#documentation": "

\n Indicates the review status of an opportunity referred by a partner. This field is read-only\n and only applicable for partner referrals. The possible values are:\n

\n
    \n
  • \n

    \n Pending Submission: Not submitted for validation (editable).\n

    \n
  • \n
  • \n

    \n Submitted: Submitted for validation, and Amazon Web Services hasn't reviewed it (read-only).\n

    \n
  • \n
  • \n

    \n In Review: Amazon Web Services is validating (read-only).\n

    \n
  • \n
  • \n

    \n Action Required: Issues that Amazon Web Services highlights need to be addressed.\n Partners should use the UpdateOpportunity API action to update the opportunity, and ensure all required changes are made.\n Only these fields are editable when the Lifecycle.ReviewStatus is Action Required:\n

    \n
      \n
    • \n

      Customer.Account.Address.City

      \n
    • \n
    • \n

      Customer.Account.Address.CountryCode

      \n
    • \n
    • \n

      Customer.Account.Address.PostalCode

      \n
    • \n
    • \n

      Customer.Account.Address.StateOrRegion

      \n
    • \n
    • \n

      Customer.Account.Address.StreetAddress

      \n
    • \n
    • \n

      Customer.Account.WebsiteUrl

      \n
    • \n
    • \n

      LifeCycle.TargetCloseDate

      \n
    • \n
    • \n

      Project.ExpectedMonthlyAWSRevenue.Amount

      \n
    • \n
    • \n

      Project.ExpectedMonthlyAWSRevenue.CurrencyCode

      \n
    • \n
    • \n

      Project.CustomerBusinessProblem

      \n
    • \n
    • \n

      PartnerOpportunityIdentifier

      \n
    • \n
    \n

    \n After updates, the opportunity re-enters the validation phase. This process repeats until all issues are resolved, and the opportunity's Lifecycle.ReviewStatus is set to Approved or Rejected.\n

    \n
  • \n
  • \n

    \n Approved: Validated and converted into the Amazon Web Services seller's pipeline (editable).\n

    \n
  • \n
  • \n

    \n Rejected: Disqualified (read-only).\n

    \n
  • \n
" + } + }, + "ReviewComments": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Indicates why an opportuntiy was sent back for further details. Partners must take corrective action based on the ReviewComments.

" + } + }, + "ReviewStatusReason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n Indicates the reason a decision was made during the opportunity review process. This field combines the reasons for both disqualified and action required statuses, and provide clarity for why an opportunity was disqualified or requires further action.\n

" + } + }, + "NextStepsHistory": { + "target": "com.amazonaws.partnercentralselling#NextStepsHistories", + "traits": { + "smithy.api#documentation": "

Captures a chronological record of the next steps or actions planned or taken for the current opportunity,\n along with the timestamp.\n

", + "smithy.api#length": { + "max": 50 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains the Opportunity lifecycle's details.\n

" + } + }, + "com.amazonaws.partnercentralselling#LifeCycleSummary": { + "type": "structure", + "members": { + "Stage": { + "target": "com.amazonaws.partnercentralselling#Stage", + "traits": { + "smithy.api#documentation": "

\n Specifies the current stage of the Opportunity's lifecycle as it maps to Amazon Web Services stages from the current stage in the partner CRM. This field provides a translated value of the stage, and offers insight into the Opportunity's progression in the sales cycle, according to Amazon Web Services definitions.\n

\n \n

A lead and a prospect must be further matured to a Qualified opportunity before submission. Opportunities that were closed/lost before submission aren't suitable for submission.

\n
\n

\n The descriptions of each sales stage are:\n

\n
    \n
  • \n

    \n Prospect: Amazon Web Services identifies the opportunity. It can be active (Comes directly from the end customer through a lead) or latent (Your account team believes it exists based on research, account plans, sales plays).\n

    \n
  • \n
  • \n

    \n Qualified: Your account team engaged with the prospect/end customer to discuss viability and understand requirements. The prospect/end customer agreed that the opportunity is real, of interest, and may solve key business/technical needs.\n

    \n
  • \n
  • \n

    \n Technical Validation: All parties understand the implementation plan.\n

    \n
  • \n
  • \n

    \n Business Validation: Pricing has been proposed, Pricing was proposed, and all parties agree to the steps to close.\n

    \n
  • \n
  • \n

    \n Committed: The customer signed the contract, but Amazon Web Services hasn't started billing.\n

    \n
  • \n
  • \n

    \n Launched: The workload is complete, and Amazon Web Services has started billing.\n

    \n
  • \n
  • \n

    \n Closed Lost: The opportunity is lost, and there are no steps to move forward.\n

    \n
  • \n
" + } + }, + "ClosedLostReason": { + "target": "com.amazonaws.partnercentralselling#ClosedLostReason", + "traits": { + "smithy.api#documentation": "

Specifies the reason code when an opportunity is marked as Closed Lost. When you select an\n appropriate reason code, you communicate the context for closing the Opportunity,\n and aid in accurate reports and analysis of opportunity outcomes.\n

" + } + }, + "NextSteps": { + "target": "com.amazonaws.partnercentralselling#PiiString", + "traits": { + "smithy.api#documentation": "

Specifies the upcoming actions or tasks for the Opportunity. This field\n is utilized to communicate to Amazon Web Services the next actions required for the Opportunity.\n

", + "smithy.api#length": { + "max": 255 + } + } + }, + "TargetCloseDate": { + "target": "com.amazonaws.partnercentralselling#Date", + "traits": { + "smithy.api#documentation": "

\n Specifies the date when Amazon Web Services expects to start significant billing, when the project finishes, and when it moves into production. This field informs the Amazon Web Services seller about when the opportunity launches and starts to incur Amazon Web Services usage.\n

\n

\n Ensure the Target Close Date isn't in the past.\n

" + } + }, + "ReviewStatus": { + "target": "com.amazonaws.partnercentralselling#ReviewStatus", + "traits": { + "smithy.api#documentation": "

\n Indicates the review status of a partner referred opportunity. This field is read-only\n and only applicable for partner referrals. Valid values:\n

\n
    \n
  • \n

    \n Pending Submission: Not submitted for validation (editable).\n

    \n
  • \n
  • \n

    \n Submitted: Submitted for validation and not yet Amazon Web Services reviewed (read-only).\n

    \n
  • \n
  • \n

    \n In Review: Undergoing Amazon Web Services validation (read-only).\n

    \n
  • \n
  • \n

    \n Action Required: Address any issues Amazon Web Services highlights.\n Use the UpdateOpportunity API action to update the opportunity, and ensure you make all required changes.\n Only these fields are editable when the Lifecycle.ReviewStatus is Action Required:\n

    \n
      \n
    • \n

      Customer.Account.Address.City

      \n
    • \n
    • \n

      Customer.Account.Address.CountryCode

      \n
    • \n
    • \n

      Customer.Account.Address.PostalCode

      \n
    • \n
    • \n

      Customer.Account.Address.StateOrRegion

      \n
    • \n
    • \n

      Customer.Account.Address.StreetAddress

      \n
    • \n
    • \n

      Customer.Account.WebsiteUrl

      \n
    • \n
    • \n

      LifeCycle.TargetCloseDate

      \n
    • \n
    • \n

      Project.ExpectedCustomerSpend.Amount

      \n
    • \n
    • \n

      Project.ExpectedCustomerSpend.CurrencyCode

      \n
    • \n
    • \n

      Project.CustomerBusinessProblem

      \n
    • \n
    • \n

      PartnerOpportunityIdentifier

      \n
    • \n
    \n

    \n After updates, the opportunity re-enters the validation phase. This process repeats until all issues are resolved, and the opportunity's Lifecycle.ReviewStatus is set to Approved or Rejected.\n

    \n
  • \n
  • \n

    \n Approved: Validated and converted into the Amazon Web Services seller's pipeline (editable).\n

    \n
  • \n
  • \n

    \n Rejected: Disqualified (read-only).\n

    \n
  • \n
" + } + }, + "ReviewComments": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Indicates why an opportuntiy was sent back for further details. Partners must take corrective action based on the ReviewComments.

" + } + }, + "ReviewStatusReason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n Indicates the reason a specific decision was taken during the opportunity review process. This field combines the reasons for both disqualified and action required statuses, and provides clarity for why an opportunity was disqualified or required further action.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains a LifeCycle object's subset of fields.\n

" + } + }, + "com.amazonaws.partnercentralselling#ListEngagementInvitations": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#ListEngagementInvitationsRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#ListEngagementInvitationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to list Engagement Invitations on AWS Partner Central" + }, + "smithy.api#documentation": "

Retrieves a list of engagement invitations sent to the partner. This allows partners to view all pending or past engagement invitations, helping them track opportunities shared by AWS.

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListEngagementInvitations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "EngagementInvitationSummaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementInvitationsRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog from which to list the engagement invitations. Use AWS for production invitations or Sandbox for testing environments.

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.partnercentralselling#PageSize", + "traits": { + "smithy.api#documentation": "

Specifies the maximum number of engagement invitations to return in the response. If more results are available, a pagination token will be provided.

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A pagination token used to retrieve additional pages of results when the response to a previous request was truncated. Pass this token to continue listing invitations from where the previous call left off.

" + } + }, + "Sort": { + "target": "com.amazonaws.partnercentralselling#OpportunityEngagementInvitationSort", + "traits": { + "smithy.api#documentation": "

Specifies the sorting options for listing engagement invitations. Invitations can be sorted by fields such as InvitationDate or Status to help partners view results in their preferred order.

" + } + }, + "PayloadType": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationsPayloadType", + "traits": { + "smithy.api#documentation": "

Defines the type of payload associated with the engagement invitations to be listed. The attributes in this payload help decide on acceptance or rejection of the invitation.

" + } + }, + "ParticipantType": { + "target": "com.amazonaws.partnercentralselling#ParticipantType", + "traits": { + "smithy.api#documentation": "

Specifies the type of participant for which to list engagement invitations. Identifies the role of the participant.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#ListEngagementInvitationsResponse": { + "type": "structure", + "members": { + "EngagementInvitationSummaries": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationSummaries", + "traits": { + "smithy.api#documentation": "

An array containing summaries of engagement invitations. Each summary includes key information such as the invitation title, invitation date, and the current status of the invitation.

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A pagination token returned when there are more results available than can be returned in a single call. Use this token to retrieve additional pages of engagement invitation summaries.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#ListOpportunities": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#ListOpportunitiesRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#ListOpportunitiesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to list Opportunities on AWS Partner Central" + }, + "smithy.api#documentation": "

This request accepts a list of filters to use to\n retrieve a specific subset of opportunities, as well as sort options. This feature is available to partners from\n Partner Central\n using the ListOpportunities API action.\n

\n

To synchronize your system with Amazon Web Services, only list the opportunities that were\n newly created or updated.\n We recommend you rely on events emitted by the service into your Amazon Web Services account’s Amazon EventBridge default\n event bus, you can also use the ListOpportunities action.\n

\n

We recommend the following approach:

\n
    \n
  1. \n

    Find the latest LastModifiedDate that you stored, and only use the values that came\n from Amazon Web Services. Don’t use values generated by your system.\n

    \n
  2. \n
  3. \n

    When you send a ListOpportunities request, submit the date in ISO 8601 format in the AfterLastModifiedDate filter.\n

    \n
  4. \n
  5. \n

    Amazon Web Services only returns opportunities created or updated on or after that date and time. Use NextToken to iterate over all pages.\n

    \n
  6. \n
", + "smithy.api#http": { + "method": "POST", + "uri": "/ListOpportunities", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "OpportunitySummaries" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "ListOpportunitiesError", + "params": { + "Catalog": null + }, + "expect": { + "failure": { + "errorId": "com.amazonaws.partnercentralselling#ValidationException" + } + } + } + ] + } + }, + "com.amazonaws.partnercentralselling#ListOpportunitiesRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog associated with the request. This field takes a string value from a predefined list:\n AWS or Sandbox. The catalog determines which environment the opportunities are listed in.\n Use AWS for listing real opportunities in the Amazon Web Services catalog, and Sandbox\n for to test in a secure and isolated environment.\n

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.partnercentralselling#PageSize", + "traits": { + "smithy.api#documentation": "

\n Specifies the maximum number of results to return in a single call. This limits the number of opportunities returned in the response to avoid overloading with too many results at once.\n

\n

\n Default: 20\n

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n A pagination token used to retrieve the next set of results in subsequent calls. This token is included in the response only if there are additional result pages available.\n

" + } + }, + "Sort": { + "target": "com.amazonaws.partnercentralselling#OpportunitySort", + "traits": { + "smithy.api#documentation": "

\n An object that specifies how the response is sorted. The default Sort.SortBy value is LastModifiedDate.\n

" + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.partnercentralselling#LastModifiedDate", + "traits": { + "smithy.api#documentation": "

Filters the opportunities based on their last modified date. This filter helps retrieve opportunities that were updated after the specified date, allowing partners to track recent changes or updates.

" + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#FilterIdentifier", + "traits": { + "smithy.api#documentation": "

Filters the opportunities based on the opportunity identifier. This allows partners to retrieve specific opportunities by providing their unique identifiers, ensuring precise results.

", + "smithy.api#length": { + "max": 20 + } + } + }, + "LifeCycleStage": { + "target": "com.amazonaws.partnercentralselling#FilterLifeCycleStage", + "traits": { + "smithy.api#documentation": "

Filters the opportunities based on their lifecycle stage. This filter allows partners to retrieve opportunities at various stages in the sales cycle, such as Qualified, Technical Validation, Business Validation, or Closed Won.

", + "smithy.api#length": { + "max": 10 + } + } + }, + "LifeCycleReviewStatus": { + "target": "com.amazonaws.partnercentralselling#FilterLifeCycleReviewStatus", + "traits": { + "smithy.api#documentation": "

Filters the opportunities based on their current lifecycle approval status. Use this filter to retrieve opportunities with statuses such as Pending Submission, In Review, Action Required, or Approved.

", + "smithy.api#length": { + "max": 10 + } + } + }, + "CustomerCompanyName": { + "target": "com.amazonaws.partnercentralselling#StringList", + "traits": { + "smithy.api#documentation": "

Filters the opportunities based on the customer's company name. This allows partners to search for opportunities associated with a specific customer by matching the provided company name string.

", + "smithy.api#length": { + "max": 10 + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#ListOpportunitiesResponse": { + "type": "structure", + "members": { + "OpportunitySummaries": { + "target": "com.amazonaws.partnercentralselling#OpportunitySummaries", + "traits": { + "smithy.api#documentation": "

\n An array that contains minimal details for opportunities that match the request criteria. This summary view provides a quick overview of relevant opportunities.\n

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n A pagination token used to retrieve the next set of results in subsequent calls. This token is included in the response only if there are additional result pages available.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#ListSolutions": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#ListSolutionsRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#ListSolutionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to list Solutions on AWS Partner Central" + }, + "smithy.api#documentation": "

\n Retrieves a list of Partner Solutions that the partner registered on Partner Central. This API is used to generate a list of solutions that an end user selects from for association with an opportunity.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/ListSolutions", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults", + "items": "SolutionSummaries" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.partnercentralselling#ListSolutionsRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog associated with the request. This field takes a string value from a predefined list:\n AWS or Sandbox. The catalog determines which environment the solutions are listed in.\n Use AWS to list solutions in the Amazon Web Services catalog, and Sandbox to list solutions\n in a secure and isolated testing environment.\n

", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.partnercentralselling#PageSize", + "traits": { + "smithy.api#documentation": "

The maximum number of results returned by a single call. This value must be provided in the next call to\n retrieve the next set of results.\n

\n

Default: 20

" + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n A pagination token used to retrieve the next set of results in subsequent calls. This token is included in the response only if there are additional result pages available.\n

" + } + }, + "Sort": { + "target": "com.amazonaws.partnercentralselling#SolutionSort", + "traits": { + "smithy.api#documentation": "

Object that configures sorting done on the response. Default Sort.SortBy is Identifier.\n

" + } + }, + "Status": { + "target": "com.amazonaws.partnercentralselling#FilterStatus", + "traits": { + "smithy.api#documentation": "

Filters the solutions based on their status. This filter helps retrieve solutions with statuses such as Active, Inactive, or Pending Approval, allowing partners to manage their solution portfolios effectively.

", + "smithy.api#length": { + "max": 10 + } + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#SolutionIdentifiers", + "traits": { + "smithy.api#documentation": "

Filters the solutions based on their unique identifier. Use this filter to retrieve specific solutions by providing the solution's identifier for accurate results.

", + "smithy.api#length": { + "max": 20 + } + } + }, + "Category": { + "target": "com.amazonaws.partnercentralselling#StringList", + "traits": { + "smithy.api#documentation": "

Filters the solutions based on the category to which they belong. This allows partners to search for solutions within specific categories, such as Software, Consulting, or Managed Services.

", + "smithy.api#length": { + "max": 10 + } + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#ListSolutionsResponse": { + "type": "structure", + "members": { + "SolutionSummaries": { + "target": "com.amazonaws.partnercentralselling#SolutionList", + "traits": { + "smithy.api#documentation": "

An array with minimal details for solutions matching the request criteria.

", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n A pagination token used to retrieve the next set of results in subsequent calls. This token is included in the response only if there are additional result pages available.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#Marketing": { + "type": "structure", + "members": { + "CampaignName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the Opportunity's unique marketing campaign name. The Amazon Web Services\n campaign name serves as a reference to specific marketing initiatives, promotions, or\n activities related to the Opportunity. This field captures the identifier used to track and\n categorize the Opportunity within Amazon Web Services's marketing campaigns. If you don't have a campaign\n name, reach out to your Amazon Web Services point of contact to obtain one.\n

" + } + }, + "Source": { + "target": "com.amazonaws.partnercentralselling#MarketingSource", + "traits": { + "smithy.api#documentation": "

\n Indicates if the Opportunity was sourced from an Amazon Web Services marketing activity. Use the value Marketing Activity. Use None if it's not associated with an Amazon Web Services marketing activity. This field helps Amazon Web Services track the return on marketing investments and enables better distribution of marketing budgets among partners.\n

" + } + }, + "UseCases": { + "target": "com.amazonaws.partnercentralselling#UseCases", + "traits": { + "smithy.api#documentation": "

\n Specifies the marketing activity use case or purpose that led to the Opportunity's creation or contact. This field captures the context or marketing activity's execution's intention and the direct correlation to the generated opportunity or contact. Must be empty when Marketing.AWSFundingUsed = No.\n

\n

\n Valid values: AI/ML | Analytics | Application Integration | Blockchain | Business Applications | Cloud Financial Management | Compute | Containers | Customer Engagement | Databases | Developer Tools | End User Computing | Front End Web & Mobile | Game Tech | IoT | Management & Governance | Media Services | Migration & Transfer | Networking & Content Delivery | Quantum Technologies | Robotics | Satellite | Security | Serverless | Storage | VR & AR\n

" + } + }, + "Channels": { + "target": "com.amazonaws.partnercentralselling#Channels", + "traits": { + "smithy.api#documentation": "

Specifies the Opportunity's channel that the marketing activity is associated with or\n was contacted through. This field provides information about the specific marketing\n channel that contributed to the generation of the lead or contact.\n

" + } + }, + "AwsFundingUsed": { + "target": "com.amazonaws.partnercentralselling#AwsFundingUsed", + "traits": { + "smithy.api#documentation": "

Indicates if the Opportunity is a marketing development fund (MDF) funded\n activity.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains marketing details for the Opportunity.\n

" + } + }, + "com.amazonaws.partnercentralselling#MarketingSource": { + "type": "enum", + "members": { + "MARKETING_ACTIVITY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Marketing Activity" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "None" + } + } + } + }, + "com.amazonaws.partnercentralselling#MonetaryValue": { + "type": "structure", + "members": { + "Amount": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the payment amount.

", + "smithy.api#pattern": "^(0|([1-9][0-9]{0,30}))(\\.[0-9]{0,2})?$", + "smithy.api#required": {} + } + }, + "CurrencyCode": { + "target": "com.amazonaws.partnercentralselling#CurrencyCode", + "traits": { + "smithy.api#documentation": "

Specifies the payment currency.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies payments details.

" + } + }, + "com.amazonaws.partnercentralselling#Name": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 80 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#NationalSecurity": { + "type": "enum", + "members": { + "YES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Yes" + } + }, + "NO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "No" + } + } + } + }, + "com.amazonaws.partnercentralselling#NextStepsHistories": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#NextStepsHistory" + } + }, + "com.amazonaws.partnercentralselling#NextStepsHistory": { + "type": "structure", + "members": { + "Value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Indicates the step's execution details.

", + "smithy.api#required": {} + } + }, + "Time": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

Indicates the step execution time.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Read-only; shows the last 50 values and change dates for the NextSteps field.

" + } + }, + "com.amazonaws.partnercentralselling#Opportunity": { + "type": "resource", + "identifiers": { + "Identifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier" + }, + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier" + } + }, + "create": { + "target": "com.amazonaws.partnercentralselling#CreateOpportunity" + }, + "read": { + "target": "com.amazonaws.partnercentralselling#GetOpportunity" + }, + "update": { + "target": "com.amazonaws.partnercentralselling#UpdateOpportunity" + }, + "list": { + "target": "com.amazonaws.partnercentralselling#ListOpportunities" + }, + "operations": [ + { + "target": "com.amazonaws.partnercentralselling#AssignOpportunity" + }, + { + "target": "com.amazonaws.partnercentralselling#AssociateOpportunity" + }, + { + "target": "com.amazonaws.partnercentralselling#DisassociateOpportunity" + }, + { + "target": "com.amazonaws.partnercentralselling#GetAwsOpportunitySummary" + } + ], + "traits": { + "aws.api#arn": { + "template": "catalog/{Catalog}/opportunity/{Identifier}" + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "relativeDocumentation": "/working-with-your-opportunities.html" + }, + "smithy.api#documentation": "Represents an Opportunity that captures deal details in AWS Partner Central" + } + }, + "com.amazonaws.partnercentralselling#OpportunityEngagementInvitationSort": { + "type": "structure", + "members": { + "SortOrder": { + "target": "com.amazonaws.partnercentralselling#SortOrder", + "traits": { + "smithy.api#documentation": "

Defines the order in which the Engagement Invitations are sorted. The values can be ASC (ascending) or DESC (descending).

", + "smithy.api#required": {} + } + }, + "SortBy": { + "target": "com.amazonaws.partnercentralselling#OpportunityEngagementInvitationSortName", + "traits": { + "smithy.api#documentation": "

Specifies the field by which the Engagement Invitations are sorted. Common values include InvitationDate and Status.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Defines sorting options for retrieving Engagement Invitations. Sorting can be done based on various criteria like the invitation date or status.

" + } + }, + "com.amazonaws.partnercentralselling#OpportunityEngagementInvitationSortName": { + "type": "enum", + "members": { + "INVITATION_DATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InvitationDate" + } + } + } + }, + "com.amazonaws.partnercentralselling#OpportunityIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^O[0-9]{1,19}$" + } + }, + "com.amazonaws.partnercentralselling#OpportunityInvitationPayload": { + "type": "structure", + "members": { + "SenderContacts": { + "target": "com.amazonaws.partnercentralselling#SenderContactList", + "traits": { + "smithy.api#documentation": "

Represents the contact details of the AWS representatives involved in sending the Engagement Invitation. These contacts are key stakeholders for the opportunity.

" + } + }, + "ReceiverResponsibilities": { + "target": "com.amazonaws.partnercentralselling#ReceiverResponsibilityList", + "traits": { + "smithy.api#documentation": "

Outlines the responsibilities or expectations of the receiver in the context of the invitation.

", + "smithy.api#required": {} + } + }, + "Customer": { + "target": "com.amazonaws.partnercentralselling#EngagementCustomer", + "traits": { + "smithy.api#documentation": "

Contains information about the customer related to the opportunity in the Engagement Invitation. This data helps partners understand the customer’s profile and requirements.

", + "smithy.api#required": {} + } + }, + "Project": { + "target": "com.amazonaws.partnercentralselling#ProjectDetails", + "traits": { + "smithy.api#documentation": "

Describes the project details associated with the opportunity, including the customer’s needs and the scope of work expected to be performed.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the data payload of an Engagement Invitation for a specific opportunity. This contains detailed information that partners use to evaluate the engagement.

" + } + }, + "com.amazonaws.partnercentralselling#OpportunityOrigin": { + "type": "enum", + "members": { + "AWS_REFERRAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS Referral" + } + }, + "PARTNER_REFERRAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Partner Referral" + } + } + } + }, + "com.amazonaws.partnercentralselling#OpportunitySort": { + "type": "structure", + "members": { + "SortOrder": { + "target": "com.amazonaws.partnercentralselling#SortOrder", + "traits": { + "smithy.api#documentation": "

Sort order.

\n

Default:\n Descending\n

", + "smithy.api#required": {} + } + }, + "SortBy": { + "target": "com.amazonaws.partnercentralselling#OpportunitySortName", + "traits": { + "smithy.api#documentation": "

Field name to sort by.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Object that configures response sorting.

" + } + }, + "com.amazonaws.partnercentralselling#OpportunitySortName": { + "type": "enum", + "members": { + "LAST_MODIFIEDDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LastModifiedDate" + } + }, + "IDENTIFIER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Identifier" + } + }, + "CUSTOMER_COMPANY_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CustomerCompanyName" + } + } + } + }, + "com.amazonaws.partnercentralselling#OpportunitySummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#OpportunitySummary" + } + }, + "com.amazonaws.partnercentralselling#OpportunitySummary": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog associated with the opportunity, either AWS or Sandbox. This indicates the environment in which the opportunity is managed.

", + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

Read-only, system-generated Opportunity unique identifier.\n

" + } + }, + "PartnerOpportunityIdentifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the Opportunity's unique identifier in the partner's CRM system. This value is\n essential to track and reconcile because it's included in the outbound payload sent back to the partner. It allows partners to link\n an opportunity to\n their CRM.\n

" + } + }, + "OpportunityType": { + "target": "com.amazonaws.partnercentralselling#OpportunityType", + "traits": { + "smithy.api#documentation": "

\n Specifies opportunity type as a renewal, new, or expansion.\n

\n

\n Opportunity types:\n

\n
    \n
  • \n

    \n New Opportunity:\n Represents a new business opportunity with a potential customer that's not previously engaged with your solutions or services.\n

    \n
  • \n
  • \n

    \n Renewal Opportunity:\n Represents an opportunity to renew an existing contract or subscription with a current customer, ensuring continuity of service.\n

    \n
  • \n
  • \n

    \n Expansion Opportunity:\n Represents an opportunity to expand the scope of an existing contract or subscription, either by adding new services or increasing the volume of existing services for a current customer.\n

    \n
  • \n
" + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n DateTime\n when the Opportunity was last modified.\n

" + } + }, + "CreatedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n DateTime\n when the Opportunity was last created.\n

" + } + }, + "LifeCycle": { + "target": "com.amazonaws.partnercentralselling#LifeCycleSummary", + "traits": { + "smithy.api#documentation": "

An object that contains the Opportunity's lifecycle details.\n

" + } + }, + "Customer": { + "target": "com.amazonaws.partnercentralselling#CustomerSummary", + "traits": { + "smithy.api#documentation": "

An object that contains the Opportunity's customer details.\n

" + } + }, + "Project": { + "target": "com.amazonaws.partnercentralselling#ProjectSummary", + "traits": { + "smithy.api#documentation": "

An object that contains the Opportunity's project details summary.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains an Opportunity's subset of fields.\n

" + } + }, + "com.amazonaws.partnercentralselling#OpportunityType": { + "type": "enum", + "members": { + "NET_NEW_BUSINESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Net New Business" + } + }, + "FLAT_RENEWAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Flat Renewal" + } + }, + "EXPANSION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Expansion" + } + } + } + }, + "com.amazonaws.partnercentralselling#PageSize": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.partnercentralselling#ParticipantType": { + "type": "enum", + "members": { + "RECEIVER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RECEIVER" + } + } + } + }, + "com.amazonaws.partnercentralselling#PartnerOpportunityTeamMembersList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#Contact" + }, + "traits": { + "smithy.api#length": { + "max": 1 + } + } + }, + "com.amazonaws.partnercentralselling#Payload": { + "type": "union", + "members": { + "OpportunityInvitation": { + "target": "com.amazonaws.partnercentralselling#OpportunityInvitationPayload", + "traits": { + "smithy.api#documentation": "

Specifies the details of the opportunity invitation within the Engagement Invitation payload. This data helps partners understand the context, scope, and expected involvement for the opportunity from AWS.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains the data payload associated with the Engagement Invitation. This payload includes essential details related to the AWS opportunity and is used by partners to evaluate whether to accept or reject the engagement.

" + } + }, + "com.amazonaws.partnercentralselling#PaymentFrequency": { + "type": "enum", + "members": { + "MONTHLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Monthly" + } + } + } + }, + "com.amazonaws.partnercentralselling#PhoneNumber": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 40 + }, + "smithy.api#pattern": "^\\+[1-9]\\d{1,14}$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#PiiString": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#PrimaryNeedFromAws": { + "type": "enum", + "members": { + "CO_SELL_ARCHITECTURAL_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell - Architectural Validation" + } + }, + "CO_SELL_BUSINESS_PRESENTATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell - Business Presentation" + } + }, + "CO_SELL_COMPETITIVE_INFORMATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell - Competitive Information" + } + }, + "CO_SELL_PRICING_ASSISTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell - Pricing Assistance" + } + }, + "CO_SELL_TECHNICAL_CONSULTATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell - Technical Consultation" + } + }, + "CO_SELL_TOTAL_COST_OF_OWNERSHIP_EVALUATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell - Total Cost of Ownership Evaluation" + } + }, + "CO_SELL_DEAL_SUPPORT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell - Deal Support" + } + }, + "CO_SELL_SUPPORT_FOR_PUBLIC_TENDER_RFX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell - Support for Public Tender / RFx" + } + } + } + }, + "com.amazonaws.partnercentralselling#PrimaryNeedsFromAws": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#PrimaryNeedFromAws" + } + }, + "com.amazonaws.partnercentralselling#ProfileNextStepsHistories": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#ProfileNextStepsHistory" + } + }, + "com.amazonaws.partnercentralselling#ProfileNextStepsHistory": { + "type": "structure", + "members": { + "Value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Represents the details of the next step recorded, such as follow-up actions or decisions made. This field helps in tracking progress and ensuring alignment with project goals.

", + "smithy.api#required": {} + } + }, + "Time": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

Indicates the date and time when a particular next step was recorded or planned. This helps in managing the timeline for the opportunity.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Tracks the history of next steps associated with the opportunity. This field captures the actions planned for the future and their timeline.

" + } + }, + "com.amazonaws.partnercentralselling#Project": { + "type": "structure", + "members": { + "DeliveryModels": { + "target": "com.amazonaws.partnercentralselling#DeliveryModels", + "traits": { + "smithy.api#documentation": "

\n Specifies the deployment or consumption model for your solution or service in the Opportunity's context. You can select multiple options.\n

\n

\n Options' descriptions from the Delivery Model field are:\n

\n
    \n
  • \n

    SaaS or PaaS: Your Amazon Web Services based solution deployed as SaaS or PaaS in your Amazon Web Services environment.

    \n
  • \n
  • \n

    BYOL or AMI: Your Amazon Web Services based solution deployed as BYOL or AMI in the end customer's Amazon Web Services environment.

    \n
  • \n
  • \n

    Managed Services: The end customer's Amazon Web Services business management (For example: Consulting, design, implementation, billing support, cost optimization, technical support).

    \n
  • \n
  • \n

    Professional Services: Offerings to help enterprise end customers achieve specific business outcomes for enterprise cloud adoption (For example: Advisory or transformation planning).

    \n
  • \n
  • \n

    Resell: Amazon Web Services accounts and billing management for your customers.

    \n
  • \n
  • \n

    Other: Delivery model not described above.

    \n
  • \n
" + } + }, + "ExpectedCustomerSpend": { + "target": "com.amazonaws.partnercentralselling#ExpectedCustomerSpendList", + "traits": { + "smithy.api#documentation": "

Represents the estimated amount that the customer is expected to spend on AWS services related to the opportunity. This helps in evaluating the potential financial value of the opportunity for AWS.

" + } + }, + "Title": { + "target": "com.amazonaws.partnercentralselling#PiiString", + "traits": { + "smithy.api#documentation": "

Specifies the Opportunity's title or name.\n

", + "smithy.api#length": { + "max": 255 + } + } + }, + "ApnPrograms": { + "target": "com.amazonaws.partnercentralselling#ApnPrograms", + "traits": { + "smithy.api#documentation": "

\n Specifies the Amazon Partner Network (APN) program that influenced the Opportunity. APN programs refer to specific partner programs or initiatives that can impact the Opportunity.\n

\n

\n Valid values: APN Immersion Days | APN Solution Space | ATO (Authority to Operate) | AWS Marketplace Campaign | IS Immersion Day SFID Program | ISV Workload Migration | Migration Acceleration Program | P3 | Partner Launch Initiative | Partner Opportunity Acceleration Funded | The Next Smart | VMware Cloud on AWS | Well-Architected | Windows | Workspaces/AppStream Accelerator Program | WWPS NDPP\n

" + } + }, + "CustomerBusinessProblem": { + "target": "com.amazonaws.partnercentralselling#PiiString", + "traits": { + "smithy.api#documentation": "

Describes the problem the end customer has, and how the partner is helping.\n Utilize this field to provide a clear and concise narrative that outlines the specific business challenge or\n issue the customer has.\n Elaborate on how the partner's solution or offerings align to resolve the customer's business problem.\n Include relevant information about the partner's value proposition, unique selling points, and expertise to tackle the issue.\n Offer insights on how the proposed solution meets the customer's needs and provides value. Use concise\n language and precise descriptions to convey the context and significance of the Opportunity.\n The content in this field helps Amazon Web Services understand the nature of the Opportunity and the strategic\n fit of the partner's solution.\n

", + "smithy.api#length": { + "min": 20, + "max": 2000 + } + } + }, + "CustomerUseCase": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n Specifies the proposed solution focus or type of workload for the Opportunity. This field captures the primary use case or objective of the proposed solution, and provides context and clarity to the addressed workload.\n

\n

\n Valid values: AI Machine Learning and Analytics | Archiving | Big Data: Data Warehouse / Data Integration / ETL / Data Lake / BI | Blockchain | Business Applications: Mainframe Modernization | Business Applications & Contact Center | Business Applications & SAP Production | Centralized Operations Management | Cloud Management Tools | Cloud Management Tools & DevOps with Continuous Integration & Continuous Delivery (CICD) | Configuration, Compliance & Auditing | Connected Services | Containers & Serverless | Content Delivery & Edge Services | Database | Edge Computing / End User Computing | Energy | Enterprise Governance & Controls | Enterprise Resource Planning | Financial Services | Healthcare and Life Sciences | High Performance Computing | Hybrid Application Platform | Industrial Software | IOT | Manufacturing, Supply Chain and Operations | Media & High performance computing (HPC) | Migration / Database Migration | Monitoring, logging and performance | Monitoring & Observability | Networking | Outpost | SAP | Security & Compliance | Storage & Backup | Training | VMC | VMWare | Web development & DevOps\n

" + } + }, + "RelatedOpportunityIdentifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the current opportunity's parent opportunity identifier.\n

" + } + }, + "SalesActivities": { + "target": "com.amazonaws.partnercentralselling#SalesActivities", + "traits": { + "smithy.api#documentation": "

\n Specifies the Opportunity's sales activities conducted with the end customer.\n These activities help drive Amazon Web Services assignment priority.\n

\n

\n Valid values:\n

\n
    \n
  • \n

    \n Initialized discussions with customer: Initial conversations with the customer to understand their needs and introduce your solution.\n

    \n
  • \n
  • \n

    \n Customer has shown interest in solution: After initial discussions, the customer is interested in your solution.\n

    \n
  • \n
  • \n

    \n Conducted POC / Demo: You conducted a proof of concept (POC) or demonstration of the solution for the customer.\n

    \n
  • \n
  • \n

    \n In evaluation / planning stage: The customer is evaluating the solution and planning potential implementation.\n

    \n
  • \n
  • \n

    \n Agreed on solution to Business Problem: Both parties agree on how the solution addresses the customer's business problem.\n

    \n
  • \n
  • \n

    \n Completed Action Plan: A detailed action plan is complete and outlines the steps for implementation.\n

    \n
  • \n
  • \n

    \n Finalized Deployment Need: Both parties agree with and finalized the deployment needs.\n

    \n
  • \n
  • \n

    \n SOW Signed: Both parties signed a statement of work (SOW), and formalize the agreement and detail the project scope and deliverables.\n

    \n
  • \n
" + } + }, + "CompetitorName": { + "target": "com.amazonaws.partnercentralselling#CompetitorName", + "traits": { + "smithy.api#documentation": "

Name of the Opportunity's competitor (if any). Use Other to submit a value not in\n the picklist.\n

" + } + }, + "OtherCompetitorNames": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Only allowed when CompetitorNames has Other selected.\n

", + "smithy.api#length": { + "max": 255 + } + } + }, + "OtherSolutionDescription": { + "target": "com.amazonaws.partnercentralselling#PiiString", + "traits": { + "smithy.api#documentation": "

Specifies the offered solution for the customer's business problem when the \n RelatedEntityIdentifiers.Solutions field value is Other.\n

", + "smithy.api#length": { + "max": 255 + } + } + }, + "AdditionalComments": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Captures additional comments or information for the Opportunity that weren't captured in other fields.\n

", + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains the\n Opportunity's project details.\n

" + } + }, + "com.amazonaws.partnercentralselling#ProjectDetails": { + "type": "structure", + "members": { + "BusinessProblem": { + "target": "com.amazonaws.partnercentralselling#EngagementCustomerBusinessProblem", + "traits": { + "smithy.api#documentation": "

Describes the business problem that the project aims to solve. This information is crucial for understanding the project’s goals and objectives.

", + "smithy.api#required": {} + } + }, + "Title": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the title of the project. This title helps partners quickly identify and understand the focus of the project.

", + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#required": {} + } + }, + "TargetCompletionDate": { + "target": "com.amazonaws.partnercentralselling#Date", + "traits": { + "smithy.api#documentation": "

Specifies the estimated date of project completion. This field helps track the project timeline and manage expectations.

", + "smithy.api#required": {} + } + }, + "ExpectedCustomerSpend": { + "target": "com.amazonaws.partnercentralselling#ExpectedCustomerSpendList", + "traits": { + "smithy.api#documentation": "

Contains revenue estimates for the partner related to the project. This field provides an idea of the financial potential of the opportunity for the partner.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains details about the project associated with the Engagement Invitation, including the business problem and expected outcomes.

" + } + }, + "com.amazonaws.partnercentralselling#ProjectSummary": { + "type": "structure", + "members": { + "DeliveryModels": { + "target": "com.amazonaws.partnercentralselling#DeliveryModels", + "traits": { + "smithy.api#documentation": "

\n Specifies your solution or service's deployment or consumption model in the Opportunity's context. You can select multiple options.\n

\n

\n Options' descriptions from the Delivery Model field are:\n

\n
    \n
  • \n

    SaaS or PaaS: Your Amazon Web Services based solution deployed as SaaS or PaaS in your Amazon Web Services environment.

    \n
  • \n
  • \n

    BYOL or AMI: Your Amazon Web Services based solution deployed as BYOL or AMI in the end customer's Amazon Web Services environment.

    \n
  • \n
  • \n

    Managed Services: The end customer's Amazon Web Services business management (For example: Consulting, design, implementation, billing support, cost optimization, technical support).

    \n
  • \n
  • \n

    Professional Services: Offerings to help enterprise end customers achieve specific business outcomes for enterprise cloud adoption (For example: Advisory or transformation planning).

    \n
  • \n
  • \n

    Resell: Amazon Web Services accounts and billing management for your customers.

    \n
  • \n
  • \n

    Other: Delivery model not described above.

    \n
  • \n
" + } + }, + "ExpectedCustomerSpend": { + "target": "com.amazonaws.partnercentralselling#ExpectedCustomerSpendList", + "traits": { + "smithy.api#documentation": "

Provides a summary of the expected customer spend for the project, offering a high-level view of the potential financial impact.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains a Project object's subset of fields.\n

" + } + }, + "com.amazonaws.partnercentralselling#ReasonCode": { + "type": "enum", + "members": { + "INVITATION_ACCESS_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InvitationAccessDenied" + } + }, + "ENGAGEMENT_ACCESS_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EngagementAccessDenied" + } + }, + "OPPORTUNITY_ACCESS_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OpportunityAccessDenied" + } + }, + "RESOURCE_SNAPSHOT_JOB_ACCESS_DENIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResourceSnapshotJobAccessDenied" + } + }, + "ENGAGEMENT_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EngagementValidationFailed" + } + }, + "OPPORTUNITY_SUBMISSION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OpportunitySubmissionFailed" + } + }, + "ENGAGEMENT_INVITATION_CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EngagementInvitationConflict" + } + }, + "INTERNAL_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InternalError" + } + }, + "OPPORTUNITY_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OpportunityValidationFailed" + } + }, + "OPPORTUNITY_CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OpportunityConflict" + } + } + } + }, + "com.amazonaws.partnercentralselling#Receiver": { + "type": "union", + "members": { + "Account": { + "target": "com.amazonaws.partnercentralselling#AccountReceiver", + "traits": { + "smithy.api#documentation": "

Specifies the AWS account of the partner who received the Engagement Invitation. This field is used to track the invitation recipient within the AWS ecosystem.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Represents the entity that received the Engagement Invitation, including account and company details. This field is essential for tracking the partner who is being invited to collaborate.

" + } + }, + "com.amazonaws.partnercentralselling#ReceiverResponsibility": { + "type": "enum", + "members": { + "DISTRIBUTOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Distributor" + } + }, + "RESELLER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Reseller" + } + }, + "HARDWARE_PARTNER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Hardware Partner" + } + }, + "MANAGED_SERVICE_PROVIDER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Managed Service Provider" + } + }, + "SOFTWARE_PARTNER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Software Partner" + } + }, + "SERVICES_PARTNER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Services Partner" + } + }, + "TRAINING_PARTNER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Training Partner" + } + }, + "CO_SELL_FACILITATOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell Facilitator" + } + }, + "FACILITATOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Facilitator" + } + } + } + }, + "com.amazonaws.partnercentralselling#ReceiverResponsibilityList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#ReceiverResponsibility" + } + }, + "com.amazonaws.partnercentralselling#RejectEngagementInvitation": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#RejectEngagementInvitationRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to reject Engagement Invitations on AWS Partner Central" + }, + "smithy.api#documentation": "

Use this action to reject an EngagementInvitation that has been shared by AWS. Rejecting the engagement invitation indicates that the partner does not wish to pursue the opportunity, and all related data will be inaccessible after the rejection.

", + "smithy.api#http": { + "method": "POST", + "uri": "/RejectEngagementInvitation", + "code": 200 + } + } + }, + "com.amazonaws.partnercentralselling#RejectEngagementInvitationRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog related to the engagement invitation. Accepted values are AWS and Sandbox, which determine the environment in which the opportunity is managed.

", + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the unique identifier of the EngagementInvitation to be rejected. Providing the correct identifier ensures that the intended invitation is rejected.

", + "smithy.api#required": {} + } + }, + "RejectionReason": { + "target": "com.amazonaws.partnercentralselling#RejectionReasonString", + "traits": { + "smithy.api#documentation": "

Specifies the reason for rejecting the engagement invitation. Providing a reason helps document the rationale behind the rejection and assists AWS in tracking patterns or issues. Possible values include:

\n
    \n
  • \n

    \n Customer problem unclear: The customer's problem is not clearly defined.

    \n
  • \n
  • \n

    \n Next steps unclear: The next steps required to proceed are not clear.

    \n
  • \n
  • \n

    \n Unable to support: The partner is unable to provide support due to resource or capability constraints.

    \n
  • \n
  • \n

    \n Duplicate of Partner Referral: The opportunity is a duplicate of an existing referral.

    \n
  • \n
  • \n

    \n Other: Any other reason not covered by the specified values.

    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#RejectionReasonString": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[\\u0020-\\u007E\\u00A0-\\uD7FF\\uE000-\\uFFFD]{1,80}$" + } + }, + "com.amazonaws.partnercentralselling#RelatedEntityIdentifiers": { + "type": "structure", + "members": { + "AwsMarketplaceOffers": { + "target": "com.amazonaws.partnercentralselling#AwsMarketplaceOfferIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Takes one value per opportunity. Each value is an Amazon Resource Name (ARN), in this format: \"offers\": [\"arn:aws:aws-marketplace:us-east-1:999999999999:AWSMarketplace/Offer/offer-sampleOffer32\"].\n

\n

\n Use the ListEntities action in the Marketplace Catalog APIs for a list of offers in the associated Marketplace seller account.\n

" + } + }, + "Solutions": { + "target": "com.amazonaws.partnercentralselling#SolutionIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Enables partner solutions or offerings' association with an opportunity. To associate a solution, provide the solution's unique identifier, which you can obtain with the ListSolutions operation.\n

\n

\n If the specific solution identifier is not available, you can use the value Other and provide details about the solution in the otherSolutionOffered field. However, once the opportunity reaches the Committed stage or beyond, the Other value cannot be used, and a valid solution identifier must be provided.\n

\n

\n By associating the relevant solutions with the opportunity, you can clearly communicate the offerings that are being considered or implemented to address the customer's business problem.\n

" + } + }, + "AwsProducts": { + "target": "com.amazonaws.partnercentralselling#AwsProductIdentifiers", + "traits": { + "smithy.api#documentation": "

\n Enables the association of specific Amazon Web Services products with the Opportunity. Partners can indicate\n the relevant Amazon Web Services products for the Opportunity's solution and align with the customer's\n needs. Returns multiple values separated by commas. For example, \"AWSProducts\" : [\"AmazonRedshift\", \"AWSAppFabric\", \"AWSCleanRooms\"].\n

\n

\n Use the file with the list of Amazon Web Services products hosted on GitHub:\n \n Amazon Web Services products.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

\n This field provides the associations' information for other entities with the opportunity. These entities include identifiers for\n AWSProducts, Partner Solutions, and AWSMarketplaceOffers.\n

" + } + }, + "com.amazonaws.partnercentralselling#RelatedEntityType": { + "type": "enum", + "members": { + "SOLUTIONS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Solutions" + } + }, + "AWS_PRODUCTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AwsProducts" + } + }, + "AWS_MARKETPLACE_OFFERS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AwsMarketplaceOffers" + } + } + } + }, + "com.amazonaws.partnercentralselling#ResourceNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

This error occurs when the specified resource can't be found. The resource might not exist, or isn't visible with the current credentials.\n

\n

Suggested action: Verify that the resource ID is correct and the resource is in the expected AWS region. Check IAM permissions for accessing the resource.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.partnercentralselling#RevenueModel": { + "type": "enum", + "members": { + "CONTRACT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Contract" + } + }, + "PAY_AS_YOU_GO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Pay-as-you-go" + } + }, + "SUBSCRIPTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Subscription" + } + } + } + }, + "com.amazonaws.partnercentralselling#ReviewStatus": { + "type": "enum", + "members": { + "PENDING_SUBMISSION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Pending Submission" + } + }, + "SUBMITTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Submitted" + } + }, + "IN_REVIEW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "In review" + } + }, + "APPROVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Approved" + } + }, + "REJECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Rejected" + } + }, + "ACTION_REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Action Required" + } + } + } + }, + "com.amazonaws.partnercentralselling#SalesActivities": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#SalesActivity" + } + }, + "com.amazonaws.partnercentralselling#SalesActivity": { + "type": "enum", + "members": { + "INITIALIZED_DISCUSSIONS_WITH_CUSTOMER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Initialized discussions with customer" + } + }, + "CUSTOMER_HAS_SHOWN_INTEREST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Customer has shown interest in solution" + } + }, + "CONDUCTED_POC_DEMO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Conducted POC / Demo" + } + }, + "IN_EVALUATION_PLANNING_STAGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "In evaluation / planning stage" + } + }, + "AGREED_ON_SOLUTION_TO_BUSINESS_PROBLEM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Agreed on solution to Business Problem" + } + }, + "COMPLETED_ACTION_PLAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Completed Action Plan" + } + }, + "FINALIZED_DEPLOYMENT_NEEDS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Finalized Deployment Need" + } + }, + "SOW_SIGNED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SOW Signed" + } + } + } + }, + "com.amazonaws.partnercentralselling#SalesInvolvementType": { + "type": "enum", + "members": { + "FOR_VISIBILITY_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "For Visibility Only" + } + }, + "CO_SELL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Co-Sell" + } + } + } + }, + "com.amazonaws.partnercentralselling#SenderContact": { + "type": "structure", + "members": { + "Email": { + "target": "com.amazonaws.partnercentralselling#SenderContactEmail", + "traits": { + "smithy.api#documentation": "

The sender-provided contact's email address associated with the EngagementInvitation.\n

", + "smithy.api#required": {} + } + }, + "FirstName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

The sender-provided contact's last name associated with the EngagementInvitation.\n

" + } + }, + "LastName": { + "target": "com.amazonaws.partnercentralselling#Name", + "traits": { + "smithy.api#documentation": "

The sender-provided contact's first name associated with the EngagementInvitation.\n

" + } + }, + "BusinessTitle": { + "target": "com.amazonaws.partnercentralselling#JobTitle", + "traits": { + "smithy.api#documentation": "

The sender-provided contact's title (job title or role) associated with the EngagementInvitation.\n

" + } + }, + "Phone": { + "target": "com.amazonaws.partnercentralselling#PhoneNumber", + "traits": { + "smithy.api#documentation": "

The sender-provided contact's phone number associated with the EngagementInvitation.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that contains the details of the sender-provided contact person for the EngagementInvitation.\n

" + } + }, + "com.amazonaws.partnercentralselling#SenderContactEmail": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 80 + }, + "smithy.api#pattern": "^[a-zA-Z0-9.!#$%&'*+/=?^_{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.partnercentralselling#SenderContactList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#SenderContact" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 3 + } + } + }, + "com.amazonaws.partnercentralselling#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

This error occurs when the request would cause a service quota to be exceeded.\n Service quotas represent the maximum allowed use of a specific resource, and this error indicates that the request would surpass that limit.\n

\n

Suggested action: Review the\n service quotas for the specific resource, and reduce the usage or request a quota increase through support if necessary.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.partnercentralselling#SoftwareRevenue": { + "type": "structure", + "members": { + "DeliveryModel": { + "target": "com.amazonaws.partnercentralselling#RevenueModel", + "traits": { + "smithy.api#documentation": "

Specifies the customer's intended payment type agreement or procurement method to acquire the solution or service outlined in the Opportunity.\n

" + } + }, + "Value": { + "target": "com.amazonaws.partnercentralselling#MonetaryValue", + "traits": { + "smithy.api#documentation": "

Specifies the payment value (amount and currency).

" + } + }, + "EffectiveDate": { + "target": "com.amazonaws.partnercentralselling#Date", + "traits": { + "smithy.api#documentation": "

Specifies the Opportunity's customer engagement start date for the contract's effectiveness.\n

" + } + }, + "ExpirationDate": { + "target": "com.amazonaws.partnercentralselling#Date", + "traits": { + "smithy.api#documentation": "

Specifies the expiration date for the contract between the customer and\n Amazon Web Services partner. It signifies the termination date of the agreed-upon engagement period between\n both parties.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies a customer's procurement terms details. Required only for partners in eligible programs.

" + } + }, + "com.amazonaws.partnercentralselling#Solution": { + "type": "resource", + "identifiers": { + "Identifier": { + "target": "com.amazonaws.partnercentralselling#SolutionIdentifier" + }, + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier" + } + }, + "list": { + "target": "com.amazonaws.partnercentralselling#ListSolutions" + }, + "traits": { + "aws.api#arn": { + "template": "catalog/{Catalog}/solution/{Identifier}" + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "relativeDocumentation": "/working-with-solutions.html" + }, + "smithy.api#documentation": "Represents a Solution that is listed on AWS Partner Central" + } + }, + "com.amazonaws.partnercentralselling#SolutionBase": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog in which the solution is hosted, either AWS or Sandbox. This helps partners differentiate between live solutions and those in testing environments.

", + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.partnercentralselling#SolutionIdentifier", + "traits": { + "smithy.api#documentation": "

Enables the association of solutions (offerings) to opportunities.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the solution name.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.partnercentralselling#SolutionStatus", + "traits": { + "smithy.api#documentation": "

\n Specifies the solution's current status, which indicates its state in the system.\n Valid values: Active | Inactive | Draft.\n The status helps partners and Amazon Web Services track the solution's lifecycle and availability. Filter for Active solutions for association to an opportunity.\n

", + "smithy.api#required": {} + } + }, + "Category": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n Specifies the solution category, which helps to categorize and organize the solutions partners offer.\n Valid values: Software Product | Consulting Service |\n Hardware Product | Communications Product |\n Professional Service | Managed Service |\n Value-Added Resale Amazon Web Services Service | Distribution Service |\n Training Service | Merger and Acquisition Advising Service.\n

", + "smithy.api#required": {} + } + }, + "CreatedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

Indicates the solution creation date. This is useful to track and audit.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies minimal information for the solution offered to solve the customer's business problem.

" + } + }, + "com.amazonaws.partnercentralselling#SolutionIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "^S-[0-9]{1,19}$" + } + }, + "com.amazonaws.partnercentralselling#SolutionIdentifiers": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#SolutionIdentifier" + } + }, + "com.amazonaws.partnercentralselling#SolutionList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#SolutionBase" + } + }, + "com.amazonaws.partnercentralselling#SolutionSort": { + "type": "structure", + "members": { + "SortOrder": { + "target": "com.amazonaws.partnercentralselling#SortOrder", + "traits": { + "smithy.api#documentation": "

\n Specifies the sorting order, either Ascending or Descending. The default is Descending.\n

", + "smithy.api#required": {} + } + }, + "SortBy": { + "target": "com.amazonaws.partnercentralselling#SolutionSortName", + "traits": { + "smithy.api#documentation": "

\n Specifies the attribute to sort by, such as Name, CreatedDate, or Status.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Configures the solutions' response sorting that enables partners to order solutions based on specified attributes.\n

" + } + }, + "com.amazonaws.partnercentralselling#SolutionSortName": { + "type": "enum", + "members": { + "IDENTIFIER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Identifier" + } + }, + "NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Name" + } + }, + "STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Status" + } + }, + "CATEGORY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Category" + } + }, + "CREATEDDATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreatedDate" + } + } + } + }, + "com.amazonaws.partnercentralselling#SolutionStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Active" + } + }, + "INACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Inactive" + } + }, + "DRAFT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Draft" + } + } + } + }, + "com.amazonaws.partnercentralselling#SortOrder": { + "type": "enum", + "members": { + "ASCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASCENDING" + } + }, + "DESCENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DESCENDING" + } + } + } + }, + "com.amazonaws.partnercentralselling#Stage": { + "type": "enum", + "members": { + "PROSPECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Prospect" + } + }, + "QUALIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Qualified" + } + }, + "TECHNICAL_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Technical Validation" + } + }, + "BUSINESS_VALIDATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Business Validation" + } + }, + "COMMITTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Committed" + } + }, + "LAUNCHED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Launched" + } + }, + "CLOSED_LOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Closed Lost" + } + } + } + }, + "com.amazonaws.partnercentralselling#StartEngagementByAcceptingInvitationTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#StartEngagementByAcceptingInvitationTaskRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#StartEngagementByAcceptingInvitationTaskResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ConflictException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "requiredActions": [ + "partnercentral:CreateOpportunity", + "partnercentral:SubmitOpportunity", + "partnercentral:GetEngagementInvitation", + "partnercentral:AcceptEngagementInvitation", + "partnercentral:CreateResourceSnapshotJob", + "partnercentral:StartResourceSnapshotJob" + ], + "documentation": "Grants permission to initiate tasks that start Engagements on AWS Partner Central by accepting an Engagement Invitation" + }, + "smithy.api#documentation": "

This action starts the engagement by accepting an EngagementInvitation. The task is asynchronous and involves several steps: accepting the invitation, creating an opportunity in the partner’s account from the AWS Opportunity, and copying over key details for tracking. Once completed, an Opportunity Created event is generated, indicating that the opportunity has been successfully created in the partner's account.

", + "smithy.api#http": { + "method": "POST", + "uri": "/StartEngagementByAcceptingInvitationTask", + "code": 200 + } + } + }, + "com.amazonaws.partnercentralselling#StartEngagementByAcceptingInvitationTaskRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog related to the task. Use AWS for production engagements and Sandbox for testing scenarios.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier provided by the client to ensure the idempotency of the request. Can be a random or meaningful string, but must be unique for each request.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#length": { + "min": 1 + }, + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationArnOrIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the unique identifier of the EngagementInvitation to be accepted. Providing the correct identifier ensures the right engagement invitation is processed.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#StartEngagementByAcceptingInvitationTaskResponse": { + "type": "structure", + "members": { + "TaskId": { + "target": "com.amazonaws.partnercentralselling#TaskIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the task, used to track the task’s progress. This value follows a specific pattern: ^oit-[0-9a-z]{13}$.

" + } + }, + "TaskArn": { + "target": "com.amazonaws.partnercentralselling#TaskArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task, used for tracking and managing the task within AWS.

" + } + }, + "StartTime": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

The timestamp indicating when the task was initiated. The format follows RFC 3339 section 5.6.

" + } + }, + "TaskStatus": { + "target": "com.amazonaws.partnercentralselling#TaskStatus", + "traits": { + "smithy.api#documentation": "

Indicates the current status of the task. Valid values include IN_PROGRESS, COMPLETE, and FAILED.

" + } + }, + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

If the task fails, this field contains a detailed message describing the failure and possible recovery steps.

" + } + }, + "ReasonCode": { + "target": "com.amazonaws.partnercentralselling#ReasonCode", + "traits": { + "smithy.api#documentation": "

Indicates the reason for task failure using an enumerated code. Possible values are: ACCEPT_ENGAGEMENT_INVITATION_FAILED, GET_ENGAGEMENT_INVITATION_FAILED, CREATE_OPPORTUNITY_FAILED, CREATE_RESOURCE_VIEW_AUTOMATION_FAILED, SUBMIT_OPPORTUNITY_FAILED.

" + } + }, + "OpportunityId": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

Returns the original opportunity identifier passed in the request. This is the unique identifier for the opportunity.

" + } + }, + "EngagementInvitationId": { + "target": "com.amazonaws.partnercentralselling#EngagementInvitationIdentifier", + "traits": { + "smithy.api#documentation": "

Returns the identifier of the engagement invitation that was accepted and used to create the opportunity.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#StartEngagementFromOpportunityTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#StartEngagementFromOpportunityTaskRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#StartEngagementFromOpportunityTaskResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ConflictException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "requiredActions": [ + "partnercentral:CreateEngagement", + "partnercentral:SubmitOpportunity", + "partnercentral:GetOpportunity", + "partnercentral:CreateResourceSnapshotJob", + "partnercentral:CreateEngagementInvitation", + "partnercentral:StartResourceSnapshotJob" + ], + "documentation": "Grants permission to initiate tasks that start Engagements from Opportunities on AWS Partner Central" + }, + "smithy.api#documentation": "

This action initiates the engagement process from an existing opportunity by accepting the engagement invitation and creating a corresponding opportunity in the partner’s system. Similar to StartEngagementByAcceptingInvitationTask, this action is asynchronous and performs multiple steps before completion.

", + "smithy.api#http": { + "method": "POST", + "uri": "/StartEngagementFromOpportunityTask", + "code": 200 + } + } + }, + "com.amazonaws.partnercentralselling#StartEngagementFromOpportunityTaskRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

Specifies the catalog in which the engagement is tracked. Acceptable values include AWS for production and Sandbox for testing environments.

", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

A unique token provided by the client to ensure the idempotency of the request. It helps prevent the same task from being performed multiple times.

", + "smithy.api#idempotencyToken": {}, + "smithy.api#length": { + "min": 1 + }, + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the opportunity from which the engagement task is to be initiated. This ensures the task is applied to the correct opportunity.

", + "smithy.api#required": {} + } + }, + "AwsSubmission": { + "target": "com.amazonaws.partnercentralselling#AwsSubmission", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#StartEngagementFromOpportunityTaskResponse": { + "type": "structure", + "members": { + "TaskId": { + "target": "com.amazonaws.partnercentralselling#TaskIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the task, used to track the task’s progress. This value follows a specific pattern: ^oit-[0-9a-z]{13}$.

" + } + }, + "TaskArn": { + "target": "com.amazonaws.partnercentralselling#TaskArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task, used for tracking and managing the task within AWS.

" + } + }, + "StartTime": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

The timestamp indicating when the task was initiated. The format follows RFC 3339 section 5.6.

" + } + }, + "TaskStatus": { + "target": "com.amazonaws.partnercentralselling#TaskStatus", + "traits": { + "smithy.api#documentation": "

Indicates the current status of the task. Valid values include IN_PROGRESS, COMPLETE, and FAILED.

" + } + }, + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

If the task fails, this field contains a detailed message describing the failure and possible recovery steps.

" + } + }, + "ReasonCode": { + "target": "com.amazonaws.partnercentralselling#ReasonCode", + "traits": { + "smithy.api#documentation": "

Indicates the reason for task failure using an enumerated code. Possible values are: ACCEPT_ENGAGEMENT_INVITATION_FAILED, GET_ENGAGEMENT_INVITATION_FAILED, CREATE_OPPORTUNITY_FAILED, CREATE_RESOURCE_VIEW_AUTOMATION_FAILED, SUBMIT_OPPORTUNITY_FAILED.

" + } + }, + "OpportunityId": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

Returns the original opportunity identifier passed in the request, which is the unique identifier for the opportunity created in the partner’s system.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#StringList": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.partnercentralselling#TaskArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:.*" + } + }, + "com.amazonaws.partnercentralselling#TaskIdentifier": { + "type": "string", + "traits": { + "smithy.api#pattern": "task-[0-9a-z]{13}$" + } + }, + "com.amazonaws.partnercentralselling#TaskStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.partnercentralselling#ThrottlingException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

This error occurs when there are too many requests sent. Review the provided quotas and adapt your\n usage to avoid throttling.\n

\n

This error occurs when there are too many requests sent. Review the provided\n quotas and retry after the provided delay.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, + "com.amazonaws.partnercentralselling#UpdateOpportunity": { + "type": "operation", + "input": { + "target": "com.amazonaws.partnercentralselling#UpdateOpportunityRequest" + }, + "output": { + "target": "com.amazonaws.partnercentralselling#UpdateOpportunityResponse" + }, + "errors": [ + { + "target": "com.amazonaws.partnercentralselling#AccessDeniedException" + }, + { + "target": "com.amazonaws.partnercentralselling#ConflictException" + }, + { + "target": "com.amazonaws.partnercentralselling#InternalServerException" + }, + { + "target": "com.amazonaws.partnercentralselling#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.partnercentralselling#ThrottlingException" + }, + { + "target": "com.amazonaws.partnercentralselling#ValidationException" + } + ], + "traits": { + "aws.iam#conditionKeys": [ + "partnercentral:Catalog" + ], + "aws.iam#iamAction": { + "documentation": "Grants permission to update Opportunities on AWS Partner Central" + }, + "smithy.api#documentation": "

\n Updates the Opportunity record identified by a given Identifier.\n This operation allows you to modify the details of an existing opportunity to reflect the latest information\n and progress. Use this action to keep the opportunity record up-to-date and accurate.\n

\n

\n When you perform updates, include the entire payload with each request. If any field is omitted, the API assumes that the field is set to null. The best practice is to always perform a GetOpportunity to retrieve the latest values, then send the complete payload with the updated values to be changed.\n

", + "smithy.api#http": { + "method": "POST", + "uri": "/UpdateOpportunity", + "code": 200 + } + } + }, + "com.amazonaws.partnercentralselling#UpdateOpportunityRequest": { + "type": "structure", + "members": { + "Catalog": { + "target": "com.amazonaws.partnercentralselling#CatalogIdentifier", + "traits": { + "smithy.api#documentation": "

\n Specifies the catalog associated with the request. This field takes a string value from a predefined list:\n AWS or Sandbox. The catalog determines which environment the opportunity is updated in.\n Use AWS to update real opportunities in the production\n environment, and Sandbox to test in a secure and isolated environment.\n When you use the Sandbox catalog, it allows you to simulate and validate your interactions\n with Amazon Web Services services without affecting live data or operations.\n

", + "smithy.api#required": {} + } + }, + "PrimaryNeedsFromAws": { + "target": "com.amazonaws.partnercentralselling#PrimaryNeedsFromAws", + "traits": { + "smithy.api#documentation": "

\n Identifies the type of support the partner needs from Amazon Web Services.\n

\n

\n Valid values:\n

\n
    \n
  • \n

    \n Co-Sell - Architectural Validation: Confirmation from Amazon Web Services that the partner's proposed solution architecture is aligned with Amazon Web Services best practices and poses minimal architectural risks.\n

    \n
  • \n
  • \n

    \n Co-Sell - Business Presentation: Request Amazon Web Services seller's participation in a joint customer presentation.\n

    \n
  • \n
  • \n

    \n Co-Sell - Competitive Information: Access to Amazon Web Services competitive resources and support for the partner's proposed solution.\n

    \n
  • \n
  • \n

    \n Co-Sell - Pricing Assistance: Connect with an AWS seller for support situations where a partner may be receiving an upfront discount on a service (for example: EDP deals).\n

    \n
  • \n
  • \n

    \n Co-Sell - Technical Consultation: Connection with an Amazon Web Services Solutions Architect to address the partner's questions about the proposed solution.\n

    \n
  • \n
  • \n

    \n Co-Sell - Total Cost of Ownership Evaluation: Assistance with quoting different cost savings of proposed solutions on Amazon Web Services versus on-premises or a traditional hosting environment.\n

    \n
  • \n
  • \n

    \n Co-Sell - Deal Support: Request Amazon Web Services seller's support to progress the opportunity (for example: joint customer call, strategic positioning).\n

    \n
  • \n
  • \n

    \n Co-Sell - Support for Public Tender / RFx: Opportunity related to the public sector where the partner needs RFx support from Amazon Web Services.\n

    \n
  • \n
  • \n

    \n Do Not Need Support from AWS Sales Rep: Indicates that a partner doesn't need support from an Amazon Web Services Sales representative. The opportunity is managed solely by the partner. It's possible to request co-selling support on these opportunities at any stage during their lifecycle. Also known as, for-visibility-only (FVO) opportunity.\n

    \n
  • \n
" + } + }, + "NationalSecurity": { + "target": "com.amazonaws.partnercentralselling#NationalSecurity", + "traits": { + "smithy.api#documentation": "

Specifies if the opportunity is associated with national security concerns. This flag is only applicable when the industry is Government. For national security-related opportunities, specific validation and compliance rules may apply, impacting the opportunity's visibility and processing.

" + } + }, + "PartnerOpportunityIdentifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the opportunity's unique identifier in the partner's CRM system. This value is essential\n to track and reconcile because it's included in the outbound payload sent back to the partner.\n

", + "smithy.api#length": { + "max": 64 + } + } + }, + "Customer": { + "target": "com.amazonaws.partnercentralselling#Customer", + "traits": { + "smithy.api#documentation": "

Specifies details of the customer associated with the Opportunity .\n

" + } + }, + "Project": { + "target": "com.amazonaws.partnercentralselling#Project", + "traits": { + "smithy.api#documentation": "

An object that contains project details summary for the Opportunity.\n

" + } + }, + "OpportunityType": { + "target": "com.amazonaws.partnercentralselling#OpportunityType", + "traits": { + "smithy.api#documentation": "

\n Specifies the opportunity type as a renewal, new, or expansion.\n

\n

\n Opportunity types:\n

\n
    \n
  • \n

    \n New opportunity:\n Represents a new business opportunity with a potential customer that's not previously engaged with your solutions or services.\n

    \n
  • \n
  • \n

    \n Renewal opportunity:\n Represents an opportunity to renew an existing contract or subscription with a current customer, ensuring continuity of service.\n

    \n
  • \n
  • \n

    \n Expansion opportunity:\n Represents an opportunity to expand the scope of an existing contract or subscription, either by adding new services or increasing the volume of existing services for a current customer.\n

    \n
  • \n
" + } + }, + "Marketing": { + "target": "com.amazonaws.partnercentralselling#Marketing", + "traits": { + "smithy.api#documentation": "

An object that contains marketing details for the Opportunity.\n

" + } + }, + "SoftwareRevenue": { + "target": "com.amazonaws.partnercentralselling#SoftwareRevenue", + "traits": { + "smithy.api#documentation": "

Specifies details of a customer's procurement terms. Required only for partners in eligible programs.

" + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n DateTime when the opportunity was last modified.\n

", + "smithy.api#required": {} + } + }, + "Identifier": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

Read-only, system generated Opportunity unique identifier.\n

", + "smithy.api#required": {} + } + }, + "LifeCycle": { + "target": "com.amazonaws.partnercentralselling#LifeCycle", + "traits": { + "smithy.api#documentation": "

An object that contains lifecycle details for the Opportunity.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.partnercentralselling#UpdateOpportunityResponse": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.partnercentralselling#OpportunityIdentifier", + "traits": { + "smithy.api#documentation": "

Read-only, system generated Opportunity unique identifier.\n

", + "smithy.api#required": {} + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.partnercentralselling#DateTime", + "traits": { + "smithy.api#documentation": "

\n DateTime\n when the opportunity was last modified.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.partnercentralselling#UseCases": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.partnercentralselling#ValidationException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "Reason": { + "target": "com.amazonaws.partnercentralselling#ValidationExceptionReason", + "traits": { + "smithy.api#documentation": "

\n The primary reason for this validation exception to occur.\n

\n
    \n
  • \n

    \n REQUEST_VALIDATION_FAILED: The request format is not valid.

    \n

    Fix: Verify your request payload includes all required fields, uses correct data types and string formats.\n

    \n
  • \n
  • \n

    \n BUSINESS_VALIDATION_FAILED: The requested change doesn't pass the business validation rules.

    \n

    Fix: Check that your change aligns with the business rules defined by AWS Partner Central.\n

    \n
  • \n
", + "smithy.api#required": {} + } + }, + "ErrorList": { + "target": "com.amazonaws.partnercentralselling#ValidationExceptionErrorList", + "traits": { + "smithy.api#documentation": "

A list of issues that were discovered in the submitted request or the resource state.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The input fails to satisfy the constraints specified by the service or business validation rules.\n

\n

Suggested action: Review the error message, including the failed fields and reasons, to correct the request payload.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.partnercentralselling#ValidationExceptionError": { + "type": "structure", + "members": { + "FieldName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the field name with the invalid value.

" + } + }, + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Specifies the detailed error message for the invalid field value.

", + "smithy.api#required": {} + } + }, + "Code": { + "target": "com.amazonaws.partnercentralselling#ValidationExceptionErrorCode", + "traits": { + "smithy.api#documentation": "

Specifies the error code for the invalid field value.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n Indicates an invalid value for a field.\n

\n
    \n
  • \n

    \n REQUIRED_FIELD_MISSING: The request is missing a required field.

    \n

    Fix: Verify your request payload includes all required fields.\n

    \n
  • \n
  • \n

    \n INVALID_ENUM_VALUE: The enum field value isn't an accepted values.

    \n

    Fix: Check the documentation for the list of valid enum values, and update your request with a valid value.\n

    \n
  • \n
  • \n

    \n INVALID_STRING_FORMAT: The string format is invalid.

    \n

    Fix: Confirm that the string is in the expected format (For example: email address, date).\n

    \n
  • \n
  • \n

    \n INVALID_VALUE: The value isn't valid.

    \n

    Fix: Confirm that the value meets the expected criteria and is within the allowable range or set.\n

    \n
  • \n
  • \n

    \n TOO_MANY_VALUES: There are too many values in a field that expects fewer entries.

    \n

    Fix: Reduce the number of values to match the expected limit.\n

    \n
  • \n
  • \n

    \n ACTION_NOT_PERMITTED: The action isn't permitted due to current state or permissions.

    \n

    Fix: Verify that the action is appropriate for the current state, and that you have the necessary permissions to perform it.\n

    \n
  • \n
  • \n

    \n DUPLICATE_KEY_VALUE: The value in a field duplicates a value that must be unique.

    \n

    Fix: Verify that the value is unique and doesn't duplicate an existing value in the system.\n

    \n
  • \n
" + } + }, + "com.amazonaws.partnercentralselling#ValidationExceptionErrorCode": { + "type": "enum", + "members": { + "REQUIRED_FIELD_MISSING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REQUIRED_FIELD_MISSING" + } + }, + "INVALID_ENUM_VALUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_ENUM_VALUE" + } + }, + "INVALID_STRING_FORMAT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_STRING_FORMAT" + } + }, + "INVALID_VALUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_VALUE" + } + }, + "TOO_MANY_VALUES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TOO_MANY_VALUES" + } + }, + "INVALID_RESOURCE_STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_RESOURCE_STATE" + } + }, + "DUPLICATE_KEY_VALUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DUPLICATE_KEY_VALUE" + } + }, + "VALUE_OUT_OF_RANGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALUE_OUT_OF_RANGE" + } + }, + "ACTION_NOT_PERMITTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTION_NOT_PERMITTED" + } + } + } + }, + "com.amazonaws.partnercentralselling#ValidationExceptionErrorList": { + "type": "list", + "member": { + "target": "com.amazonaws.partnercentralselling#ValidationExceptionError" + } + }, + "com.amazonaws.partnercentralselling#ValidationExceptionReason": { + "type": "enum", + "members": { + "REQUEST_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REQUEST_VALIDATION_FAILED" + } + }, + "BUSINESS_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BUSINESS_VALIDATION_FAILED" + } + } + } + }, + "com.amazonaws.partnercentralselling#Visibility": { + "type": "enum", + "members": { + "FULL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Full" + } + }, + "LIMITED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Limited" + } + } + } + }, + "com.amazonaws.partnercentralselling#WebsiteUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 4, + "max": 255 + }, + "smithy.api#sensitive": {} + } + } + } +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/quicksight.json b/codegen/sdk-codegen/aws-models/quicksight.json index f219ff9fde1..399ae2f7c39 100644 --- a/codegen/sdk-codegen/aws-models/quicksight.json +++ b/codegen/sdk-codegen/aws-models/quicksight.json @@ -546,6 +546,16 @@ "smithy.api#documentation": "

An empty object that represents that the AllSheets option is the chosen value for the FilterScopeConfiguration parameter. This structure applies the filter to all visuals on all sheets of an Analysis, Dashboard, or Template.

\n

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" } }, + "com.amazonaws.quicksight#AltText": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[ -ÿ]+$" + } + }, "com.amazonaws.quicksight#AmazonElasticsearchParameters": { "type": "structure", "members": { @@ -1267,6 +1277,26 @@ "target": "com.amazonaws.quicksight#AnswerId" } }, + "com.amazonaws.quicksight#ApplicationTheme": { + "type": "structure", + "members": { + "BrandColorPalette": { + "target": "com.amazonaws.quicksight#BrandColorPalette", + "traits": { + "smithy.api#documentation": "

The color palette.

" + } + }, + "BrandElementStyle": { + "target": "com.amazonaws.quicksight#BrandElementStyle", + "traits": { + "smithy.api#documentation": "

The element style.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The application theme.

" + } + }, "com.amazonaws.quicksight#ArcAxisConfiguration": { "type": "structure", "members": { @@ -5254,6 +5284,292 @@ "smithy.api#documentation": "

A box plot.

\n

For more information, see Using box plots in the Amazon QuickSight User Guide.

" } }, + "com.amazonaws.quicksight#BrandColorPalette": { + "type": "structure", + "members": { + "Primary": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The primary color.

" + } + }, + "Secondary": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The secondary color.

" + } + }, + "Accent": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The color that is used for accent elements.

" + } + }, + "Measure": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The color that is used for measure elements.

" + } + }, + "Dimension": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The color that is used for dimension elements.

" + } + }, + "Success": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The color that is used for success elements.

" + } + }, + "Info": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The color that is used for info elements.

" + } + }, + "Warning": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The color that is used for warning elements.

" + } + }, + "Danger": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The color that is used for danger elements.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The color palette.

" + } + }, + "com.amazonaws.quicksight#BrandDefinition": { + "type": "structure", + "members": { + "BrandName": { + "target": "com.amazonaws.quicksight#Name", + "traits": { + "smithy.api#documentation": "

The name of the brand.

", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.quicksight#Description", + "traits": { + "smithy.api#documentation": "

The description of the brand.

" + } + }, + "ApplicationTheme": { + "target": "com.amazonaws.quicksight#ApplicationTheme", + "traits": { + "smithy.api#documentation": "

The application theme of the brand.

" + } + }, + "LogoConfiguration": { + "target": "com.amazonaws.quicksight#LogoConfiguration", + "traits": { + "smithy.api#documentation": "

The logo configuration of the brand.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The definition of the brand.

" + } + }, + "com.amazonaws.quicksight#BrandDetail": { + "type": "structure", + "members": { + "BrandId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon QuickSight brand.

", + "smithy.api#required": {} + } + }, + "Arn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the brand.

" + } + }, + "BrandStatus": { + "target": "com.amazonaws.quicksight#BrandStatus", + "traits": { + "smithy.api#documentation": "

The status of the brand.

" + } + }, + "CreatedTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the brand was created.

" + } + }, + "LastUpdatedTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The last time the brand was updated.

" + } + }, + "VersionId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the version.

" + } + }, + "VersionStatus": { + "target": "com.amazonaws.quicksight#BrandVersionStatus", + "traits": { + "smithy.api#documentation": "

The status of the version.

" + } + }, + "Errors": { + "target": "com.amazonaws.quicksight#ErrorList", + "traits": { + "smithy.api#documentation": "

A list of errors that occurred during the most recent brand operation.

" + } + }, + "Logo": { + "target": "com.amazonaws.quicksight#Logo", + "traits": { + "smithy.api#documentation": "

The logo details.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of the brand.

" + } + }, + "com.amazonaws.quicksight#BrandElementStyle": { + "type": "structure", + "members": { + "NavbarStyle": { + "target": "com.amazonaws.quicksight#NavbarStyle", + "traits": { + "smithy.api#documentation": "

The navigation bar style.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The element style.

" + } + }, + "com.amazonaws.quicksight#BrandStatus": { + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_SUCCEEDED" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + }, + "DELETE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_IN_PROGRESS" + } + }, + "DELETE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETE_FAILED" + } + } + } + }, + "com.amazonaws.quicksight#BrandSummary": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the brand.

" + } + }, + "BrandId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon QuickSight brand.

" + } + }, + "BrandName": { + "target": "com.amazonaws.quicksight#Name", + "traits": { + "smithy.api#documentation": "

The name of the brand.

" + } + }, + "Description": { + "target": "com.amazonaws.quicksight#Description", + "traits": { + "smithy.api#documentation": "

The description of the brand.

" + } + }, + "BrandStatus": { + "target": "com.amazonaws.quicksight#BrandStatus", + "traits": { + "smithy.api#documentation": "

The status of the brand.

" + } + }, + "CreatedTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time that the brand was created.

" + } + }, + "LastUpdatedTime": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The time when the brand was last updated.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A summary of the brand.

" + } + }, + "com.amazonaws.quicksight#BrandSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.quicksight#BrandSummary" + } + }, + "com.amazonaws.quicksight#BrandVersionStatus": { + "type": "enum", + "members": { + "CREATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_IN_PROGRESS" + } + }, + "CREATE_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_SUCCEEDED" + } + }, + "CREATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATE_FAILED" + } + } + } + }, "com.amazonaws.quicksight#CIDR": { "type": "string", "traits": { @@ -5489,6 +5805,127 @@ "smithy.api#output": {} } }, + "com.amazonaws.quicksight#Capabilities": { + "type": "structure", + "members": { + "ExportToCsv": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to export to CSV files.

" + } + }, + "ExportToExcel": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to export to Excel files.

" + } + }, + "CreateAndUpdateThemes": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to export to Create and Update themes.

" + } + }, + "AddOrRunAnomalyDetectionForAnalyses": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to add or run anomaly detection.

" + } + }, + "ShareAnalyses": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to share analyses.

" + } + }, + "CreateAndUpdateDatasets": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to create and update datasets.

" + } + }, + "ShareDatasets": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to share datasets.

" + } + }, + "SubscribeDashboardEmailReports": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to subscribe to email reports.

" + } + }, + "CreateAndUpdateDashboardEmailReports": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to create and update email reports.

" + } + }, + "ShareDashboards": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to share dashboards.

" + } + }, + "CreateAndUpdateThresholdAlerts": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to create and update threshold alerts.

" + } + }, + "RenameSharedFolders": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to rename shared folders.

" + } + }, + "CreateSharedFolders": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to create shared folders.

" + } + }, + "CreateAndUpdateDataSources": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to create and update data sources.

" + } + }, + "ShareDataSources": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to share data sources.

" + } + }, + "ViewAccountSPICECapacity": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to view account SPICE capacity.

" + } + }, + "CreateSPICEDataset": { + "target": "com.amazonaws.quicksight#CapabilityState", + "traits": { + "smithy.api#documentation": "

The ability to create a SPICE dataset.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A set of actions that correspond to Amazon QuickSight permissions.

" + } + }, + "com.amazonaws.quicksight#CapabilityState": { + "type": "enum", + "members": { + "DENY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DENY" + } + } + } + }, "com.amazonaws.quicksight#CascadingControlConfiguration": { "type": "structure", "members": { @@ -8116,6 +8553,105 @@ "smithy.api#output": {} } }, + "com.amazonaws.quicksight#CreateBrand": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#CreateBrandRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#CreateBrandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalServerException" + }, + { + "target": "com.amazonaws.quicksight#InvalidRequestException" + }, + { + "target": "com.amazonaws.quicksight#LimitExceededException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an Amazon QuickSight brand.

", + "smithy.api#http": { + "method": "POST", + "uri": "/accounts/{AwsAccountId}/brands/{BrandId}", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#CreateBrandRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "BrandId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon QuickSight brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "BrandDefinition": { + "target": "com.amazonaws.quicksight#BrandDefinition", + "traits": { + "smithy.api#documentation": "

The definition of the brand.

" + } + }, + "Tags": { + "target": "com.amazonaws.quicksight#TagList", + "traits": { + "smithy.api#documentation": "

A map of the key-value pairs that are assigned to the brand.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#CreateBrandResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "BrandDetail": { + "target": "com.amazonaws.quicksight#BrandDetail", + "traits": { + "smithy.api#documentation": "

The details of the brand.

" + } + }, + "BrandDefinition": { + "target": "com.amazonaws.quicksight#BrandDefinition", + "traits": { + "smithy.api#documentation": "

The definition of the brand.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.quicksight#CreateColumnsOperation": { "type": "structure", "members": { @@ -8131,6 +8667,117 @@ "smithy.api#documentation": "

A transform operation that creates calculated columns. Columns created in one such\n operation form a lexical closure.

" } }, + "com.amazonaws.quicksight#CreateCustomPermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#CreateCustomPermissionsRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#CreateCustomPermissionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalFailureException" + }, + { + "target": "com.amazonaws.quicksight#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.quicksight#LimitExceededException" + }, + { + "target": "com.amazonaws.quicksight#PreconditionNotMetException" + }, + { + "target": "com.amazonaws.quicksight#ResourceExistsException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ResourceUnavailableException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a custom permissions profile.

", + "smithy.api#http": { + "method": "POST", + "uri": "/accounts/{AwsAccountId}/custom-permissions", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#CreateCustomPermissionsRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that you want to create the custom permissions profile in.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CustomPermissionsName": { + "target": "com.amazonaws.quicksight#CustomPermissionsName", + "traits": { + "smithy.api#documentation": "

The name of the custom permissions profile that you want to create.

", + "smithy.api#required": {} + } + }, + "Capabilities": { + "target": "com.amazonaws.quicksight#Capabilities", + "traits": { + "smithy.api#documentation": "

A set of actions to include in the custom permissions profile.

" + } + }, + "Tags": { + "target": "com.amazonaws.quicksight#TagList", + "traits": { + "smithy.api#documentation": "

The tags to associate with the custom permissions profile.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#CreateCustomPermissionsResponse": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.quicksight#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The HTTP status of the request.

" + } + }, + "Arn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom permissions profile.

" + } + }, + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.quicksight#CreateDashboard": { "type": "operation", "input": { @@ -11234,6 +11881,48 @@ "smithy.api#documentation": "

The customized parameter values.

\n

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" } }, + "com.amazonaws.quicksight#CustomPermissions": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom permissions profile.

" + } + }, + "CustomPermissionsName": { + "target": "com.amazonaws.quicksight#CustomPermissionsName", + "traits": { + "smithy.api#documentation": "

The name of the custom permissions profile.

" + } + }, + "Capabilities": { + "target": "com.amazonaws.quicksight#Capabilities", + "traits": { + "smithy.api#documentation": "

A set of actions in the custom permissions profile.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The custom permissions profile.

" + } + }, + "com.amazonaws.quicksight#CustomPermissionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.quicksight#CustomPermissions" + } + }, + "com.amazonaws.quicksight#CustomPermissionsName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9+=,.@_-]+$" + } + }, "com.amazonaws.quicksight#CustomSql": { "type": "structure", "members": { @@ -15361,6 +16050,247 @@ "smithy.api#output": {} } }, + "com.amazonaws.quicksight#DeleteBrand": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#DeleteBrandRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#DeleteBrandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalServerException" + }, + { + "target": "com.amazonaws.quicksight#InvalidRequestException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes an Amazon QuickSight brand.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/accounts/{AwsAccountId}/brands/{BrandId}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.quicksight#DeleteBrandAssignment": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#DeleteBrandAssignmentRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#DeleteBrandAssignmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalServerException" + }, + { + "target": "com.amazonaws.quicksight#InvalidRequestException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a brand assignment.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/accounts/{AwsAccountId}/brandassignments", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.quicksight#DeleteBrandAssignmentRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brand assignment.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#DeleteBrandAssignmentResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.quicksight#DeleteBrandRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "BrandId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon QuickSight brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#DeleteBrandResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.quicksight#DeleteCustomPermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#DeleteCustomPermissionsRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#DeleteCustomPermissionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalFailureException" + }, + { + "target": "com.amazonaws.quicksight#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.quicksight#PreconditionNotMetException" + }, + { + "target": "com.amazonaws.quicksight#ResourceExistsException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ResourceUnavailableException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a custom permissions profile.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/accounts/{AwsAccountId}/custom-permissions/{CustomPermissionsName}", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#DeleteCustomPermissionsRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the custom permissions profile that you want to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CustomPermissionsName": { + "target": "com.amazonaws.quicksight#CustomPermissionsName", + "traits": { + "smithy.api#documentation": "

The name of the custom permissions profile that you want to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#DeleteCustomPermissionsResponse": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.quicksight#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The HTTP status of the request.

" + } + }, + "Arn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom permissions profile.

" + } + }, + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.quicksight#DeleteDashboard": { "type": "operation", "input": { @@ -17462,6 +18392,103 @@ "smithy.api#output": {} } }, + "com.amazonaws.quicksight#DeleteUserCustomPermission": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#DeleteUserCustomPermissionRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#DeleteUserCustomPermissionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalFailureException" + }, + { + "target": "com.amazonaws.quicksight#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.quicksight#PreconditionNotMetException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ResourceUnavailableException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a custom permissions profile from a user.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/custom-permission", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#DeleteUserCustomPermissionRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.quicksight#UserName", + "traits": { + "smithy.api#documentation": "

The username of the user that you want to remove custom permissions from.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the custom permission configuration that you want to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Namespace": { + "target": "com.amazonaws.quicksight#Namespace", + "traits": { + "smithy.api#documentation": "

The namespace that the user belongs to.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#DeleteUserCustomPermissionResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "Status": { + "target": "com.amazonaws.quicksight#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The HTTP status of the request.

", + "smithy.api#httpResponseCode": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.quicksight#DeleteUserRequest": { "type": "structure", "members": { @@ -18561,6 +19588,351 @@ "smithy.api#output": {} } }, + "com.amazonaws.quicksight#DescribeBrand": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#DescribeBrandRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#DescribeBrandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalServerException" + }, + { + "target": "com.amazonaws.quicksight#InvalidRequestException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes a brand.

", + "smithy.api#http": { + "method": "GET", + "uri": "/accounts/{AwsAccountId}/brands/{BrandId}", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#DescribeBrandAssignment": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#DescribeBrandAssignmentRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#DescribeBrandAssignmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalServerException" + }, + { + "target": "com.amazonaws.quicksight#InvalidRequestException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes a brand assignment.

", + "smithy.api#http": { + "method": "GET", + "uri": "/accounts/{AwsAccountId}/brandassignments", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#DescribeBrandAssignmentRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brand assignment.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#DescribeBrandAssignmentResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "BrandArn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the brand.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.quicksight#DescribeBrandPublishedVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#DescribeBrandPublishedVersionRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#DescribeBrandPublishedVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalServerException" + }, + { + "target": "com.amazonaws.quicksight#InvalidRequestException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the published version of the brand.

", + "smithy.api#http": { + "method": "GET", + "uri": "/accounts/{AwsAccountId}/brands/{BrandId}/publishedversion", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#DescribeBrandPublishedVersionRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "BrandId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon QuickSight brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#DescribeBrandPublishedVersionResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "BrandDetail": { + "target": "com.amazonaws.quicksight#BrandDetail", + "traits": { + "smithy.api#documentation": "

The details of the brand.

" + } + }, + "BrandDefinition": { + "target": "com.amazonaws.quicksight#BrandDefinition", + "traits": { + "smithy.api#documentation": "

The definition of the brand.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.quicksight#DescribeBrandRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "BrandId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon QuickSight brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the specific version. The default value is the latest version.

", + "smithy.api#httpQuery": "versionId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#DescribeBrandResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "BrandDetail": { + "target": "com.amazonaws.quicksight#BrandDetail", + "traits": { + "smithy.api#documentation": "

The details of the brand.

" + } + }, + "BrandDefinition": { + "target": "com.amazonaws.quicksight#BrandDefinition", + "traits": { + "smithy.api#documentation": "

The definition of the brand.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.quicksight#DescribeCustomPermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#DescribeCustomPermissionsRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#DescribeCustomPermissionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#InternalFailureException" + }, + { + "target": "com.amazonaws.quicksight#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.quicksight#PreconditionNotMetException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ResourceUnavailableException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes a custom permissions profile.

", + "smithy.api#http": { + "method": "GET", + "uri": "/accounts/{AwsAccountId}/custom-permissions/{CustomPermissionsName}", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#DescribeCustomPermissionsRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the custom permissions profile that you want described.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CustomPermissionsName": { + "target": "com.amazonaws.quicksight#CustomPermissionsName", + "traits": { + "smithy.api#documentation": "

The name of the custom permissions profile to describe.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#DescribeCustomPermissionsResponse": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.quicksight#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The HTTP status of the request.

" + } + }, + "CustomPermissions": { + "target": "com.amazonaws.quicksight#CustomPermissions", + "traits": { + "smithy.api#documentation": "

The custom permissions profile.

" + } + }, + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.quicksight#DescribeDashboard": { "type": "operation", "input": { @@ -22311,6 +23683,16 @@ "smithy.api#output": {} } }, + "com.amazonaws.quicksight#Description": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^[ -ÿ]+$" + } + }, "com.amazonaws.quicksight#DestinationParameterValueConfiguration": { "type": "structure", "members": { @@ -22823,6 +24205,15 @@ "smithy.api#documentation": "

Error information for the SPICE ingestion of a dataset.

" } }, + "com.amazonaws.quicksight#ErrorList": { + "type": "list", + "member": { + "target": "com.amazonaws.quicksight#ErrorMessage" + } + }, + "com.amazonaws.quicksight#ErrorMessage": { + "type": "string" + }, "com.amazonaws.quicksight#ExasolParameters": { "type": "structure", "members": { @@ -27971,6 +29362,102 @@ "smithy.api#httpError": 403 } }, + "com.amazonaws.quicksight#Image": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.quicksight#ImageSource", + "traits": { + "smithy.api#documentation": "

The source of the logo image.

" + } + }, + "GeneratedImageUrl": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The URL that points to the generated logo image.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The logo image.

" + } + }, + "com.amazonaws.quicksight#ImageConfiguration": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.quicksight#ImageSource", + "traits": { + "smithy.api#documentation": "

The source of the image.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The logo image configuration.

" + } + }, + "com.amazonaws.quicksight#ImageSet": { + "type": "structure", + "members": { + "Original": { + "target": "com.amazonaws.quicksight#Image", + "traits": { + "smithy.api#documentation": "

The original image.

", + "smithy.api#required": {} + } + }, + "Height64": { + "target": "com.amazonaws.quicksight#Image", + "traits": { + "smithy.api#documentation": "

The image with the height set to 64 pixels.

" + } + }, + "Height32": { + "target": "com.amazonaws.quicksight#Image", + "traits": { + "smithy.api#documentation": "

The image with the height set to 32 pixels.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The image set.

" + } + }, + "com.amazonaws.quicksight#ImageSetConfiguration": { + "type": "structure", + "members": { + "Original": { + "target": "com.amazonaws.quicksight#ImageConfiguration", + "traits": { + "smithy.api#documentation": "

The original image.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The image set configuration.

" + } + }, + "com.amazonaws.quicksight#ImageSource": { + "type": "union", + "members": { + "PublicUrl": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The public URL that points to the source image.

" + } + }, + "S3Uri": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon S3 URI that points to the source image.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The source of the image.

" + } + }, "com.amazonaws.quicksight#IncludeFolderMembers": { "type": "enum", "members": { @@ -28891,6 +30378,22 @@ "smithy.api#httpError": 500 } }, + "com.amazonaws.quicksight#InternalServerException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An internal service exception.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, "com.amazonaws.quicksight#InvalidNextTokenException": { "type": "structure", "members": { @@ -30464,13 +31967,117 @@ "smithy.api#input": {} } }, - "com.amazonaws.quicksight#ListAssetBundleExportJobsResponse": { + "com.amazonaws.quicksight#ListAssetBundleExportJobsResponse": { + "type": "structure", + "members": { + "AssetBundleExportJobSummaryList": { + "target": "com.amazonaws.quicksight#AssetBundleExportJobSummaryList", + "traits": { + "smithy.api#documentation": "

A list of export job summaries.

" + } + }, + "NextToken": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

" + } + }, + "RequestId": { + "target": "com.amazonaws.quicksight#NonEmptyString", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "Status": { + "target": "com.amazonaws.quicksight#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The HTTP status of the request.

", + "smithy.api#httpResponseCode": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.quicksight#ListAssetBundleImportJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#ListAssetBundleImportJobsRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#ListAssetBundleImportJobsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + }, + { + "target": "com.amazonaws.quicksight#UnsupportedUserEditionException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all asset bundle import jobs that have taken place in the last 14 days. Jobs created more than 14 days ago are deleted forever and are not returned. If you are using the same job ID for multiple jobs, ListAssetBundleImportJobs only returns the most recent job that uses the repeated job ID.

", + "smithy.api#http": { + "method": "GET", + "uri": "/accounts/{AwsAccountId}/asset-bundle-import-jobs", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "AssetBundleImportJobSummaryList", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.quicksight#ListAssetBundleImportJobsRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that the import jobs were executed in.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.quicksight#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned per request.

", + "smithy.api#httpQuery": "max-results" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#ListAssetBundleImportJobsResponse": { "type": "structure", "members": { - "AssetBundleExportJobSummaryList": { - "target": "com.amazonaws.quicksight#AssetBundleExportJobSummaryList", + "AssetBundleImportJobSummaryList": { + "target": "com.amazonaws.quicksight#AssetBundleImportJobSummaryList", "traits": { - "smithy.api#documentation": "

A list of export job summaries.

" + "smithy.api#documentation": "

A list of import job summaries.

" } }, "NextToken": { @@ -30489,7 +32096,7 @@ "target": "com.amazonaws.quicksight#StatusCode", "traits": { "smithy.api#default": 0, - "smithy.api#documentation": "

The HTTP status of the request.

", + "smithy.api#documentation": "

The HTTP status of the response.

", "smithy.api#httpResponseCode": {} } } @@ -30498,103 +32105,86 @@ "smithy.api#output": {} } }, - "com.amazonaws.quicksight#ListAssetBundleImportJobs": { + "com.amazonaws.quicksight#ListBrands": { "type": "operation", "input": { - "target": "com.amazonaws.quicksight#ListAssetBundleImportJobsRequest" + "target": "com.amazonaws.quicksight#ListBrandsRequest" }, "output": { - "target": "com.amazonaws.quicksight#ListAssetBundleImportJobsResponse" + "target": "com.amazonaws.quicksight#ListBrandsResponse" }, "errors": [ { "target": "com.amazonaws.quicksight#AccessDeniedException" }, { - "target": "com.amazonaws.quicksight#InvalidNextTokenException" + "target": "com.amazonaws.quicksight#InternalServerException" }, { - "target": "com.amazonaws.quicksight#ResourceNotFoundException" + "target": "com.amazonaws.quicksight#InvalidRequestException" }, { "target": "com.amazonaws.quicksight#ThrottlingException" - }, - { - "target": "com.amazonaws.quicksight#UnsupportedUserEditionException" } ], "traits": { - "smithy.api#documentation": "

Lists all asset bundle import jobs that have taken place in the last 14 days. Jobs created more than 14 days ago are deleted forever and are not returned. If you are using the same job ID for multiple jobs, ListAssetBundleImportJobs only returns the most recent job that uses the repeated job ID.

", + "smithy.api#documentation": "

Lists all brands in an Amazon QuickSight account.

", "smithy.api#http": { "method": "GET", - "uri": "/accounts/{AwsAccountId}/asset-bundle-import-jobs", + "uri": "/accounts/{AwsAccountId}/brands", "code": 200 }, "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", - "items": "AssetBundleImportJobSummaryList", + "items": "Brands", "pageSize": "MaxResults" } } }, - "com.amazonaws.quicksight#ListAssetBundleImportJobsRequest": { + "com.amazonaws.quicksight#ListBrandsRequest": { "type": "structure", "members": { "AwsAccountId": { "target": "com.amazonaws.quicksight#AwsAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Web Services account that the import jobs were executed in.

", + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brands that you want to list.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, + "MaxResults": { + "target": "com.amazonaws.quicksight#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to be returned in a single request.

", + "smithy.api#httpQuery": "max-results" + } + }, "NextToken": { "target": "com.amazonaws.quicksight#String", "traits": { "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

", "smithy.api#httpQuery": "next-token" } - }, - "MaxResults": { - "target": "com.amazonaws.quicksight#MaxResults", - "traits": { - "smithy.api#documentation": "

The maximum number of results to be returned per request.

", - "smithy.api#httpQuery": "max-results" - } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.quicksight#ListAssetBundleImportJobsResponse": { + "com.amazonaws.quicksight#ListBrandsResponse": { "type": "structure", "members": { - "AssetBundleImportJobSummaryList": { - "target": "com.amazonaws.quicksight#AssetBundleImportJobSummaryList", - "traits": { - "smithy.api#documentation": "

A list of import job summaries.

" - } - }, "NextToken": { "target": "com.amazonaws.quicksight#String", "traits": { "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

" } }, - "RequestId": { - "target": "com.amazonaws.quicksight#NonEmptyString", - "traits": { - "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" - } - }, - "Status": { - "target": "com.amazonaws.quicksight#StatusCode", + "Brands": { + "target": "com.amazonaws.quicksight#BrandSummaryList", "traits": { - "smithy.api#default": 0, - "smithy.api#documentation": "

The HTTP status of the response.

", - "smithy.api#httpResponseCode": {} + "smithy.api#documentation": "

A list of all brands in your Amazon Web Services account. This structure provides basic\n\t information about each brand.

" } } }, @@ -30662,6 +32252,116 @@ "smithy.api#documentation": "

The configuration of the Select all options in a list control.

" } }, + "com.amazonaws.quicksight#ListCustomPermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#ListCustomPermissionsRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#ListCustomPermissionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#InternalFailureException" + }, + { + "target": "com.amazonaws.quicksight#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.quicksight#PreconditionNotMetException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ResourceUnavailableException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of all the custom permissions profiles.

", + "smithy.api#http": { + "method": "GET", + "uri": "/accounts/{AwsAccountId}/custom-permissions", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "CustomPermissionsList", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.quicksight#ListCustomPermissionsRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the custom permissions profiles that you want to list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.quicksight#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return.

", + "smithy.api#httpQuery": "max-results" + } + }, + "NextToken": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

", + "smithy.api#httpQuery": "next-token" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#ListCustomPermissionsResponse": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.quicksight#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The HTTP status of the request.

", + "smithy.api#httpResponseCode": {} + } + }, + "CustomPermissionsList": { + "target": "com.amazonaws.quicksight#CustomPermissionsList", + "traits": { + "smithy.api#documentation": "

A list of custom permissions profiles.

" + } + }, + "NextToken": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The token for the next set of results, or null if there are no more results.

" + } + }, + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.quicksight#ListDashboardVersions": { "type": "operation", "input": { @@ -34029,6 +35729,92 @@ "smithy.api#documentation": "

Information about the source of a logical table. This is a variant type structure. For\n this structure to be valid, only one of the attributes can be non-null.

" } }, + "com.amazonaws.quicksight#Logo": { + "type": "structure", + "members": { + "AltText": { + "target": "com.amazonaws.quicksight#AltText", + "traits": { + "smithy.api#documentation": "

The alt text for the logo.

", + "smithy.api#required": {} + } + }, + "LogoSet": { + "target": "com.amazonaws.quicksight#LogoSet", + "traits": { + "smithy.api#documentation": "

A set of configured logos.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The logo configuration.

" + } + }, + "com.amazonaws.quicksight#LogoConfiguration": { + "type": "structure", + "members": { + "AltText": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The alt text for the logo.

", + "smithy.api#required": {} + } + }, + "LogoSet": { + "target": "com.amazonaws.quicksight#LogoSetConfiguration", + "traits": { + "smithy.api#documentation": "

A set of configured logos.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The logo configuration.

" + } + }, + "com.amazonaws.quicksight#LogoSet": { + "type": "structure", + "members": { + "Primary": { + "target": "com.amazonaws.quicksight#ImageSet", + "traits": { + "smithy.api#documentation": "

The primary logo.

", + "smithy.api#required": {} + } + }, + "Favicon": { + "target": "com.amazonaws.quicksight#ImageSet", + "traits": { + "smithy.api#documentation": "

The favicon logo.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A set of logos.

" + } + }, + "com.amazonaws.quicksight#LogoSetConfiguration": { + "type": "structure", + "members": { + "Primary": { + "target": "com.amazonaws.quicksight#ImageSetConfiguration", + "traits": { + "smithy.api#documentation": "

The primary logo.

", + "smithy.api#required": {} + } + }, + "Favicon": { + "target": "com.amazonaws.quicksight#ImageSetConfiguration", + "traits": { + "smithy.api#documentation": "

The favicon logo.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The logo set configuration.

" + } + }, "com.amazonaws.quicksight#Long": { "type": "long", "traits": { @@ -34562,6 +36348,16 @@ "smithy.api#documentation": "

The parameters for MySQL.

" } }, + "com.amazonaws.quicksight#Name": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[ -ÿ]+$" + } + }, "com.amazonaws.quicksight#NamedEntityAggType": { "type": "enum", "members": { @@ -34976,6 +36772,26 @@ } } }, + "com.amazonaws.quicksight#NavbarStyle": { + "type": "structure", + "members": { + "GlobalNavbar": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The global navigation bar style.

" + } + }, + "ContextualNavbar": { + "target": "com.amazonaws.quicksight#Palette", + "traits": { + "smithy.api#documentation": "

The contextual navigation bar style.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The navigation bar style.

" + } + }, "com.amazonaws.quicksight#NegativeFormat": { "type": "structure", "members": { @@ -35991,6 +37807,26 @@ "smithy.api#documentation": "

The pagination configuration for a table visual or boxplot.

" } }, + "com.amazonaws.quicksight#Palette": { + "type": "structure", + "members": { + "Foreground": { + "target": "com.amazonaws.quicksight#HexColor", + "traits": { + "smithy.api#documentation": "

The foreground color.

" + } + }, + "Background": { + "target": "com.amazonaws.quicksight#HexColor", + "traits": { + "smithy.api#documentation": "

The background color.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The color palette.

" + } + }, "com.amazonaws.quicksight#PanelBorderStyle": { "type": "enum", "members": { @@ -38504,6 +40340,12 @@ { "target": "com.amazonaws.quicksight#CreateAnalysis" }, + { + "target": "com.amazonaws.quicksight#CreateBrand" + }, + { + "target": "com.amazonaws.quicksight#CreateCustomPermissions" + }, { "target": "com.amazonaws.quicksight#CreateDashboard" }, @@ -38570,6 +40412,15 @@ { "target": "com.amazonaws.quicksight#DeleteAnalysis" }, + { + "target": "com.amazonaws.quicksight#DeleteBrand" + }, + { + "target": "com.amazonaws.quicksight#DeleteBrandAssignment" + }, + { + "target": "com.amazonaws.quicksight#DeleteCustomPermissions" + }, { "target": "com.amazonaws.quicksight#DeleteDashboard" }, @@ -38636,6 +40487,9 @@ { "target": "com.amazonaws.quicksight#DeleteUserByPrincipalId" }, + { + "target": "com.amazonaws.quicksight#DeleteUserCustomPermission" + }, { "target": "com.amazonaws.quicksight#DeleteVPCConnection" }, @@ -38663,6 +40517,18 @@ { "target": "com.amazonaws.quicksight#DescribeAssetBundleImportJob" }, + { + "target": "com.amazonaws.quicksight#DescribeBrand" + }, + { + "target": "com.amazonaws.quicksight#DescribeBrandAssignment" + }, + { + "target": "com.amazonaws.quicksight#DescribeBrandPublishedVersion" + }, + { + "target": "com.amazonaws.quicksight#DescribeCustomPermissions" + }, { "target": "com.amazonaws.quicksight#DescribeDashboard" }, @@ -38792,6 +40658,12 @@ { "target": "com.amazonaws.quicksight#ListAssetBundleImportJobs" }, + { + "target": "com.amazonaws.quicksight#ListBrands" + }, + { + "target": "com.amazonaws.quicksight#ListCustomPermissions" + }, { "target": "com.amazonaws.quicksight#ListDashboards" }, @@ -38936,6 +40808,18 @@ { "target": "com.amazonaws.quicksight#UpdateAnalysisPermissions" }, + { + "target": "com.amazonaws.quicksight#UpdateBrand" + }, + { + "target": "com.amazonaws.quicksight#UpdateBrandAssignment" + }, + { + "target": "com.amazonaws.quicksight#UpdateBrandPublishedVersion" + }, + { + "target": "com.amazonaws.quicksight#UpdateCustomPermissions" + }, { "target": "com.amazonaws.quicksight#UpdateDashboard" }, @@ -39026,6 +40910,9 @@ { "target": "com.amazonaws.quicksight#UpdateUser" }, + { + "target": "com.amazonaws.quicksight#UpdateUserCustomPermission" + }, { "target": "com.amazonaws.quicksight#UpdateVPCConnection" } @@ -52182,6 +54069,370 @@ "smithy.api#output": {} } }, + "com.amazonaws.quicksight#UpdateBrand": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#UpdateBrandRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#UpdateBrandResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalServerException" + }, + { + "target": "com.amazonaws.quicksight#InvalidRequestException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a brand.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/accounts/{AwsAccountId}/brands/{BrandId}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.quicksight#UpdateBrandAssignment": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#UpdateBrandAssignmentRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#UpdateBrandAssignmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalServerException" + }, + { + "target": "com.amazonaws.quicksight#InvalidRequestException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a brand assignment.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/accounts/{AwsAccountId}/brandassignments", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.quicksight#UpdateBrandAssignmentRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brand assignment.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "BrandArn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the brand.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#UpdateBrandAssignmentResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "BrandArn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the brand.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.quicksight#UpdateBrandPublishedVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#UpdateBrandPublishedVersionRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#UpdateBrandPublishedVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalServerException" + }, + { + "target": "com.amazonaws.quicksight#InvalidRequestException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the published version of a brand.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/accounts/{AwsAccountId}/brands/{BrandId}/publishedversion", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.quicksight#UpdateBrandPublishedVersionRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "BrandId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon QuickSight brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "VersionId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the published version.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#UpdateBrandPublishedVersionResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "VersionId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the published version.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.quicksight#UpdateBrandRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that owns the brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "BrandId": { + "target": "com.amazonaws.quicksight#ShortRestrictiveResourceId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon QuickSight brand.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "BrandDefinition": { + "target": "com.amazonaws.quicksight#BrandDefinition", + "traits": { + "smithy.api#documentation": "

The definition of the brand.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#UpdateBrandResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "BrandDetail": { + "target": "com.amazonaws.quicksight#BrandDetail", + "traits": { + "smithy.api#documentation": "

The details of the brand.

" + } + }, + "BrandDefinition": { + "target": "com.amazonaws.quicksight#BrandDefinition", + "traits": { + "smithy.api#documentation": "

The definition of the brand.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.quicksight#UpdateCustomPermissions": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#UpdateCustomPermissionsRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#UpdateCustomPermissionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalFailureException" + }, + { + "target": "com.amazonaws.quicksight#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.quicksight#PreconditionNotMetException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ResourceUnavailableException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a custom permissions profile.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/accounts/{AwsAccountId}/custom-permissions/{CustomPermissionsName}", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#UpdateCustomPermissionsRequest": { + "type": "structure", + "members": { + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the custom permissions profile that you want to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CustomPermissionsName": { + "target": "com.amazonaws.quicksight#CustomPermissionsName", + "traits": { + "smithy.api#documentation": "

The name of the custom permissions profile that you want to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Capabilities": { + "target": "com.amazonaws.quicksight#Capabilities", + "traits": { + "smithy.api#documentation": "

A set of actions to include in the custom permissions profile.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#UpdateCustomPermissionsResponse": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.quicksight#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The HTTP status of the request.

" + } + }, + "Arn": { + "target": "com.amazonaws.quicksight#Arn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom permissions profile.

" + } + }, + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.quicksight#UpdateDashboard": { "type": "operation", "input": { @@ -55549,6 +57800,110 @@ } } }, + "com.amazonaws.quicksight#UpdateUserCustomPermission": { + "type": "operation", + "input": { + "target": "com.amazonaws.quicksight#UpdateUserCustomPermissionRequest" + }, + "output": { + "target": "com.amazonaws.quicksight#UpdateUserCustomPermissionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.quicksight#AccessDeniedException" + }, + { + "target": "com.amazonaws.quicksight#ConflictException" + }, + { + "target": "com.amazonaws.quicksight#InternalFailureException" + }, + { + "target": "com.amazonaws.quicksight#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.quicksight#PreconditionNotMetException" + }, + { + "target": "com.amazonaws.quicksight#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.quicksight#ResourceUnavailableException" + }, + { + "target": "com.amazonaws.quicksight#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a custom permissions profile for a user.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/custom-permission", + "code": 200 + } + } + }, + "com.amazonaws.quicksight#UpdateUserCustomPermissionRequest": { + "type": "structure", + "members": { + "UserName": { + "target": "com.amazonaws.quicksight#UserName", + "traits": { + "smithy.api#documentation": "

The username of the user that you want to update custom permissions for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AwsAccountId": { + "target": "com.amazonaws.quicksight#AwsAccountId", + "traits": { + "smithy.api#documentation": "

The ID of the Amazon Web Services account that contains the custom permission configuration that you want to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Namespace": { + "target": "com.amazonaws.quicksight#Namespace", + "traits": { + "smithy.api#documentation": "

The namespace that the user belongs to.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CustomPermissionsName": { + "target": "com.amazonaws.quicksight#CustomPermissionsName", + "traits": { + "smithy.api#documentation": "

The name of the custom permissions that you want to update.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.quicksight#UpdateUserCustomPermissionResponse": { + "type": "structure", + "members": { + "RequestId": { + "target": "com.amazonaws.quicksight#String", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services request ID for this operation.

" + } + }, + "Status": { + "target": "com.amazonaws.quicksight#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The HTTP status of the request.

", + "smithy.api#httpResponseCode": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.quicksight#UpdateUserRequest": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/redshift.json b/codegen/sdk-codegen/aws-models/redshift.json index 3290049e528..85b79d2cfd3 100644 --- a/codegen/sdk-codegen/aws-models/redshift.json +++ b/codegen/sdk-codegen/aws-models/redshift.json @@ -13911,6 +13911,22 @@ "smithy.api#output": {} } }, + "com.amazonaws.redshift#ReadWriteAccess": { + "type": "structure", + "members": { + "Authorization": { + "target": "com.amazonaws.redshift#ServiceAuthorization", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

Determines whether the read/write scope is enabled or disabled.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The S3 Access Grants scope.

" + } + }, "com.amazonaws.redshift#RebootCluster": { "type": "operation", "input": { @@ -17510,6 +17526,26 @@ "smithy.api#output": {} } }, + "com.amazonaws.redshift#S3AccessGrantsScopeUnion": { + "type": "union", + "members": { + "ReadWriteAccess": { + "target": "com.amazonaws.redshift#ReadWriteAccess", + "traits": { + "smithy.api#documentation": "

The S3 Access Grants scope.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A list of scopes set up for S3 Access Grants integration.

" + } + }, + "com.amazonaws.redshift#S3AccessGrantsServiceIntegrations": { + "type": "list", + "member": { + "target": "com.amazonaws.redshift#S3AccessGrantsScopeUnion" + } + }, "com.amazonaws.redshift#S3KeyPrefixValue": { "type": "string", "traits": { @@ -17970,6 +18006,12 @@ "traits": { "smithy.api#documentation": "

A list of scopes set up for Lake Formation integration.

" } + }, + "S3AccessGrants": { + "target": "com.amazonaws.redshift#S3AccessGrantsServiceIntegrations", + "traits": { + "smithy.api#documentation": "

A list of scopes set up for S3 Access Grants integration.

" + } } }, "traits": { diff --git a/codegen/sdk-codegen/aws-models/s3.json b/codegen/sdk-codegen/aws-models/s3.json index eb0e8e0f028..d1ebf84cfb9 100644 --- a/codegen/sdk-codegen/aws-models/s3.json +++ b/codegen/sdk-codegen/aws-models/s3.json @@ -60,7 +60,7 @@ } ], "traits": { - "smithy.api#documentation": "

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

\n

To verify that all parts have been removed and prevent getting charged for the part\n storage, you should call the ListParts API operation and ensure that\n the parts list is empty.

\n \n
    \n
  • \n

    \n Directory buckets - \n If multipart uploads in a directory bucket are in progress, you can't delete the bucket until all the in-progress multipart uploads are aborted or completed. \n To delete these in-progress multipart uploads, use the\n ListMultipartUploads operation to list the in-progress multipart\n uploads in the bucket and use the AbortMultupartUpload operation to\n abort all the in-progress multipart uploads.\n

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information about permissions required to use the multipart upload, see Multipart Upload\n and Permissions in the Amazon S3\n User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to AbortMultipartUpload:

\n ", + "smithy.api#documentation": "

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

\n

To verify that all parts have been removed and prevent getting charged for the part\n storage, you should call the ListParts API operation and ensure that\n the parts list is empty.

\n \n
    \n
  • \n

    \n Directory buckets - \n If multipart uploads in a directory bucket are in progress, you can't delete the bucket until all the in-progress multipart uploads are aborted or completed. \n To delete these in-progress multipart uploads, use the\n ListMultipartUploads operation to list the in-progress multipart\n uploads in the bucket and use the AbortMultipartUpload operation to\n abort all the in-progress multipart uploads.\n

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information about permissions required to use the multipart upload, see Multipart Upload\n and Permissions in the Amazon S3\n User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to AbortMultipartUpload:

\n ", "smithy.api#examples": [ { "title": "To abort a multipart upload", @@ -18336,6 +18336,35 @@ }, "traits": { "smithy.api#documentation": "

Completes a multipart upload by assembling previously uploaded parts.

\n

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

\n

The processing of a CompleteMultipartUpload request could take several minutes to\n finalize. After Amazon S3 begins processing the request, it sends an HTTP response header that\n specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white\n space characters to keep the connection from timing out. A request could fail after the\n initial 200 OK response has been sent. This means that a 200 OK response can\n contain either a success or an error. The error response might be embedded in the 200 OK response. \n If you call this API operation directly, make sure to design\n your application to parse the contents of the response and handle it appropriately. If you\n use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the embedded error and apply\n error handling per your configuration settings (including automatically retrying the\n request as appropriate). If the condition persists, the SDKs throw an exception (or, for\n the SDKs that don't use exceptions, they return an error).

\n

Note that if CompleteMultipartUpload fails, applications should be prepared\n to retry any failed requests (including 500 error responses). For more information, see Amazon S3 Error Best\n Practices.

\n \n

You can't use Content-Type: application/x-www-form-urlencoded for the \n CompleteMultipartUpload requests. Also, if you don't provide a\n Content-Type header, CompleteMultipartUpload can still return a 200\n OK response.

\n
\n

For more information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3\n User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For\n information about permissions required to use the multipart upload API, see\n Multipart Upload and\n Permissions in the Amazon S3 User Guide.

    \n

    If you provide an additional checksum\n value in your MultipartUpload requests and the\n object is encrypted with Key Management Service, you must have permission to use the\n kms:Decrypt action for the\n CompleteMultipartUpload request to succeed.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with\n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: EntityTooSmall\n

    \n
      \n
    • \n

      Description: Your proposed upload is smaller than the minimum allowed object\n size. Each part must be at least 5 MB in size, except the last part.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidPart\n

    \n
      \n
    • \n

      Description: One or more of the specified parts could not be found. The part\n might not have been uploaded, or the specified ETag might not have\n matched the uploaded part's ETag.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidPartOrder\n

    \n
      \n
    • \n

      Description: The list of parts was not in ascending order. The parts list\n must be specified in order by part number.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The upload ID\n might be invalid, or the multipart upload might have been aborted or\n completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to CompleteMultipartUpload:

\n ", + "smithy.api#examples": [ + { + "title": "To complete multipart upload", + "documentation": "The following example completes a multipart upload.", + "input": { + "Bucket": "examplebucket", + "Key": "bigobject", + "MultipartUpload": { + "Parts": [ + { + "PartNumber": 1, + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"" + }, + { + "PartNumber": 2, + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"" + } + ] + }, + "UploadId": "7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--" + }, + "output": { + "ETag": "\"4d9031c7644d8081c2829f4ea23c55f7-2\"", + "Bucket": "acexamplebucket", + "Location": "https://examplebucket.s3..amazonaws.com/bigobject", + "Key": "bigobject" + } + } + ], "smithy.api#http": { "method": "POST", "uri": "/{Bucket}/{Key+}", @@ -21055,6 +21084,38 @@ } ] } + }, + { + "title": "To delete multiple objects from a versioned bucket", + "documentation": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", + "input": { + "Bucket": "examplebucket", + "Delete": { + "Objects": [ + { + "Key": "objectkey1" + }, + { + "Key": "objectkey2" + } + ], + "Quiet": false + } + }, + "output": { + "Deleted": [ + { + "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", + "Key": "objectkey1", + "DeleteMarker": true + }, + { + "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", + "Key": "objectkey2", + "DeleteMarker": true + } + ] + } } ], "smithy.api#http": { @@ -23295,6 +23356,45 @@ ] }, "smithy.api#documentation": "

Retrieves an object from Amazon S3.

\n

In the GetObject request, specify the full key name for the object.

\n

\n General purpose buckets - Both the virtual-hosted-style requests and the path-style requests are supported. For a virtual hosted-style request example, if you have\n the object photos/2006/February/sample.jpg, specify the object key name as\n /photos/2006/February/sample.jpg. For a path-style request example, if you\n have the object photos/2006/February/sample.jpg in the bucket named\n examplebucket, specify the object key name as\n /examplebucket/photos/2006/February/sample.jpg. For more information about\n request types, see HTTP Host\n Header Bucket Specification in the Amazon S3 User Guide.

\n

\n Directory buckets - Only virtual-hosted-style requests are supported. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket--use1-az5--x-s3, specify the object key name as /photos/2006/February/sample.jpg. Also, when you make requests to this API operation, your requests are sent to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - You must have the required permissions in a policy. To use GetObject, you must have the READ\n access to the object (or version). If you grant READ access to the anonymous user, the GetObject operation \n returns the object without using an authorization header. For more information, see Specifying permissions in\n a policy in the Amazon S3 User Guide.

    \n

    If you include a versionId in your request header, you must have the\n s3:GetObjectVersion permission to access a specific\n version of an object. The s3:GetObject permission is not required in this scenario.

    \n

    If you request the\n current version of an object without a specific versionId in the request header, only\n the s3:GetObject permission is required. The s3:GetObjectVersion permission is not required in this scenario.\n

    \n

    If the object that you request doesn’t exist, the error that\n Amazon S3 returns depends on whether you also have the s3:ListBucket\n permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the bucket, Amazon S3\n returns an HTTP status code 404 Not Found error.

      \n
    • \n
    • \n

      If you don’t have the s3:ListBucket permission, Amazon S3 returns an\n HTTP status code 403 Access Denied error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted using \n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Storage classes
\n
\n

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval storage class, the \n S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering Archive Access tier, or the \n S3 Intelligent-Tiering Deep Archive Access tier, before you can retrieve the object you must first restore a\n copy using RestoreObject. Otherwise, this operation returns an\n InvalidObjectState error. For information about restoring archived objects,\n see Restoring\n Archived Objects in the Amazon S3 User Guide.

\n

\n Directory buckets - For directory buckets, only the S3 Express One Zone storage class is supported to store newly created objects. \nUnsupported storage class values won't write a destination object and will respond with the HTTP status code 400 Bad Request.

\n
\n
Encryption
\n
\n

Encryption request headers, like x-amz-server-side-encryption, should not\n be sent for the GetObject requests, if your object uses server-side encryption with Amazon S3 managed encryption keys (SSE-S3), server-side encryption with Key Management Service (KMS)\n keys (SSE-KMS), or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS). If you include the header in your GetObject requests for the object that uses \n these types of keys, you’ll get an HTTP 400 Bad Request error.

\n

\n Directory buckets - For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS. SSE-C isn't supported. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

\n
\n
Overriding response header values through the request
\n
\n

There are times when you want to override certain response header values of a\n GetObject response. For example, you might override the\n Content-Disposition response header value through your GetObject\n request.

\n

You can override values for a set of response headers. These modified response header values are included only in a successful response, that is, when the HTTP status code 200 OK is returned. \n The headers you can override using the following query parameters in the request are a subset of the headers that Amazon S3 accepts when you create an object. \n

\n

The response headers that you can override for the\n GetObject response are Cache-Control, Content-Disposition, \n Content-Encoding, Content-Language, Content-Type, and Expires.

\n

To override values for a set of response headers in the\n GetObject response, you can use the following query\n parameters in the request.

\n
    \n
  • \n

    \n response-cache-control\n

    \n
  • \n
  • \n

    \n response-content-disposition\n

    \n
  • \n
  • \n

    \n response-content-encoding\n

    \n
  • \n
  • \n

    \n response-content-language\n

    \n
  • \n
  • \n

    \n response-content-type\n

    \n
  • \n
  • \n

    \n response-expires\n

    \n
  • \n
\n \n

When you use these parameters, you must sign the request by using either an Authorization header or a\n presigned URL. These parameters cannot be used with an\n unsigned (anonymous) request.

\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to GetObject:

\n ", + "smithy.api#examples": [ + { + "title": "To retrieve a byte range of an object ", + "documentation": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", + "input": { + "Bucket": "examplebucket", + "Key": "SampleFile.txt", + "Range": "bytes=0-9" + }, + "output": { + "AcceptRanges": "bytes", + "ContentType": "text/plain", + "LastModified": "2014-10-09T22:57:28.000Z", + "ContentLength": 10, + "VersionId": "null", + "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", + "ContentRange": "bytes 0-9/43", + "Metadata": {} + } + }, + { + "title": "To retrieve an object", + "documentation": "The following example retrieves an object for an S3 bucket.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": { + "AcceptRanges": "bytes", + "ContentType": "image/jpeg", + "LastModified": "2016-12-15T01:19:41.000Z", + "ContentLength": 3191, + "VersionId": "null", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "TagCount": 2, + "Metadata": {} + } + } + ], "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?x-id=GetObject", @@ -24843,6 +24943,25 @@ ], "traits": { "smithy.api#documentation": "

The HEAD operation retrieves metadata from an object without returning the\n object itself. This operation is useful if you're interested only in an object's metadata.

\n \n

A HEAD request has the same options as a GET operation on an\n object. The response is identical to the GET response except that there is no\n response body. Because of this, if the HEAD request generates an error, it\n returns a generic code, such as 400 Bad Request, 403 Forbidden, 404 Not\n Found, 405 Method Not Allowed, 412 Precondition Failed, or 304 Not Modified. \n It's not possible to retrieve the exact exception of these error codes.

\n
\n

Request headers are limited to 8 KB in size. For more information, see Common\n Request Headers.

\n
\n
Permissions
\n
\n

\n
    \n
  • \n

    \n General purpose bucket permissions - To\n use HEAD, you must have the s3:GetObject permission. You need the relevant read object (or version) permission for this operation.\n For more information, see Actions, resources, and condition\n keys for Amazon S3 in the Amazon S3\n User Guide. For more information about the permissions to S3 API operations by S3 resource types, see Required permissions for Amazon S3 API operations in the Amazon S3 User Guide.

    \n

    If the object you request doesn't exist, the error that\n Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

    \n
      \n
    • \n

      If you have the s3:ListBucket permission on the bucket, Amazon S3\n returns an HTTP status code 404 Not Found error.

      \n
    • \n
    • \n

      If you don’t have the s3:ListBucket permission, Amazon S3 returns\n an HTTP status code 403 Forbidden error.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If you enable x-amz-checksum-mode in the request and the object is encrypted with\n Amazon Web Services Key Management Service (Amazon Web Services KMS), you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key to retrieve the checksum of the object.

    \n
  • \n
\n
\n
Encryption
\n
\n \n

Encryption request headers, like x-amz-server-side-encryption,\n should not be sent for HEAD requests if your object uses server-side\n encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side\n encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with Amazon S3\n managed encryption keys (SSE-S3). The x-amz-server-side-encryption header is used when you PUT an object to S3 and want to specify the encryption method. \n If you include this header in a HEAD request for an object that uses these types of keys, \n you’ll get an HTTP 400 Bad Request error. It's because the encryption method can't be changed when you retrieve the object.

\n
\n

If you encrypt an object by using server-side encryption with customer-provided\n encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the\n metadata from the object, you must use the following headers to provide the encryption key for the server to be able to retrieve the object's metadata. The headers are:

\n
    \n
  • \n

    \n x-amz-server-side-encryption-customer-algorithm\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key\n

    \n
  • \n
  • \n

    \n x-amz-server-side-encryption-customer-key-MD5\n

    \n
  • \n
\n

For more information about SSE-C, see Server-Side Encryption\n (Using Customer-Provided Encryption Keys) in the Amazon S3\n User Guide.

\n \n

\n Directory bucket - For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS. SSE-C isn't supported. For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

\n
\n
\n
Versioning
\n
\n
    \n
  • \n

    If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes x-amz-delete-marker: true in the response.

    \n
  • \n
  • \n

    If the specified version is a delete marker, the response returns a 405 Method Not Allowed error and the Last-Modified: timestamp response header.

    \n
  • \n
\n \n
    \n
  • \n

    \n Directory buckets - Delete marker is not supported by directory buckets.

    \n
  • \n
  • \n

    \n Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null \n to the versionId query parameter in the request.

    \n
  • \n
\n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n \n

For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
\n

The following actions are related to HeadObject:

\n ", + "smithy.api#examples": [ + { + "title": "To retrieve metadata of an object without returning the object itself", + "documentation": "The following example retrieves an object metadata.", + "input": { + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": { + "AcceptRanges": "bytes", + "ContentType": "image/jpeg", + "LastModified": "2016-12-15T01:19:41.000Z", + "ContentLength": 3191, + "VersionId": "null", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "Metadata": {} + } + } + ], "smithy.api#http": { "method": "HEAD", "uri": "/{Bucket}/{Key+}", @@ -26491,7 +26610,7 @@ "target": "com.amazonaws.s3#ListBucketsOutput" }, "traits": { - "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns a list of all buckets owned by the authenticated sender of the request. To use\n this operation, you must have the s3:ListAllMyBuckets permission.

\n

For information about Amazon S3 buckets, see Creating, configuring, and\n working with Amazon S3 buckets.

", + "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns a list of all buckets owned by the authenticated sender of the request. To use\n this operation, you must have the s3:ListAllMyBuckets permission.

\n

For information about Amazon S3 buckets, see Creating, configuring, and\n working with Amazon S3 buckets.

\n \n

We strongly recommend using only paginated requests. Unpaginated requests are only supported for \n Amazon Web Services accounts set to the default general purpose bucket quota of 10,000. If you have an approved \n general purpose bucket quota above 10,000, you must send paginated requests to list your account’s buckets. \n All unpaginated ListBuckets requests will be rejected for Amazon Web Services accounts with a general purpose bucket quota \n greater than 10,000.

\n
", "smithy.api#examples": [ { "title": "To list all buckets", @@ -26577,7 +26696,7 @@ "ContinuationToken": { "target": "com.amazonaws.s3#Token", "traits": { - "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on\n this bucket with a token. ContinuationToken is obfuscated and is not a real\n key. You can use this ContinuationToken for pagination of the list results.

\n

Length Constraints: Minimum length of 0. Maximum length of 1024.

\n

Required: No.

", + "smithy.api#documentation": "

\n ContinuationToken indicates to Amazon S3 that the list is being continued on\n this bucket with a token. ContinuationToken is obfuscated and is not a real\n key. You can use this ContinuationToken for pagination of the list results.

\n

Length Constraints: Minimum length of 0. Maximum length of 1024.

\n

Required: No.

\n \n

If you specify the bucket-region, prefix, or continuation-token \n query parameters without using max-buckets to set the maximum number of buckets returned in the response, \n Amazon S3 applies a default page size of 10,000 and provides a continuation token if there are more buckets.

\n
", "smithy.api#httpQuery": "continuation-token" } }, @@ -26609,7 +26728,7 @@ "target": "com.amazonaws.s3#ListDirectoryBucketsOutput" }, "traits": { - "smithy.api#documentation": "

Returns a list of all Amazon S3 directory buckets owned by the authenticated sender of the request. For more information about directory buckets, see Directory buckets in the Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You must have the s3express:ListAllMyDirectoryBuckets permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
", + "smithy.api#documentation": "

Returns a list of all Amazon S3 directory buckets owned by the authenticated sender of the request. For more information about directory buckets, see Directory buckets in the Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name\n . Virtual-hosted-style requests aren't supported. \nFor more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n

You must have the s3express:ListAllMyDirectoryBuckets permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

\n
\n
\n \n

The BucketRegion response element is not part of the ListDirectoryBuckets Response Syntax.

\n
", "smithy.api#http": { "method": "GET", "uri": "/?x-id=ListDirectoryBuckets", @@ -26680,8 +26799,57 @@ "target": "com.amazonaws.s3#ListMultipartUploadsOutput" }, "traits": { - "smithy.api#documentation": "

This operation lists in-progress multipart uploads in a bucket. An in-progress multipart upload is a\n multipart upload that has been initiated by the CreateMultipartUpload request, but\n has not yet been completed or aborted.

\n \n

\n Directory buckets - \n If multipart uploads in a directory bucket are in progress, you can't delete the bucket until all the in-progress multipart uploads are aborted or completed. \n To delete these in-progress multipart uploads, use the ListMultipartUploads operation to list the in-progress multipart\n uploads in the bucket and use the AbortMultupartUpload operation to abort all the in-progress multipart uploads.\n

\n
\n

The ListMultipartUploads operation returns a maximum of 1,000 multipart uploads in the response. The limit of 1,000 multipart\n uploads is also the default\n value. You can further limit the number of uploads in a response by specifying the\n max-uploads request parameter. If there are more than 1,000 multipart uploads that \n satisfy your ListMultipartUploads request, the response returns an IsTruncated element\n with the value of true, a NextKeyMarker element, and a NextUploadIdMarker element. \n To list the remaining multipart uploads, you need to make subsequent ListMultipartUploads requests. \n In these requests, include two query parameters: key-marker and upload-id-marker. \n Set the value of key-marker to the NextKeyMarker value from the previous response. \n Similarly, set the value of upload-id-marker to the NextUploadIdMarker value from the previous response.

\n \n

\n Directory buckets - The upload-id-marker element and \n the NextUploadIdMarker element aren't supported by directory buckets. \n To list the additional multipart uploads, you only need to set the value of key-marker to the NextKeyMarker value from the previous response.

\n
\n

For more information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3\n User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information about permissions required to use the multipart upload API, see Multipart Upload\n and Permissions in the Amazon S3\n User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Sorting of multipart uploads in response
\n
\n
    \n
  • \n

    \n General purpose bucket - In the ListMultipartUploads response, the multipart uploads are sorted based on two criteria:

    \n
      \n
    • \n

      Key-based sorting - Multipart uploads are initially sorted in ascending order based on their object keys.

      \n
    • \n
    • \n

      Time-based sorting - For uploads that share the same object key, \n they are further sorted in ascending order based on the upload initiation time. Among uploads with the same key, the one that was initiated first will appear before the ones that were initiated later.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket - In the ListMultipartUploads response, the multipart uploads aren't sorted lexicographically based on the object keys. \n \n

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to ListMultipartUploads:

\n ", + "smithy.api#documentation": "

This operation lists in-progress multipart uploads in a bucket. An in-progress multipart upload is a\n multipart upload that has been initiated by the CreateMultipartUpload request, but\n has not yet been completed or aborted.

\n \n

\n Directory buckets - \n If multipart uploads in a directory bucket are in progress, you can't delete the bucket until all the in-progress multipart uploads are aborted or completed. \n To delete these in-progress multipart uploads, use the ListMultipartUploads operation to list the in-progress multipart\n uploads in the bucket and use the AbortMultipartUpload operation to abort all the in-progress multipart uploads.\n

\n
\n

The ListMultipartUploads operation returns a maximum of 1,000 multipart uploads in the response. The limit of 1,000 multipart\n uploads is also the default\n value. You can further limit the number of uploads in a response by specifying the\n max-uploads request parameter. If there are more than 1,000 multipart uploads that \n satisfy your ListMultipartUploads request, the response returns an IsTruncated element\n with the value of true, a NextKeyMarker element, and a NextUploadIdMarker element. \n To list the remaining multipart uploads, you need to make subsequent ListMultipartUploads requests. \n In these requests, include two query parameters: key-marker and upload-id-marker. \n Set the value of key-marker to the NextKeyMarker value from the previous response. \n Similarly, set the value of upload-id-marker to the NextUploadIdMarker value from the previous response.

\n \n

\n Directory buckets - The upload-id-marker element and \n the NextUploadIdMarker element aren't supported by directory buckets. \n To list the additional multipart uploads, you only need to set the value of key-marker to the NextKeyMarker value from the previous response.

\n
\n

For more information about multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3\n User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information about permissions required to use the multipart upload API, see Multipart Upload\n and Permissions in the Amazon S3\n User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Sorting of multipart uploads in response
\n
\n
    \n
  • \n

    \n General purpose bucket - In the ListMultipartUploads response, the multipart uploads are sorted based on two criteria:

    \n
      \n
    • \n

      Key-based sorting - Multipart uploads are initially sorted in ascending order based on their object keys.

      \n
    • \n
    • \n

      Time-based sorting - For uploads that share the same object key, \n they are further sorted in ascending order based on the upload initiation time. Among uploads with the same key, the one that was initiated first will appear before the ones that were initiated later.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket - In the ListMultipartUploads response, the multipart uploads aren't sorted lexicographically based on the object keys. \n \n

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to ListMultipartUploads:

\n ", "smithy.api#examples": [ + { + "title": "List next set of multipart uploads when previous result is truncated", + "documentation": "The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next setup of multipart uploads.", + "input": { + "Bucket": "examplebucket", + "KeyMarker": "nextkeyfrompreviousresponse", + "MaxUploads": 2, + "UploadIdMarker": "valuefrompreviousresponse" + }, + "output": { + "UploadIdMarker": "", + "NextKeyMarker": "someobjectkey", + "Bucket": "acl1", + "NextUploadIdMarker": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + "Uploads": [ + { + "Initiator": { + "DisplayName": "ownder-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Initiated": "2014-05-01T05:40:58.000Z", + "UploadId": "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--", + "StorageClass": "STANDARD", + "Key": "JavaFile", + "Owner": { + "DisplayName": "mohanataws", + "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + } + }, + { + "Initiator": { + "DisplayName": "ownder-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Initiated": "2014-05-01T05:41:27.000Z", + "UploadId": "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + "StorageClass": "STANDARD", + "Key": "JavaFile", + "Owner": { + "DisplayName": "ownder-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + } + } + ], + "KeyMarker": "", + "MaxUploads": 2, + "IsTruncated": true + } + }, { "title": "To list in-progress multipart uploads on a bucket", "documentation": "The following example lists in-progress multipart uploads on a specific bucket.", @@ -27148,6 +27316,43 @@ ], "traits": { "smithy.api#documentation": "\n

This operation is not supported by directory buckets.

\n
\n

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request\n parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK\n response can contain valid or invalid XML. Be sure to design your application to parse the\n contents of the response and handle it appropriately.

\n \n

This action has been revised. We recommend that you use the newer version, ListObjectsV2, when developing applications. For backward compatibility,\n Amazon S3 continues to support ListObjects.

\n
\n

The following operations are related to ListObjects:

\n ", + "smithy.api#examples": [ + { + "title": "To list objects in a bucket", + "documentation": "The following example list two objects in a bucket.", + "input": { + "Bucket": "examplebucket", + "MaxKeys": 2 + }, + "output": { + "NextMarker": "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==", + "Contents": [ + { + "LastModified": "2014-11-21T19:40:05.000Z", + "ETag": "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"", + "StorageClass": "STANDARD", + "Key": "example1.jpg", + "Owner": { + "DisplayName": "myname", + "ID": "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Size": 11 + }, + { + "LastModified": "2013-11-15T01:10:49.000Z", + "ETag": "\"9c8af9a76df052144598c115ef33e511\"", + "StorageClass": "STANDARD", + "Key": "example2.jpg", + "Owner": { + "DisplayName": "myname", + "ID": "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Size": 713193 + } + ] + } + } + ], "smithy.api#http": { "method": "GET", "uri": "/{Bucket}", @@ -27324,6 +27529,40 @@ ], "traits": { "smithy.api#documentation": "

Returns some or all (up to 1,000) of the objects in a bucket with each request. You can\n use the request parameters as selection criteria to return a subset of the objects in a\n bucket. A 200 OK response can contain valid or invalid XML. Make sure to\n design your application to parse the contents of the response and handle it appropriately.\n \n For more information about listing objects, see Listing object keys\n programmatically in the Amazon S3 User Guide. To get a list of your buckets, see ListBuckets.

\n \n
    \n
  • \n

    \n General purpose bucket - For general purpose buckets, ListObjectsV2 doesn't return prefixes that are related only to in-progress multipart uploads.

    \n
  • \n
  • \n

    \n Directory buckets - \n For directory buckets, ListObjectsV2 response includes the prefixes that are related only to in-progress multipart uploads.\n

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To use this operation, you must have READ access to the bucket. You must have permission to perform\n the s3:ListBucket action. The bucket owner has this permission by default and\n can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing\n Access Permissions to Your Amazon S3 Resources in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
Sorting order of returned objects
\n
\n
    \n
  • \n

    \n General purpose bucket - For general purpose buckets, ListObjectsV2 returns objects in lexicographical order based on their key names.

    \n
  • \n
  • \n

    \n Directory bucket - For directory buckets, ListObjectsV2 does not return objects in lexicographical order.

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n \n

This section describes the latest revision of this action. We recommend that you use\n this revised API operation for application development. For backward compatibility, Amazon S3\n continues to support the prior version of this API operation, ListObjects.

\n
\n

The following operations are related to ListObjectsV2:

\n ", + "smithy.api#examples": [ + { + "title": "To get object list", + "documentation": "The following example retrieves object list. The request specifies max keys to limit response to include only 2 object keys. ", + "input": { + "Bucket": "DOC-EXAMPLE-BUCKET", + "MaxKeys": 2 + }, + "output": { + "Name": "DOC-EXAMPLE-BUCKET", + "MaxKeys": 2, + "Prefix": "", + "KeyCount": 2, + "NextContinuationToken": "1w41l63U0xa8q7smH50vCxyTQqdxo69O3EmK28Bi5PcROI4wI/EyIJg==", + "IsTruncated": true, + "Contents": [ + { + "LastModified": "2014-11-21T19:40:05.000Z", + "ETag": "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"", + "StorageClass": "STANDARD", + "Key": "happyface.jpg", + "Size": 11 + }, + { + "LastModified": "2014-05-02T04:51:50.000Z", + "ETag": "\"becf17f89c30367a9a44495d62ed521a-1\"", + "StorageClass": "STANDARD", + "Key": "test.jpg", + "Size": 4192256 + } + ] + } + } + ], "smithy.api#http": { "method": "GET", "uri": "/{Bucket}?list-type=2", @@ -27527,6 +27766,42 @@ }, "traits": { "smithy.api#documentation": "

Lists the parts that have been uploaded for a specific multipart upload.

\n

To use this operation, you must provide the upload ID in the request. You obtain this uploadID by sending the initiate multipart upload\n request through CreateMultipartUpload.

\n

The ListParts request returns a maximum of 1,000 uploaded parts. The limit of 1,000 parts is also the default value. You can restrict the number of parts in a response by specifying the\n max-parts request parameter. If your multipart upload consists of more than\n 1,000 parts, the response returns an IsTruncated field with the value of true,\n and a NextPartNumberMarker element. To list remaining uploaded parts, in subsequent ListParts\n requests, include the part-number-marker query string parameter and set its value to\n the NextPartNumberMarker field value from the previous response.

\n

For more information on multipart uploads, see Uploading Objects Using Multipart\n Upload in the Amazon S3\n User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - For information about permissions required to use the multipart upload API, see Multipart Upload\n and Permissions in the Amazon S3\n User Guide.

    \n

    If the upload was created using server-side encryption with Key Management Service (KMS) keys\n (SSE-KMS) or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), you must have permission\n to the kms:Decrypt action for the ListParts request to succeed.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to ListParts:

\n ", + "smithy.api#examples": [ + { + "title": "To list parts of a multipart upload.", + "documentation": "The following example lists parts uploaded for a specific multipart upload.", + "input": { + "Bucket": "examplebucket", + "Key": "bigobject", + "UploadId": "example7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--" + }, + "output": { + "Owner": { + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Initiator": { + "DisplayName": "owner-display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + }, + "Parts": [ + { + "LastModified": "2016-12-16T00:11:42.000Z", + "PartNumber": 1, + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"", + "Size": 26246026 + }, + { + "LastModified": "2016-12-16T00:15:01.000Z", + "PartNumber": 2, + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"", + "Size": 26246026 + } + ], + "StorageClass": "STANDARD" + } + } + ], "smithy.api#http": { "method": "GET", "uri": "/{Bucket}/{Key+}?x-id=ListParts", @@ -27851,7 +28126,7 @@ "traits": { "smithy.api#range": { "min": 1, - "max": 1000 + "max": 10000 } } }, @@ -33903,6 +34178,22 @@ "requestAlgorithmMember": "ChecksumAlgorithm" }, "smithy.api#documentation": "

Uploads a part in a multipart upload.

\n \n

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

\n
\n

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

\n

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely\n identifies a part and also defines its position within the object being created. If you\n upload a new part using the same part number that was used with a previous part, the\n previously uploaded part is overwritten.

\n

For information about maximum and minimum part sizes and other multipart upload\n specifications, see Multipart upload limits in the Amazon S3 User Guide.

\n \n

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

\n
\n

For more information on multipart uploads, go to Multipart Upload Overview in the\n Amazon S3 User Guide .

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Permissions
\n
\n
    \n
  • \n

    \n General purpose bucket permissions - To\n perform a multipart upload with encryption using an Key Management Service key, the\n requester must have permission to the kms:Decrypt and\n kms:GenerateDataKey actions on the key. The requester must\n also have permissions for the kms:GenerateDataKey action for\n the CreateMultipartUpload API. Then, the requester needs\n permissions for the kms:Decrypt action on the\n UploadPart and UploadPartCopy APIs.

    \n

    These permissions are required because Amazon S3 must decrypt and read data\n from the encrypted file parts before it completes the multipart upload. For\n more information about KMS permissions, see Protecting data\n using server-side encryption with KMS in the\n Amazon S3 User Guide. For information about the\n permissions required to use the multipart upload API, see Multipart upload and permissions and Multipart upload API and permissions in the\n Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory bucket permissions - To grant access to this API operation on a directory bucket, we recommend that you use the \n CreateSession\n API operation for session-based authorization. Specifically, you grant the s3express:CreateSession permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the CreateSession API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another CreateSession API call to generate a new session token for use. \nAmazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see \n CreateSession\n .

    \n

    If the object is encrypted with\n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n
  • \n
\n
\n
Data integrity
\n
\n

\n General purpose bucket - To ensure that data is not corrupted traversing the network, specify the\n Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error. If the upload request is signed with Signature Version 4, then Amazon Web Services S3 uses the\n x-amz-content-sha256 header as a checksum instead of\n Content-MD5. For more information see Authenticating\n Requests: Using the Authorization Header (Amazon Web Services Signature Version 4).

\n \n

\n Directory buckets - MD5 is not supported by directory buckets. You can use checksum algorithms to check object integrity.

\n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose bucket - Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it\n writes it to disks in its data centers and decrypts it when you access it. You have \n mutually exclusive options to protect data using server-side encryption in Amazon S3, depending\n on how you choose to manage the encryption keys. Specifically, the encryption key options\n are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS), and Customer-Provided Keys\n (SSE-C). Amazon S3 encrypts data with server-side encryption using Amazon S3 managed keys (SSE-S3) by\n default. You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption\n with other key options. The option you use depends on whether you want to use KMS keys\n (SSE-KMS) or provide your own encryption key (SSE-C).

    \n

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

    \n

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

    \n
      \n
    • \n

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

      \n
    • \n
    • \n

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

      \n
    • \n
    • \n

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

      \n
    • \n
    \n

    \n For more information, see Using Server-Side\n Encryption in the Amazon S3 User Guide.

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms).

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    • \n

      SOAP Fault Code Prefix: Client

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to UploadPart:

\n ", + "smithy.api#examples": [ + { + "title": "To upload a part", + "documentation": "The following example uploads part 1 of a multipart upload. The example specifies a file name for the part data. The Upload ID is same that is returned by the initiate multipart upload.", + "input": { + "Body": "fileToUpload", + "Bucket": "examplebucket", + "Key": "examplelargeobject", + "PartNumber": 1, + "UploadId": "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--" + }, + "output": { + "ETag": "\"d8c2eafd90c266e19ab9dcacc479f8af\"" + } + } + ], "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?x-id=UploadPart", @@ -33920,6 +34211,43 @@ }, "traits": { "smithy.api#documentation": "

Uploads a part by copying data from an existing object as data source. To specify the\n data source, you add the request header x-amz-copy-source in your request. To specify \n a byte range, you add the request header x-amz-copy-source-range in your\n request.

\n

For information about maximum and minimum part sizes and other multipart upload\n specifications, see Multipart upload limits in the Amazon S3 User Guide.

\n \n

Instead of copying data from an existing object as part data, you might use the UploadPart\n action to upload new data as a part of an object in your request.

\n
\n

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

\n

For conceptual information about multipart uploads, see Uploading\n Objects Using Multipart Upload in the\n Amazon S3 User Guide. For information about copying objects using a single atomic action vs. a multipart\n upload, see Operations on Objects in\n the Amazon S3 User Guide.

\n \n

\n Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name\n . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the\n Amazon S3 User Guide.

\n
\n
\n
Authentication and authorization
\n
\n

All UploadPartCopy requests must be authenticated and signed by using IAM credentials (access key ID and secret access key for the IAM identities). All headers with the x-amz- prefix, including\n x-amz-copy-source, must be signed. For more information, see REST Authentication.

\n

\n Directory buckets - You must use IAM credentials to authenticate and authorize your access to the UploadPartCopy API operation, instead of using the \n temporary security credentials through the CreateSession API operation.

\n

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

\n
\n
Permissions
\n
\n

You must have READ access to the source object and WRITE\n access to the destination bucket.

\n
    \n
  • \n

    \n General purpose bucket permissions - You\n must have the permissions in a policy based on the bucket types of your\n source bucket and destination bucket in an UploadPartCopy\n operation.

    \n
      \n
    • \n

      If the source object is in a general purpose bucket, you must have the\n \n s3:GetObject\n \n permission to read the source object that is being copied.

      \n
    • \n
    • \n

      If the destination bucket is a general purpose bucket, you must have the\n \n s3:PutObject\n \n permission to write the object copy to the destination bucket.

      \n
    • \n
    • \n

      To perform a multipart upload with encryption using an Key Management Service\n key, the requester must have permission to the\n kms:Decrypt and kms:GenerateDataKey\n actions on the key. The requester must also have permissions for the\n kms:GenerateDataKey action for the\n CreateMultipartUpload API. Then, the requester needs\n permissions for the kms:Decrypt action on the\n UploadPart and UploadPartCopy APIs. These\n permissions are required because Amazon S3 must decrypt and read data from\n the encrypted file parts before it completes the multipart upload. For\n more information about KMS permissions, see Protecting\n data using server-side encryption with KMS in the\n Amazon S3 User Guide. For information about the\n permissions required to use the multipart upload API, see Multipart upload\n and permissions and Multipart upload API and permissions in the\n Amazon S3 User Guide.

      \n
    • \n
    \n
  • \n
  • \n

    \n Directory bucket permissions -\n You must have permissions in a bucket policy or an IAM identity-based policy based on the source and destination\n bucket types in an UploadPartCopy operation.

    \n
      \n
    • \n

      If the source object that you want to copy is in a\n directory bucket, you must have the \n s3express:CreateSession\n permission in\n the Action element of a policy to read the object. By\n default, the session is in the ReadWrite mode. If you\n want to restrict the access, you can explicitly set the\n s3express:SessionMode condition key to\n ReadOnly on the copy source bucket.

      \n
    • \n
    • \n

      If the copy destination is a directory bucket, you must have the \n \n s3express:CreateSession\n permission in the\n Action element of a policy to write the object\n to the destination. The s3express:SessionMode condition\n key cannot be set to ReadOnly on the copy destination.

      \n
    • \n
    \n

    If the object is encrypted with\n SSE-KMS, you must also have the\n kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and KMS key policies for the KMS key.

    \n

    For example policies, see Example bucket policies for S3 Express One Zone and Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone in the\n Amazon S3 User Guide.

    \n
  • \n
\n
\n
Encryption
\n
\n
    \n
  • \n

    \n General purpose buckets - \n \n For information about using server-side encryption with customer-provided\n encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.\n

    \n
  • \n
  • \n

    \n Directory buckets - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) and server-side encryption with KMS keys (SSE-KMS) (aws:kms). For more\n information, see Protecting data with server-side encryption in the Amazon S3 User Guide.

    \n \n

    For directory buckets, when you perform a CreateMultipartUpload operation and an UploadPartCopy operation, \n the request headers you provide in the CreateMultipartUpload request must match the default encryption configuration of the destination bucket.

    \n
    \n

    S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets \nto directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through UploadPartCopy. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.

    \n
  • \n
\n
\n
Special errors
\n
\n
    \n
  • \n

    Error Code: NoSuchUpload\n

    \n
      \n
    • \n

      Description: The specified multipart upload does not exist. The\n upload ID might be invalid, or the multipart upload might have been\n aborted or completed.

      \n
    • \n
    • \n

      HTTP Status Code: 404 Not Found

      \n
    • \n
    \n
  • \n
  • \n

    Error Code: InvalidRequest\n

    \n
      \n
    • \n

      Description: The specified copy source is not supported as a\n byte-range copy source.

      \n
    • \n
    • \n

      HTTP Status Code: 400 Bad Request

      \n
    • \n
    \n
  • \n
\n
\n
HTTP Host header syntax
\n
\n

\n Directory buckets - The HTTP Host header syntax is \n Bucket_name.s3express-az_id.region.amazonaws.com.

\n
\n
\n

The following operations are related to UploadPartCopy:

\n ", + "smithy.api#examples": [ + { + "title": "To upload a part by copying byte range from an existing object as data source", + "documentation": "The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source.", + "input": { + "Bucket": "examplebucket", + "CopySource": "/bucketname/sourceobjectkey", + "CopySourceRange": "bytes=1-100000", + "Key": "examplelargeobject", + "PartNumber": 2, + "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" + }, + "output": { + "CopyPartResult": { + "LastModified": "2016-12-29T21:44:28.000Z", + "ETag": "\"65d16d19e65a7508a51f043180edcc36\"" + } + } + }, + { + "title": "To upload a part by copying data from an existing object as data source", + "documentation": "The following example uploads a part of a multipart upload by copying data from an existing object as data source.", + "input": { + "Bucket": "examplebucket", + "CopySource": "/bucketname/sourceobjectkey", + "Key": "examplelargeobject", + "PartNumber": 1, + "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" + }, + "output": { + "CopyPartResult": { + "LastModified": "2016-12-29T21:24:43.000Z", + "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"" + } + } + } + ], "smithy.api#http": { "method": "PUT", "uri": "/{Bucket}/{Key+}?x-id=UploadPartCopy", diff --git a/codegen/sdk-codegen/aws-models/sagemaker.json b/codegen/sdk-codegen/aws-models/sagemaker.json index 4f9f58ca1ae..c6336b5e817 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker.json +++ b/codegen/sdk-codegen/aws-models/sagemaker.json @@ -34997,6 +34997,48 @@ "smithy.api#enumValue": "ml.inf1.24xlarge" } }, + "ML_TRN1_2XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.trn1.2xlarge" + } + }, + "ML_TRN1_32XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.trn1.32xlarge" + } + }, + "ML_TRN1N_32XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.trn1n.32xlarge" + } + }, + "ML_INF2_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.inf2.xlarge" + } + }, + "ML_INF2_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.inf2.8xlarge" + } + }, + "ML_INF2_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.inf2.24xlarge" + } + }, + "ML_INF2_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.inf2.48xlarge" + } + }, "ML_P4D_24XLARGE": { "target": "smithy.api#Unit", "traits": { @@ -66667,6 +66709,30 @@ "traits": { "smithy.api#enumValue": "ml.g5.48xlarge" } + }, + "ML_INF2_XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.inf2.xlarge" + } + }, + "ML_INF2_8XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.inf2.8xlarge" + } + }, + "ML_INF2_24XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.inf2.24xlarge" + } + }, + "ML_INF2_48XLARGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ml.inf2.48xlarge" + } } } }, diff --git a/codegen/sdk-codegen/aws-models/sts.json b/codegen/sdk-codegen/aws-models/sts.json index eabc44ceb77..71f47210126 100644 --- a/codegen/sdk-codegen/aws-models/sts.json +++ b/codegen/sdk-codegen/aws-models/sts.json @@ -42,6 +42,9 @@ { "target": "com.amazonaws.sts#AssumeRoleWithWebIdentity" }, + { + "target": "com.amazonaws.sts#AssumeRoot" + }, { "target": "com.amazonaws.sts#DecodeAuthorizationMessage" }, @@ -2269,7 +2272,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a set of temporary security credentials that you can use to access Amazon Web Services\n resources. These temporary credentials consist of an access key ID, a secret access key,\n and a security token. Typically, you use AssumeRole within your account or for\n cross-account access. For a comparison of AssumeRole with other API operations\n that produce temporary credentials, see Requesting Temporary Security\n Credentials and Comparing the\n Amazon Web Services STS API operations in the IAM User Guide.

\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRole can be used to\n make API calls to any Amazon Web Services service with the following exception: You cannot call the\n Amazon Web Services STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n managed session policies. The plaintext that you use for both inline and managed session\n policies can't exceed 2,048 characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

When you create a role, you create two policies: a role trust policy that specifies\n who can assume the role, and a permissions policy that specifies\n what can be done with the role. You specify the trusted principal\n that is allowed to assume the role in the role trust policy.

\n

To assume a role from a different account, your Amazon Web Services account must be trusted by the\n role. The trust relationship is defined in the role's trust policy when the role is\n created. That trust policy states which accounts are allowed to delegate that access to\n users in the account.

\n

A user who wants to access a role in a different account must also have permissions that\n are delegated from the account administrator. The administrator must attach a policy that\n allows the user to call AssumeRole for the ARN of the role in the other\n account.

\n

To allow a user to assume a role in the same account, you can do either of the\n following:

\n
    \n
  • \n

    Attach a policy to the user that allows the user to call AssumeRole\n (as long as the role's trust policy trusts the account).

    \n
  • \n
  • \n

    Add the user as a principal directly in the role's trust policy.

    \n
  • \n
\n

You can do either because the role’s trust policy acts as an IAM resource-based\n policy. When a resource-based policy grants access to a principal in the same account, no\n additional identity-based policy is required. For more information about trust policies and\n resource-based policies, see IAM Policies in the\n IAM User Guide.

\n

\n Tags\n

\n

(Optional) You can pass tag key-value pairs to your session. These tags are called\n session tags. For more information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n Using MFA with AssumeRole\n

\n

(Optional) You can include multi-factor authentication (MFA) information when you call\n AssumeRole. This is useful for cross-account scenarios to ensure that the\n user that assumes the role has been authenticated with an Amazon Web Services MFA device. In that\n scenario, the trust policy of the role being assumed includes a condition that tests for\n MFA authentication. If the caller does not include valid MFA information, the request to\n assume the role is denied. The condition in a trust policy that tests for MFA\n authentication might look like the following example.

\n

\n \"Condition\": {\"Bool\": {\"aws:MultiFactorAuthPresent\": true}}\n

\n

For more information, see Configuring MFA-Protected API Access\n in the IAM User Guide guide.

\n

To use MFA with AssumeRole, you pass values for the\n SerialNumber and TokenCode parameters. The\n SerialNumber value identifies the user's hardware or virtual MFA device.\n The TokenCode is the time-based one-time password (TOTP) that the MFA device\n produces.

", + "smithy.api#documentation": "

Returns a set of temporary security credentials that you can use to access Amazon Web Services\n resources. These temporary credentials consist of an access key ID, a secret access key,\n and a security token. Typically, you use AssumeRole within your account or for\n cross-account access. For a comparison of AssumeRole with other API operations\n that produce temporary credentials, see Requesting Temporary Security\n Credentials and Compare STS\n credentials in the IAM User Guide.

\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRole can be used to\n make API calls to any Amazon Web Services service with the following exception: You cannot call the\n Amazon Web Services STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to this operation. You can\n pass a single JSON policy document to use as an inline session policy. You can also specify\n up to 10 managed policy Amazon Resource Names (ARNs) to use as managed session policies.\n The plaintext that you use for both inline and managed session policies can't exceed 2,048\n characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

When you create a role, you create two policies: a role trust policy that specifies\n who can assume the role, and a permissions policy that specifies\n what can be done with the role. You specify the trusted principal\n that is allowed to assume the role in the role trust policy.

\n

To assume a role from a different account, your Amazon Web Services account must be trusted by the\n role. The trust relationship is defined in the role's trust policy when the role is\n created. That trust policy states which accounts are allowed to delegate that access to\n users in the account.

\n

A user who wants to access a role in a different account must also have permissions that\n are delegated from the account administrator. The administrator must attach a policy that\n allows the user to call AssumeRole for the ARN of the role in the other\n account.

\n

To allow a user to assume a role in the same account, you can do either of the\n following:

\n
    \n
  • \n

    Attach a policy to the user that allows the user to call AssumeRole\n (as long as the role's trust policy trusts the account).

    \n
  • \n
  • \n

    Add the user as a principal directly in the role's trust policy.

    \n
  • \n
\n

You can do either because the role’s trust policy acts as an IAM resource-based\n policy. When a resource-based policy grants access to a principal in the same account, no\n additional identity-based policy is required. For more information about trust policies and\n resource-based policies, see IAM Policies in the\n IAM User Guide.

\n

\n Tags\n

\n

(Optional) You can pass tag key-value pairs to your session. These tags are called\n session tags. For more information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n Using MFA with AssumeRole\n

\n

(Optional) You can include multi-factor authentication (MFA) information when you call\n AssumeRole. This is useful for cross-account scenarios to ensure that the\n user that assumes the role has been authenticated with an Amazon Web Services MFA device. In that\n scenario, the trust policy of the role being assumed includes a condition that tests for\n MFA authentication. If the caller does not include valid MFA information, the request to\n assume the role is denied. The condition in a trust policy that tests for MFA\n authentication might look like the following example.

\n

\n \"Condition\": {\"Bool\": {\"aws:MultiFactorAuthPresent\": true}}\n

\n

For more information, see Configuring MFA-Protected API Access\n in the IAM User Guide guide.

\n

To use MFA with AssumeRole, you pass values for the\n SerialNumber and TokenCode parameters. The\n SerialNumber value identifies the user's hardware or virtual MFA device.\n The TokenCode is the time-based one-time password (TOTP) that the MFA device\n produces.

", "smithy.api#examples": [ { "title": "To assume a role", @@ -2328,7 +2331,7 @@ "RoleSessionName": { "target": "com.amazonaws.sts#roleSessionNameType", "traits": { - "smithy.api#documentation": "

An identifier for the assumed role session.

\n

Use the role session name to uniquely identify a session when the same role is assumed\n by different principals or for different reasons. In cross-account scenarios, the role\n session name is visible to, and can be logged by the account that owns the role. The role\n session name is also used in the ARN of the assumed role principal. This means that\n subsequent cross-account API requests that use the temporary security credentials will\n expose the role session name to the external account in their CloudTrail logs.

\n

The regex used to validate this parameter is a string of characters \n consisting of upper- and lower-case alphanumeric characters with no spaces. You can \n also include underscores or any of the following characters: =,.@-

", + "smithy.api#documentation": "

An identifier for the assumed role session.

\n

Use the role session name to uniquely identify a session when the same role is assumed\n by different principals or for different reasons. In cross-account scenarios, the role\n session name is visible to, and can be logged by the account that owns the role. The role\n session name is also used in the ARN of the assumed role principal. This means that\n subsequent cross-account API requests that use the temporary security credentials will\n expose the role session name to the external account in their CloudTrail logs.

\n

For security purposes, administrators can view this field in CloudTrail logs to help identify who performed an action in Amazon Web Services. Your\n administrator might require that you specify your user name as the session name when you\n assume the role. For more information, see \n sts:RoleSessionName\n .

\n

The regex used to validate this parameter is a string of characters \n consisting of upper- and lower-case alphanumeric characters with no spaces. You can \n also include underscores or any of the following characters: =,.@-

", "smithy.api#required": {} } }, @@ -2341,13 +2344,13 @@ "Policy": { "target": "com.amazonaws.sts#unrestrictedSessionPolicyDocumentType", "traits": { - "smithy.api#documentation": "

An IAM policy in JSON format that you want to use as an inline session policy.

\n

This parameter is optional. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

The plaintext that you use for both inline and managed session policies can't exceed\n 2,048 characters. The JSON policy characters can be any ASCII character from the space\n character to the end of the valid character list (\\u0020 through \\u00FF). It can also\n include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)\n characters.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
" + "smithy.api#documentation": "

An IAM policy in JSON format that you want to use as an inline session policy.

\n

This parameter is optional. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

The plaintext that you use for both inline and managed session policies can't exceed\n 2,048 characters. The JSON policy characters can be any ASCII character from the space\n character to the end of the valid character list (\\u0020 through \\u00FF). It can also\n include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)\n characters.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
\n

For more information about role session permissions, see Session\n policies.

" } }, "DurationSeconds": { "target": "com.amazonaws.sts#roleDurationSecondsType", "traits": { - "smithy.api#documentation": "

The duration, in seconds, of the role session. The value specified can range from 900\n seconds (15 minutes) up to the maximum session duration set for the role. The maximum\n session duration setting can have a value from 1 hour to 12 hours. If you specify a value\n higher than this setting or the administrator setting (whichever is lower), the operation\n fails. For example, if you specify a session duration of 12 hours, but your administrator\n set the maximum session duration to 6 hours, your operation fails.

\n

Role chaining limits your Amazon Web Services CLI or Amazon Web Services API role session to a maximum of one hour.\n When you use the AssumeRole API operation to assume a role, you can specify\n the duration of your role session with the DurationSeconds parameter. You can\n specify a parameter value of up to 43200 seconds (12 hours), depending on the maximum\n session duration setting for your role. However, if you assume a role using role chaining\n and provide a DurationSeconds parameter value greater than one hour, the\n operation fails. To learn how to view the maximum value for your role, see View the\n Maximum Session Duration Setting for a Role in the\n IAM User Guide.

\n

By default, the value is set to 3600 seconds.

\n \n

The DurationSeconds parameter is separate from the duration of a console\n session that you might request using the returned credentials. The request to the\n federation endpoint for a console sign-in token takes a SessionDuration\n parameter that specifies the maximum length of the console session. For more\n information, see Creating a URL\n that Enables Federated Users to Access the Amazon Web Services Management Console in the\n IAM User Guide.

\n
" + "smithy.api#documentation": "

The duration, in seconds, of the role session. The value specified can range from 900\n seconds (15 minutes) up to the maximum session duration set for the role. The maximum\n session duration setting can have a value from 1 hour to 12 hours. If you specify a value\n higher than this setting or the administrator setting (whichever is lower), the operation\n fails. For example, if you specify a session duration of 12 hours, but your administrator\n set the maximum session duration to 6 hours, your operation fails.

\n

Role chaining limits your Amazon Web Services CLI or Amazon Web Services API role session to a maximum of one hour.\n When you use the AssumeRole API operation to assume a role, you can specify\n the duration of your role session with the DurationSeconds parameter. You can\n specify a parameter value of up to 43200 seconds (12 hours), depending on the maximum\n session duration setting for your role. However, if you assume a role using role chaining\n and provide a DurationSeconds parameter value greater than one hour, the\n operation fails. To learn how to view the maximum value for your role, see Update the maximum session duration for a role.

\n

By default, the value is set to 3600 seconds.

\n \n

The DurationSeconds parameter is separate from the duration of a console\n session that you might request using the returned credentials. The request to the\n federation endpoint for a console sign-in token takes a SessionDuration\n parameter that specifies the maximum length of the console session. For more\n information, see Creating a URL\n that Enables Federated Users to Access the Amazon Web Services Management Console in the\n IAM User Guide.

\n
" } }, "Tags": { @@ -2359,7 +2362,7 @@ "TransitiveTagKeys": { "target": "com.amazonaws.sts#tagKeyListType", "traits": { - "smithy.api#documentation": "

A list of keys for session tags that you want to set as transitive. If you set a tag key\n as transitive, the corresponding key and value passes to subsequent sessions in a role\n chain. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

This parameter is optional. When you set session tags as transitive, the session policy\n and session tags packed binary limit is not affected.

\n

If you choose not to specify a transitive tag key, then no tags are passed from this\n session to any subsequent sessions.

" + "smithy.api#documentation": "

A list of keys for session tags that you want to set as transitive. If you set a tag key\n as transitive, the corresponding key and value passes to subsequent sessions in a role\n chain. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

This parameter is optional. The transitive status of a session tag does not impact its\n packed binary size.

\n

If you choose not to specify a transitive tag key, then no tags are passed from this\n session to any subsequent sessions.

" } }, "ExternalId": { @@ -2383,7 +2386,7 @@ "SourceIdentity": { "target": "com.amazonaws.sts#sourceIdentityType", "traits": { - "smithy.api#documentation": "

The source identity specified by the principal that is calling the\n AssumeRole operation.

\n

You can require users to specify a source identity when they assume a role. You do this\n by using the sts:SourceIdentity condition key in a role trust policy. You can\n use source identity information in CloudTrail logs to determine who took actions with a role.\n You can use the aws:SourceIdentity condition key to further control access to\n Amazon Web Services resources based on the value of source identity. For more information about using\n source identity, see Monitor and control\n actions taken with assumed roles in the\n IAM User Guide.

\n

The regex used to validate this parameter is a string of characters consisting of upper-\n and lower-case alphanumeric characters with no spaces. You can also include underscores or\n any of the following characters: =,.@-. You cannot use a value that begins with the text\n aws:. This prefix is reserved for Amazon Web Services internal use.

" + "smithy.api#documentation": "

The source identity specified by the principal that is calling the\n AssumeRole operation. The source identity value persists across chained role sessions.

\n

You can require users to specify a source identity when they assume a role. You do this\n by using the \n sts:SourceIdentity\n condition key in a role trust policy. You\n can use source identity information in CloudTrail logs to determine who took actions with a\n role. You can use the aws:SourceIdentity condition key to further control\n access to Amazon Web Services resources based on the value of source identity. For more information about\n using source identity, see Monitor and control\n actions taken with assumed roles in the\n IAM User Guide.

\n

The regex used to validate this parameter is a string of characters consisting of upper-\n and lower-case alphanumeric characters with no spaces. You can also include underscores or\n any of the following characters: =,.@-. You cannot use a value that begins with the text\n aws:. This prefix is reserved for Amazon Web Services internal use.

" } }, "ProvidedContexts": { @@ -2459,7 +2462,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a set of temporary security credentials for users who have been authenticated\n via a SAML authentication response. This operation provides a mechanism for tying an\n enterprise identity store or directory to role-based Amazon Web Services access without user-specific\n credentials or configuration. For a comparison of AssumeRoleWithSAML with the\n other API operations that produce temporary credentials, see Requesting Temporary Security\n Credentials and Comparing the\n Amazon Web Services STS API operations in the IAM User Guide.

\n

The temporary security credentials returned by this operation consist of an access key\n ID, a secret access key, and a security token. Applications can use these temporary\n security credentials to sign calls to Amazon Web Services services.

\n

\n Session Duration\n

\n

By default, the temporary security credentials created by\n AssumeRoleWithSAML last for one hour. However, you can use the optional\n DurationSeconds parameter to specify the duration of your session. Your\n role session lasts for the duration that you specify, or until the time specified in the\n SAML authentication response's SessionNotOnOrAfter value, whichever is\n shorter. You can provide a DurationSeconds value from 900 seconds (15 minutes)\n up to the maximum session duration setting for the role. This setting can have a value from\n 1 hour to 12 hours. To learn how to view the maximum value for your role, see View the\n Maximum Session Duration Setting for a Role in the\n IAM User Guide. The maximum session duration limit applies when\n you use the AssumeRole* API operations or the assume-role* CLI\n commands. However the limit does not apply when you use those operations to create a\n console URL. For more information, see Using IAM Roles in the\n IAM User Guide.

\n \n

\n Role chaining limits your CLI or Amazon Web Services API role\n session to a maximum of one hour. When you use the AssumeRole API operation\n to assume a role, you can specify the duration of your role session with the\n DurationSeconds parameter. You can specify a parameter value of up to\n 43200 seconds (12 hours), depending on the maximum session duration setting for your\n role. However, if you assume a role using role chaining and provide a\n DurationSeconds parameter value greater than one hour, the operation\n fails.

\n
\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRoleWithSAML can be\n used to make API calls to any Amazon Web Services service with the following exception: you cannot call\n the STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n managed session policies. The plaintext that you use for both inline and managed session\n policies can't exceed 2,048 characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

Calling AssumeRoleWithSAML does not require the use of Amazon Web Services security\n credentials. The identity of the caller is validated by using keys in the metadata document\n that is uploaded for the SAML provider entity for your identity provider.

\n \n

Calling AssumeRoleWithSAML can result in an entry in your CloudTrail logs.\n The entry includes the value in the NameID element of the SAML assertion.\n We recommend that you use a NameIDType that is not associated with any\n personally identifiable information (PII). For example, you could instead use the\n persistent identifier\n (urn:oasis:names:tc:SAML:2.0:nameid-format:persistent).

\n
\n

\n Tags\n

\n

(Optional) You can configure your IdP to pass attributes into your SAML assertion as\n session tags. Each session tag consists of a key name and an associated value. For more\n information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128\n characters and the values can’t exceed 256 characters. For these and additional limits, see\n IAM\n and STS Character Limits in the IAM User Guide.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
\n

You can pass a session tag with the same key as a tag that is attached to the role. When\n you do, session tags override the role's tags with the same key.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n SAML Configuration\n

\n

Before your application can call AssumeRoleWithSAML, you must configure\n your SAML identity provider (IdP) to issue the claims required by Amazon Web Services. Additionally, you\n must use Identity and Access Management (IAM) to create a SAML provider entity in your Amazon Web Services account that\n represents your identity provider. You must also create an IAM role that specifies this\n SAML provider in its trust policy.

\n

For more information, see the following resources:

\n ", + "smithy.api#documentation": "

Returns a set of temporary security credentials for users who have been authenticated\n via a SAML authentication response. This operation provides a mechanism for tying an\n enterprise identity store or directory to role-based Amazon Web Services access without user-specific\n credentials or configuration. For a comparison of AssumeRoleWithSAML with the\n other API operations that produce temporary credentials, see Requesting Temporary Security\n Credentials and Compare STS\n credentials in the IAM User Guide.

\n

The temporary security credentials returned by this operation consist of an access key\n ID, a secret access key, and a security token. Applications can use these temporary\n security credentials to sign calls to Amazon Web Services services.

\n

\n Session Duration\n

\n

By default, the temporary security credentials created by\n AssumeRoleWithSAML last for one hour. However, you can use the optional\n DurationSeconds parameter to specify the duration of your session. Your\n role session lasts for the duration that you specify, or until the time specified in the\n SAML authentication response's SessionNotOnOrAfter value, whichever is\n shorter. You can provide a DurationSeconds value from 900 seconds (15 minutes)\n up to the maximum session duration setting for the role. This setting can have a value from\n 1 hour to 12 hours. To learn how to view the maximum value for your role, see View the\n Maximum Session Duration Setting for a Role in the\n IAM User Guide. The maximum session duration limit applies when\n you use the AssumeRole* API operations or the assume-role* CLI\n commands. However the limit does not apply when you use those operations to create a\n console URL. For more information, see Using IAM Roles in the\n IAM User Guide.

\n \n

\n Role chaining limits your CLI or Amazon Web Services API role\n session to a maximum of one hour. When you use the AssumeRole API operation\n to assume a role, you can specify the duration of your role session with the\n DurationSeconds parameter. You can specify a parameter value of up to\n 43200 seconds (12 hours), depending on the maximum session duration setting for your\n role. However, if you assume a role using role chaining and provide a\n DurationSeconds parameter value greater than one hour, the operation\n fails.

\n
\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRoleWithSAML can be\n used to make API calls to any Amazon Web Services service with the following exception: you cannot call\n the STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n managed session policies. The plaintext that you use for both inline and managed session\n policies can't exceed 2,048 characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

Calling AssumeRoleWithSAML does not require the use of Amazon Web Services security\n credentials. The identity of the caller is validated by using keys in the metadata document\n that is uploaded for the SAML provider entity for your identity provider.

\n \n

Calling AssumeRoleWithSAML can result in an entry in your CloudTrail logs.\n The entry includes the value in the NameID element of the SAML assertion.\n We recommend that you use a NameIDType that is not associated with any\n personally identifiable information (PII). For example, you could instead use the\n persistent identifier\n (urn:oasis:names:tc:SAML:2.0:nameid-format:persistent).

\n
\n

\n Tags\n

\n

(Optional) You can configure your IdP to pass attributes into your SAML assertion as\n session tags. Each session tag consists of a key name and an associated value. For more\n information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128\n characters and the values can’t exceed 256 characters. For these and additional limits, see\n IAM\n and STS Character Limits in the IAM User Guide.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
\n

You can pass a session tag with the same key as a tag that is attached to the role. When\n you do, session tags override the role's tags with the same key.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n SAML Configuration\n

\n

Before your application can call AssumeRoleWithSAML, you must configure\n your SAML identity provider (IdP) to issue the claims required by Amazon Web Services. Additionally, you\n must use Identity and Access Management (IAM) to create a SAML provider entity in your Amazon Web Services account that\n represents your identity provider. You must also create an IAM role that specifies this\n SAML provider in its trust policy.

\n

For more information, see the following resources:

\n ", "smithy.api#examples": [ { "title": "To assume a role using a SAML assertion", @@ -2525,7 +2528,7 @@ "Policy": { "target": "com.amazonaws.sts#sessionPolicyDocumentType", "traits": { - "smithy.api#documentation": "

An IAM policy in JSON format that you want to use as an inline session policy.

\n

This parameter is optional. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

The plaintext that you use for both inline and managed session policies can't exceed\n 2,048 characters. The JSON policy characters can be any ASCII character from the space\n character to the end of the valid character list (\\u0020 through \\u00FF). It can also\n include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)\n characters.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
" + "smithy.api#documentation": "

An IAM policy in JSON format that you want to use as an inline session policy.

\n

This parameter is optional. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

The plaintext that you use for both inline and managed session policies can't exceed\n 2,048 characters. The JSON policy characters can be any ASCII character from the space\n character to the end of the valid character list (\\u0020 through \\u00FF). It can also\n include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)\n characters.

\n

For more information about role session permissions, see Session\n policies.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
" } }, "DurationSeconds": { @@ -2593,7 +2596,7 @@ "SourceIdentity": { "target": "com.amazonaws.sts#sourceIdentityType", "traits": { - "smithy.api#documentation": "

The value in the SourceIdentity attribute in the SAML assertion.

\n

You can require users to set a source identity value when they assume a role. You do\n this by using the sts:SourceIdentity condition key in a role trust policy.\n That way, actions that are taken with the role are associated with that user. After the\n source identity is set, the value cannot be changed. It is present in the request for all\n actions that are taken by the role and persists across chained\n role sessions. You can configure your SAML identity provider to use an attribute\n associated with your users, like user name or email, as the source identity when calling\n AssumeRoleWithSAML. You do this by adding an attribute to the SAML\n assertion. For more information about using source identity, see Monitor and control\n actions taken with assumed roles in the\n IAM User Guide.

\n

The regex used to validate this parameter is a string of characters \n consisting of upper- and lower-case alphanumeric characters with no spaces. You can \n also include underscores or any of the following characters: =,.@-

" + "smithy.api#documentation": "

The value in the SourceIdentity attribute in the SAML assertion. The source\n identity value persists across chained role\n sessions.

\n

You can require users to set a source identity value when they assume a role. You do\n this by using the sts:SourceIdentity condition key in a role trust policy.\n That way, actions that are taken with the role are associated with that user. After the\n source identity is set, the value cannot be changed. It is present in the request for all\n actions that are taken by the role and persists across chained role\n sessions. You can configure your SAML identity provider to use an attribute associated with\n your users, like user name or email, as the source identity when calling\n AssumeRoleWithSAML. You do this by adding an attribute to the SAML\n assertion. For more information about using source identity, see Monitor and control\n actions taken with assumed roles in the\n IAM User Guide.

\n

The regex used to validate this parameter is a string of characters \n consisting of upper- and lower-case alphanumeric characters with no spaces. You can \n also include underscores or any of the following characters: =,.@-

" } } }, @@ -2634,7 +2637,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a set of temporary security credentials for users who have been authenticated in\n a mobile or web application with a web identity provider. Example providers include the\n OAuth 2.0 providers Login with Amazon and Facebook, or any OpenID Connect-compatible\n identity provider such as Google or Amazon Cognito federated identities.

\n \n

For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the\n Amazon Web Services SDK for iOS Developer Guide and the Amazon Web Services SDK for Android Developer Guide to uniquely\n identify a user. You can also supply the user with a consistent identity throughout the\n lifetime of an application.

\n

To learn more about Amazon Cognito, see Amazon Cognito identity\n pools in Amazon Cognito Developer Guide.

\n
\n

Calling AssumeRoleWithWebIdentity does not require the use of Amazon Web Services\n security credentials. Therefore, you can distribute an application (for example, on mobile\n devices) that requests temporary security credentials without including long-term Amazon Web Services\n credentials in the application. You also don't need to deploy server-based proxy services\n that use long-term Amazon Web Services credentials. Instead, the identity of the caller is validated by\n using a token from the web identity provider. For a comparison of\n AssumeRoleWithWebIdentity with the other API operations that produce\n temporary credentials, see Requesting Temporary Security\n Credentials and Comparing the\n Amazon Web Services STS API operations in the IAM User Guide.

\n

The temporary security credentials returned by this API consist of an access key ID, a\n secret access key, and a security token. Applications can use these temporary security\n credentials to sign calls to Amazon Web Services service API operations.

\n

\n Session Duration\n

\n

By default, the temporary security credentials created by\n AssumeRoleWithWebIdentity last for one hour. However, you can use the\n optional DurationSeconds parameter to specify the duration of your session.\n You can provide a value from 900 seconds (15 minutes) up to the maximum session duration\n setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how\n to view the maximum value for your role, see View the\n Maximum Session Duration Setting for a Role in the\n IAM User Guide. The maximum session duration limit applies when\n you use the AssumeRole* API operations or the assume-role* CLI\n commands. However the limit does not apply when you use those operations to create a\n console URL. For more information, see Using IAM Roles in the\n IAM User Guide.

\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRoleWithWebIdentity can\n be used to make API calls to any Amazon Web Services service with the following exception: you cannot\n call the STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n managed session policies. The plaintext that you use for both inline and managed session\n policies can't exceed 2,048 characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

\n Tags\n

\n

(Optional) You can configure your IdP to pass attributes into your web identity token as\n session tags. Each session tag consists of a key name and an associated value. For more\n information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128\n characters and the values can’t exceed 256 characters. For these and additional limits, see\n IAM\n and STS Character Limits in the IAM User Guide.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
\n

You can pass a session tag with the same key as a tag that is attached to the role. When\n you do, the session tag overrides the role tag with the same key.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n Identities\n

\n

Before your application can call AssumeRoleWithWebIdentity, you must have\n an identity token from a supported identity provider and create a role that the application\n can assume. The role that your application assumes must trust the identity provider that is\n associated with the identity token. In other words, the identity provider must be specified\n in the role's trust policy.

\n \n

Calling AssumeRoleWithWebIdentity can result in an entry in your\n CloudTrail logs. The entry includes the Subject of\n the provided web identity token. We recommend that you avoid using any personally\n identifiable information (PII) in this field. For example, you could instead use a GUID\n or a pairwise identifier, as suggested\n in the OIDC specification.

\n
\n

For more information about how to use web identity federation and the\n AssumeRoleWithWebIdentity API, see the following resources:

\n ", + "smithy.api#documentation": "

Returns a set of temporary security credentials for users who have been authenticated in\n a mobile or web application with a web identity provider. Example providers include the\n OAuth 2.0 providers Login with Amazon and Facebook, or any OpenID Connect-compatible\n identity provider such as Google or Amazon Cognito federated identities.

\n \n

For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the\n Amazon Web Services SDK for iOS Developer Guide and the Amazon Web Services SDK for Android Developer Guide to uniquely\n identify a user. You can also supply the user with a consistent identity throughout the\n lifetime of an application.

\n

To learn more about Amazon Cognito, see Amazon Cognito identity\n pools in Amazon Cognito Developer Guide.

\n
\n

Calling AssumeRoleWithWebIdentity does not require the use of Amazon Web Services\n security credentials. Therefore, you can distribute an application (for example, on mobile\n devices) that requests temporary security credentials without including long-term Amazon Web Services\n credentials in the application. You also don't need to deploy server-based proxy services\n that use long-term Amazon Web Services credentials. Instead, the identity of the caller is validated by\n using a token from the web identity provider. For a comparison of\n AssumeRoleWithWebIdentity with the other API operations that produce\n temporary credentials, see Requesting Temporary Security\n Credentials and Compare STS\n credentials in the IAM User Guide.

\n

The temporary security credentials returned by this API consist of an access key ID, a\n secret access key, and a security token. Applications can use these temporary security\n credentials to sign calls to Amazon Web Services service API operations.

\n

\n Session Duration\n

\n

By default, the temporary security credentials created by\n AssumeRoleWithWebIdentity last for one hour. However, you can use the\n optional DurationSeconds parameter to specify the duration of your session.\n You can provide a value from 900 seconds (15 minutes) up to the maximum session duration\n setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how\n to view the maximum value for your role, see Update the maximum session duration for a role in the\n IAM User Guide. The maximum session duration limit applies when\n you use the AssumeRole* API operations or the assume-role* CLI\n commands. However the limit does not apply when you use those operations to create a\n console URL. For more information, see Using IAM Roles in the\n IAM User Guide.

\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRoleWithWebIdentity can\n be used to make API calls to any Amazon Web Services service with the following exception: you cannot\n call the STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n managed session policies. The plaintext that you use for both inline and managed session\n policies can't exceed 2,048 characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

\n Tags\n

\n

(Optional) You can configure your IdP to pass attributes into your web identity token as\n session tags. Each session tag consists of a key name and an associated value. For more\n information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128\n characters and the values can’t exceed 256 characters. For these and additional limits, see\n IAM\n and STS Character Limits in the IAM User Guide.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
\n

You can pass a session tag with the same key as a tag that is attached to the role. When\n you do, the session tag overrides the role tag with the same key.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n Identities\n

\n

Before your application can call AssumeRoleWithWebIdentity, you must have\n an identity token from a supported identity provider and create a role that the application\n can assume. The role that your application assumes must trust the identity provider that is\n associated with the identity token. In other words, the identity provider must be specified\n in the role's trust policy.

\n \n

Calling AssumeRoleWithWebIdentity can result in an entry in your\n CloudTrail logs. The entry includes the Subject of\n the provided web identity token. We recommend that you avoid using any personally\n identifiable information (PII) in this field. For example, you could instead use a GUID\n or a pairwise identifier, as suggested\n in the OIDC specification.

\n
\n

For more information about how to use OIDC federation and the\n AssumeRoleWithWebIdentity API, see the following resources:

\n ", "smithy.api#examples": [ { "title": "To assume a role as an OpenID Connect-federated user", @@ -2673,21 +2676,21 @@ "RoleArn": { "target": "com.amazonaws.sts#arnType", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role that the caller is assuming.

", + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the role that the caller is assuming.

\n \n

Additional considerations apply to Amazon Cognito identity pools that assume cross-account IAM roles. The trust policies of these roles must accept the\n cognito-identity.amazonaws.com service principal and must contain the\n cognito-identity.amazonaws.com:aud condition key to restrict role\n assumption to users from your intended identity pools. A policy that trusts Amazon Cognito\n identity pools without this condition creates a risk that a user from an unintended\n identity pool can assume the role. For more information, see Trust policies for\n IAM roles in Basic (Classic) authentication in the Amazon Cognito\n Developer Guide.

\n
", "smithy.api#required": {} } }, "RoleSessionName": { "target": "com.amazonaws.sts#roleSessionNameType", "traits": { - "smithy.api#documentation": "

An identifier for the assumed role session. Typically, you pass the name or identifier\n that is associated with the user who is using your application. That way, the temporary\n security credentials that your application will use are associated with that user. This\n session name is included as part of the ARN and assumed role ID in the\n AssumedRoleUser response element.

\n

The regex used to validate this parameter is a string of characters \n consisting of upper- and lower-case alphanumeric characters with no spaces. You can \n also include underscores or any of the following characters: =,.@-

", + "smithy.api#documentation": "

An identifier for the assumed role session. Typically, you pass the name or identifier\n that is associated with the user who is using your application. That way, the temporary\n security credentials that your application will use are associated with that user. This\n session name is included as part of the ARN and assumed role ID in the\n AssumedRoleUser response element.

\n

For security purposes, administrators can view this field in CloudTrail logs to help identify who performed an action in Amazon Web Services. Your\n administrator might require that you specify your user name as the session name when you\n assume the role. For more information, see \n sts:RoleSessionName\n .

\n

The regex used to validate this parameter is a string of characters \n consisting of upper- and lower-case alphanumeric characters with no spaces. You can \n also include underscores or any of the following characters: =,.@-

", "smithy.api#required": {} } }, "WebIdentityToken": { "target": "com.amazonaws.sts#clientTokenType", "traits": { - "smithy.api#documentation": "

The OAuth 2.0 access token or OpenID Connect ID token that is provided by the identity\n provider. Your application must get this token by authenticating the user who is using your\n application with a web identity provider before the application makes an\n AssumeRoleWithWebIdentity call. Only tokens with RSA algorithms (RS256) are\n supported.

", + "smithy.api#documentation": "

The OAuth 2.0 access token or OpenID Connect ID token that is provided by the identity\n provider. Your application must get this token by authenticating the user who is using your\n application with a web identity provider before the application makes an\n AssumeRoleWithWebIdentity call. Timestamps in the token must be formatted\n as either an integer or a long integer. Only tokens with RSA algorithms (RS256) are\n supported.

", "smithy.api#required": {} } }, @@ -2706,7 +2709,7 @@ "Policy": { "target": "com.amazonaws.sts#sessionPolicyDocumentType", "traits": { - "smithy.api#documentation": "

An IAM policy in JSON format that you want to use as an inline session policy.

\n

This parameter is optional. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

The plaintext that you use for both inline and managed session policies can't exceed\n 2,048 characters. The JSON policy characters can be any ASCII character from the space\n character to the end of the valid character list (\\u0020 through \\u00FF). It can also\n include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)\n characters.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
" + "smithy.api#documentation": "

An IAM policy in JSON format that you want to use as an inline session policy.

\n

This parameter is optional. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

The plaintext that you use for both inline and managed session policies can't exceed\n 2,048 characters. The JSON policy characters can be any ASCII character from the space\n character to the end of the valid character list (\\u0020 through \\u00FF). It can also\n include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)\n characters.

\n

For more information about role session permissions, see Session\n policies.

\n \n

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n and session tags into a packed binary format that has a separate limit. Your request can\n fail for this limit even if your plaintext meets the other requirements. The\n PackedPolicySize response element indicates by percentage how close the\n policies and tags for your request are to the upper size limit.

\n
" } }, "DurationSeconds": { @@ -2762,7 +2765,7 @@ "SourceIdentity": { "target": "com.amazonaws.sts#sourceIdentityType", "traits": { - "smithy.api#documentation": "

The value of the source identity that is returned in the JSON web token (JWT) from the\n identity provider.

\n

You can require users to set a source identity value when they assume a role. You do\n this by using the sts:SourceIdentity condition key in a role trust policy.\n That way, actions that are taken with the role are associated with that user. After the\n source identity is set, the value cannot be changed. It is present in the request for all\n actions that are taken by the role and persists across chained\n role sessions. You can configure your identity provider to use an attribute\n associated with your users, like user name or email, as the source identity when calling\n AssumeRoleWithWebIdentity. You do this by adding a claim to the JSON web\n token. To learn more about OIDC tokens and claims, see Using Tokens with User Pools in the Amazon Cognito Developer Guide.\n For more information about using source identity, see Monitor and control\n actions taken with assumed roles in the\n IAM User Guide.

\n

The regex used to validate this parameter is a string of characters \n consisting of upper- and lower-case alphanumeric characters with no spaces. You can \n also include underscores or any of the following characters: =,.@-

" + "smithy.api#documentation": "

The value of the source identity that is returned in the JSON web token (JWT) from the\n identity provider.

\n

You can require users to set a source identity value when they assume a role. You do\n this by using the sts:SourceIdentity condition key in a role trust policy.\n That way, actions that are taken with the role are associated with that user. After the\n source identity is set, the value cannot be changed. It is present in the request for all\n actions that are taken by the role and persists across chained role\n sessions. You can configure your identity provider to use an attribute associated with your\n users, like user name or email, as the source identity when calling\n AssumeRoleWithWebIdentity. You do this by adding a claim to the JSON web\n token. To learn more about OIDC tokens and claims, see Using Tokens with User Pools in the Amazon Cognito Developer Guide.\n For more information about using source identity, see Monitor and control\n actions taken with assumed roles in the\n IAM User Guide.

\n

The regex used to validate this parameter is a string of characters \n consisting of upper- and lower-case alphanumeric characters with no spaces. You can \n also include underscores or any of the following characters: =,.@-

" } } }, @@ -2771,6 +2774,96 @@ "smithy.api#output": {} } }, + "com.amazonaws.sts#AssumeRoot": { + "type": "operation", + "input": { + "target": "com.amazonaws.sts#AssumeRootRequest" + }, + "output": { + "target": "com.amazonaws.sts#AssumeRootResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sts#ExpiredTokenException" + }, + { + "target": "com.amazonaws.sts#RegionDisabledException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a set of short term credentials you can use to perform privileged tasks in a\n member account.

\n

Before you can launch a privileged session, you must have enabled centralized root\n access in your organization. For steps to enable this feature, see Centralize root access for member accounts in the IAM User\n Guide.

\n \n

The global endpoint is not supported for AssumeRoot. You must send this request to a\n Regional STS endpoint. For more information, see Endpoints.

\n
\n

You can track AssumeRoot in CloudTrail logs to determine what actions were performed in a\n session. For more information, see Track privileged tasks\n in CloudTrail in the IAM User Guide.

", + "smithy.api#examples": [ + { + "title": "To launch a privileged session", + "documentation": "The following command retrieves a set of short-term credentials you can use to unlock an S3 bucket for a member account by removing the bucket policy.", + "input": { + "TargetPrincipal": "111122223333", + "TaskPolicyArn": { + "arn": "arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy" + }, + "DurationSeconds": 900 + }, + "output": { + "Credentials": { + "SecretAccessKey": "9drTJvcXLB89EXAMPLELB8923FB892xMFI", + "SessionToken": "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=", + "Expiration": "2024-11-15T00:05:07Z", + "AccessKeyId": "ASIAJEXAMPLEXEG2JICEA" + }, + "SourceIdentity": "Alice" + } + } + ] + } + }, + "com.amazonaws.sts#AssumeRootRequest": { + "type": "structure", + "members": { + "TargetPrincipal": { + "target": "com.amazonaws.sts#TargetPrincipalType", + "traits": { + "smithy.api#documentation": "

The member account principal ARN or account ID.

", + "smithy.api#required": {} + } + }, + "TaskPolicyArn": { + "target": "com.amazonaws.sts#PolicyDescriptorType", + "traits": { + "smithy.api#documentation": "

The identity based policy that scopes the session to the privileged tasks that can be\n performed. You can use one of following Amazon Web Services managed policies to scope\n root session actions. You can add additional customer managed policies to further limit the\n permissions for the root session.

\n ", + "smithy.api#required": {} + } + }, + "DurationSeconds": { + "target": "com.amazonaws.sts#RootDurationSecondsType", + "traits": { + "smithy.api#documentation": "

The duration, in seconds, of the privileged session. The value can range from 0 seconds\n up to the maximum session duration of 900 seconds (15 minutes). If you specify a value\n higher than this setting, the operation fails.

\n

By default, the value is set to 900 seconds.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sts#AssumeRootResponse": { + "type": "structure", + "members": { + "Credentials": { + "target": "com.amazonaws.sts#Credentials", + "traits": { + "smithy.api#documentation": "

The temporary security credentials, which include an access key ID, a secret access key,\n and a security token.

\n \n

The size of the security token that STS API operations return is not fixed. We\n strongly recommend that you make no assumptions about the maximum size.

\n
" + } + }, + "SourceIdentity": { + "target": "com.amazonaws.sts#sourceIdentityType", + "traits": { + "smithy.api#documentation": "

The source identity specified by the principal that is calling the\n AssumeRoot operation.

\n

You can use the aws:SourceIdentity condition key to control access based on\n the value of source identity. For more information about using source identity, see Monitor and control\n actions taken with assumed roles in the\n IAM User Guide.

\n

The regex used to validate this parameter is a string of characters consisting of upper-\n and lower-case alphanumeric characters with no spaces. You can also include underscores or\n any of the following characters: =,.@-

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sts#AssumedRoleUser": { "type": "structure", "members": { @@ -2990,6 +3083,24 @@ "Account": "123456789012", "Arn": "arn:aws:iam::123456789012:user/Alice" } + }, + { + "title": "To get details about a calling user federated with AssumeRole", + "documentation": "This example shows a request and response made with temporary credentials created by AssumeRole. The name of the assumed role is my-role-name, and the RoleSessionName is set to my-role-session-name.", + "output": { + "UserId": "AKIAI44QH8DHBEXAMPLE:my-role-session-name", + "Account": "123456789012", + "Arn": "arn:aws:sts::123456789012:assumed-role/my-role-name/my-role-session-name" + } + }, + { + "title": "To get details about a calling user federated with GetFederationToken", + "documentation": "This example shows a request and response made with temporary credentials created by using GetFederationToken. The Name parameter is set to my-federated-user-name.", + "output": { + "UserId": "123456789012:my-federated-user-name", + "Account": "123456789012", + "Arn": "arn:aws:sts::123456789012:federated-user/my-federated-user-name" + } } ] } @@ -3048,7 +3159,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a set of temporary security credentials (consisting of an access key ID, a\n secret access key, and a security token) for a user. A typical use is in a proxy\n application that gets temporary security credentials on behalf of distributed applications\n inside a corporate network.

\n

You must call the GetFederationToken operation using the long-term security\n credentials of an IAM user. As a result, this call is appropriate in\n contexts where those credentials can be safeguarded, usually in a server-based application.\n For a comparison of GetFederationToken with the other API operations that\n produce temporary credentials, see Requesting Temporary Security\n Credentials and Comparing the\n Amazon Web Services STS API operations in the IAM User Guide.

\n

Although it is possible to call GetFederationToken using the security\n credentials of an Amazon Web Services account root user rather than an IAM user that you\n create for the purpose of a proxy application, we do not recommend it. For more\n information, see Safeguard your root user credentials and don't use them for everyday tasks in the\n IAM User Guide.

\n \n

You can create a mobile-based or browser-based app that can authenticate users using\n a web identity provider like Login with Amazon, Facebook, Google, or an OpenID\n Connect-compatible identity provider. In this case, we recommend that you use Amazon Cognito or\n AssumeRoleWithWebIdentity. For more information, see Federation Through a Web-based Identity Provider in the\n IAM User Guide.

\n
\n

\n Session duration\n

\n

The temporary credentials are valid for the specified duration, from 900 seconds (15\n minutes) up to a maximum of 129,600 seconds (36 hours). The default session duration is\n 43,200 seconds (12 hours). Temporary credentials obtained by using the root user\n credentials have a maximum duration of 3,600 seconds (1 hour).

\n

\n Permissions\n

\n

You can use the temporary credentials created by GetFederationToken in any\n Amazon Web Services service with the following exceptions:

\n
    \n
  • \n

    You cannot call any IAM operations using the CLI or the Amazon Web Services API. This\n limitation does not apply to console sessions.

    \n
  • \n
  • \n

    You cannot call any STS operations except GetCallerIdentity.

    \n
  • \n
\n

You can use temporary credentials for single sign-on (SSO) to the console.

\n

You must pass an inline or managed session policy to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n managed session policies. The plaintext that you use for both inline and managed session\n policies can't exceed 2,048 characters.

\n

Though the session policy parameters are optional, if you do not pass a policy, then the\n resulting federated user session has no permissions. When you pass session policies, the\n session permissions are the intersection of the IAM user policies and the\n session policies that you pass. This gives you a way to further restrict the permissions\n for a federated user. You cannot use session policies to grant more permissions than those\n that are defined in the permissions policy of the IAM user. For more\n information, see Session Policies in\n the IAM User Guide. For information about using\n GetFederationToken to create temporary security credentials, see GetFederationToken—Federation Through a Custom Identity Broker.

\n

You can use the credentials to access a resource that has a resource-based policy. If\n that policy specifically references the federated user session in the\n Principal element of the policy, the session has the permissions allowed by\n the policy. These permissions are granted in addition to the permissions granted by the\n session policies.

\n

\n Tags\n

\n

(Optional) You can pass tag key-value pairs to your session. These are called session\n tags. For more information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n \n

You can create a mobile-based or browser-based app that can authenticate users using\n a web identity provider like Login with Amazon, Facebook, Google, or an OpenID\n Connect-compatible identity provider. In this case, we recommend that you use Amazon Cognito or\n AssumeRoleWithWebIdentity. For more information, see Federation Through a Web-based Identity Provider in the\n IAM User Guide.

\n
\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

Tag key–value pairs are not case sensitive, but case is preserved. This means that you\n cannot have separate Department and department tag keys. Assume\n that the user that you are federating has the\n Department=Marketing tag and you pass the\n department=engineering session tag. Department\n and department are not saved as separate tags, and the session tag passed in\n the request takes precedence over the user tag.

", + "smithy.api#documentation": "

Returns a set of temporary security credentials (consisting of an access key ID, a\n secret access key, and a security token) for a user. A typical use is in a proxy\n application that gets temporary security credentials on behalf of distributed applications\n inside a corporate network.

\n

You must call the GetFederationToken operation using the long-term security\n credentials of an IAM user. As a result, this call is appropriate in\n contexts where those credentials can be safeguarded, usually in a server-based application.\n For a comparison of GetFederationToken with the other API operations that\n produce temporary credentials, see Requesting Temporary Security\n Credentials and Compare STS\n credentials in the IAM User Guide.

\n

Although it is possible to call GetFederationToken using the security\n credentials of an Amazon Web Services account root user rather than an IAM user that you\n create for the purpose of a proxy application, we do not recommend it. For more\n information, see Safeguard your root user credentials and don't use them for everyday tasks in the\n IAM User Guide.

\n \n

You can create a mobile-based or browser-based app that can authenticate users using\n a web identity provider like Login with Amazon, Facebook, Google, or an OpenID\n Connect-compatible identity provider. In this case, we recommend that you use Amazon Cognito or\n AssumeRoleWithWebIdentity. For more information, see Federation Through a Web-based Identity Provider in the\n IAM User Guide.

\n
\n

\n Session duration\n

\n

The temporary credentials are valid for the specified duration, from 900 seconds (15\n minutes) up to a maximum of 129,600 seconds (36 hours). The default session duration is\n 43,200 seconds (12 hours). Temporary credentials obtained by using the root user\n credentials have a maximum duration of 3,600 seconds (1 hour).

\n

\n Permissions\n

\n

You can use the temporary credentials created by GetFederationToken in any\n Amazon Web Services service with the following exceptions:

\n
    \n
  • \n

    You cannot call any IAM operations using the CLI or the Amazon Web Services API. This\n limitation does not apply to console sessions.

    \n
  • \n
  • \n

    You cannot call any STS operations except GetCallerIdentity.

    \n
  • \n
\n

You can use temporary credentials for single sign-on (SSO) to the console.

\n

You must pass an inline or managed session policy to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n managed session policies. The plaintext that you use for both inline and managed session\n policies can't exceed 2,048 characters.

\n

Though the session policy parameters are optional, if you do not pass a policy, then the\n resulting federated user session has no permissions. When you pass session policies, the\n session permissions are the intersection of the IAM user policies and the\n session policies that you pass. This gives you a way to further restrict the permissions\n for a federated user. You cannot use session policies to grant more permissions than those\n that are defined in the permissions policy of the IAM user. For more\n information, see Session Policies in\n the IAM User Guide. For information about using\n GetFederationToken to create temporary security credentials, see GetFederationToken—Federation Through a Custom Identity Broker.

\n

You can use the credentials to access a resource that has a resource-based policy. If\n that policy specifically references the federated user session in the\n Principal element of the policy, the session has the permissions allowed by\n the policy. These permissions are granted in addition to the permissions granted by the\n session policies.

\n

\n Tags\n

\n

(Optional) You can pass tag key-value pairs to your session. These are called session\n tags. For more information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n \n

You can create a mobile-based or browser-based app that can authenticate users using\n a web identity provider like Login with Amazon, Facebook, Google, or an OpenID\n Connect-compatible identity provider. In this case, we recommend that you use Amazon Cognito or\n AssumeRoleWithWebIdentity. For more information, see Federation Through a Web-based Identity Provider in the\n IAM User Guide.

\n
\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

Tag key–value pairs are not case sensitive, but case is preserved. This means that you\n cannot have separate Department and department tag keys. Assume\n that the user that you are federating has the\n Department=Marketing tag and you pass the\n department=engineering session tag. Department\n and department are not saved as separate tags, and the session tag passed in\n the request takes precedence over the user tag.

", "smithy.api#examples": [ { "title": "To get temporary credentials for a role by using GetFederationToken", @@ -3165,7 +3276,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a set of temporary credentials for an Amazon Web Services account or IAM user.\n The credentials consist of an access key ID, a secret access key, and a security token.\n Typically, you use GetSessionToken if you want to use MFA to protect\n programmatic calls to specific Amazon Web Services API operations like Amazon EC2\n StopInstances.

\n

MFA-enabled IAM users must call GetSessionToken and submit\n an MFA code that is associated with their MFA device. Using the temporary security\n credentials that the call returns, IAM users can then make programmatic\n calls to API operations that require MFA authentication. An incorrect MFA code causes the\n API to return an access denied error. For a comparison of GetSessionToken with\n the other API operations that produce temporary credentials, see Requesting\n Temporary Security Credentials and Comparing the\n Amazon Web Services STS API operations in the IAM User Guide.

\n \n

No permissions are required for users to perform this operation. The purpose of the\n sts:GetSessionToken operation is to authenticate the user using MFA. You\n cannot use policies to control authentication operations. For more information, see\n Permissions for GetSessionToken in the\n IAM User Guide.

\n
\n

\n Session Duration\n

\n

The GetSessionToken operation must be called by using the long-term Amazon Web Services\n security credentials of an IAM user. Credentials that are created by IAM users are valid for the duration that you specify. This duration can range\n from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours), with a default\n of 43,200 seconds (12 hours). Credentials based on account credentials can range from 900\n seconds (15 minutes) up to 3,600 seconds (1 hour), with a default of 1 hour.

\n

\n Permissions\n

\n

The temporary security credentials created by GetSessionToken can be used\n to make API calls to any Amazon Web Services service with the following exceptions:

\n
    \n
  • \n

    You cannot call any IAM API operations unless MFA authentication information is\n included in the request.

    \n
  • \n
  • \n

    You cannot call any STS API except\n AssumeRole or GetCallerIdentity.

    \n
  • \n
\n

The credentials that GetSessionToken returns are based on permissions\n associated with the IAM user whose credentials were used to call the\n operation. The temporary credentials have the same permissions as the IAM user.

\n \n

Although it is possible to call GetSessionToken using the security\n credentials of an Amazon Web Services account root user rather than an IAM user, we do\n not recommend it. If GetSessionToken is called using root user\n credentials, the temporary credentials have root user permissions. For more\n information, see Safeguard your root user credentials and don't use them for everyday tasks in the\n IAM User Guide\n

\n
\n

For more information about using GetSessionToken to create temporary\n credentials, see Temporary\n Credentials for Users in Untrusted Environments in the\n IAM User Guide.

", + "smithy.api#documentation": "

Returns a set of temporary credentials for an Amazon Web Services account or IAM user.\n The credentials consist of an access key ID, a secret access key, and a security token.\n Typically, you use GetSessionToken if you want to use MFA to protect\n programmatic calls to specific Amazon Web Services API operations like Amazon EC2\n StopInstances.

\n

MFA-enabled IAM users must call GetSessionToken and submit\n an MFA code that is associated with their MFA device. Using the temporary security\n credentials that the call returns, IAM users can then make programmatic\n calls to API operations that require MFA authentication. An incorrect MFA code causes the\n API to return an access denied error. For a comparison of GetSessionToken with\n the other API operations that produce temporary credentials, see Requesting\n Temporary Security Credentials and Compare STS\n credentials in the IAM User Guide.

\n \n

No permissions are required for users to perform this operation. The purpose of the\n sts:GetSessionToken operation is to authenticate the user using MFA. You\n cannot use policies to control authentication operations. For more information, see\n Permissions for GetSessionToken in the\n IAM User Guide.

\n
\n

\n Session Duration\n

\n

The GetSessionToken operation must be called by using the long-term Amazon Web Services\n security credentials of an IAM user. Credentials that are created by IAM users are valid for the duration that you specify. This duration can range\n from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours), with a default\n of 43,200 seconds (12 hours). Credentials based on account credentials can range from 900\n seconds (15 minutes) up to 3,600 seconds (1 hour), with a default of 1 hour.

\n

\n Permissions\n

\n

The temporary security credentials created by GetSessionToken can be used\n to make API calls to any Amazon Web Services service with the following exceptions:

\n
    \n
  • \n

    You cannot call any IAM API operations unless MFA authentication information is\n included in the request.

    \n
  • \n
  • \n

    You cannot call any STS API except\n AssumeRole or GetCallerIdentity.

    \n
  • \n
\n

The credentials that GetSessionToken returns are based on permissions\n associated with the IAM user whose credentials were used to call the\n operation. The temporary credentials have the same permissions as the IAM user.

\n \n

Although it is possible to call GetSessionToken using the security\n credentials of an Amazon Web Services account root user rather than an IAM user, we do\n not recommend it. If GetSessionToken is called using root user\n credentials, the temporary credentials have root user permissions. For more\n information, see Safeguard your root user credentials and don't use them for everyday tasks in the\n IAM User Guide\n

\n
\n

For more information about using GetSessionToken to create temporary\n credentials, see Temporary\n Credentials for Users in Untrusted Environments in the\n IAM User Guide.

", "smithy.api#examples": [ { "title": "To get temporary credentials for an IAM user or an AWS account", @@ -3240,7 +3351,7 @@ "code": "IDPCommunicationError", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The request could not be fulfilled because the identity provider (IDP) that\n was asked to verify the incoming identity token could not be reached. This is often a\n transient error caused by network conditions. Retry the request a limited number of\n times so that you don't exceed the request rate. If the error persists, the\n identity provider might be down or not responding.

", + "smithy.api#documentation": "

The request could not be fulfilled because the identity provider (IDP) that was asked\n to verify the incoming identity token could not be reached. This is often a transient\n error caused by network conditions. Retry the request a limited number of times so that\n you don't exceed the request rate. If the error persists, the identity provider might be\n down or not responding.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3274,7 +3385,7 @@ "code": "InvalidAuthorizationMessageException", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The error returned if the message passed to DecodeAuthorizationMessage\n was invalid. This can happen if the token contains invalid characters, such as\n linebreaks.

", + "smithy.api#documentation": "

The error returned if the message passed to DecodeAuthorizationMessage\n was invalid. This can happen if the token contains invalid characters, such as line\n breaks, or if the message has expired.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3331,7 +3442,7 @@ "code": "PackedPolicyTooLarge", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The request was rejected because the total packed size of the session policies and\n session tags combined was too large. An Amazon Web Services conversion compresses the session policy\n document, session policy ARNs, and session tags into a packed binary format that has a\n separate limit. The error message indicates by percentage how close the policies and\n tags are to the upper size limit. For more information, see Passing Session Tags in STS in\n the IAM User Guide.

\n

You could receive this error even though you meet other defined session policy and\n session tag limits. For more information, see IAM and STS Entity\n Character Limits in the IAM User Guide.

", + "smithy.api#documentation": "

The request was rejected because the total packed size of the session policies and\n session tags combined was too large. An Amazon Web Services conversion compresses the session policy\n document, session policy ARNs, and session tags into a packed binary format that has a\n separate limit. The error message indicates by percentage how close the policies and\n tags are to the upper size limit. For more information, see Passing Session Tags in STS in\n the IAM User Guide.

\n

You could receive this error even though you meet other defined session policy and\n session tag limits. For more information, see IAM and STS Entity Character Limits in the IAM User\n Guide.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3394,11 +3505,20 @@ "code": "RegionDisabledException", "httpResponseCode": 403 }, - "smithy.api#documentation": "

STS is not activated in the requested region for the account that is being asked to\n generate credentials. The account administrator must use the IAM console to activate STS\n in that region. For more information, see Activating and\n Deactivating Amazon Web Services STS in an Amazon Web Services Region in the IAM User\n Guide.

", + "smithy.api#documentation": "

STS is not activated in the requested region for the account that is being asked to\n generate credentials. The account administrator must use the IAM console to activate\n STS in that region. For more information, see Activating and\n Deactivating STS in an Amazon Web Services Region in the IAM User\n Guide.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } }, + "com.amazonaws.sts#RootDurationSecondsType": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 900 + } + } + }, "com.amazonaws.sts#SAMLAssertionType": { "type": "string", "traits": { @@ -3437,6 +3557,15 @@ "smithy.api#documentation": "

You can pass custom key-value pair attributes when you assume a role or federate a user.\n These are called session tags. You can then use the session tags to control access to\n resources. For more information, see Tagging Amazon Web Services STS Sessions in the\n IAM User Guide.

" } }, + "com.amazonaws.sts#TargetPrincipalType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 2048 + } + } + }, "com.amazonaws.sts#accessKeyIdType": { "type": "string", "traits": { From 6b6d9d09c490ea3464290fdd67c19bf30edd6eba Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 14 Nov 2024 19:05:40 +0000 Subject: [PATCH 18/20] Update endpoints model --- .../software/amazon/smithy/aws/go/codegen/endpoints.json | 1 + 1 file changed, 1 insertion(+) diff --git a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json index 8e8197e16f5..6b423320729 100644 --- a/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json +++ b/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json @@ -13780,6 +13780,7 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, "ca-central-1" : { }, "ca-west-1" : { }, "eu-central-1" : { }, From af5e138e30569c92ebb19066db3aa973e04c4bc9 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 14 Nov 2024 19:24:46 +0000 Subject: [PATCH 19/20] Regenerated Clients --- .../41575353444b40ffbf474f4155544f00.json | 8 + .../721a8b70805944d88cd6eb7d5f9beb3e.json | 8 + .../79f9753ebaf842a090345a87e34867df.json | 8 + .../7c0eff41e8964eacabe842b42a4b8e7f.json | 8 + .../7e1f7499964f48b78442815ebd0be8f0.json | 8 + .../7f7b098998bc46baba3dbe5b46b54bb0.json | 8 + .../8eb4e33dafcf42749dfcd4e06b371279.json | 8 + .../9ac04271ab2747019c6052cfc12b3080.json | 8 + .../9d893c93ad634d3caa4b9825c05a134a.json | 8 + .../adb73e9adf3946938a6ca8e0c4e988de.json | 8 + .../ca37627cb25e4750ad4feec0def644ba.json | 8 + .../cae5b68ad5014c38870a74a3936cae13.json | 8 + .../d52d1baf1bcc46e29a1244f54caf2a50.json | 8 + .../f4d160769d804d809058ff0c87e8eaf5.json | 8 + .../accessanalyzer/api_op_CreateAnalyzer.go | 12 +- .../accessanalyzer/api_op_GetArchiveRule.go | 3 +- .../api_op_ListAnalyzedResources.go | 3 +- .../accessanalyzer/api_op_UpdateAnalyzer.go | 162 + service/accessanalyzer/deserializers.go | 351 + service/accessanalyzer/generated.json | 1 + service/accessanalyzer/serializers.go | 178 + .../snapshot/api_op_UpdateAnalyzer.go.snap | 41 + service/accessanalyzer/snapshot_test.go | 24 + service/accessanalyzer/types/enums.go | 2 + service/accessanalyzer/types/types.go | 54 +- service/accessanalyzer/validators.go | 39 + .../api_op_GetResourceRequestStatus.go | 4 + service/cloudcontrol/deserializers.go | 158 + service/cloudcontrol/endpoints.go | 2 +- service/cloudcontrol/types/enums.go | 32 +- service/cloudcontrol/types/types.go | 55 + service/deadline/deserializers.go | 129 + service/deadline/serializers.go | 58 + service/deadline/types/enums.go | 23 + service/deadline/types/types.go | 45 +- service/deadline/validators.go | 61 + service/iam/api_op_CreateLoginProfile.go | 22 +- service/iam/api_op_DeactivateMFADevice.go | 7 +- service/iam/api_op_DeleteLoginProfile.go | 10 +- ...eOrganizationsRootCredentialsManagement.go | 155 + ...api_op_DisableOrganizationsRootSessions.go | 155 + ...eOrganizationsRootCredentialsManagement.go | 166 + .../api_op_EnableOrganizationsRootSessions.go | 165 + service/iam/api_op_GetLoginProfile.go | 10 +- service/iam/api_op_ListAccountAliases.go | 4 +- .../iam/api_op_ListOrganizationsFeatures.go | 154 + service/iam/deserializers.go | 1567 +- service/iam/generated.json | 5 + service/iam/serializers.go | 365 + .../api_op_CreateLoginProfile.go.snap | 1 - .../api_op_DeleteLoginProfile.go.snap | 1 - ...nizationsRootCredentialsManagement.go.snap | 40 + ...p_DisableOrganizationsRootSessions.go.snap | 40 + ...nizationsRootCredentialsManagement.go.snap | 40 + ...op_EnableOrganizationsRootSessions.go.snap | 40 + .../snapshot/api_op_GetLoginProfile.go.snap | 1 - .../api_op_ListOrganizationsFeatures.go.snap | 40 + service/iam/snapshot_test.go | 120 + service/iam/types/enums.go | 21 + service/iam/types/errors.go | 146 + service/iam/validators.go | 123 - service/iotwireless/api_op_CreateFuotaTask.go | 5 + service/iotwireless/api_op_GetFuotaTask.go | 5 + .../api_op_GetLogLevelsByResourceTypes.go | 3 + .../iotwireless/api_op_GetResourceLogLevel.go | 6 +- .../iotwireless/api_op_PutResourceLogLevel.go | 3 +- .../api_op_ResetAllResourceLogLevels.go | 4 +- .../api_op_ResetResourceLogLevel.go | 6 +- service/iotwireless/api_op_UpdateFuotaTask.go | 5 + .../api_op_UpdateLogLevelsByResourceTypes.go | 3 + service/iotwireless/deserializers.go | 275 + service/iotwireless/serializers.go | 121 + service/iotwireless/types/enums.go | 38 + service/iotwireless/types/types.go | 71 + service/iotwireless/validators.go | 80 + service/ivs/api_op_CreateChannel.go | 10 + service/ivs/api_op_UpdateChannel.go | 10 + service/ivs/deserializers.go | 222 + service/ivs/serializers.go | 46 + service/ivs/types/enums.go | 59 + service/ivs/types/types.go | 145 +- .../api_op_AssociateUser.go | 12 +- .../api_op_CreateLicenseServerEndpoint.go | 174 + .../api_op_DeleteLicenseServerEndpoint.go | 163 + .../api_op_DeregisterIdentityProvider.go | 14 +- .../api_op_DisassociateUser.go | 23 +- .../api_op_ListIdentityProviders.go | 23 +- .../api_op_ListInstances.go | 21 +- .../api_op_ListLicenseServerEndpoints.go | 263 + .../api_op_ListProductSubscriptions.go | 29 +- .../api_op_ListTagsForResource.go | 156 + .../api_op_ListUserAssociations.go | 20 +- .../api_op_RegisterIdentityProvider.go | 8 +- .../api_op_StartProductSubscription.go | 9 +- .../api_op_StopProductSubscription.go | 17 +- .../api_op_TagResource.go | 157 + .../api_op_UntagResource.go | 158 + .../api_op_UpdateIdentityProviderSettings.go | 22 +- .../deserializers.go | 2383 ++- .../endpoints.go | 2 +- .../generated.json | 7 + .../serializers.go | 1074 +- ...api_op_CreateLicenseServerEndpoint.go.snap | 41 + ...api_op_DeleteLicenseServerEndpoint.go.snap | 41 + .../api_op_ListLicenseServerEndpoints.go.snap | 40 + .../api_op_ListTagsForResource.go.snap | 41 + .../snapshot/api_op_TagResource.go.snap | 41 + .../snapshot/api_op_UntagResource.go.snap | 41 + .../snapshot_test.go | 144 + .../types/enums.go | 100 + .../types/types.go | 229 +- .../types/types_exported_test.go | 36 + .../validators.go | 396 +- service/mq/internal/endpoints/endpoints.go | 3 + service/partnercentralselling/LICENSE.txt | 202 + service/partnercentralselling/api_client.go | 929 ++ .../partnercentralselling/api_client_test.go | 127 + .../api_op_AssignOpportunity.go | 181 + .../api_op_AssociateOpportunity.go | 217 + .../api_op_CreateOpportunity.go | 345 + .../api_op_DisassociateOpportunity.go | 211 + .../api_op_GetAwsOpportunitySummary.go | 229 + .../api_op_GetEngagementInvitation.go | 219 + .../api_op_GetOpportunity.go | 285 + .../api_op_ListEngagementInvitations.go | 288 + .../api_op_ListOpportunities.go | 328 + .../api_op_ListSolutions.go | 296 + .../api_op_RejectEngagementInvitation.go | 181 + ...tartEngagementByAcceptingInvitationTask.go | 245 + ...i_op_StartEngagementFromOpportunityTask.go | 244 + .../api_op_UpdateOpportunity.go | 273 + service/partnercentralselling/auth.go | 313 + .../partnercentralselling/deserializers.go | 6132 +++++++ service/partnercentralselling/doc.go | 53 + service/partnercentralselling/endpoints.go | 537 + .../endpoints_config_test.go | 139 + .../partnercentralselling/endpoints_test.go | 820 + service/partnercentralselling/generated.json | 47 + service/partnercentralselling/go.mod | 16 + service/partnercentralselling/go.sum | 2 + .../go_module_metadata.go | 6 + .../internal/endpoints/endpoints.go | 296 + .../internal/endpoints/endpoints_test.go | 11 + service/partnercentralselling/options.go | 236 + .../partnercentralselling/protocol_test.go | 3 + service/partnercentralselling/serializers.go | 2079 +++ .../snapshot/api_op_AssignOpportunity.go.snap | 41 + .../api_op_AssociateOpportunity.go.snap | 41 + .../snapshot/api_op_CreateOpportunity.go.snap | 42 + .../api_op_DisassociateOpportunity.go.snap | 41 + .../api_op_GetAwsOpportunitySummary.go.snap | 41 + .../api_op_GetEngagementInvitation.go.snap | 41 + .../snapshot/api_op_GetOpportunity.go.snap | 41 + .../api_op_ListEngagementInvitations.go.snap | 41 + .../snapshot/api_op_ListOpportunities.go.snap | 41 + .../snapshot/api_op_ListSolutions.go.snap | 41 + .../api_op_RejectEngagementInvitation.go.snap | 41 + ...ngagementByAcceptingInvitationTask.go.snap | 42 + ...StartEngagementFromOpportunityTask.go.snap | 42 + .../snapshot/api_op_UpdateOpportunity.go.snap | 41 + .../partnercentralselling/snapshot_test.go | 398 + service/partnercentralselling/types/enums.go | 1959 +++ service/partnercentralselling/types/errors.go | 227 + service/partnercentralselling/types/types.go | 1497 ++ .../types/types_exported_test.go | 44 + service/partnercentralselling/validators.go | 953 ++ service/quicksight/api_op_CreateBrand.go | 174 + .../api_op_CreateCustomPermissions.go | 175 + service/quicksight/api_op_DeleteBrand.go | 161 + .../api_op_DeleteBrandAssignment.go | 156 + .../api_op_DeleteCustomPermissions.go | 168 + .../api_op_DeleteUserCustomPermission.go | 170 + service/quicksight/api_op_DescribeBrand.go | 171 + .../api_op_DescribeBrandAssignment.go | 159 + .../api_op_DescribeBrandPublishedVersion.go | 168 + .../api_op_DescribeCustomPermissions.go | 169 + service/quicksight/api_op_ListBrands.go | 260 + .../api_op_ListCustomPermissions.go | 267 + service/quicksight/api_op_UpdateBrand.go | 171 + .../api_op_UpdateBrandAssignment.go | 164 + .../api_op_UpdateBrandPublishedVersion.go | 169 + .../api_op_UpdateCustomPermissions.go | 172 + .../api_op_UpdateUserCustomPermission.go | 175 + service/quicksight/deserializers.go | 13519 ++++++++++------ service/quicksight/generated.json | 17 + service/quicksight/serializers.go | 5618 ++++--- .../snapshot/api_op_CreateBrand.go.snap | 41 + .../api_op_CreateCustomPermissions.go.snap | 41 + .../snapshot/api_op_DeleteBrand.go.snap | 41 + .../api_op_DeleteBrandAssignment.go.snap | 41 + .../api_op_DeleteCustomPermissions.go.snap | 41 + .../api_op_DeleteUserCustomPermission.go.snap | 41 + .../snapshot/api_op_DescribeBrand.go.snap | 41 + .../api_op_DescribeBrandAssignment.go.snap | 41 + ...i_op_DescribeBrandPublishedVersion.go.snap | 41 + .../api_op_DescribeCustomPermissions.go.snap | 41 + .../snapshot/api_op_ListBrands.go.snap | 41 + .../api_op_ListCustomPermissions.go.snap | 41 + .../snapshot/api_op_UpdateBrand.go.snap | 41 + .../api_op_UpdateBrandAssignment.go.snap | 41 + ...api_op_UpdateBrandPublishedVersion.go.snap | 41 + .../api_op_UpdateCustomPermissions.go.snap | 41 + .../api_op_UpdateUserCustomPermission.go.snap | 41 + service/quicksight/snapshot_test.go | 408 + service/quicksight/types/enums.go | 63 + service/quicksight/types/errors.go | 26 + service/quicksight/types/types.go | 370 + .../quicksight/types/types_exported_test.go | 21 + service/quicksight/validators.go | 835 +- service/redshift/deserializers.go | 166 + service/redshift/serializers.go | 50 + service/redshift/types/types.go | 40 + service/redshift/types/types_exported_test.go | 22 + service/redshift/validators.go | 56 + service/s3/api_op_AbortMultipartUpload.go | 2 +- service/s3/api_op_ListBuckets.go | 12 + service/s3/api_op_ListDirectoryBuckets.go | 3 + service/s3/api_op_ListMultipartUploads.go | 2 +- service/sagemaker/types/enums.go | 352 +- service/sts/api_op_AssumeRole.go | 50 +- service/sts/api_op_AssumeRoleWithSAML.go | 12 +- .../sts/api_op_AssumeRoleWithWebIdentity.go | 48 +- service/sts/api_op_AssumeRoot.go | 221 + service/sts/api_op_GetFederationToken.go | 4 +- service/sts/api_op_GetSessionToken.go | 4 +- service/sts/deserializers.go | 170 + service/sts/generated.json | 1 + service/sts/serializers.go | 94 + .../sts/snapshot/api_op_AssumeRoot.go.snap | 41 + service/sts/snapshot_test.go | 24 + service/sts/types/errors.go | 8 +- service/sts/validators.go | 42 + 232 files changed, 51506 insertions(+), 7638 deletions(-) create mode 100644 .changelog/41575353444b40ffbf474f4155544f00.json create mode 100644 .changelog/721a8b70805944d88cd6eb7d5f9beb3e.json create mode 100644 .changelog/79f9753ebaf842a090345a87e34867df.json create mode 100644 .changelog/7c0eff41e8964eacabe842b42a4b8e7f.json create mode 100644 .changelog/7e1f7499964f48b78442815ebd0be8f0.json create mode 100644 .changelog/7f7b098998bc46baba3dbe5b46b54bb0.json create mode 100644 .changelog/8eb4e33dafcf42749dfcd4e06b371279.json create mode 100644 .changelog/9ac04271ab2747019c6052cfc12b3080.json create mode 100644 .changelog/9d893c93ad634d3caa4b9825c05a134a.json create mode 100644 .changelog/adb73e9adf3946938a6ca8e0c4e988de.json create mode 100644 .changelog/ca37627cb25e4750ad4feec0def644ba.json create mode 100644 .changelog/cae5b68ad5014c38870a74a3936cae13.json create mode 100644 .changelog/d52d1baf1bcc46e29a1244f54caf2a50.json create mode 100644 .changelog/f4d160769d804d809058ff0c87e8eaf5.json create mode 100644 service/accessanalyzer/api_op_UpdateAnalyzer.go create mode 100644 service/accessanalyzer/snapshot/api_op_UpdateAnalyzer.go.snap create mode 100644 service/iam/api_op_DisableOrganizationsRootCredentialsManagement.go create mode 100644 service/iam/api_op_DisableOrganizationsRootSessions.go create mode 100644 service/iam/api_op_EnableOrganizationsRootCredentialsManagement.go create mode 100644 service/iam/api_op_EnableOrganizationsRootSessions.go create mode 100644 service/iam/api_op_ListOrganizationsFeatures.go create mode 100644 service/iam/snapshot/api_op_DisableOrganizationsRootCredentialsManagement.go.snap create mode 100644 service/iam/snapshot/api_op_DisableOrganizationsRootSessions.go.snap create mode 100644 service/iam/snapshot/api_op_EnableOrganizationsRootCredentialsManagement.go.snap create mode 100644 service/iam/snapshot/api_op_EnableOrganizationsRootSessions.go.snap create mode 100644 service/iam/snapshot/api_op_ListOrganizationsFeatures.go.snap create mode 100644 service/licensemanagerusersubscriptions/api_op_CreateLicenseServerEndpoint.go create mode 100644 service/licensemanagerusersubscriptions/api_op_DeleteLicenseServerEndpoint.go create mode 100644 service/licensemanagerusersubscriptions/api_op_ListLicenseServerEndpoints.go create mode 100644 service/licensemanagerusersubscriptions/api_op_ListTagsForResource.go create mode 100644 service/licensemanagerusersubscriptions/api_op_TagResource.go create mode 100644 service/licensemanagerusersubscriptions/api_op_UntagResource.go create mode 100644 service/licensemanagerusersubscriptions/snapshot/api_op_CreateLicenseServerEndpoint.go.snap create mode 100644 service/licensemanagerusersubscriptions/snapshot/api_op_DeleteLicenseServerEndpoint.go.snap create mode 100644 service/licensemanagerusersubscriptions/snapshot/api_op_ListLicenseServerEndpoints.go.snap create mode 100644 service/licensemanagerusersubscriptions/snapshot/api_op_ListTagsForResource.go.snap create mode 100644 service/licensemanagerusersubscriptions/snapshot/api_op_TagResource.go.snap create mode 100644 service/licensemanagerusersubscriptions/snapshot/api_op_UntagResource.go.snap create mode 100644 service/licensemanagerusersubscriptions/types/enums.go create mode 100644 service/partnercentralselling/LICENSE.txt create mode 100644 service/partnercentralselling/api_client.go create mode 100644 service/partnercentralselling/api_client_test.go create mode 100644 service/partnercentralselling/api_op_AssignOpportunity.go create mode 100644 service/partnercentralselling/api_op_AssociateOpportunity.go create mode 100644 service/partnercentralselling/api_op_CreateOpportunity.go create mode 100644 service/partnercentralselling/api_op_DisassociateOpportunity.go create mode 100644 service/partnercentralselling/api_op_GetAwsOpportunitySummary.go create mode 100644 service/partnercentralselling/api_op_GetEngagementInvitation.go create mode 100644 service/partnercentralselling/api_op_GetOpportunity.go create mode 100644 service/partnercentralselling/api_op_ListEngagementInvitations.go create mode 100644 service/partnercentralselling/api_op_ListOpportunities.go create mode 100644 service/partnercentralselling/api_op_ListSolutions.go create mode 100644 service/partnercentralselling/api_op_RejectEngagementInvitation.go create mode 100644 service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go create mode 100644 service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go create mode 100644 service/partnercentralselling/api_op_UpdateOpportunity.go create mode 100644 service/partnercentralselling/auth.go create mode 100644 service/partnercentralselling/deserializers.go create mode 100644 service/partnercentralselling/doc.go create mode 100644 service/partnercentralselling/endpoints.go create mode 100644 service/partnercentralselling/endpoints_config_test.go create mode 100644 service/partnercentralselling/endpoints_test.go create mode 100644 service/partnercentralselling/generated.json create mode 100644 service/partnercentralselling/go.mod create mode 100644 service/partnercentralselling/go.sum create mode 100644 service/partnercentralselling/go_module_metadata.go create mode 100644 service/partnercentralselling/internal/endpoints/endpoints.go create mode 100644 service/partnercentralselling/internal/endpoints/endpoints_test.go create mode 100644 service/partnercentralselling/options.go create mode 100644 service/partnercentralselling/protocol_test.go create mode 100644 service/partnercentralselling/serializers.go create mode 100644 service/partnercentralselling/snapshot/api_op_AssignOpportunity.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_AssociateOpportunity.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_CreateOpportunity.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_DisassociateOpportunity.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_GetAwsOpportunitySummary.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_GetEngagementInvitation.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_GetOpportunity.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListEngagementInvitations.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListOpportunities.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_ListSolutions.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_RejectEngagementInvitation.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_StartEngagementByAcceptingInvitationTask.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_StartEngagementFromOpportunityTask.go.snap create mode 100644 service/partnercentralselling/snapshot/api_op_UpdateOpportunity.go.snap create mode 100644 service/partnercentralselling/snapshot_test.go create mode 100644 service/partnercentralselling/types/enums.go create mode 100644 service/partnercentralselling/types/errors.go create mode 100644 service/partnercentralselling/types/types.go create mode 100644 service/partnercentralselling/types/types_exported_test.go create mode 100644 service/partnercentralselling/validators.go create mode 100644 service/quicksight/api_op_CreateBrand.go create mode 100644 service/quicksight/api_op_CreateCustomPermissions.go create mode 100644 service/quicksight/api_op_DeleteBrand.go create mode 100644 service/quicksight/api_op_DeleteBrandAssignment.go create mode 100644 service/quicksight/api_op_DeleteCustomPermissions.go create mode 100644 service/quicksight/api_op_DeleteUserCustomPermission.go create mode 100644 service/quicksight/api_op_DescribeBrand.go create mode 100644 service/quicksight/api_op_DescribeBrandAssignment.go create mode 100644 service/quicksight/api_op_DescribeBrandPublishedVersion.go create mode 100644 service/quicksight/api_op_DescribeCustomPermissions.go create mode 100644 service/quicksight/api_op_ListBrands.go create mode 100644 service/quicksight/api_op_ListCustomPermissions.go create mode 100644 service/quicksight/api_op_UpdateBrand.go create mode 100644 service/quicksight/api_op_UpdateBrandAssignment.go create mode 100644 service/quicksight/api_op_UpdateBrandPublishedVersion.go create mode 100644 service/quicksight/api_op_UpdateCustomPermissions.go create mode 100644 service/quicksight/api_op_UpdateUserCustomPermission.go create mode 100644 service/quicksight/snapshot/api_op_CreateBrand.go.snap create mode 100644 service/quicksight/snapshot/api_op_CreateCustomPermissions.go.snap create mode 100644 service/quicksight/snapshot/api_op_DeleteBrand.go.snap create mode 100644 service/quicksight/snapshot/api_op_DeleteBrandAssignment.go.snap create mode 100644 service/quicksight/snapshot/api_op_DeleteCustomPermissions.go.snap create mode 100644 service/quicksight/snapshot/api_op_DeleteUserCustomPermission.go.snap create mode 100644 service/quicksight/snapshot/api_op_DescribeBrand.go.snap create mode 100644 service/quicksight/snapshot/api_op_DescribeBrandAssignment.go.snap create mode 100644 service/quicksight/snapshot/api_op_DescribeBrandPublishedVersion.go.snap create mode 100644 service/quicksight/snapshot/api_op_DescribeCustomPermissions.go.snap create mode 100644 service/quicksight/snapshot/api_op_ListBrands.go.snap create mode 100644 service/quicksight/snapshot/api_op_ListCustomPermissions.go.snap create mode 100644 service/quicksight/snapshot/api_op_UpdateBrand.go.snap create mode 100644 service/quicksight/snapshot/api_op_UpdateBrandAssignment.go.snap create mode 100644 service/quicksight/snapshot/api_op_UpdateBrandPublishedVersion.go.snap create mode 100644 service/quicksight/snapshot/api_op_UpdateCustomPermissions.go.snap create mode 100644 service/quicksight/snapshot/api_op_UpdateUserCustomPermission.go.snap create mode 100644 service/sts/api_op_AssumeRoot.go create mode 100644 service/sts/snapshot/api_op_AssumeRoot.go.snap diff --git a/.changelog/41575353444b40ffbf474f4155544f00.json b/.changelog/41575353444b40ffbf474f4155544f00.json new file mode 100644 index 00000000000..102334aa2ad --- /dev/null +++ b/.changelog/41575353444b40ffbf474f4155544f00.json @@ -0,0 +1,8 @@ +{ + "id": "41575353-444b-40ff-bf47-4f4155544f00", + "type": "release", + "description": "New AWS service client module", + "modules": [ + "service/partnercentralselling" + ] +} \ No newline at end of file diff --git a/.changelog/721a8b70805944d88cd6eb7d5f9beb3e.json b/.changelog/721a8b70805944d88cd6eb7d5f9beb3e.json new file mode 100644 index 00000000000..7b3a77ae6e2 --- /dev/null +++ b/.changelog/721a8b70805944d88cd6eb7d5f9beb3e.json @@ -0,0 +1,8 @@ +{ + "id": "721a8b70-8059-44d8-8cd6-eb7d5f9beb3e", + "type": "feature", + "description": "Expand analyzer configuration capabilities for unused access analyzers. Unused access analyzer configurations now support the ability to exclude accounts and resource tags from analysis providing more granular control over the scope of analysis.", + "modules": [ + "service/accessanalyzer" + ] +} \ No newline at end of file diff --git a/.changelog/79f9753ebaf842a090345a87e34867df.json b/.changelog/79f9753ebaf842a090345a87e34867df.json new file mode 100644 index 00000000000..db4c383e80a --- /dev/null +++ b/.changelog/79f9753ebaf842a090345a87e34867df.json @@ -0,0 +1,8 @@ +{ + "id": "79f9753e-baf8-42a0-9034-5a87e34867df", + "type": "feature", + "description": "Add support for Neuron instance types [ trn1/trn1n/inf2 ] on SageMaker Notebook Instances Platform.", + "modules": [ + "service/sagemaker" + ] +} \ No newline at end of file diff --git a/.changelog/7c0eff41e8964eacabe842b42a4b8e7f.json b/.changelog/7c0eff41e8964eacabe842b42a4b8e7f.json new file mode 100644 index 00000000000..9d3c8df59bc --- /dev/null +++ b/.changelog/7c0eff41e8964eacabe842b42a4b8e7f.json @@ -0,0 +1,8 @@ +{ + "id": "7c0eff41-e896-4eac-abe8-42b42a4b8e7f", + "type": "feature", + "description": "This release adds APIs for Custom Permissions management in QuickSight, and APIs to support QuickSight Branding.", + "modules": [ + "service/quicksight" + ] +} \ No newline at end of file diff --git a/.changelog/7e1f7499964f48b78442815ebd0be8f0.json b/.changelog/7e1f7499964f48b78442815ebd0be8f0.json new file mode 100644 index 00000000000..1b902afa49b --- /dev/null +++ b/.changelog/7e1f7499964f48b78442815ebd0be8f0.json @@ -0,0 +1,8 @@ +{ + "id": "7e1f7499-964f-48b7-8442-815ebd0be8f0", + "type": "feature", + "description": "Adds support for Amazon Redshift S3AccessGrants", + "modules": [ + "service/redshift" + ] +} \ No newline at end of file diff --git a/.changelog/7f7b098998bc46baba3dbe5b46b54bb0.json b/.changelog/7f7b098998bc46baba3dbe5b46b54bb0.json new file mode 100644 index 00000000000..42fab34c9c5 --- /dev/null +++ b/.changelog/7f7b098998bc46baba3dbe5b46b54bb0.json @@ -0,0 +1,8 @@ +{ + "id": "7f7b0989-98bc-46ba-ba3d-be5b46b54bb0", + "type": "feature", + "description": "Added support for CloudFormation Hooks with Cloud Control API. The GetResourceRequestStatus API response now includes an optional HooksProgressEvent and HooksRequestToken parameter for Hooks Invocation Progress as part of resource operation with Cloud Control.", + "modules": [ + "service/cloudcontrol" + ] +} \ No newline at end of file diff --git a/.changelog/8eb4e33dafcf42749dfcd4e06b371279.json b/.changelog/8eb4e33dafcf42749dfcd4e06b371279.json new file mode 100644 index 00000000000..2643bc6ef51 --- /dev/null +++ b/.changelog/8eb4e33dafcf42749dfcd4e06b371279.json @@ -0,0 +1,8 @@ +{ + "id": "8eb4e33d-afcf-4274-9dfc-d4e06b371279", + "type": "feature", + "description": "New and updated API operations to support License Included User-based Subscription of Microsoft Remote Desktop Services (RDS).", + "modules": [ + "service/licensemanagerusersubscriptions" + ] +} \ No newline at end of file diff --git a/.changelog/9ac04271ab2747019c6052cfc12b3080.json b/.changelog/9ac04271ab2747019c6052cfc12b3080.json new file mode 100644 index 00000000000..2b4cdde82e2 --- /dev/null +++ b/.changelog/9ac04271ab2747019c6052cfc12b3080.json @@ -0,0 +1,8 @@ +{ + "id": "9ac04271-ab27-4701-9c60-52cfc12b3080", + "type": "feature", + "description": "Adds support for select GPU accelerated instance types when creating new service-managed fleets.", + "modules": [ + "service/deadline" + ] +} \ No newline at end of file diff --git a/.changelog/9d893c93ad634d3caa4b9825c05a134a.json b/.changelog/9d893c93ad634d3caa4b9825c05a134a.json new file mode 100644 index 00000000000..15aac1e41b8 --- /dev/null +++ b/.changelog/9d893c93ad634d3caa4b9825c05a134a.json @@ -0,0 +1,8 @@ +{ + "id": "9d893c93-ad63-4d3c-aa4b-9825c05a134a", + "type": "feature", + "description": "Announcing AWS Partner Central API for Selling: This service launch Introduces new APIs for co-selling opportunity management and related functions. Key features include notifications, a dynamic sandbox for testing, and streamlined validations.", + "modules": [ + "service/partnercentralselling" + ] +} \ No newline at end of file diff --git a/.changelog/adb73e9adf3946938a6ca8e0c4e988de.json b/.changelog/adb73e9adf3946938a6ca8e0c4e988de.json new file mode 100644 index 00000000000..bbe68a3a2fb --- /dev/null +++ b/.changelog/adb73e9adf3946938a6ca8e0c4e988de.json @@ -0,0 +1,8 @@ +{ + "id": "adb73e9a-df39-4693-8a6c-a8e0c4e988de", + "type": "feature", + "description": "This release introduces the new API 'AssumeRoot', which returns short-term credentials that you can use to perform privileged tasks.", + "modules": [ + "service/sts" + ] +} \ No newline at end of file diff --git a/.changelog/ca37627cb25e4750ad4feec0def644ba.json b/.changelog/ca37627cb25e4750ad4feec0def644ba.json new file mode 100644 index 00000000000..319b32f0b68 --- /dev/null +++ b/.changelog/ca37627cb25e4750ad4feec0def644ba.json @@ -0,0 +1,8 @@ +{ + "id": "ca37627c-b25e-4750-ad4f-eec0def644ba", + "type": "feature", + "description": "IVS now offers customers the ability to stream multitrack video to Channels.", + "modules": [ + "service/ivs" + ] +} \ No newline at end of file diff --git a/.changelog/cae5b68ad5014c38870a74a3936cae13.json b/.changelog/cae5b68ad5014c38870a74a3936cae13.json new file mode 100644 index 00000000000..7fb559638b2 --- /dev/null +++ b/.changelog/cae5b68ad5014c38870a74a3936cae13.json @@ -0,0 +1,8 @@ +{ + "id": "cae5b68a-d501-4c38-870a-74a3936cae13", + "type": "feature", + "description": "This release includes support for five new APIs and changes to existing APIs that give AWS Organizations customers the ability to use temporary root credentials, targeted to member accounts in the organization.", + "modules": [ + "service/iam" + ] +} \ No newline at end of file diff --git a/.changelog/d52d1baf1bcc46e29a1244f54caf2a50.json b/.changelog/d52d1baf1bcc46e29a1244f54caf2a50.json new file mode 100644 index 00000000000..a38c2aace1a --- /dev/null +++ b/.changelog/d52d1baf1bcc46e29a1244f54caf2a50.json @@ -0,0 +1,8 @@ +{ + "id": "d52d1baf-1bcc-46e2-9a12-44f54caf2a50", + "type": "feature", + "description": "New FuotaTask resource type to enable logging for your FUOTA tasks. A ParticipatingGatewaysforMulticast parameter to choose the list of gateways to receive the multicast downlink message and the transmission interval between them. Descriptor field which will be sent to devices during FUOTA transfer.", + "modules": [ + "service/iotwireless" + ] +} \ No newline at end of file diff --git a/.changelog/f4d160769d804d809058ff0c87e8eaf5.json b/.changelog/f4d160769d804d809058ff0c87e8eaf5.json new file mode 100644 index 00000000000..8f19089e363 --- /dev/null +++ b/.changelog/f4d160769d804d809058ff0c87e8eaf5.json @@ -0,0 +1,8 @@ +{ + "id": "f4d16076-9d80-4d80-9058-ff0c87e8eaf5", + "type": "feature", + "description": "This release updates the ListBuckets API Reference documentation in support of the new 10,000 general purpose bucket default quota on all AWS accounts. To increase your bucket quota from 10,000 to up to 1 million buckets, simply request a quota increase via Service Quotas.", + "modules": [ + "service/s3" + ] +} \ No newline at end of file diff --git a/service/accessanalyzer/api_op_CreateAnalyzer.go b/service/accessanalyzer/api_op_CreateAnalyzer.go index 65b5d1b389b..69231f977ce 100644 --- a/service/accessanalyzer/api_op_CreateAnalyzer.go +++ b/service/accessanalyzer/api_op_CreateAnalyzer.go @@ -52,11 +52,17 @@ type CreateAnalyzerInput struct { // Specifies the configuration of the analyzer. If the analyzer is an unused // access analyzer, the specified scope of unused access is used for the - // configuration. If the analyzer is an external access analyzer, this field is not - // used. + // configuration. Configuration types.AnalyzerConfiguration - // An array of key-value pairs to apply to the analyzer. + // An array of key-value pairs to apply to the analyzer. You can use the set of + // Unicode letters, digits, whitespace, _ , . , / , = , + , and - . + // + // For the tag key, you can specify a value that is 1 to 128 characters in length + // and cannot be prefixed with aws: . + // + // For the tag value, you can specify a value that is 0 to 256 characters in + // length. Tags map[string]string noSmithyDocumentSerde diff --git a/service/accessanalyzer/api_op_GetArchiveRule.go b/service/accessanalyzer/api_op_GetArchiveRule.go index 0de146b8580..dcb9a61ffca 100644 --- a/service/accessanalyzer/api_op_GetArchiveRule.go +++ b/service/accessanalyzer/api_op_GetArchiveRule.go @@ -51,7 +51,8 @@ type GetArchiveRuleInput struct { // The response to the request. type GetArchiveRuleOutput struct { - // Contains information about an archive rule. + // Contains information about an archive rule. Archive rules automatically archive + // new findings that meet the criteria you define when you create the rule. // // This member is required. ArchiveRule *types.ArchiveRuleSummary diff --git a/service/accessanalyzer/api_op_ListAnalyzedResources.go b/service/accessanalyzer/api_op_ListAnalyzedResources.go index 1b9f0a92bde..d806f2451dd 100644 --- a/service/accessanalyzer/api_op_ListAnalyzedResources.go +++ b/service/accessanalyzer/api_op_ListAnalyzedResources.go @@ -12,8 +12,7 @@ import ( ) // Retrieves a list of resources of the specified type that have been analyzed by -// the specified external access analyzer. This action is not supported for unused -// access analyzers. +// the specified analyzer. func (c *Client) ListAnalyzedResources(ctx context.Context, params *ListAnalyzedResourcesInput, optFns ...func(*Options)) (*ListAnalyzedResourcesOutput, error) { if params == nil { params = &ListAnalyzedResourcesInput{} diff --git a/service/accessanalyzer/api_op_UpdateAnalyzer.go b/service/accessanalyzer/api_op_UpdateAnalyzer.go new file mode 100644 index 00000000000..60d15c12595 --- /dev/null +++ b/service/accessanalyzer/api_op_UpdateAnalyzer.go @@ -0,0 +1,162 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package accessanalyzer + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/accessanalyzer/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Modifies the configuration of an existing analyzer. +func (c *Client) UpdateAnalyzer(ctx context.Context, params *UpdateAnalyzerInput, optFns ...func(*Options)) (*UpdateAnalyzerOutput, error) { + if params == nil { + params = &UpdateAnalyzerInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateAnalyzer", params, optFns, c.addOperationUpdateAnalyzerMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateAnalyzerOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateAnalyzerInput struct { + + // The name of the analyzer to modify. + // + // This member is required. + AnalyzerName *string + + // Contains information about the configuration of an analyzer for an Amazon Web + // Services organization or account. + Configuration types.AnalyzerConfiguration + + noSmithyDocumentSerde +} + +type UpdateAnalyzerOutput struct { + + // Contains information about the configuration of an analyzer for an Amazon Web + // Services organization or account. + Configuration types.AnalyzerConfiguration + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateAnalyzerMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateAnalyzer{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateAnalyzer{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateAnalyzer"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdateAnalyzerValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateAnalyzer(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateAnalyzer(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateAnalyzer", + } +} diff --git a/service/accessanalyzer/deserializers.go b/service/accessanalyzer/deserializers.go index 7a5bc1ebc8e..cf414e6a656 100644 --- a/service/accessanalyzer/deserializers.go +++ b/service/accessanalyzer/deserializers.go @@ -5072,6 +5072,173 @@ func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, } } +type awsRestjson1_deserializeOpUpdateAnalyzer struct { +} + +func (*awsRestjson1_deserializeOpUpdateAnalyzer) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateAnalyzer) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUpdateAnalyzer(response, &metadata) + } + output := &UpdateAnalyzerOutput{} + 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_deserializeOpDocumentUpdateAnalyzerOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdateAnalyzer(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(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_deserializeOpDocumentUpdateAnalyzerOutput(v **UpdateAnalyzerOutput, 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 *UpdateAnalyzerOutput + if *v == nil { + sv = &UpdateAnalyzerOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "configuration": + if err := awsRestjson1_deserializeDocumentAnalyzerConfiguration(&sv.Configuration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpUpdateArchiveRule struct { } @@ -6286,6 +6453,42 @@ func awsRestjson1_deserializeDocumentAccessPreviewSummary(v **types.AccessPrevie return nil } +func awsRestjson1_deserializeDocumentAccountIdsList(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentAclGrantee(v *types.AclGrantee, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6376,6 +6579,117 @@ func awsRestjson1_deserializeDocumentActionList(v *[]string, value interface{}) return nil } +func awsRestjson1_deserializeDocumentAnalysisRule(v **types.AnalysisRule, 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.AnalysisRule + if *v == nil { + sv = &types.AnalysisRule{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "exclusions": + if err := awsRestjson1_deserializeDocumentAnalysisRuleCriteriaList(&sv.Exclusions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAnalysisRuleCriteria(v **types.AnalysisRuleCriteria, 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.AnalysisRuleCriteria + if *v == nil { + sv = &types.AnalysisRuleCriteria{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "accountIds": + if err := awsRestjson1_deserializeDocumentAccountIdsList(&sv.AccountIds, value); err != nil { + return err + } + + case "resourceTags": + if err := awsRestjson1_deserializeDocumentTagsList(&sv.ResourceTags, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAnalysisRuleCriteriaList(v *[]types.AnalysisRuleCriteria, 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.AnalysisRuleCriteria + if *v == nil { + cv = []types.AnalysisRuleCriteria{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AnalysisRuleCriteria + destAddr := &col + if err := awsRestjson1_deserializeDocumentAnalysisRuleCriteria(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentAnalyzedResource(v **types.AnalyzedResource, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -10965,6 +11279,38 @@ func awsRestjson1_deserializeDocumentSubstring(v **types.Substring, value interf return nil } +func awsRestjson1_deserializeDocumentTagsList(v *[]map[string]string, 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 []map[string]string + if *v == nil { + cv = []map[string]string{} + } else { + cv = *v + } + + for _, value := range shape { + var col map[string]string + if err := awsRestjson1_deserializeDocumentTagsMap(&col, value); err != nil { + return err + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentTagsMap(v *map[string]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11204,6 +11550,11 @@ func awsRestjson1_deserializeDocumentUnusedAccessConfiguration(v **types.UnusedA for key, value := range shape { switch key { + case "analysisRule": + if err := awsRestjson1_deserializeDocumentAnalysisRule(&sv.AnalysisRule, value); err != nil { + return err + } + case "unusedAccessAge": if value != nil { jtv, ok := value.(json.Number) diff --git a/service/accessanalyzer/generated.json b/service/accessanalyzer/generated.json index 039771874ce..39bc7d46aaf 100644 --- a/service/accessanalyzer/generated.json +++ b/service/accessanalyzer/generated.json @@ -40,6 +40,7 @@ "api_op_StartResourceScan.go", "api_op_TagResource.go", "api_op_UntagResource.go", + "api_op_UpdateAnalyzer.go", "api_op_UpdateArchiveRule.go", "api_op_UpdateFindings.go", "api_op_ValidatePolicy.go", diff --git a/service/accessanalyzer/serializers.go b/service/accessanalyzer/serializers.go index 38aa54af9d2..bf753f0c3eb 100644 --- a/service/accessanalyzer/serializers.go +++ b/service/accessanalyzer/serializers.go @@ -2757,6 +2757,102 @@ func awsRestjson1_serializeOpHttpBindingsUntagResourceInput(v *UntagResourceInpu return nil } +type awsRestjson1_serializeOpUpdateAnalyzer struct { +} + +func (*awsRestjson1_serializeOpUpdateAnalyzer) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateAnalyzer) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateAnalyzerInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/analyzer/{analyzerName}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUpdateAnalyzerInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateAnalyzerInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUpdateAnalyzerInput(v *UpdateAnalyzerInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AnalyzerName == nil || len(*v.AnalyzerName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member analyzerName must not be empty")} + } + if v.AnalyzerName != nil { + if err := encoder.SetURI("analyzerName").String(*v.AnalyzerName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateAnalyzerInput(v *UpdateAnalyzerInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Configuration != nil { + ok := object.Key("configuration") + if err := awsRestjson1_serializeDocumentAnalyzerConfiguration(v.Configuration, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpUpdateArchiveRule struct { } @@ -3112,6 +3208,17 @@ func awsRestjson1_serializeDocumentAccessList(v []types.Access, value smithyjson return nil } +func awsRestjson1_serializeDocumentAccountIdsList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentAclGrantee(v types.AclGrantee, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -3143,6 +3250,54 @@ func awsRestjson1_serializeDocumentActionsList(v []string, value smithyjson.Valu return nil } +func awsRestjson1_serializeDocumentAnalysisRule(v *types.AnalysisRule, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Exclusions != nil { + ok := object.Key("exclusions") + if err := awsRestjson1_serializeDocumentAnalysisRuleCriteriaList(v.Exclusions, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAnalysisRuleCriteria(v *types.AnalysisRuleCriteria, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AccountIds != nil { + ok := object.Key("accountIds") + if err := awsRestjson1_serializeDocumentAccountIdsList(v.AccountIds, ok); err != nil { + return err + } + } + + if v.ResourceTags != nil { + ok := object.Key("resourceTags") + if err := awsRestjson1_serializeDocumentTagsList(v.ResourceTags, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentAnalysisRuleCriteriaList(v []types.AnalysisRuleCriteria, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAnalysisRuleCriteria(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentAnalyzerConfiguration(v types.AnalyzerConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4009,6 +4164,22 @@ func awsRestjson1_serializeDocumentSqsQueueConfiguration(v *types.SqsQueueConfig return nil } +func awsRestjson1_serializeDocumentTagsList(v []map[string]string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if vv := v[i]; vv == nil { + continue + } + if err := awsRestjson1_serializeDocumentTagsMap(v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentTagsMap(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -4061,6 +4232,13 @@ func awsRestjson1_serializeDocumentUnusedAccessConfiguration(v *types.UnusedAcce object := value.Object() defer object.Close() + if v.AnalysisRule != nil { + ok := object.Key("analysisRule") + if err := awsRestjson1_serializeDocumentAnalysisRule(v.AnalysisRule, ok); err != nil { + return err + } + } + if v.UnusedAccessAge != nil { ok := object.Key("unusedAccessAge") ok.Integer(*v.UnusedAccessAge) diff --git a/service/accessanalyzer/snapshot/api_op_UpdateAnalyzer.go.snap b/service/accessanalyzer/snapshot/api_op_UpdateAnalyzer.go.snap new file mode 100644 index 00000000000..dad960ea368 --- /dev/null +++ b/service/accessanalyzer/snapshot/api_op_UpdateAnalyzer.go.snap @@ -0,0 +1,41 @@ +UpdateAnalyzer + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/accessanalyzer/snapshot_test.go b/service/accessanalyzer/snapshot_test.go index b263759fbb4..bf448956d73 100644 --- a/service/accessanalyzer/snapshot_test.go +++ b/service/accessanalyzer/snapshot_test.go @@ -446,6 +446,18 @@ func TestCheckSnapshot_UntagResource(t *testing.T) { } } +func TestCheckSnapshot_UpdateAnalyzer(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateAnalyzer(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateAnalyzer") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateArchiveRule(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateArchiveRule(context.Background(), nil, func(o *Options) { @@ -865,6 +877,18 @@ func TestUpdateSnapshot_UntagResource(t *testing.T) { } } +func TestUpdateSnapshot_UpdateAnalyzer(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateAnalyzer(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateAnalyzer") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateArchiveRule(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateArchiveRule(context.Background(), nil, func(o *Options) { diff --git a/service/accessanalyzer/types/enums.go b/service/accessanalyzer/types/enums.go index fa6f887f472..de9b3d7cf48 100644 --- a/service/accessanalyzer/types/enums.go +++ b/service/accessanalyzer/types/enums.go @@ -595,6 +595,7 @@ const ( ResourceTypeAwsS3expressDirectorybucket ResourceType = "AWS::S3Express::DirectoryBucket" ResourceTypeAwsDynamodbTable ResourceType = "AWS::DynamoDB::Table" ResourceTypeAwsDynamodbStream ResourceType = "AWS::DynamoDB::Stream" + ResourceTypeAwsIamUser ResourceType = "AWS::IAM::User" ) // Values returns all known values for ResourceType. Note that this can be @@ -619,6 +620,7 @@ func (ResourceType) Values() []ResourceType { "AWS::S3Express::DirectoryBucket", "AWS::DynamoDB::Table", "AWS::DynamoDB::Stream", + "AWS::IAM::User", } } diff --git a/service/accessanalyzer/types/types.go b/service/accessanalyzer/types/types.go index 8b2b6e90b3b..34b0e1fd101 100644 --- a/service/accessanalyzer/types/types.go +++ b/service/accessanalyzer/types/types.go @@ -244,6 +244,43 @@ type AclGranteeMemberUri struct { func (*AclGranteeMemberUri) isAclGrantee() {} +// Contains information about analysis rules for the analyzer. Analysis rules +// determine which entities will generate findings based on the criteria you define +// when you create the rule. +type AnalysisRule struct { + + // A list of rules for the analyzer containing criteria to exclude from analysis. + // Entities that meet the rule criteria will not generate findings. + Exclusions []AnalysisRuleCriteria + + noSmithyDocumentSerde +} + +// The criteria for an analysis rule for an analyzer. The criteria determine which +// entities will generate findings. +type AnalysisRuleCriteria struct { + + // A list of Amazon Web Services account IDs to apply to the analysis rule + // criteria. The accounts cannot include the organization analyzer owner account. + // Account IDs can only be applied to the analysis rule criteria for + // organization-level analyzers. The list cannot include more than 2,000 account + // IDs. + AccountIds []string + + // An array of key-value pairs to match for your resources. You can use the set of + // Unicode letters, digits, whitespace, _ , . , / , = , + , and - . + // + // For the tag key, you can specify a value that is 1 to 128 characters in length + // and cannot be prefixed with aws: . + // + // For the tag value, you can specify a value that is 0 to 256 characters in + // length. If the specified tag value is 0 characters, the rule is applied to all + // principals with the specified tag key. + ResourceTags []map[string]string + + noSmithyDocumentSerde +} + // Contains details about the analyzed resource. type AnalyzedResource struct { @@ -321,8 +358,8 @@ type AnalyzedResourceSummary struct { noSmithyDocumentSerde } -// Contains information about the configuration of an unused access analyzer for -// an Amazon Web Services organization or account. +// Contains information about the configuration of an analyzer for an Amazon Web +// Services organization or account. // // The following types satisfy this interface: // @@ -332,8 +369,7 @@ type AnalyzerConfiguration interface { } // Specifies the configuration of an unused access analyzer for an Amazon Web -// Services organization or account. External access analyzers do not support any -// configuration. +// Services organization or account. type AnalyzerConfigurationMemberUnusedAccess struct { Value UnusedAccessConfiguration @@ -398,7 +434,8 @@ type AnalyzerSummary struct { noSmithyDocumentSerde } -// Contains information about an archive rule. +// Contains information about an archive rule. Archive rules automatically archive +// new findings that meet the criteria you define when you create the rule. type ArchiveRuleSummary struct { // The time at which the archive rule was created. @@ -1999,11 +2036,16 @@ type TrailProperties struct { // Contains information about an unused access analyzer. type UnusedAccessConfiguration struct { + // Contains information about analysis rules for the analyzer. Analysis rules + // determine which entities will generate findings based on the criteria you define + // when you create the rule. + AnalysisRule *AnalysisRule + // The specified access age in days for which to generate findings for unused // access. For example, if you specify 90 days, the analyzer will generate findings // for IAM entities within the accounts of the selected organization for any access // that hasn't been used in 90 or more days since the analyzer's last scan. You can - // choose a value between 1 and 180 days. + // choose a value between 1 and 365 days. UnusedAccessAge *int32 noSmithyDocumentSerde diff --git a/service/accessanalyzer/validators.go b/service/accessanalyzer/validators.go index c273f11b044..d3a13e0d48c 100644 --- a/service/accessanalyzer/validators.go +++ b/service/accessanalyzer/validators.go @@ -610,6 +610,26 @@ func (m *validateOpUntagResource) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpUpdateAnalyzer struct { +} + +func (*validateOpUpdateAnalyzer) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateAnalyzer) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateAnalyzerInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateAnalyzerInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateArchiveRule struct { } @@ -790,6 +810,10 @@ func addOpUntagResourceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUntagResource{}, middleware.After) } +func addOpUpdateAnalyzerValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateAnalyzer{}, middleware.After) +} + func addOpUpdateArchiveRuleValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateArchiveRule{}, middleware.After) } @@ -1693,6 +1717,21 @@ func validateOpUntagResourceInput(v *UntagResourceInput) error { } } +func validateOpUpdateAnalyzerInput(v *UpdateAnalyzerInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateAnalyzerInput"} + if v.AnalyzerName == nil { + invalidParams.Add(smithy.NewErrParamRequired("AnalyzerName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateArchiveRuleInput(v *UpdateArchiveRuleInput) error { if v == nil { return nil diff --git a/service/cloudcontrol/api_op_GetResourceRequestStatus.go b/service/cloudcontrol/api_op_GetResourceRequestStatus.go index afd590295cb..e21de822cf7 100644 --- a/service/cloudcontrol/api_op_GetResourceRequestStatus.go +++ b/service/cloudcontrol/api_op_GetResourceRequestStatus.go @@ -49,6 +49,10 @@ type GetResourceRequestStatusInput struct { type GetResourceRequestStatusOutput struct { + // Lists Hook invocations for the specified target in the request. This is a list + // since the same target can invoke multiple Hooks. + HooksProgressEvent []types.HookProgressEvent + // Represents the current status of the resource operation request. ProgressEvent *types.ProgressEvent diff --git a/service/cloudcontrol/deserializers.go b/service/cloudcontrol/deserializers.go index ae362df1963..ff0bf11b03c 100644 --- a/service/cloudcontrol/deserializers.go +++ b/service/cloudcontrol/deserializers.go @@ -2190,6 +2190,150 @@ func awsAwsjson10_deserializeDocumentHandlerInternalFailureException(v **types.H return nil } +func awsAwsjson10_deserializeDocumentHookProgressEvent(v **types.HookProgressEvent, 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.HookProgressEvent + if *v == nil { + sv = &types.HookProgressEvent{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FailureMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HookFailureMode to be of type string, got %T instead", value) + } + sv.FailureMode = ptr.String(jtv) + } + + case "HookEventTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.HookEventTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "HookStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HookStatus to be of type string, got %T instead", value) + } + sv.HookStatus = ptr.String(jtv) + } + + case "HookStatusMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected StatusMessage to be of type string, got %T instead", value) + } + sv.HookStatusMessage = ptr.String(jtv) + } + + case "HookTypeArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HookTypeArn to be of type string, got %T instead", value) + } + sv.HookTypeArn = ptr.String(jtv) + } + + case "HookTypeName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TypeName to be of type string, got %T instead", value) + } + sv.HookTypeName = ptr.String(jtv) + } + + case "HookTypeVersionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TypeVersionId to be of type string, got %T instead", value) + } + sv.HookTypeVersionId = ptr.String(jtv) + } + + case "InvocationPoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HookInvocationPoint to be of type string, got %T instead", value) + } + sv.InvocationPoint = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentHooksProgressEvent(v *[]types.HookProgressEvent, 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.HookProgressEvent + if *v == nil { + cv = []types.HookProgressEvent{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.HookProgressEvent + destAddr := &col + if err := awsAwsjson10_deserializeDocumentHookProgressEvent(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson10_deserializeDocumentInvalidCredentialsException(v **types.InvalidCredentialsException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -2477,6 +2621,15 @@ func awsAwsjson10_deserializeDocumentProgressEvent(v **types.ProgressEvent, valu } } + case "HooksRequestToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RequestToken to be of type string, got %T instead", value) + } + sv.HooksRequestToken = ptr.String(jtv) + } + case "Identifier": if value != nil { jtv, ok := value.(string) @@ -3177,6 +3330,11 @@ func awsAwsjson10_deserializeOpDocumentGetResourceRequestStatusOutput(v **GetRes for key, value := range shape { switch key { + case "HooksProgressEvent": + if err := awsAwsjson10_deserializeDocumentHooksProgressEvent(&sv.HooksProgressEvent, value); err != nil { + return err + } + case "ProgressEvent": if err := awsAwsjson10_deserializeDocumentProgressEvent(&sv.ProgressEvent, value); err != nil { return err diff --git a/service/cloudcontrol/endpoints.go b/service/cloudcontrol/endpoints.go index 2755b0dbb08..797242c6242 100644 --- a/service/cloudcontrol/endpoints.go +++ b/service/cloudcontrol/endpoints.go @@ -385,7 +385,7 @@ func (r *resolver) ResolveEndpoint( } } if _UseFIPS == true { - if true == _PartitionResult.SupportsFIPS { + if _PartitionResult.SupportsFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://cloudcontrolapi-fips.") diff --git a/service/cloudcontrol/types/enums.go b/service/cloudcontrol/types/enums.go index d7e8058c539..1fc5b38fb97 100644 --- a/service/cloudcontrol/types/enums.go +++ b/service/cloudcontrol/types/enums.go @@ -6,21 +6,22 @@ type HandlerErrorCode string // Enum values for HandlerErrorCode const ( - HandlerErrorCodeNotUpdatable HandlerErrorCode = "NotUpdatable" - HandlerErrorCodeInvalidRequest HandlerErrorCode = "InvalidRequest" - HandlerErrorCodeAccessDenied HandlerErrorCode = "AccessDenied" - HandlerErrorCodeInvalidCredentials HandlerErrorCode = "InvalidCredentials" - HandlerErrorCodeAlreadyExists HandlerErrorCode = "AlreadyExists" - HandlerErrorCodeNotFound HandlerErrorCode = "NotFound" - HandlerErrorCodeResourceConflict HandlerErrorCode = "ResourceConflict" - HandlerErrorCodeThrottling HandlerErrorCode = "Throttling" - HandlerErrorCodeServiceLimitExceeded HandlerErrorCode = "ServiceLimitExceeded" - HandlerErrorCodeNotStabilized HandlerErrorCode = "NotStabilized" - HandlerErrorCodeGeneralServiceException HandlerErrorCode = "GeneralServiceException" - HandlerErrorCodeServiceInternalError HandlerErrorCode = "ServiceInternalError" - HandlerErrorCodeServiceTimeout HandlerErrorCode = "ServiceTimeout" - HandlerErrorCodeNetworkFailure HandlerErrorCode = "NetworkFailure" - HandlerErrorCodeInternalFailure HandlerErrorCode = "InternalFailure" + HandlerErrorCodeNotUpdatable HandlerErrorCode = "NotUpdatable" + HandlerErrorCodeInvalidRequest HandlerErrorCode = "InvalidRequest" + HandlerErrorCodeAccessDenied HandlerErrorCode = "AccessDenied" + HandlerErrorCodeUnauthorizedTaggingOperation HandlerErrorCode = "UnauthorizedTaggingOperation" + HandlerErrorCodeInvalidCredentials HandlerErrorCode = "InvalidCredentials" + HandlerErrorCodeAlreadyExists HandlerErrorCode = "AlreadyExists" + HandlerErrorCodeNotFound HandlerErrorCode = "NotFound" + HandlerErrorCodeResourceConflict HandlerErrorCode = "ResourceConflict" + HandlerErrorCodeThrottling HandlerErrorCode = "Throttling" + HandlerErrorCodeServiceLimitExceeded HandlerErrorCode = "ServiceLimitExceeded" + HandlerErrorCodeNotStabilized HandlerErrorCode = "NotStabilized" + HandlerErrorCodeGeneralServiceException HandlerErrorCode = "GeneralServiceException" + HandlerErrorCodeServiceInternalError HandlerErrorCode = "ServiceInternalError" + HandlerErrorCodeServiceTimeout HandlerErrorCode = "ServiceTimeout" + HandlerErrorCodeNetworkFailure HandlerErrorCode = "NetworkFailure" + HandlerErrorCodeInternalFailure HandlerErrorCode = "InternalFailure" ) // Values returns all known values for HandlerErrorCode. Note that this can be @@ -32,6 +33,7 @@ func (HandlerErrorCode) Values() []HandlerErrorCode { "NotUpdatable", "InvalidRequest", "AccessDenied", + "UnauthorizedTaggingOperation", "InvalidCredentials", "AlreadyExists", "NotFound", diff --git a/service/cloudcontrol/types/types.go b/service/cloudcontrol/types/types.go index aaf4dd38688..76e4935627b 100644 --- a/service/cloudcontrol/types/types.go +++ b/service/cloudcontrol/types/types.go @@ -7,6 +7,58 @@ import ( "time" ) +// Represents the current status of applicable Hooks for a resource operation +// request. It contains list of Hook invocation information for the resource +// specified in the request since the same target can invoke multiple Hooks. For +// more information, see [Managing resource operation requests with Amazon Web Services Cloud Control API]. +// +// [Managing resource operation requests with Amazon Web Services Cloud Control API]: https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html +type HookProgressEvent struct { + + // The failure mode of the invocation. The following are the potential statuses: + // + // - FAIL : This will fail the Hook invocation and the request associated with it. + // + // - WARN : This will fail the Hook invocation, but not the request associated + // with it. + FailureMode *string + + // The time that the Hook invocation request initiated. + HookEventTime *time.Time + + // The status of the Hook invocation. The following are potential statuses: + // + // - HOOK_PENDING : The Hook was added to the invocation plan, but not yet + // invoked. + // + // - HOOK_IN_PROGRESS : The Hook was invoked, but hasn't completed. + // + // - HOOK_COMPLETE_SUCCEEDED : The Hook invocation is complete with a successful + // result. + // + // - HOOK_COMPLETE_FAILED : The Hook invocation is complete with a failed result. + // + // - HOOK_FAILED : The Hook invocation didn't complete successfully. + HookStatus *string + + // The message explaining the current Hook status. + HookStatusMessage *string + + // The ARN of the Hook being invoked. + HookTypeArn *string + + // The type name of the Hook being invoked. + HookTypeName *string + + // The type version of the Hook being invoked. + HookTypeVersionId *string + + // States whether the Hook is invoked before or after resource provisioning. + InvocationPoint *string + + noSmithyDocumentSerde +} + // Represents the current status of a resource operation request. For more // information, see [Managing resource operation requests]in the Amazon Web Services Cloud Control API User Guide. // @@ -24,6 +76,9 @@ type ProgressEvent struct { // When the resource operation request was initiated. EventTime *time.Time + // The unique token representing the Hooks operation for the request. + HooksRequestToken *string + // The primary identifier for the resource. // // In some cases, the resource identifier may be available before the resource diff --git a/service/deadline/deserializers.go b/service/deadline/deserializers.go index f25f55f0210..337d73114ea 100644 --- a/service/deadline/deserializers.go +++ b/service/deadline/deserializers.go @@ -17193,6 +17193,47 @@ func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Respo return output } +func awsRestjson1_deserializeDocumentAcceleratorCapabilities(v **types.AcceleratorCapabilities, 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.AcceleratorCapabilities + if *v == nil { + sv = &types.AcceleratorCapabilities{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "count": + if err := awsRestjson1_deserializeDocumentAcceleratorCountRange(&sv.Count, value); err != nil { + return err + } + + case "selections": + if err := awsRestjson1_deserializeDocumentAcceleratorSelections(&sv.Selections, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentAcceleratorCountRange(v **types.AcceleratorCountRange, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -17250,6 +17291,89 @@ func awsRestjson1_deserializeDocumentAcceleratorCountRange(v **types.Accelerator return nil } +func awsRestjson1_deserializeDocumentAcceleratorSelection(v **types.AcceleratorSelection, 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.AcceleratorSelection + if *v == nil { + sv = &types.AcceleratorSelection{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AcceleratorName to be of type string, got %T instead", value) + } + sv.Name = types.AcceleratorName(jtv) + } + + case "runtime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AcceleratorRuntime to be of type string, got %T instead", value) + } + sv.Runtime = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAcceleratorSelections(v *[]types.AcceleratorSelection, 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.AcceleratorSelection + if *v == nil { + cv = []types.AcceleratorSelection{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AcceleratorSelection + destAddr := &col + if err := awsRestjson1_deserializeDocumentAcceleratorSelection(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentAcceleratorTotalMemoryMiBRange(v **types.AcceleratorTotalMemoryMiBRange, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -23533,6 +23657,11 @@ func awsRestjson1_deserializeDocumentServiceManagedEc2InstanceCapabilities(v **t for key, value := range shape { switch key { + case "acceleratorCapabilities": + if err := awsRestjson1_deserializeDocumentAcceleratorCapabilities(&sv.AcceleratorCapabilities, value); err != nil { + return err + } + case "allowedInstanceTypes": if err := awsRestjson1_deserializeDocumentInstanceTypes(&sv.AllowedInstanceTypes, value); err != nil { return err diff --git a/service/deadline/serializers.go b/service/deadline/serializers.go index ef1b99a4d36..ffb06b7a234 100644 --- a/service/deadline/serializers.go +++ b/service/deadline/serializers.go @@ -10244,6 +10244,27 @@ func awsRestjson1_serializeOpDocumentUpdateWorkerScheduleInput(v *UpdateWorkerSc return nil } +func awsRestjson1_serializeDocumentAcceleratorCapabilities(v *types.AcceleratorCapabilities, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Count != nil { + ok := object.Key("count") + if err := awsRestjson1_serializeDocumentAcceleratorCountRange(v.Count, ok); err != nil { + return err + } + } + + if v.Selections != nil { + ok := object.Key("selections") + if err := awsRestjson1_serializeDocumentAcceleratorSelections(v.Selections, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentAcceleratorCountRange(v *types.AcceleratorCountRange, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -10261,6 +10282,36 @@ func awsRestjson1_serializeDocumentAcceleratorCountRange(v *types.AcceleratorCou return nil } +func awsRestjson1_serializeDocumentAcceleratorSelection(v *types.AcceleratorSelection, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Name) > 0 { + ok := object.Key("name") + ok.String(string(v.Name)) + } + + if v.Runtime != nil { + ok := object.Key("runtime") + ok.String(*v.Runtime) + } + + return nil +} + +func awsRestjson1_serializeDocumentAcceleratorSelections(v []types.AcceleratorSelection, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentAcceleratorSelection(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentAcceleratorTotalMemoryMiBRange(v *types.AcceleratorTotalMemoryMiBRange, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -11369,6 +11420,13 @@ func awsRestjson1_serializeDocumentServiceManagedEc2InstanceCapabilities(v *type object := value.Object() defer object.Close() + if v.AcceleratorCapabilities != nil { + ok := object.Key("acceleratorCapabilities") + if err := awsRestjson1_serializeDocumentAcceleratorCapabilities(v.AcceleratorCapabilities, ok); err != nil { + return err + } + } + if v.AllowedInstanceTypes != nil { ok := object.Key("allowedInstanceTypes") if err := awsRestjson1_serializeDocumentInstanceTypes(v.AllowedInstanceTypes, ok); err != nil { diff --git a/service/deadline/types/enums.go b/service/deadline/types/enums.go index 9b709cb977d..0d14e83dc6d 100644 --- a/service/deadline/types/enums.go +++ b/service/deadline/types/enums.go @@ -2,6 +2,29 @@ package types +type AcceleratorName string + +// Enum values for AcceleratorName +const ( + AcceleratorNameT4 AcceleratorName = "t4" + AcceleratorNameA10g AcceleratorName = "a10g" + AcceleratorNameL4 AcceleratorName = "l4" + AcceleratorNameL40s AcceleratorName = "l40s" +) + +// Values returns all known values for AcceleratorName. 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 (AcceleratorName) Values() []AcceleratorName { + return []AcceleratorName{ + "t4", + "a10g", + "l4", + "l40s", + } +} + type AcceleratorType string // Enum values for AcceleratorType diff --git a/service/deadline/types/types.go b/service/deadline/types/types.go index c93a29ab642..9247bfebdf1 100644 --- a/service/deadline/types/types.go +++ b/service/deadline/types/types.go @@ -8,20 +8,54 @@ import ( "time" ) +// Provides information about the GPU accelerators and drivers for the instance +// types in a fleet. If you include the acceleratorCapabilities property in the [ServiceManagedEc2InstanceCapabilities] +// object, all of the Amazon EC2 instances will have at least one accelerator. +// +// [ServiceManagedEc2InstanceCapabilities]: https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_ServiceManagedEc2InstanceCapabilities +type AcceleratorCapabilities struct { + + // A list of objects that contain the GPU name of the accelerator and driver for + // the instance types that support the accelerator. + // + // This member is required. + Selections []AcceleratorSelection + + // The number of GPUs on each worker. The default is 1. + Count *AcceleratorCountRange + + noSmithyDocumentSerde +} + // The range for the GPU fleet acceleration. type AcceleratorCountRange struct { - // The minimum GPU for the accelerator. + // The minimum number of GPUs for the accelerator. If you set the value to 0, a + // worker will still have 1 GPU. // // This member is required. Min *int32 - // The maximum GPU for the accelerator. + // The maximum number of GPUs for the accelerator. Max *int32 noSmithyDocumentSerde } +// Values that you can use to select a particular Amazon EC2 instance type. +type AcceleratorSelection struct { + + // The name of the GPU accelerator. + // + // This member is required. + Name AcceleratorName + + // The driver version that the GPU accelerator uses. + Runtime *string + + noSmithyDocumentSerde +} + // The range for memory, in MiB, to use for the accelerator. type AcceleratorTotalMemoryMiBRange struct { @@ -2116,6 +2150,13 @@ type ServiceManagedEc2InstanceCapabilities struct { // This member is required. VCpuCount *VCpuCountRange + // The GPU accelerator capabilities required for the Amazon EC2 instances. If you + // include the acceleratorCapabilities property in the [ServiceManagedEc2InstanceCapabilities] object, all of the Amazon + // EC2 instances will have at least one accelerator. + // + // [ServiceManagedEc2InstanceCapabilities]: https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_ServiceManagedEc2InstanceCapabilities + AcceleratorCapabilities *AcceleratorCapabilities + // The allowable Amazon EC2 instance types. AllowedInstanceTypes []string diff --git a/service/deadline/validators.go b/service/deadline/validators.go index 319192d168b..25258771167 100644 --- a/service/deadline/validators.go +++ b/service/deadline/validators.go @@ -2386,6 +2386,30 @@ func addOpUpdateWorkerScheduleValidationMiddleware(stack *middleware.Stack) erro return stack.Initialize.Add(&validateOpUpdateWorkerSchedule{}, middleware.After) } +func validateAcceleratorCapabilities(v *types.AcceleratorCapabilities) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AcceleratorCapabilities"} + if v.Selections == nil { + invalidParams.Add(smithy.NewErrParamRequired("Selections")) + } else if v.Selections != nil { + if err := validateAcceleratorSelections(v.Selections); err != nil { + invalidParams.AddNested("Selections", err.(smithy.InvalidParamsError)) + } + } + if v.Count != nil { + if err := validateAcceleratorCountRange(v.Count); err != nil { + invalidParams.AddNested("Count", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateAcceleratorCountRange(v *types.AcceleratorCountRange) error { if v == nil { return nil @@ -2401,6 +2425,38 @@ func validateAcceleratorCountRange(v *types.AcceleratorCountRange) error { } } +func validateAcceleratorSelection(v *types.AcceleratorSelection) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AcceleratorSelection"} + if len(v.Name) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateAcceleratorSelections(v []types.AcceleratorSelection) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AcceleratorSelections"} + for i := range v { + if err := validateAcceleratorSelection(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateAcceleratorTotalMemoryMiBRange(v *types.AcceleratorTotalMemoryMiBRange) error { if v == nil { return nil @@ -3244,6 +3300,11 @@ func validateServiceManagedEc2InstanceCapabilities(v *types.ServiceManagedEc2Ins if len(v.CpuArchitectureType) == 0 { invalidParams.Add(smithy.NewErrParamRequired("CpuArchitectureType")) } + if v.AcceleratorCapabilities != nil { + if err := validateAcceleratorCapabilities(v.AcceleratorCapabilities); err != nil { + invalidParams.AddNested("AcceleratorCapabilities", err.(smithy.InvalidParamsError)) + } + } if v.CustomAmounts != nil { if err := validateCustomFleetAmountCapabilities(v.CustomAmounts); err != nil { invalidParams.AddNested("CustomAmounts", err.(smithy.InvalidParamsError)) diff --git a/service/iam/api_op_CreateLoginProfile.go b/service/iam/api_op_CreateLoginProfile.go index 10228a0a0d8..63c5ed26209 100644 --- a/service/iam/api_op_CreateLoginProfile.go +++ b/service/iam/api_op_CreateLoginProfile.go @@ -42,6 +42,9 @@ type CreateLoginProfileInput struct { // The new password for the user. // + // This parameter must be omitted when you make the request with an [AssumeRoot] session. It + // is required in all other cases. + // // The [regex pattern] that is used to validate this parameter is a string of characters. That // string can include almost any printable ASCII character from the space ( \u0020 // ) through the end of the ASCII character range ( \u00FF ). You can also include @@ -51,25 +54,27 @@ type CreateLoginProfileInput struct { // ability to type certain characters because they have special meaning within that // tool. // + // [AssumeRoot]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html // [regex pattern]: http://wikipedia.org/wiki/regex - // - // This member is required. Password *string + // Specifies whether the user is required to set a new password on next sign-in. + PasswordResetRequired bool + // The name of the IAM user to create a password for. The user must already exist. // + // This parameter is optional. If no user name is included, it defaults to the + // principal making the request. When you make this request with root user + // credentials, you must use an [AssumeRoot]session to omit the user name. + // // This parameter allows (through its [regex pattern]) a string of characters consisting of upper // and lowercase alphanumeric characters with no spaces. You can also include any // of the following characters: _+=,.@- // + // [AssumeRoot]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html // [regex pattern]: http://wikipedia.org/wiki/regex - // - // This member is required. UserName *string - // Specifies whether the user is required to set a new password on next sign-in. - PasswordResetRequired bool - noSmithyDocumentSerde } @@ -151,9 +156,6 @@ func (c *Client) addOperationCreateLoginProfileMiddlewares(stack *middleware.Sta if err = addUserAgentRetryMode(stack, options); err != nil { return err } - if err = addOpCreateLoginProfileValidationMiddleware(stack); err != nil { - return err - } if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateLoginProfile(options.Region), middleware.Before); err != nil { return err } diff --git a/service/iam/api_op_DeactivateMFADevice.go b/service/iam/api_op_DeactivateMFADevice.go index 4e0a893de72..f675e534120 100644 --- a/service/iam/api_op_DeactivateMFADevice.go +++ b/service/iam/api_op_DeactivateMFADevice.go @@ -48,13 +48,16 @@ type DeactivateMFADeviceInput struct { // The name of the user whose MFA device you want to deactivate. // + // This parameter is optional. If no user name is included, it defaults to the + // principal making the request. When you make this request with root user + // credentials, you must use an [AssumeRoot]session to omit the user name. + // // This parameter allows (through its [regex pattern]) a string of characters consisting of upper // and lowercase alphanumeric characters with no spaces. You can also include any // of the following characters: _+=,.@- // + // [AssumeRoot]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html // [regex pattern]: http://wikipedia.org/wiki/regex - // - // This member is required. UserName *string noSmithyDocumentSerde diff --git a/service/iam/api_op_DeleteLoginProfile.go b/service/iam/api_op_DeleteLoginProfile.go index aabc6c083f8..f7c45ce4730 100644 --- a/service/iam/api_op_DeleteLoginProfile.go +++ b/service/iam/api_op_DeleteLoginProfile.go @@ -42,13 +42,16 @@ type DeleteLoginProfileInput struct { // The name of the user whose password you want to delete. // + // This parameter is optional. If no user name is included, it defaults to the + // principal making the request. When you make this request with root user + // credentials, you must use an [AssumeRoot]session to omit the user name. + // // This parameter allows (through its [regex pattern]) a string of characters consisting of upper // and lowercase alphanumeric characters with no spaces. You can also include any // of the following characters: _+=,.@- // + // [AssumeRoot]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html // [regex pattern]: http://wikipedia.org/wiki/regex - // - // This member is required. UserName *string noSmithyDocumentSerde @@ -125,9 +128,6 @@ func (c *Client) addOperationDeleteLoginProfileMiddlewares(stack *middleware.Sta if err = addUserAgentRetryMode(stack, options); err != nil { return err } - if err = addOpDeleteLoginProfileValidationMiddleware(stack); err != nil { - return err - } if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteLoginProfile(options.Region), middleware.Before); err != nil { return err } diff --git a/service/iam/api_op_DisableOrganizationsRootCredentialsManagement.go b/service/iam/api_op_DisableOrganizationsRootCredentialsManagement.go new file mode 100644 index 00000000000..5b24e78d53c --- /dev/null +++ b/service/iam/api_op_DisableOrganizationsRootCredentialsManagement.go @@ -0,0 +1,155 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iam + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/iam/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Disables the management of privileged root user credentials across member +// accounts in your organization. When you disable this feature, the management +// account and the delegated admininstrator for IAM can no longer manage root user +// credentials for member accounts in your organization. +func (c *Client) DisableOrganizationsRootCredentialsManagement(ctx context.Context, params *DisableOrganizationsRootCredentialsManagementInput, optFns ...func(*Options)) (*DisableOrganizationsRootCredentialsManagementOutput, error) { + if params == nil { + params = &DisableOrganizationsRootCredentialsManagementInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DisableOrganizationsRootCredentialsManagement", params, optFns, c.addOperationDisableOrganizationsRootCredentialsManagementMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DisableOrganizationsRootCredentialsManagementOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DisableOrganizationsRootCredentialsManagementInput struct { + noSmithyDocumentSerde +} + +type DisableOrganizationsRootCredentialsManagementOutput struct { + + // The features enabled for centralized root access for member accounts in your + // organization. + EnabledFeatures []types.FeatureType + + // The unique identifier (ID) of an organization. + OrganizationId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDisableOrganizationsRootCredentialsManagementMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsquery_serializeOpDisableOrganizationsRootCredentialsManagement{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsquery_deserializeOpDisableOrganizationsRootCredentialsManagement{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DisableOrganizationsRootCredentialsManagement"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDisableOrganizationsRootCredentialsManagement(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDisableOrganizationsRootCredentialsManagement(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DisableOrganizationsRootCredentialsManagement", + } +} diff --git a/service/iam/api_op_DisableOrganizationsRootSessions.go b/service/iam/api_op_DisableOrganizationsRootSessions.go new file mode 100644 index 00000000000..b0015fee6b1 --- /dev/null +++ b/service/iam/api_op_DisableOrganizationsRootSessions.go @@ -0,0 +1,155 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iam + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/iam/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Disables root user sessions for privileged tasks across member accounts in your +// organization. When you disable this feature, the management account and the +// delegated admininstrator for IAM can no longer perform privileged tasks on +// member accounts in your organization. +func (c *Client) DisableOrganizationsRootSessions(ctx context.Context, params *DisableOrganizationsRootSessionsInput, optFns ...func(*Options)) (*DisableOrganizationsRootSessionsOutput, error) { + if params == nil { + params = &DisableOrganizationsRootSessionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DisableOrganizationsRootSessions", params, optFns, c.addOperationDisableOrganizationsRootSessionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DisableOrganizationsRootSessionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DisableOrganizationsRootSessionsInput struct { + noSmithyDocumentSerde +} + +type DisableOrganizationsRootSessionsOutput struct { + + // The features you have enabled for centralized root access of member accounts in + // your organization. + EnabledFeatures []types.FeatureType + + // The unique identifier (ID) of an organization. + OrganizationId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDisableOrganizationsRootSessionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsquery_serializeOpDisableOrganizationsRootSessions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsquery_deserializeOpDisableOrganizationsRootSessions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DisableOrganizationsRootSessions"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDisableOrganizationsRootSessions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDisableOrganizationsRootSessions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DisableOrganizationsRootSessions", + } +} diff --git a/service/iam/api_op_EnableOrganizationsRootCredentialsManagement.go b/service/iam/api_op_EnableOrganizationsRootCredentialsManagement.go new file mode 100644 index 00000000000..d414fa214d0 --- /dev/null +++ b/service/iam/api_op_EnableOrganizationsRootCredentialsManagement.go @@ -0,0 +1,166 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iam + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/iam/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Enables the management of privileged root user credentials across member +// accounts in your organization. When you enable root credentials management for [centralized root access] +// , the management account and the delegated admininstrator for IAM can manage +// root user credentials for member accounts in your organization. +// +// Before you enable centralized root access, you must have an account configured +// with the following settings: +// +// - You must manage your Amazon Web Services accounts in [Organizations]. +// +// - Enable trusted access for Identity and Access Management in Organizations. +// For details, see [IAM and Organizations]in the Organizations User Guide. +// +// [Organizations]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html +// [centralized root access]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management +// [IAM and Organizations]: https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-ra.html +func (c *Client) EnableOrganizationsRootCredentialsManagement(ctx context.Context, params *EnableOrganizationsRootCredentialsManagementInput, optFns ...func(*Options)) (*EnableOrganizationsRootCredentialsManagementOutput, error) { + if params == nil { + params = &EnableOrganizationsRootCredentialsManagementInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "EnableOrganizationsRootCredentialsManagement", params, optFns, c.addOperationEnableOrganizationsRootCredentialsManagementMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*EnableOrganizationsRootCredentialsManagementOutput) + out.ResultMetadata = metadata + return out, nil +} + +type EnableOrganizationsRootCredentialsManagementInput struct { + noSmithyDocumentSerde +} + +type EnableOrganizationsRootCredentialsManagementOutput struct { + + // The features you have enabled for centralized root access. + EnabledFeatures []types.FeatureType + + // The unique identifier (ID) of an organization. + OrganizationId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationEnableOrganizationsRootCredentialsManagementMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsquery_serializeOpEnableOrganizationsRootCredentialsManagement{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsquery_deserializeOpEnableOrganizationsRootCredentialsManagement{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "EnableOrganizationsRootCredentialsManagement"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opEnableOrganizationsRootCredentialsManagement(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opEnableOrganizationsRootCredentialsManagement(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "EnableOrganizationsRootCredentialsManagement", + } +} diff --git a/service/iam/api_op_EnableOrganizationsRootSessions.go b/service/iam/api_op_EnableOrganizationsRootSessions.go new file mode 100644 index 00000000000..07aacb0cdd0 --- /dev/null +++ b/service/iam/api_op_EnableOrganizationsRootSessions.go @@ -0,0 +1,165 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iam + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/iam/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Allows the management account or delegated administrator to perform privileged +// tasks on member accounts in your organization. For more information, see [Centrally manage root access for member accounts]in the +// Identity and Access Management User Guide. +// +// Before you enable this feature, you must have an account configured with the +// following settings: +// +// - You must manage your Amazon Web Services accounts in [Organizations]. +// +// - Enable trusted access for Identity and Access Management in Organizations. +// For details, see [IAM and Organizations]in the Organizations User Guide. +// +// [Centrally manage root access for member accounts]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management +// [Organizations]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html +// [IAM and Organizations]: https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-ra.html +func (c *Client) EnableOrganizationsRootSessions(ctx context.Context, params *EnableOrganizationsRootSessionsInput, optFns ...func(*Options)) (*EnableOrganizationsRootSessionsOutput, error) { + if params == nil { + params = &EnableOrganizationsRootSessionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "EnableOrganizationsRootSessions", params, optFns, c.addOperationEnableOrganizationsRootSessionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*EnableOrganizationsRootSessionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type EnableOrganizationsRootSessionsInput struct { + noSmithyDocumentSerde +} + +type EnableOrganizationsRootSessionsOutput struct { + + // The features you have enabled for centralized root access. + EnabledFeatures []types.FeatureType + + // The unique identifier (ID) of an organization. + OrganizationId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationEnableOrganizationsRootSessionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsquery_serializeOpEnableOrganizationsRootSessions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsquery_deserializeOpEnableOrganizationsRootSessions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "EnableOrganizationsRootSessions"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opEnableOrganizationsRootSessions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opEnableOrganizationsRootSessions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "EnableOrganizationsRootSessions", + } +} diff --git a/service/iam/api_op_GetLoginProfile.go b/service/iam/api_op_GetLoginProfile.go index 51d78685b5c..4e16bb622d7 100644 --- a/service/iam/api_op_GetLoginProfile.go +++ b/service/iam/api_op_GetLoginProfile.go @@ -43,13 +43,16 @@ type GetLoginProfileInput struct { // The name of the user whose login profile you want to retrieve. // + // This parameter is optional. If no user name is included, it defaults to the + // principal making the request. When you make this request with root user + // credentials, you must use an [AssumeRoot]session to omit the user name. + // // This parameter allows (through its [regex pattern]) a string of characters consisting of upper // and lowercase alphanumeric characters with no spaces. You can also include any // of the following characters: _+=,.@- // + // [AssumeRoot]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html // [regex pattern]: http://wikipedia.org/wiki/regex - // - // This member is required. UserName *string noSmithyDocumentSerde @@ -133,9 +136,6 @@ func (c *Client) addOperationGetLoginProfileMiddlewares(stack *middleware.Stack, if err = addUserAgentRetryMode(stack, options); err != nil { return err } - if err = addOpGetLoginProfileValidationMiddleware(stack); err != nil { - return err - } if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetLoginProfile(options.Region), middleware.Before); err != nil { return err } diff --git a/service/iam/api_op_ListAccountAliases.go b/service/iam/api_op_ListAccountAliases.go index a65d49f20a0..28b0b9787b8 100644 --- a/service/iam/api_op_ListAccountAliases.go +++ b/service/iam/api_op_ListAccountAliases.go @@ -12,9 +12,9 @@ import ( // Lists the account alias associated with the Amazon Web Services account (Note: // you can have only one). For information about using an Amazon Web Services -// account alias, see [Creating, deleting, and listing an Amazon Web Services account alias]in the IAM User Guide. +// account alias, see [Creating, deleting, and listing an Amazon Web Services account alias]in the Amazon Web Services Sign-In User Guide. // -// [Creating, deleting, and listing an Amazon Web Services account alias]: https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#CreateAccountAlias +// [Creating, deleting, and listing an Amazon Web Services account alias]: https://docs.aws.amazon.com/signin/latest/userguide/CreateAccountAlias.html func (c *Client) ListAccountAliases(ctx context.Context, params *ListAccountAliasesInput, optFns ...func(*Options)) (*ListAccountAliasesOutput, error) { if params == nil { params = &ListAccountAliasesInput{} diff --git a/service/iam/api_op_ListOrganizationsFeatures.go b/service/iam/api_op_ListOrganizationsFeatures.go new file mode 100644 index 00000000000..43d139733fd --- /dev/null +++ b/service/iam/api_op_ListOrganizationsFeatures.go @@ -0,0 +1,154 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package iam + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/iam/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists the centralized root access features enabled for your organization. For +// more information, see [Centrally manage root access for member accounts]. +// +// [Centrally manage root access for member accounts]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management +func (c *Client) ListOrganizationsFeatures(ctx context.Context, params *ListOrganizationsFeaturesInput, optFns ...func(*Options)) (*ListOrganizationsFeaturesOutput, error) { + if params == nil { + params = &ListOrganizationsFeaturesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListOrganizationsFeatures", params, optFns, c.addOperationListOrganizationsFeaturesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListOrganizationsFeaturesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListOrganizationsFeaturesInput struct { + noSmithyDocumentSerde +} + +type ListOrganizationsFeaturesOutput struct { + + // Specifies the features that are currently available in your organization. + EnabledFeatures []types.FeatureType + + // The unique identifier (ID) of an organization. + OrganizationId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListOrganizationsFeaturesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsquery_serializeOpListOrganizationsFeatures{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsquery_deserializeOpListOrganizationsFeatures{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListOrganizationsFeatures"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListOrganizationsFeatures(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opListOrganizationsFeatures(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListOrganizationsFeatures", + } +} diff --git a/service/iam/deserializers.go b/service/iam/deserializers.go index 7532c0e1922..8d836acd105 100644 --- a/service/iam/deserializers.go +++ b/service/iam/deserializers.go @@ -4682,14 +4682,475 @@ func awsAwsquery_deserializeOpErrorDetachUserPolicy(response *smithyhttp.Respons } } +type awsAwsquery_deserializeOpDisableOrganizationsRootCredentialsManagement struct { +} + +func (*awsAwsquery_deserializeOpDisableOrganizationsRootCredentialsManagement) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsquery_deserializeOpDisableOrganizationsRootCredentialsManagement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsquery_deserializeOpErrorDisableOrganizationsRootCredentialsManagement(response, &metadata) + } + output := &DisableOrganizationsRootCredentialsManagementOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("DisableOrganizationsRootCredentialsManagementResult") + 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 + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeOpDocumentDisableOrganizationsRootCredentialsManagementOutput(&output, 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 out, metadata, err + } + + return out, metadata, err +} + +func awsAwsquery_deserializeOpErrorDisableOrganizationsRootCredentialsManagement(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 + + errorComponents, err := awsxml.GetErrorResponseComponents(errorBody, false) + if err != nil { + return err + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("AccountNotManagementOrDelegatedAdministratorException", errorCode): + return awsAwsquery_deserializeErrorAccountNotManagementOrDelegatedAdministratorException(response, errorBody) + + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotFoundException(response, errorBody) + + case strings.EqualFold("OrganizationNotInAllFeaturesModeException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotInAllFeaturesModeException(response, errorBody) + + case strings.EqualFold("ServiceAccessNotEnabledException", errorCode): + return awsAwsquery_deserializeErrorServiceAccessNotEnabledException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsquery_deserializeOpDisableOrganizationsRootSessions struct { +} + +func (*awsAwsquery_deserializeOpDisableOrganizationsRootSessions) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsquery_deserializeOpDisableOrganizationsRootSessions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsquery_deserializeOpErrorDisableOrganizationsRootSessions(response, &metadata) + } + output := &DisableOrganizationsRootSessionsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("DisableOrganizationsRootSessionsResult") + 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 + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeOpDocumentDisableOrganizationsRootSessionsOutput(&output, 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 out, metadata, err + } + + return out, metadata, err +} + +func awsAwsquery_deserializeOpErrorDisableOrganizationsRootSessions(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 + + errorComponents, err := awsxml.GetErrorResponseComponents(errorBody, false) + if err != nil { + return err + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("AccountNotManagementOrDelegatedAdministratorException", errorCode): + return awsAwsquery_deserializeErrorAccountNotManagementOrDelegatedAdministratorException(response, errorBody) + + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotFoundException(response, errorBody) + + case strings.EqualFold("OrganizationNotInAllFeaturesModeException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotInAllFeaturesModeException(response, errorBody) + + case strings.EqualFold("ServiceAccessNotEnabledException", errorCode): + return awsAwsquery_deserializeErrorServiceAccessNotEnabledException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsquery_deserializeOpEnableMFADevice struct { } -func (*awsAwsquery_deserializeOpEnableMFADevice) ID() string { +func (*awsAwsquery_deserializeOpEnableMFADevice) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsquery_deserializeOpEnableMFADevice) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsquery_deserializeOpErrorEnableMFADevice(response, &metadata) + } + output := &EnableMFADeviceOutput{} + 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 awsAwsquery_deserializeOpErrorEnableMFADevice(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 + + errorComponents, err := awsxml.GetErrorResponseComponents(errorBody, false) + if err != nil { + return err + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("ConcurrentModification", errorCode): + return awsAwsquery_deserializeErrorConcurrentModificationException(response, errorBody) + + case strings.EqualFold("EntityAlreadyExists", errorCode): + return awsAwsquery_deserializeErrorEntityAlreadyExistsException(response, errorBody) + + case strings.EqualFold("EntityTemporarilyUnmodifiable", errorCode): + return awsAwsquery_deserializeErrorEntityTemporarilyUnmodifiableException(response, errorBody) + + case strings.EqualFold("InvalidAuthenticationCode", errorCode): + return awsAwsquery_deserializeErrorInvalidAuthenticationCodeException(response, errorBody) + + case strings.EqualFold("LimitExceeded", errorCode): + return awsAwsquery_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("NoSuchEntity", errorCode): + return awsAwsquery_deserializeErrorNoSuchEntityException(response, errorBody) + + case strings.EqualFold("ServiceFailure", errorCode): + return awsAwsquery_deserializeErrorServiceFailureException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsquery_deserializeOpEnableOrganizationsRootCredentialsManagement struct { +} + +func (*awsAwsquery_deserializeOpEnableOrganizationsRootCredentialsManagement) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsquery_deserializeOpEnableOrganizationsRootCredentialsManagement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsquery_deserializeOpErrorEnableOrganizationsRootCredentialsManagement(response, &metadata) + } + output := &EnableOrganizationsRootCredentialsManagementOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("EnableOrganizationsRootCredentialsManagementResult") + 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 + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeOpDocumentEnableOrganizationsRootCredentialsManagementOutput(&output, 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 out, metadata, err + } + + return out, metadata, err +} + +func awsAwsquery_deserializeOpErrorEnableOrganizationsRootCredentialsManagement(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 + + errorComponents, err := awsxml.GetErrorResponseComponents(errorBody, false) + if err != nil { + return err + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("AccountNotManagementOrDelegatedAdministratorException", errorCode): + return awsAwsquery_deserializeErrorAccountNotManagementOrDelegatedAdministratorException(response, errorBody) + + case strings.EqualFold("CallerIsNotManagementAccountException", errorCode): + return awsAwsquery_deserializeErrorCallerIsNotManagementAccountException(response, errorBody) + + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotFoundException(response, errorBody) + + case strings.EqualFold("OrganizationNotInAllFeaturesModeException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotInAllFeaturesModeException(response, errorBody) + + case strings.EqualFold("ServiceAccessNotEnabledException", errorCode): + return awsAwsquery_deserializeErrorServiceAccessNotEnabledException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsquery_deserializeOpEnableOrganizationsRootSessions struct { +} + +func (*awsAwsquery_deserializeOpEnableOrganizationsRootSessions) ID() string { return "OperationDeserializer" } -func (m *awsAwsquery_deserializeOpEnableMFADevice) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsAwsquery_deserializeOpEnableOrganizationsRootSessions) 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) @@ -4707,21 +5168,56 @@ func (m *awsAwsquery_deserializeOpEnableMFADevice) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsAwsquery_deserializeOpErrorEnableMFADevice(response, &metadata) + return out, metadata, awsAwsquery_deserializeOpErrorEnableOrganizationsRootSessions(response, &metadata) } - output := &EnableMFADeviceOutput{} + output := &EnableOrganizationsRootSessionsOutput{} out.Result = output - if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) return out, metadata, &smithy.DeserializationError{ - Err: fmt.Errorf("failed to discard response body, %w", err), + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("EnableOrganizationsRootSessionsResult") + 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 + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeOpDocumentEnableOrganizationsRootSessionsOutput(&output, 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 out, metadata, err } return out, metadata, err } -func awsAwsquery_deserializeOpErrorEnableMFADevice(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsAwsquery_deserializeOpErrorEnableOrganizationsRootSessions(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)} @@ -4746,26 +5242,20 @@ func awsAwsquery_deserializeOpErrorEnableMFADevice(response *smithyhttp.Response } errorBody.Seek(0, io.SeekStart) switch { - case strings.EqualFold("ConcurrentModification", errorCode): - return awsAwsquery_deserializeErrorConcurrentModificationException(response, errorBody) - - case strings.EqualFold("EntityAlreadyExists", errorCode): - return awsAwsquery_deserializeErrorEntityAlreadyExistsException(response, errorBody) - - case strings.EqualFold("EntityTemporarilyUnmodifiable", errorCode): - return awsAwsquery_deserializeErrorEntityTemporarilyUnmodifiableException(response, errorBody) + case strings.EqualFold("AccountNotManagementOrDelegatedAdministratorException", errorCode): + return awsAwsquery_deserializeErrorAccountNotManagementOrDelegatedAdministratorException(response, errorBody) - case strings.EqualFold("InvalidAuthenticationCode", errorCode): - return awsAwsquery_deserializeErrorInvalidAuthenticationCodeException(response, errorBody) + case strings.EqualFold("CallerIsNotManagementAccountException", errorCode): + return awsAwsquery_deserializeErrorCallerIsNotManagementAccountException(response, errorBody) - case strings.EqualFold("LimitExceeded", errorCode): - return awsAwsquery_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotFoundException(response, errorBody) - case strings.EqualFold("NoSuchEntity", errorCode): - return awsAwsquery_deserializeErrorNoSuchEntityException(response, errorBody) + case strings.EqualFold("OrganizationNotInAllFeaturesModeException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotInAllFeaturesModeException(response, errorBody) - case strings.EqualFold("ServiceFailure", errorCode): - return awsAwsquery_deserializeErrorServiceFailureException(response, errorBody) + case strings.EqualFold("ServiceAccessNotEnabledException", errorCode): + return awsAwsquery_deserializeErrorServiceAccessNotEnabledException(response, errorBody) default: genericError := &smithy.GenericAPIError{ @@ -9958,6 +10448,127 @@ func awsAwsquery_deserializeOpErrorListOpenIDConnectProviderTags(response *smith } } +type awsAwsquery_deserializeOpListOrganizationsFeatures struct { +} + +func (*awsAwsquery_deserializeOpListOrganizationsFeatures) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsquery_deserializeOpListOrganizationsFeatures) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsquery_deserializeOpErrorListOrganizationsFeatures(response, &metadata) + } + output := &ListOrganizationsFeaturesOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("ListOrganizationsFeaturesResult") + 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 + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeOpDocumentListOrganizationsFeaturesOutput(&output, 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 out, metadata, err + } + + return out, metadata, err +} + +func awsAwsquery_deserializeOpErrorListOrganizationsFeatures(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 + + errorComponents, err := awsxml.GetErrorResponseComponents(errorBody, false) + if err != nil { + return err + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("AccountNotManagementOrDelegatedAdministratorException", errorCode): + return awsAwsquery_deserializeErrorAccountNotManagementOrDelegatedAdministratorException(response, errorBody) + + case strings.EqualFold("OrganizationNotFoundException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotFoundException(response, errorBody) + + case strings.EqualFold("OrganizationNotInAllFeaturesModeException", errorCode): + return awsAwsquery_deserializeErrorOrganizationNotInAllFeaturesModeException(response, errorBody) + + case strings.EqualFold("ServiceAccessNotEnabledException", errorCode): + return awsAwsquery_deserializeErrorServiceAccessNotEnabledException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsquery_deserializeOpListPolicies struct { } @@ -16357,14 +16968,102 @@ func awsAwsquery_deserializeOpErrorUploadSSHPublicKey(response *smithyhttp.Respo case strings.EqualFold("UnrecognizedPublicKeyEncoding", errorCode): return awsAwsquery_deserializeErrorUnrecognizedPublicKeyEncodingException(response, errorBody) - default: - genericError := &smithy.GenericAPIError{ - Code: errorCode, - Message: errorMessage, + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsAwsquery_deserializeErrorAccountNotManagementOrDelegatedAdministratorException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.AccountNotManagementOrDelegatedAdministratorException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return output + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("Error") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeDocumentAccountNotManagementOrDelegatedAdministratorException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return output +} + +func awsAwsquery_deserializeErrorCallerIsNotManagementAccountException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.CallerIsNotManagementAccountException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return output + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("Error") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), } - return genericError + } + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeDocumentCallerIsNotManagementAccountException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } } + + return output } func awsAwsquery_deserializeErrorConcurrentModificationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { @@ -17247,6 +17946,94 @@ func awsAwsquery_deserializeErrorOpenIdIdpCommunicationErrorException(response * return output } +func awsAwsquery_deserializeErrorOrganizationNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.OrganizationNotFoundException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return output + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("Error") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeDocumentOrganizationNotFoundException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return output +} + +func awsAwsquery_deserializeErrorOrganizationNotInAllFeaturesModeException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.OrganizationNotInAllFeaturesModeException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return output + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("Error") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeDocumentOrganizationNotInAllFeaturesModeException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return output +} + func awsAwsquery_deserializeErrorPasswordPolicyViolationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { output := &types.PasswordPolicyViolationException{} var buff [1024]byte @@ -17423,6 +18210,50 @@ func awsAwsquery_deserializeErrorReportGenerationLimitExceededException(response return output } +func awsAwsquery_deserializeErrorServiceAccessNotEnabledException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ServiceAccessNotEnabledException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(errorBody, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return output + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("Error") + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeDocumentServiceAccessNotEnabledException(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return output +} + func awsAwsquery_deserializeErrorServiceFailureException(response *smithyhttp.Response, errorBody *bytes.Reader) error { output := &types.ServiceFailureException{} var buff [1024]byte @@ -18213,6 +19044,55 @@ func awsAwsquery_deserializeDocumentAccountAliasListTypeUnwrapped(v *[]string, d *v = sv return nil } +func awsAwsquery_deserializeDocumentAccountNotManagementOrDelegatedAdministratorException(v **types.AccountNotManagementOrDelegatedAdministratorException, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.AccountNotManagementOrDelegatedAdministratorException + if *v == nil { + sv = &types.AccountNotManagementOrDelegatedAdministratorException{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Message", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Message = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsAwsquery_deserializeDocumentArnListType(v *[]string, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -18407,29 +19287,91 @@ func awsAwsquery_deserializeDocumentAttachedPoliciesListTypeUnwrapped(v *[]types sv = *v } - switch { - default: - var mv types.AttachedPolicy - t := decoder.StartEl - _ = t - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - destAddr := &mv - if err := awsAwsquery_deserializeDocumentAttachedPolicy(&destAddr, nodeDecoder); err != nil { - return err + switch { + default: + var mv types.AttachedPolicy + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsAwsquery_deserializeDocumentAttachedPolicy(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} +func awsAwsquery_deserializeDocumentAttachedPolicy(v **types.AttachedPolicy, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.AttachedPolicy + if *v == nil { + sv = &types.AttachedPolicy{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("PolicyArn", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.PolicyArn = ptr.String(xtv) + } + + case strings.EqualFold("PolicyName", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.PolicyName = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + } - mv = *destAddr - sv = append(sv, mv) + decoder = originalDecoder } *v = sv return nil } -func awsAwsquery_deserializeDocumentAttachedPolicy(v **types.AttachedPolicy, decoder smithyxml.NodeDecoder) error { + +func awsAwsquery_deserializeDocumentCallerIsNotManagementAccountException(v **types.CallerIsNotManagementAccountException, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } - var sv *types.AttachedPolicy + var sv *types.CallerIsNotManagementAccountException if *v == nil { - sv = &types.AttachedPolicy{} + sv = &types.CallerIsNotManagementAccountException{} } else { sv = *v } @@ -18445,20 +19387,7 @@ func awsAwsquery_deserializeDocumentAttachedPolicy(v **types.AttachedPolicy, dec originalDecoder := decoder decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) switch { - case strings.EqualFold("PolicyArn", t.Name.Local): - val, err := decoder.Value() - if err != nil { - return err - } - if val == nil { - break - } - { - xtv := string(val) - sv.PolicyArn = ptr.String(xtv) - } - - case strings.EqualFold("PolicyName", t.Name.Local): + case strings.EqualFold("Message", t.Name.Local): val, err := decoder.Value() if err != nil { return err @@ -18468,7 +19397,7 @@ func awsAwsquery_deserializeDocumentAttachedPolicy(v **types.AttachedPolicy, dec } { xtv := string(val) - sv.PolicyName = ptr.String(xtv) + sv.Message = ptr.String(xtv) } default: @@ -19874,6 +20803,86 @@ func awsAwsquery_deserializeDocumentEvaluationResultsListTypeUnwrapped(v *[]type *v = sv return nil } +func awsAwsquery_deserializeDocumentFeaturesListType(v *[]types.FeatureType, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.FeatureType + if *v == nil { + sv = make([]types.FeatureType, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + memberDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + decoder = memberDecoder + switch { + case strings.EqualFold("member", t.Name.Local): + var col types.FeatureType + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + col = types.FeatureType(xtv) + } + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsAwsquery_deserializeDocumentFeaturesListTypeUnwrapped(v *[]types.FeatureType, decoder smithyxml.NodeDecoder) error { + var sv []types.FeatureType + if *v == nil { + sv = make([]types.FeatureType, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.FeatureType + t := decoder.StartEl + _ = t + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + mv = types.FeatureType(xtv) + } + sv = append(sv, mv) + } + *v = sv + return nil +} func awsAwsquery_deserializeDocumentGroup(v **types.Group, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -21777,6 +22786,104 @@ func awsAwsquery_deserializeDocumentOpenIdIdpCommunicationErrorException(v **typ return nil } +func awsAwsquery_deserializeDocumentOrganizationNotFoundException(v **types.OrganizationNotFoundException, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.OrganizationNotFoundException + if *v == nil { + sv = &types.OrganizationNotFoundException{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Message", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Message = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsAwsquery_deserializeDocumentOrganizationNotInAllFeaturesModeException(v **types.OrganizationNotInAllFeaturesModeException, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.OrganizationNotInAllFeaturesModeException + if *v == nil { + sv = &types.OrganizationNotInAllFeaturesModeException{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Message", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Message = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsAwsquery_deserializeDocumentOrganizationsDecisionDetail(v **types.OrganizationsDecisionDetail, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -24748,22 +25855,71 @@ func awsAwsquery_deserializeDocumentServerCertificateMetadataListTypeUnwrapped(v sv = *v } - switch { - default: - var mv types.ServerCertificateMetadata - t := decoder.StartEl - _ = t - nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) - destAddr := &mv - if err := awsAwsquery_deserializeDocumentServerCertificateMetadata(&destAddr, nodeDecoder); err != nil { - return err + switch { + default: + var mv types.ServerCertificateMetadata + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsAwsquery_deserializeDocumentServerCertificateMetadata(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + sv = append(sv, mv) + } + *v = sv + return nil +} +func awsAwsquery_deserializeDocumentServiceAccessNotEnabledException(v **types.ServiceAccessNotEnabledException, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.ServiceAccessNotEnabledException + if *v == nil { + sv = &types.ServiceAccessNotEnabledException{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Message", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Message = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + } - mv = *destAddr - sv = append(sv, mv) + decoder = originalDecoder } *v = sv return nil } + func awsAwsquery_deserializeDocumentServiceFailureException(v **types.ServiceFailureException, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -27678,6 +28834,226 @@ func awsAwsquery_deserializeOpDocumentDeleteServiceLinkedRoleOutput(v **DeleteSe return nil } +func awsAwsquery_deserializeOpDocumentDisableOrganizationsRootCredentialsManagementOutput(v **DisableOrganizationsRootCredentialsManagementOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *DisableOrganizationsRootCredentialsManagementOutput + if *v == nil { + sv = &DisableOrganizationsRootCredentialsManagementOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("EnabledFeatures", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsAwsquery_deserializeDocumentFeaturesListType(&sv.EnabledFeatures, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("OrganizationId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.OrganizationId = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsAwsquery_deserializeOpDocumentDisableOrganizationsRootSessionsOutput(v **DisableOrganizationsRootSessionsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *DisableOrganizationsRootSessionsOutput + if *v == nil { + sv = &DisableOrganizationsRootSessionsOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("EnabledFeatures", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsAwsquery_deserializeDocumentFeaturesListType(&sv.EnabledFeatures, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("OrganizationId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.OrganizationId = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsAwsquery_deserializeOpDocumentEnableOrganizationsRootCredentialsManagementOutput(v **EnableOrganizationsRootCredentialsManagementOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *EnableOrganizationsRootCredentialsManagementOutput + if *v == nil { + sv = &EnableOrganizationsRootCredentialsManagementOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("EnabledFeatures", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsAwsquery_deserializeDocumentFeaturesListType(&sv.EnabledFeatures, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("OrganizationId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.OrganizationId = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsAwsquery_deserializeOpDocumentEnableOrganizationsRootSessionsOutput(v **EnableOrganizationsRootSessionsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *EnableOrganizationsRootSessionsOutput + if *v == nil { + sv = &EnableOrganizationsRootSessionsOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("EnabledFeatures", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsAwsquery_deserializeDocumentFeaturesListType(&sv.EnabledFeatures, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("OrganizationId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.OrganizationId = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsAwsquery_deserializeOpDocumentGenerateCredentialReportOutput(v **GenerateCredentialReportOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -30723,6 +32099,61 @@ func awsAwsquery_deserializeOpDocumentListOpenIDConnectProviderTagsOutput(v **Li return nil } +func awsAwsquery_deserializeOpDocumentListOrganizationsFeaturesOutput(v **ListOrganizationsFeaturesOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *ListOrganizationsFeaturesOutput + if *v == nil { + sv = &ListOrganizationsFeaturesOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("EnabledFeatures", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsAwsquery_deserializeDocumentFeaturesListType(&sv.EnabledFeatures, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("OrganizationId", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.OrganizationId = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsAwsquery_deserializeOpDocumentListPoliciesGrantingServiceAccessOutput(v **ListPoliciesGrantingServiceAccessOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/iam/generated.json b/service/iam/generated.json index 26ce6bfcc09..0732bfb490a 100644 --- a/service/iam/generated.json +++ b/service/iam/generated.json @@ -56,7 +56,11 @@ "api_op_DetachGroupPolicy.go", "api_op_DetachRolePolicy.go", "api_op_DetachUserPolicy.go", + "api_op_DisableOrganizationsRootCredentialsManagement.go", + "api_op_DisableOrganizationsRootSessions.go", "api_op_EnableMFADevice.go", + "api_op_EnableOrganizationsRootCredentialsManagement.go", + "api_op_EnableOrganizationsRootSessions.go", "api_op_GenerateCredentialReport.go", "api_op_GenerateOrganizationsAccessReport.go", "api_op_GenerateServiceLastAccessedDetails.go", @@ -102,6 +106,7 @@ "api_op_ListMFADevices.go", "api_op_ListOpenIDConnectProviderTags.go", "api_op_ListOpenIDConnectProviders.go", + "api_op_ListOrganizationsFeatures.go", "api_op_ListPolicies.go", "api_op_ListPoliciesGrantingServiceAccess.go", "api_op_ListPolicyTags.go", diff --git a/service/iam/serializers.go b/service/iam/serializers.go index 14902486e2f..1213e9b0233 100644 --- a/service/iam/serializers.go +++ b/service/iam/serializers.go @@ -3372,6 +3372,138 @@ func (m *awsAwsquery_serializeOpDetachUserPolicy) HandleSerialize(ctx context.Co return next.HandleSerialize(ctx, in) } +type awsAwsquery_serializeOpDisableOrganizationsRootCredentialsManagement struct { +} + +func (*awsAwsquery_serializeOpDisableOrganizationsRootCredentialsManagement) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsquery_serializeOpDisableOrganizationsRootCredentialsManagement) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DisableOrganizationsRootCredentialsManagementInput) + _ = 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-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("DisableOrganizationsRootCredentialsManagement") + body.Key("Version").String("2010-05-08") + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsquery_serializeOpDisableOrganizationsRootSessions struct { +} + +func (*awsAwsquery_serializeOpDisableOrganizationsRootSessions) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsquery_serializeOpDisableOrganizationsRootSessions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DisableOrganizationsRootSessionsInput) + _ = 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-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("DisableOrganizationsRootSessions") + body.Key("Version").String("2010-05-08") + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsquery_serializeOpEnableMFADevice struct { } @@ -3442,6 +3574,138 @@ func (m *awsAwsquery_serializeOpEnableMFADevice) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } +type awsAwsquery_serializeOpEnableOrganizationsRootCredentialsManagement struct { +} + +func (*awsAwsquery_serializeOpEnableOrganizationsRootCredentialsManagement) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsquery_serializeOpEnableOrganizationsRootCredentialsManagement) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*EnableOrganizationsRootCredentialsManagementInput) + _ = 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-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("EnableOrganizationsRootCredentialsManagement") + body.Key("Version").String("2010-05-08") + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsquery_serializeOpEnableOrganizationsRootSessions struct { +} + +func (*awsAwsquery_serializeOpEnableOrganizationsRootSessions) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsquery_serializeOpEnableOrganizationsRootSessions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*EnableOrganizationsRootSessionsInput) + _ = 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-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("EnableOrganizationsRootSessions") + body.Key("Version").String("2010-05-08") + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsquery_serializeOpGenerateCredentialReport struct { } @@ -6572,6 +6836,72 @@ func (m *awsAwsquery_serializeOpListOpenIDConnectProviderTags) HandleSerialize(c return next.HandleSerialize(ctx, in) } +type awsAwsquery_serializeOpListOrganizationsFeatures struct { +} + +func (*awsAwsquery_serializeOpListOrganizationsFeatures) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsquery_serializeOpListOrganizationsFeatures) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListOrganizationsFeaturesInput) + _ = 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-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("ListOrganizationsFeatures") + body.Key("Version").String("2010-05-08") + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsquery_serializeOpListPolicies struct { } @@ -12099,6 +12429,20 @@ func awsAwsquery_serializeOpDocumentDetachUserPolicyInput(v *DetachUserPolicyInp return nil } +func awsAwsquery_serializeOpDocumentDisableOrganizationsRootCredentialsManagementInput(v *DisableOrganizationsRootCredentialsManagementInput, value query.Value) error { + object := value.Object() + _ = object + + return nil +} + +func awsAwsquery_serializeOpDocumentDisableOrganizationsRootSessionsInput(v *DisableOrganizationsRootSessionsInput, value query.Value) error { + object := value.Object() + _ = object + + return nil +} + func awsAwsquery_serializeOpDocumentEnableMFADeviceInput(v *EnableMFADeviceInput, value query.Value) error { object := value.Object() _ = object @@ -12126,6 +12470,20 @@ func awsAwsquery_serializeOpDocumentEnableMFADeviceInput(v *EnableMFADeviceInput return nil } +func awsAwsquery_serializeOpDocumentEnableOrganizationsRootCredentialsManagementInput(v *EnableOrganizationsRootCredentialsManagementInput, value query.Value) error { + object := value.Object() + _ = object + + return nil +} + +func awsAwsquery_serializeOpDocumentEnableOrganizationsRootSessionsInput(v *EnableOrganizationsRootSessionsInput, value query.Value) error { + object := value.Object() + _ = object + + return nil +} + func awsAwsquery_serializeOpDocumentGenerateOrganizationsAccessReportInput(v *GenerateOrganizationsAccessReportInput, value query.Value) error { object := value.Object() _ = object @@ -12904,6 +13262,13 @@ func awsAwsquery_serializeOpDocumentListOpenIDConnectProviderTagsInput(v *ListOp return nil } +func awsAwsquery_serializeOpDocumentListOrganizationsFeaturesInput(v *ListOrganizationsFeaturesInput, value query.Value) error { + object := value.Object() + _ = object + + return nil +} + func awsAwsquery_serializeOpDocumentListPoliciesGrantingServiceAccessInput(v *ListPoliciesGrantingServiceAccessInput, value query.Value) error { object := value.Object() _ = object diff --git a/service/iam/snapshot/api_op_CreateLoginProfile.go.snap b/service/iam/snapshot/api_op_CreateLoginProfile.go.snap index 0822e7cfcac..c7a2be1784e 100644 --- a/service/iam/snapshot/api_op_CreateLoginProfile.go.snap +++ b/service/iam/snapshot/api_op_CreateLoginProfile.go.snap @@ -4,7 +4,6 @@ CreateLoginProfile RegisterServiceMetadata legacyEndpointContextSetter SetLogger - OperationInputValidation spanInitializeEnd Serialize stack step spanBuildRequestStart diff --git a/service/iam/snapshot/api_op_DeleteLoginProfile.go.snap b/service/iam/snapshot/api_op_DeleteLoginProfile.go.snap index 234ccf308d7..69825d9cd09 100644 --- a/service/iam/snapshot/api_op_DeleteLoginProfile.go.snap +++ b/service/iam/snapshot/api_op_DeleteLoginProfile.go.snap @@ -4,7 +4,6 @@ DeleteLoginProfile RegisterServiceMetadata legacyEndpointContextSetter SetLogger - OperationInputValidation spanInitializeEnd Serialize stack step spanBuildRequestStart diff --git a/service/iam/snapshot/api_op_DisableOrganizationsRootCredentialsManagement.go.snap b/service/iam/snapshot/api_op_DisableOrganizationsRootCredentialsManagement.go.snap new file mode 100644 index 00000000000..a59ef1cf70b --- /dev/null +++ b/service/iam/snapshot/api_op_DisableOrganizationsRootCredentialsManagement.go.snap @@ -0,0 +1,40 @@ +DisableOrganizationsRootCredentialsManagement + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/iam/snapshot/api_op_DisableOrganizationsRootSessions.go.snap b/service/iam/snapshot/api_op_DisableOrganizationsRootSessions.go.snap new file mode 100644 index 00000000000..67aadc6ecaf --- /dev/null +++ b/service/iam/snapshot/api_op_DisableOrganizationsRootSessions.go.snap @@ -0,0 +1,40 @@ +DisableOrganizationsRootSessions + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/iam/snapshot/api_op_EnableOrganizationsRootCredentialsManagement.go.snap b/service/iam/snapshot/api_op_EnableOrganizationsRootCredentialsManagement.go.snap new file mode 100644 index 00000000000..4624db9d14e --- /dev/null +++ b/service/iam/snapshot/api_op_EnableOrganizationsRootCredentialsManagement.go.snap @@ -0,0 +1,40 @@ +EnableOrganizationsRootCredentialsManagement + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/iam/snapshot/api_op_EnableOrganizationsRootSessions.go.snap b/service/iam/snapshot/api_op_EnableOrganizationsRootSessions.go.snap new file mode 100644 index 00000000000..16b3a5620fe --- /dev/null +++ b/service/iam/snapshot/api_op_EnableOrganizationsRootSessions.go.snap @@ -0,0 +1,40 @@ +EnableOrganizationsRootSessions + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/iam/snapshot/api_op_GetLoginProfile.go.snap b/service/iam/snapshot/api_op_GetLoginProfile.go.snap index ba8af59d6fe..6ddd4a5a6c8 100644 --- a/service/iam/snapshot/api_op_GetLoginProfile.go.snap +++ b/service/iam/snapshot/api_op_GetLoginProfile.go.snap @@ -4,7 +4,6 @@ GetLoginProfile RegisterServiceMetadata legacyEndpointContextSetter SetLogger - OperationInputValidation spanInitializeEnd Serialize stack step spanBuildRequestStart diff --git a/service/iam/snapshot/api_op_ListOrganizationsFeatures.go.snap b/service/iam/snapshot/api_op_ListOrganizationsFeatures.go.snap new file mode 100644 index 00000000000..f205af361ab --- /dev/null +++ b/service/iam/snapshot/api_op_ListOrganizationsFeatures.go.snap @@ -0,0 +1,40 @@ +ListOrganizationsFeatures + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/iam/snapshot_test.go b/service/iam/snapshot_test.go index c97804f0d2e..3c3bd217ff2 100644 --- a/service/iam/snapshot_test.go +++ b/service/iam/snapshot_test.go @@ -638,6 +638,30 @@ func TestCheckSnapshot_DetachUserPolicy(t *testing.T) { } } +func TestCheckSnapshot_DisableOrganizationsRootCredentialsManagement(t *testing.T) { + svc := New(Options{}) + _, err := svc.DisableOrganizationsRootCredentialsManagement(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DisableOrganizationsRootCredentialsManagement") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DisableOrganizationsRootSessions(t *testing.T) { + svc := New(Options{}) + _, err := svc.DisableOrganizationsRootSessions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DisableOrganizationsRootSessions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_EnableMFADevice(t *testing.T) { svc := New(Options{}) _, err := svc.EnableMFADevice(context.Background(), nil, func(o *Options) { @@ -650,6 +674,30 @@ func TestCheckSnapshot_EnableMFADevice(t *testing.T) { } } +func TestCheckSnapshot_EnableOrganizationsRootCredentialsManagement(t *testing.T) { + svc := New(Options{}) + _, err := svc.EnableOrganizationsRootCredentialsManagement(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "EnableOrganizationsRootCredentialsManagement") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_EnableOrganizationsRootSessions(t *testing.T) { + svc := New(Options{}) + _, err := svc.EnableOrganizationsRootSessions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "EnableOrganizationsRootSessions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GenerateCredentialReport(t *testing.T) { svc := New(Options{}) _, err := svc.GenerateCredentialReport(context.Background(), nil, func(o *Options) { @@ -1190,6 +1238,18 @@ func TestCheckSnapshot_ListOpenIDConnectProviderTags(t *testing.T) { } } +func TestCheckSnapshot_ListOrganizationsFeatures(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListOrganizationsFeatures(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListOrganizationsFeatures") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListPolicies(t *testing.T) { svc := New(Options{}) _, err := svc.ListPolicies(context.Background(), nil, func(o *Options) { @@ -2545,6 +2605,30 @@ func TestUpdateSnapshot_DetachUserPolicy(t *testing.T) { } } +func TestUpdateSnapshot_DisableOrganizationsRootCredentialsManagement(t *testing.T) { + svc := New(Options{}) + _, err := svc.DisableOrganizationsRootCredentialsManagement(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DisableOrganizationsRootCredentialsManagement") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DisableOrganizationsRootSessions(t *testing.T) { + svc := New(Options{}) + _, err := svc.DisableOrganizationsRootSessions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DisableOrganizationsRootSessions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_EnableMFADevice(t *testing.T) { svc := New(Options{}) _, err := svc.EnableMFADevice(context.Background(), nil, func(o *Options) { @@ -2557,6 +2641,30 @@ func TestUpdateSnapshot_EnableMFADevice(t *testing.T) { } } +func TestUpdateSnapshot_EnableOrganizationsRootCredentialsManagement(t *testing.T) { + svc := New(Options{}) + _, err := svc.EnableOrganizationsRootCredentialsManagement(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "EnableOrganizationsRootCredentialsManagement") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_EnableOrganizationsRootSessions(t *testing.T) { + svc := New(Options{}) + _, err := svc.EnableOrganizationsRootSessions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "EnableOrganizationsRootSessions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GenerateCredentialReport(t *testing.T) { svc := New(Options{}) _, err := svc.GenerateCredentialReport(context.Background(), nil, func(o *Options) { @@ -3097,6 +3205,18 @@ func TestUpdateSnapshot_ListOpenIDConnectProviderTags(t *testing.T) { } } +func TestUpdateSnapshot_ListOrganizationsFeatures(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListOrganizationsFeatures(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListOrganizationsFeatures") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListPolicies(t *testing.T) { svc := New(Options{}) _, err := svc.ListPolicies(context.Background(), nil, func(o *Options) { diff --git a/service/iam/types/enums.go b/service/iam/types/enums.go index cc0dc2e0088..de2911e9eb9 100644 --- a/service/iam/types/enums.go +++ b/service/iam/types/enums.go @@ -149,6 +149,25 @@ func (EntityType) Values() []EntityType { } } +type FeatureType string + +// Enum values for FeatureType +const ( + FeatureTypeRootCredentialsManagement FeatureType = "RootCredentialsManagement" + FeatureTypeRootSessions FeatureType = "RootSessions" +) + +// Values returns all known values for FeatureType. 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 (FeatureType) Values() []FeatureType { + return []FeatureType{ + "RootCredentialsManagement", + "RootSessions", + } +} + type GlobalEndpointTokenVersion string // Enum values for GlobalEndpointTokenVersion @@ -437,6 +456,7 @@ const ( SummaryKeyTypeMFADevicesInUse SummaryKeyType = "MFADevicesInUse" SummaryKeyTypeAccountMFAEnabled SummaryKeyType = "AccountMFAEnabled" SummaryKeyTypeAccountAccessKeysPresent SummaryKeyType = "AccountAccessKeysPresent" + SummaryKeyTypeAccountPasswordPresent SummaryKeyType = "AccountPasswordPresent" SummaryKeyTypeAccountSigningCertificatesPresent SummaryKeyType = "AccountSigningCertificatesPresent" SummaryKeyTypeAttachedPoliciesPerGroupQuota SummaryKeyType = "AttachedPoliciesPerGroupQuota" SummaryKeyTypeAttachedPoliciesPerRoleQuota SummaryKeyType = "AttachedPoliciesPerRoleQuota" @@ -471,6 +491,7 @@ func (SummaryKeyType) Values() []SummaryKeyType { "MFADevicesInUse", "AccountMFAEnabled", "AccountAccessKeysPresent", + "AccountPasswordPresent", "AccountSigningCertificatesPresent", "AttachedPoliciesPerGroupQuota", "AttachedPoliciesPerRoleQuota", diff --git a/service/iam/types/errors.go b/service/iam/types/errors.go index 1fc1d63b947..c93175ce330 100644 --- a/service/iam/types/errors.go +++ b/service/iam/types/errors.go @@ -7,6 +7,66 @@ import ( smithy "github.com/aws/smithy-go" ) +// The request was rejected because the account making the request is not the +// management account or delegated administrator account for [centralized root access]. +// +// [centralized root access]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management +type AccountNotManagementOrDelegatedAdministratorException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *AccountNotManagementOrDelegatedAdministratorException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *AccountNotManagementOrDelegatedAdministratorException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *AccountNotManagementOrDelegatedAdministratorException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "AccountNotManagementOrDelegatedAdministratorException" + } + return *e.ErrorCodeOverride +} +func (e *AccountNotManagementOrDelegatedAdministratorException) ErrorFault() smithy.ErrorFault { + return smithy.FaultClient +} + +// The request was rejected because the account making the request is not the +// management account for the organization. +type CallerIsNotManagementAccountException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *CallerIsNotManagementAccountException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *CallerIsNotManagementAccountException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *CallerIsNotManagementAccountException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "CallerIsNotManagementAccountException" + } + return *e.ErrorCodeOverride +} +func (e *CallerIsNotManagementAccountException) ErrorFault() smithy.ErrorFault { + return smithy.FaultClient +} + // The request was rejected because multiple requests to change this object were // submitted simultaneously. Wait a few minutes and submit your request again. type ConcurrentModificationException struct { @@ -559,6 +619,64 @@ func (e *OpenIdIdpCommunicationErrorException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// The request was rejected because no organization is associated with your +// account. +type OrganizationNotFoundException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *OrganizationNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *OrganizationNotFoundException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *OrganizationNotFoundException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "OrganizationNotFoundException" + } + return *e.ErrorCodeOverride +} +func (e *OrganizationNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// The request was rejected because your organization does not have All features +// enabled. For more information, see [Available feature sets]in the Organizations User Guide. +// +// [Available feature sets]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set +type OrganizationNotInAllFeaturesModeException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *OrganizationNotInAllFeaturesModeException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *OrganizationNotInAllFeaturesModeException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *OrganizationNotInAllFeaturesModeException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "OrganizationNotInAllFeaturesModeException" + } + return *e.ErrorCodeOverride +} +func (e *OrganizationNotInAllFeaturesModeException) ErrorFault() smithy.ErrorFault { + return smithy.FaultClient +} + // The request was rejected because the provided password did not meet the // requirements imposed by the account password policy. type PasswordPolicyViolationException struct { @@ -669,6 +787,34 @@ func (e *ReportGenerationLimitExceededException) ErrorFault() smithy.ErrorFault return smithy.FaultClient } +// The request was rejected because trusted access is not enabled for IAM in +// Organizations. For details, see IAM and Organizations in the Organizations User +// Guide. +type ServiceAccessNotEnabledException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *ServiceAccessNotEnabledException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ServiceAccessNotEnabledException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ServiceAccessNotEnabledException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ServiceAccessNotEnabledException" + } + return *e.ErrorCodeOverride +} +func (e *ServiceAccessNotEnabledException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // The request processing has failed because of an unknown error, exception or // failure. type ServiceFailureException struct { diff --git a/service/iam/validators.go b/service/iam/validators.go index 156f324ad1b..533364ef230 100644 --- a/service/iam/validators.go +++ b/service/iam/validators.go @@ -210,26 +210,6 @@ func (m *validateOpCreateInstanceProfile) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } -type validateOpCreateLoginProfile struct { -} - -func (*validateOpCreateLoginProfile) ID() string { - return "OperationInputValidation" -} - -func (m *validateOpCreateLoginProfile) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( - out middleware.InitializeOutput, metadata middleware.Metadata, err error, -) { - input, ok := in.Parameters.(*CreateLoginProfileInput) - if !ok { - return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) - } - if err := validateOpCreateLoginProfileInput(input); err != nil { - return out, metadata, err - } - return next.HandleInitialize(ctx, in) -} - type validateOpCreateOpenIDConnectProvider struct { } @@ -530,26 +510,6 @@ func (m *validateOpDeleteInstanceProfile) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } -type validateOpDeleteLoginProfile struct { -} - -func (*validateOpDeleteLoginProfile) ID() string { - return "OperationInputValidation" -} - -func (m *validateOpDeleteLoginProfile) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( - out middleware.InitializeOutput, metadata middleware.Metadata, err error, -) { - input, ok := in.Parameters.(*DeleteLoginProfileInput) - if !ok { - return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) - } - if err := validateOpDeleteLoginProfileInput(input); err != nil { - return out, metadata, err - } - return next.HandleInitialize(ctx, in) -} - type validateOpDeleteOpenIDConnectProvider struct { } @@ -1110,26 +1070,6 @@ func (m *validateOpGetInstanceProfile) HandleInitialize(ctx context.Context, in return next.HandleInitialize(ctx, in) } -type validateOpGetLoginProfile struct { -} - -func (*validateOpGetLoginProfile) ID() string { - return "OperationInputValidation" -} - -func (m *validateOpGetLoginProfile) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( - out middleware.InitializeOutput, metadata middleware.Metadata, err error, -) { - input, ok := in.Parameters.(*GetLoginProfileInput) - if !ok { - return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) - } - if err := validateOpGetLoginProfileInput(input); err != nil { - return out, metadata, err - } - return next.HandleInitialize(ctx, in) -} - type validateOpGetMFADevice struct { } @@ -2750,10 +2690,6 @@ func addOpCreateInstanceProfileValidationMiddleware(stack *middleware.Stack) err return stack.Initialize.Add(&validateOpCreateInstanceProfile{}, middleware.After) } -func addOpCreateLoginProfileValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpCreateLoginProfile{}, middleware.After) -} - func addOpCreateOpenIDConnectProviderValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateOpenIDConnectProvider{}, middleware.After) } @@ -2814,10 +2750,6 @@ func addOpDeleteInstanceProfileValidationMiddleware(stack *middleware.Stack) err return stack.Initialize.Add(&validateOpDeleteInstanceProfile{}, middleware.After) } -func addOpDeleteLoginProfileValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpDeleteLoginProfile{}, middleware.After) -} - func addOpDeleteOpenIDConnectProviderValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteOpenIDConnectProvider{}, middleware.After) } @@ -2930,10 +2862,6 @@ func addOpGetInstanceProfileValidationMiddleware(stack *middleware.Stack) error return stack.Initialize.Add(&validateOpGetInstanceProfile{}, middleware.After) } -func addOpGetLoginProfileValidationMiddleware(stack *middleware.Stack) error { - return stack.Initialize.Add(&validateOpGetLoginProfile{}, middleware.After) -} - func addOpGetMFADeviceValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetMFADevice{}, middleware.After) } @@ -3461,24 +3389,6 @@ func validateOpCreateInstanceProfileInput(v *CreateInstanceProfileInput) error { } } -func validateOpCreateLoginProfileInput(v *CreateLoginProfileInput) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "CreateLoginProfileInput"} - if v.UserName == nil { - invalidParams.Add(smithy.NewErrParamRequired("UserName")) - } - if v.Password == nil { - invalidParams.Add(smithy.NewErrParamRequired("Password")) - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - func validateOpCreateOpenIDConnectProviderInput(v *CreateOpenIDConnectProviderInput) error { if v == nil { return nil @@ -3664,9 +3574,6 @@ func validateOpDeactivateMFADeviceInput(v *DeactivateMFADeviceInput) error { return nil } invalidParams := smithy.InvalidParamsError{Context: "DeactivateMFADeviceInput"} - if v.UserName == nil { - invalidParams.Add(smithy.NewErrParamRequired("UserName")) - } if v.SerialNumber == nil { invalidParams.Add(smithy.NewErrParamRequired("SerialNumber")) } @@ -3755,21 +3662,6 @@ func validateOpDeleteInstanceProfileInput(v *DeleteInstanceProfileInput) error { } } -func validateOpDeleteLoginProfileInput(v *DeleteLoginProfileInput) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "DeleteLoginProfileInput"} - if v.UserName == nil { - invalidParams.Add(smithy.NewErrParamRequired("UserName")) - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - func validateOpDeleteOpenIDConnectProviderInput(v *DeleteOpenIDConnectProviderInput) error { if v == nil { return nil @@ -4223,21 +4115,6 @@ func validateOpGetInstanceProfileInput(v *GetInstanceProfileInput) error { } } -func validateOpGetLoginProfileInput(v *GetLoginProfileInput) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "GetLoginProfileInput"} - if v.UserName == nil { - invalidParams.Add(smithy.NewErrParamRequired("UserName")) - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - func validateOpGetMFADeviceInput(v *GetMFADeviceInput) error { if v == nil { return nil diff --git a/service/iotwireless/api_op_CreateFuotaTask.go b/service/iotwireless/api_op_CreateFuotaTask.go index ac8cd124fca..a3c78a7ba44 100644 --- a/service/iotwireless/api_op_CreateFuotaTask.go +++ b/service/iotwireless/api_op_CreateFuotaTask.go @@ -54,6 +54,11 @@ type CreateFuotaTaskInput struct { // The description of the new resource. Description *string + // The Descriptor specifies some metadata about the File being transferred using + // FUOTA e.g. the software version. It is sent transparently to the device. It is a + // binary field encoded in base64 + Descriptor *string + // The interval for sending fragments in milliseconds, rounded to the nearest // second. // diff --git a/service/iotwireless/api_op_GetFuotaTask.go b/service/iotwireless/api_op_GetFuotaTask.go index acabea2ede9..e63d26f3707 100644 --- a/service/iotwireless/api_op_GetFuotaTask.go +++ b/service/iotwireless/api_op_GetFuotaTask.go @@ -49,6 +49,11 @@ type GetFuotaTaskOutput struct { // The description of the new resource. Description *string + // The Descriptor specifies some metadata about the File being transferred using + // FUOTA e.g. the software version. It is sent transparently to the device. It is a + // binary field encoded in base64 + Descriptor *string + // The S3 URI points to a firmware update image that is to be used with a FUOTA // task. FirmwareUpdateImage *string diff --git a/service/iotwireless/api_op_GetLogLevelsByResourceTypes.go b/service/iotwireless/api_op_GetLogLevelsByResourceTypes.go index e29df263845..217ba6b6e66 100644 --- a/service/iotwireless/api_op_GetLogLevelsByResourceTypes.go +++ b/service/iotwireless/api_op_GetLogLevelsByResourceTypes.go @@ -40,6 +40,9 @@ type GetLogLevelsByResourceTypesOutput struct { // more detailed logs. DefaultLogLevel types.LogLevel + // The list of fuota task log options. + FuotaTaskLogOptions []types.FuotaTaskLogOption + // The list of wireless device log options. WirelessDeviceLogOptions []types.WirelessDeviceLogOption diff --git a/service/iotwireless/api_op_GetResourceLogLevel.go b/service/iotwireless/api_op_GetResourceLogLevel.go index 093e702c6ca..e7a75731456 100644 --- a/service/iotwireless/api_op_GetResourceLogLevel.go +++ b/service/iotwireless/api_op_GetResourceLogLevel.go @@ -12,7 +12,8 @@ import ( ) // Fetches the log-level override, if any, for a given resource-ID and -// resource-type. It can be used for a wireless device or a wireless gateway. +// resource-type. It can be used for a wireless device, wireless gateway or fuota +// task. func (c *Client) GetResourceLogLevel(ctx context.Context, params *GetResourceLogLevelInput, optFns ...func(*Options)) (*GetResourceLogLevelOutput, error) { if params == nil { params = &GetResourceLogLevelInput{} @@ -36,7 +37,8 @@ type GetResourceLogLevelInput struct { // This member is required. ResourceIdentifier *string - // The type of the resource, which can be WirelessDevice or WirelessGateway . + // The type of the resource, which can be WirelessDevice , WirelessGateway or + // FuotaTask . // // This member is required. ResourceType *string diff --git a/service/iotwireless/api_op_PutResourceLogLevel.go b/service/iotwireless/api_op_PutResourceLogLevel.go index 4b418c10978..9ee51672267 100644 --- a/service/iotwireless/api_op_PutResourceLogLevel.go +++ b/service/iotwireless/api_op_PutResourceLogLevel.go @@ -44,7 +44,8 @@ type PutResourceLogLevelInput struct { // This member is required. ResourceIdentifier *string - // The type of the resource, which can be WirelessDevice or WirelessGateway . + // The type of the resource, which can be WirelessDevice , WirelessGateway , or + // FuotaTask . // // This member is required. ResourceType *string diff --git a/service/iotwireless/api_op_ResetAllResourceLogLevels.go b/service/iotwireless/api_op_ResetAllResourceLogLevels.go index 0f2468f5fbc..1631799f151 100644 --- a/service/iotwireless/api_op_ResetAllResourceLogLevels.go +++ b/service/iotwireless/api_op_ResetAllResourceLogLevels.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes the log-level overrides for all resources; both wireless devices and -// wireless gateways. +// Removes the log-level overrides for all resources; wireless devices, wireless +// gateways, and fuota tasks. func (c *Client) ResetAllResourceLogLevels(ctx context.Context, params *ResetAllResourceLogLevelsInput, optFns ...func(*Options)) (*ResetAllResourceLogLevelsOutput, error) { if params == nil { params = &ResetAllResourceLogLevelsInput{} diff --git a/service/iotwireless/api_op_ResetResourceLogLevel.go b/service/iotwireless/api_op_ResetResourceLogLevel.go index aa1a4f7a58d..6c69786c0bb 100644 --- a/service/iotwireless/api_op_ResetResourceLogLevel.go +++ b/service/iotwireless/api_op_ResetResourceLogLevel.go @@ -11,7 +11,8 @@ import ( ) // Removes the log-level override, if any, for a specific resource-ID and -// resource-type. It can be used for a wireless device or a wireless gateway. +// resource-type. It can be used for a wireless device, a wireless gateway, or a +// fuota task. func (c *Client) ResetResourceLogLevel(ctx context.Context, params *ResetResourceLogLevelInput, optFns ...func(*Options)) (*ResetResourceLogLevelOutput, error) { if params == nil { params = &ResetResourceLogLevelInput{} @@ -35,7 +36,8 @@ type ResetResourceLogLevelInput struct { // This member is required. ResourceIdentifier *string - // The type of the resource, which can be WirelessDevice or WirelessGateway . + // The type of the resource, which can be WirelessDevice , WirelessGateway , or + // FuotaTask . // // This member is required. ResourceType *string diff --git a/service/iotwireless/api_op_UpdateFuotaTask.go b/service/iotwireless/api_op_UpdateFuotaTask.go index d96aab5843d..f887c652abf 100644 --- a/service/iotwireless/api_op_UpdateFuotaTask.go +++ b/service/iotwireless/api_op_UpdateFuotaTask.go @@ -37,6 +37,11 @@ type UpdateFuotaTaskInput struct { // The description of the new resource. Description *string + // The Descriptor specifies some metadata about the File being transferred using + // FUOTA e.g. the software version. It is sent transparently to the device. It is a + // binary field encoded in base64 + Descriptor *string + // The S3 URI points to a firmware update image that is to be used with a FUOTA // task. FirmwareUpdateImage *string diff --git a/service/iotwireless/api_op_UpdateLogLevelsByResourceTypes.go b/service/iotwireless/api_op_UpdateLogLevelsByResourceTypes.go index a30f792759f..5c49084c971 100644 --- a/service/iotwireless/api_op_UpdateLogLevelsByResourceTypes.go +++ b/service/iotwireless/api_op_UpdateLogLevelsByResourceTypes.go @@ -36,6 +36,9 @@ type UpdateLogLevelsByResourceTypesInput struct { // more detailed logs. DefaultLogLevel types.LogLevel + // The list of fuota task log options. + FuotaTaskLogOptions []types.FuotaTaskLogOption + // The list of wireless device log options. WirelessDeviceLogOptions []types.WirelessDeviceLogOption diff --git a/service/iotwireless/deserializers.go b/service/iotwireless/deserializers.go index 7ca9ba7c963..9e43304d926 100644 --- a/service/iotwireless/deserializers.go +++ b/service/iotwireless/deserializers.go @@ -5578,6 +5578,15 @@ func awsRestjson1_deserializeOpDocumentGetFuotaTaskOutput(v **GetFuotaTaskOutput sv.Description = ptr.String(jtv) } + case "Descriptor": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FileDescriptor to be of type string, got %T instead", value) + } + sv.Descriptor = ptr.String(jtv) + } + case "FirmwareUpdateImage": if value != nil { jtv, ok := value.(string) @@ -5835,6 +5844,11 @@ func awsRestjson1_deserializeOpDocumentGetLogLevelsByResourceTypesOutput(v **Get sv.DefaultLogLevel = types.LogLevel(jtv) } + case "FuotaTaskLogOptions": + if err := awsRestjson1_deserializeDocumentFuotaTaskLogOptionList(&sv.FuotaTaskLogOptions, value); err != nil { + return err + } + case "WirelessDeviceLogOptions": if err := awsRestjson1_deserializeDocumentWirelessDeviceLogOptionList(&sv.WirelessDeviceLogOptions, value); err != nil { return err @@ -18229,6 +18243,89 @@ func awsRestjson1_deserializeDocumentFuotaTask(v **types.FuotaTask, value interf return nil } +func awsRestjson1_deserializeDocumentFuotaTaskEventLogOption(v **types.FuotaTaskEventLogOption, 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.FuotaTaskEventLogOption + if *v == nil { + sv = &types.FuotaTaskEventLogOption{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Event": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FuotaTaskEvent to be of type string, got %T instead", value) + } + sv.Event = types.FuotaTaskEvent(jtv) + } + + case "LogLevel": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LogLevel to be of type string, got %T instead", value) + } + sv.LogLevel = types.LogLevel(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFuotaTaskEventLogOptionList(v *[]types.FuotaTaskEventLogOption, 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.FuotaTaskEventLogOption + if *v == nil { + cv = []types.FuotaTaskEventLogOption{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.FuotaTaskEventLogOption + destAddr := &col + if err := awsRestjson1_deserializeDocumentFuotaTaskEventLogOption(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentFuotaTaskList(v *[]types.FuotaTask, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -18263,6 +18360,94 @@ func awsRestjson1_deserializeDocumentFuotaTaskList(v *[]types.FuotaTask, value i return nil } +func awsRestjson1_deserializeDocumentFuotaTaskLogOption(v **types.FuotaTaskLogOption, 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.FuotaTaskLogOption + if *v == nil { + sv = &types.FuotaTaskLogOption{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Events": + if err := awsRestjson1_deserializeDocumentFuotaTaskEventLogOptionList(&sv.Events, value); err != nil { + return err + } + + case "LogLevel": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LogLevel to be of type string, got %T instead", value) + } + sv.LogLevel = types.LogLevel(jtv) + } + + case "Type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FuotaTaskType to be of type string, got %T instead", value) + } + sv.Type = types.FuotaTaskType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentFuotaTaskLogOptionList(v *[]types.FuotaTaskLogOption, 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.FuotaTaskLogOption + if *v == nil { + cv = []types.FuotaTaskLogOption{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.FuotaTaskLogOption + destAddr := &col + if err := awsRestjson1_deserializeDocumentFuotaTaskLogOption(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentGatewayList(v *[]types.GatewayListItem, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -18350,6 +18535,42 @@ func awsRestjson1_deserializeDocumentGatewayListItem(v **types.GatewayListItem, return nil } +func awsRestjson1_deserializeDocumentGatewayListMulticast(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WirelessGatewayId to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentImportedSidewalkDevice(v **types.ImportedSidewalkDevice, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -19990,6 +20211,11 @@ func awsRestjson1_deserializeDocumentLoRaWANMulticastGet(v **types.LoRaWANMultic sv.NumberOfDevicesRequested = ptr.Int32(int32(i64)) } + case "ParticipatingGateways": + if err := awsRestjson1_deserializeDocumentParticipatingGatewaysMulticast(&sv.ParticipatingGateways, value); err != nil { + return err + } + case "RfRegion": if value != nil { jtv, ok := value.(string) @@ -21323,6 +21549,55 @@ func awsRestjson1_deserializeDocumentParticipatingGateways(v **types.Participati return nil } +func awsRestjson1_deserializeDocumentParticipatingGatewaysMulticast(v **types.ParticipatingGatewaysMulticast, 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.ParticipatingGatewaysMulticast + if *v == nil { + sv = &types.ParticipatingGatewaysMulticast{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "GatewayList": + if err := awsRestjson1_deserializeDocumentGatewayListMulticast(&sv.GatewayList, value); err != nil { + return err + } + + case "TransmissionInterval": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected TransmissionIntervalMulticast to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TransmissionInterval = ptr.Int32(int32(i64)) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentPositionConfigurationItem(v **types.PositionConfigurationItem, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/iotwireless/serializers.go b/service/iotwireless/serializers.go index f5447fa0620..6495d063509 100644 --- a/service/iotwireless/serializers.go +++ b/service/iotwireless/serializers.go @@ -1050,6 +1050,11 @@ func awsRestjson1_serializeOpDocumentCreateFuotaTaskInput(v *CreateFuotaTaskInpu ok.String(*v.Description) } + if v.Descriptor != nil { + ok := object.Key("Descriptor") + ok.String(*v.Descriptor) + } + if v.FirmwareUpdateImage != nil { ok := object.Key("FirmwareUpdateImage") ok.String(*v.FirmwareUpdateImage) @@ -8295,6 +8300,11 @@ func awsRestjson1_serializeOpDocumentUpdateFuotaTaskInput(v *UpdateFuotaTaskInpu ok.String(*v.Description) } + if v.Descriptor != nil { + ok := object.Key("Descriptor") + ok.String(*v.Descriptor) + } + if v.FirmwareUpdateImage != nil { ok := object.Key("FirmwareUpdateImage") ok.String(*v.FirmwareUpdateImage) @@ -8413,6 +8423,13 @@ func awsRestjson1_serializeOpDocumentUpdateLogLevelsByResourceTypesInput(v *Upda ok.String(string(v.DefaultLogLevel)) } + if v.FuotaTaskLogOptions != nil { + ok := object.Key("FuotaTaskLogOptions") + if err := awsRestjson1_serializeDocumentFuotaTaskLogOptionList(v.FuotaTaskLogOptions, ok); err != nil { + return err + } + } + if v.WirelessDeviceLogOptions != nil { ok := object.Key("WirelessDeviceLogOptions") if err := awsRestjson1_serializeDocumentWirelessDeviceLogOptionList(v.WirelessDeviceLogOptions, ok); err != nil { @@ -9998,6 +10015,73 @@ func awsRestjson1_serializeDocumentFPorts(v *types.FPorts, value smithyjson.Valu return nil } +func awsRestjson1_serializeDocumentFuotaTaskEventLogOption(v *types.FuotaTaskEventLogOption, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Event) > 0 { + ok := object.Key("Event") + ok.String(string(v.Event)) + } + + if len(v.LogLevel) > 0 { + ok := object.Key("LogLevel") + ok.String(string(v.LogLevel)) + } + + return nil +} + +func awsRestjson1_serializeDocumentFuotaTaskEventLogOptionList(v []types.FuotaTaskEventLogOption, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentFuotaTaskEventLogOption(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentFuotaTaskLogOption(v *types.FuotaTaskLogOption, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Events != nil { + ok := object.Key("Events") + if err := awsRestjson1_serializeDocumentFuotaTaskEventLogOptionList(v.Events, ok); err != nil { + return err + } + } + + if len(v.LogLevel) > 0 { + ok := object.Key("LogLevel") + ok.String(string(v.LogLevel)) + } + + if len(v.Type) > 0 { + ok := object.Key("Type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsRestjson1_serializeDocumentFuotaTaskLogOptionList(v []types.FuotaTaskLogOption, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentFuotaTaskLogOption(&v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentGatewayList(v []types.GatewayListItem, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -10028,6 +10112,17 @@ func awsRestjson1_serializeDocumentGatewayListItem(v *types.GatewayListItem, val return nil } +func awsRestjson1_serializeDocumentGatewayListMulticast(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentGlobalIdentity(v *types.GlobalIdentity, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -10633,6 +10728,13 @@ func awsRestjson1_serializeDocumentLoRaWANMulticast(v *types.LoRaWANMulticast, v ok.String(string(v.DlClass)) } + if v.ParticipatingGateways != nil { + ok := object.Key("ParticipatingGateways") + if err := awsRestjson1_serializeDocumentParticipatingGatewaysMulticast(v.ParticipatingGateways, ok); err != nil { + return err + } + } + if len(v.RfRegion) > 0 { ok := object.Key("RfRegion") ok.String(string(v.RfRegion)) @@ -11121,6 +11223,25 @@ func awsRestjson1_serializeDocumentParticipatingGateways(v *types.ParticipatingG return nil } +func awsRestjson1_serializeDocumentParticipatingGatewaysMulticast(v *types.ParticipatingGatewaysMulticast, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.GatewayList != nil { + ok := object.Key("GatewayList") + if err := awsRestjson1_serializeDocumentGatewayListMulticast(v.GatewayList, ok); err != nil { + return err + } + } + + if v.TransmissionInterval != nil { + ok := object.Key("TransmissionInterval") + ok.Integer(*v.TransmissionInterval) + } + + return nil +} + func awsRestjson1_serializeDocumentPositionCoordinate(v []float32, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/service/iotwireless/types/enums.go b/service/iotwireless/types/enums.go index 4352795c71e..b9da21badd0 100644 --- a/service/iotwireless/types/enums.go +++ b/service/iotwireless/types/enums.go @@ -228,6 +228,7 @@ type EventNotificationResourceType string // Enum values for EventNotificationResourceType const ( + EventNotificationResourceTypeFuotaTask EventNotificationResourceType = "FuotaTask" EventNotificationResourceTypeSidewalkAccount EventNotificationResourceType = "SidewalkAccount" EventNotificationResourceTypeWirelessDevice EventNotificationResourceType = "WirelessDevice" EventNotificationResourceTypeWirelessGateway EventNotificationResourceType = "WirelessGateway" @@ -240,6 +241,7 @@ const ( // The ordering of this slice is not guaranteed to be stable across updates. func (EventNotificationResourceType) Values() []EventNotificationResourceType { return []EventNotificationResourceType{ + "FuotaTask", "SidewalkAccount", "WirelessDevice", "WirelessGateway", @@ -324,6 +326,23 @@ func (FuotaDeviceStatus) Values() []FuotaDeviceStatus { } } +type FuotaTaskEvent string + +// Enum values for FuotaTaskEvent +const ( + FuotaTaskEventFuota FuotaTaskEvent = "Fuota" +) + +// Values returns all known values for FuotaTaskEvent. 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 (FuotaTaskEvent) Values() []FuotaTaskEvent { + return []FuotaTaskEvent{ + "Fuota", + } +} + type FuotaTaskStatus string // Enum values for FuotaTaskStatus @@ -349,12 +368,30 @@ func (FuotaTaskStatus) Values() []FuotaTaskStatus { } } +type FuotaTaskType string + +// Enum values for FuotaTaskType +const ( + FuotaTaskTypeLoRaWAN FuotaTaskType = "LoRaWAN" +) + +// Values returns all known values for FuotaTaskType. 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 (FuotaTaskType) Values() []FuotaTaskType { + return []FuotaTaskType{ + "LoRaWAN", + } +} + type IdentifierType string // Enum values for IdentifierType const ( IdentifierTypePartnerAccountId IdentifierType = "PartnerAccountId" IdentifierTypeDevEui IdentifierType = "DevEui" + IdentifierTypeFuotaTaskId IdentifierType = "FuotaTaskId" IdentifierTypeGatewayEui IdentifierType = "GatewayEui" IdentifierTypeWirelessDeviceId IdentifierType = "WirelessDeviceId" IdentifierTypeWirelessGatewayId IdentifierType = "WirelessGatewayId" @@ -368,6 +405,7 @@ func (IdentifierType) Values() []IdentifierType { return []IdentifierType{ "PartnerAccountId", "DevEui", + "FuotaTaskId", "GatewayEui", "WirelessDeviceId", "WirelessGatewayId", diff --git a/service/iotwireless/types/types.go b/service/iotwireless/types/types.go index e87bbe69745..f57859a87a6 100644 --- a/service/iotwireless/types/types.go +++ b/service/iotwireless/types/types.go @@ -423,6 +423,49 @@ type FuotaTask struct { noSmithyDocumentSerde } +// The log options for a FUOTA task event and can be used to set log levels for a +// specific fuota task event. +// +// For a LoRaWAN FuotaTask type, possible event for a log message is Fuota . +type FuotaTaskEventLogOption struct { + + // The event for a log message, if the log message is tied to a fuota task. + // + // This member is required. + Event FuotaTaskEvent + + // The log level for a log message. The log levels can be disabled, or set to ERROR + // to display less verbose logs containing only error information, or to INFO for + // more detailed logs. + // + // This member is required. + LogLevel LogLevel + + noSmithyDocumentSerde +} + +// The log options for fuota tasks and can be used to set log levels for a +// specific type of fuota task. +type FuotaTaskLogOption struct { + + // The log level for a log message. The log levels can be disabled, or set to ERROR + // to display less verbose logs containing only error information, or to INFO for + // more detailed logs. + // + // This member is required. + LogLevel LogLevel + + // The fuota task type. + // + // This member is required. + Type FuotaTaskType + + // The list of FUOTA task event log options. + Events []FuotaTaskEventLogOption + + noSmithyDocumentSerde +} + // Gateway list item object that specifies the frequency and list of gateways for // which the downlink message should be sent. type GatewayListItem struct { @@ -961,6 +1004,11 @@ type LoRaWANMulticast struct { // DlClass for LoRaWAM, valid values are ClassB and ClassC. DlClass DlClass + // Specify the list of gateways to which you want to send the multicast downlink + // messages. The multicast message will be sent to each gateway in the sequence + // provided in the list. + ParticipatingGateways *ParticipatingGatewaysMulticast + // Supported RfRegions RfRegion SupportedRfRegion @@ -980,6 +1028,11 @@ type LoRaWANMulticastGet struct { // Number of devices that are requested to be associated with the multicast group. NumberOfDevicesRequested *int32 + // Specify the list of gateways to which you want to send the multicast downlink + // messages. The multicast message will be sent to each gateway in the sequence + // provided in the list. + ParticipatingGateways *ParticipatingGatewaysMulticast + // Supported RfRegions RfRegion SupportedRfRegion @@ -1387,6 +1440,24 @@ type ParticipatingGateways struct { noSmithyDocumentSerde } +// Specify the list of gateways to which you want to send the multicast downlink +// messages. The multicast message will be sent to each gateway in the sequence +// provided in the list. +type ParticipatingGatewaysMulticast struct { + + // The list of gateways that you want to use for sending the multicast downlink. + // Each downlink will be sent to all the gateways in the list with transmission + // interval between them. If list is empty the gateway list will be dynamically + // selected similar to the case of no ParticipatingGateways + GatewayList []string + + // The duration of time for which AWS IoT Core for LoRaWAN will wait before + // transmitting the multicast payload to the next gateway in the list. + TransmissionInterval *int32 + + noSmithyDocumentSerde +} + // The wrapper for a position configuration. type PositionConfigurationItem struct { diff --git a/service/iotwireless/validators.go b/service/iotwireless/validators.go index 11357835e5b..ff7bc8e4ba9 100644 --- a/service/iotwireless/validators.go +++ b/service/iotwireless/validators.go @@ -2356,6 +2356,81 @@ func validateCellTowers(v *types.CellTowers) error { } } +func validateFuotaTaskEventLogOption(v *types.FuotaTaskEventLogOption) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FuotaTaskEventLogOption"} + if len(v.Event) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Event")) + } + if len(v.LogLevel) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("LogLevel")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateFuotaTaskEventLogOptionList(v []types.FuotaTaskEventLogOption) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FuotaTaskEventLogOptionList"} + for i := range v { + if err := validateFuotaTaskEventLogOption(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateFuotaTaskLogOption(v *types.FuotaTaskLogOption) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FuotaTaskLogOption"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if len(v.LogLevel) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("LogLevel")) + } + if v.Events != nil { + if err := validateFuotaTaskEventLogOptionList(v.Events); err != nil { + invalidParams.AddNested("Events", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateFuotaTaskLogOptionList(v []types.FuotaTaskLogOption) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "FuotaTaskLogOptionList"} + for i := range v { + if err := validateFuotaTaskLogOption(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateGatewayList(v []types.GatewayListItem) error { if v == nil { return nil @@ -4612,6 +4687,11 @@ func validateOpUpdateLogLevelsByResourceTypesInput(v *UpdateLogLevelsByResourceT return nil } invalidParams := smithy.InvalidParamsError{Context: "UpdateLogLevelsByResourceTypesInput"} + if v.FuotaTaskLogOptions != nil { + if err := validateFuotaTaskLogOptionList(v.FuotaTaskLogOptions); err != nil { + invalidParams.AddNested("FuotaTaskLogOptions", err.(smithy.InvalidParamsError)) + } + } if v.WirelessDeviceLogOptions != nil { if err := validateWirelessDeviceLogOptionList(v.WirelessDeviceLogOptions); err != nil { invalidParams.AddNested("WirelessDeviceLogOptions", err.(smithy.InvalidParamsError)) diff --git a/service/ivs/api_op_CreateChannel.go b/service/ivs/api_op_CreateChannel.go index fd766ed2dce..5246bb77f88 100644 --- a/service/ivs/api_op_CreateChannel.go +++ b/service/ivs/api_op_CreateChannel.go @@ -33,6 +33,12 @@ type CreateChannelInput struct { // false . Authorized bool + // Indicates which content-packaging format is used (MPEG-TS or fMP4). If + // multitrackInputConfiguration is specified and enabled is true , then + // containerFormat is required and must be set to FRAGMENTED_MP4 . Otherwise, + // containerFormat may be set to TS or FRAGMENTED_MP4 . Default: TS . + ContainerFormat types.ContainerFormat + // Whether the channel allows insecure RTMP and SRT ingest. Default: false . InsecureIngest bool @@ -40,6 +46,10 @@ type CreateChannelInput struct { // HD. Use LOW for near-real-time interaction with viewers. Default: LOW . LatencyMode types.ChannelLatencyMode + // Object specifying multitrack input configuration. Default: no multitrack input + // configuration is specified. + MultitrackInputConfiguration *types.MultitrackInputConfiguration + // Channel name. Name *string diff --git a/service/ivs/api_op_UpdateChannel.go b/service/ivs/api_op_UpdateChannel.go index 50bad26d6f1..3e13583c421 100644 --- a/service/ivs/api_op_UpdateChannel.go +++ b/service/ivs/api_op_UpdateChannel.go @@ -39,6 +39,12 @@ type UpdateChannelInput struct { // Whether the channel is private (enabled for playback authorization). Authorized bool + // Indicates which content-packaging format is used (MPEG-TS or fMP4). If + // multitrackInputConfiguration is specified and enabled is true , then + // containerFormat is required and must be set to FRAGMENTED_MP4 . Otherwise, + // containerFormat may be set to TS or FRAGMENTED_MP4 . Default: TS . + ContainerFormat types.ContainerFormat + // Whether the channel allows insecure RTMP and SRT ingest. Default: false . InsecureIngest bool @@ -46,6 +52,10 @@ type UpdateChannelInput struct { // HD. Use LOW for near-real-time interaction with viewers. LatencyMode types.ChannelLatencyMode + // Object specifying multitrack input configuration. Default: no multitrack input + // configuration is specified. + MultitrackInputConfiguration *types.MultitrackInputConfiguration + // Channel name. Name *string diff --git a/service/ivs/deserializers.go b/service/ivs/deserializers.go index e993381288f..70852c4af0c 100644 --- a/service/ivs/deserializers.go +++ b/service/ivs/deserializers.go @@ -5579,6 +5579,15 @@ func awsRestjson1_deserializeDocumentAudioConfiguration(v **types.AudioConfigura sv.TargetBitrate = i64 } + case "track": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Track = ptr.String(jtv) + } + default: _, _ = key, value @@ -5588,6 +5597,40 @@ func awsRestjson1_deserializeDocumentAudioConfiguration(v **types.AudioConfigura return nil } +func awsRestjson1_deserializeDocumentAudioConfigurationList(v *[]types.AudioConfiguration, 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.AudioConfiguration + if *v == nil { + cv = []types.AudioConfiguration{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AudioConfiguration + destAddr := &col + if err := awsRestjson1_deserializeDocumentAudioConfiguration(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentBatchError(v **types.BatchError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5821,6 +5864,15 @@ func awsRestjson1_deserializeDocumentChannel(v **types.Channel, value interface{ sv.Authorized = jtv } + case "containerFormat": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContainerFormat to be of type string, got %T instead", value) + } + sv.ContainerFormat = types.ContainerFormat(jtv) + } + case "ingestEndpoint": if value != nil { jtv, ok := value.(string) @@ -5848,6 +5900,11 @@ func awsRestjson1_deserializeDocumentChannel(v **types.Channel, value interface{ sv.LatencyMode = types.ChannelLatencyMode(jtv) } + case "multitrackInputConfiguration": + if err := awsRestjson1_deserializeDocumentMultitrackInputConfiguration(&sv.MultitrackInputConfiguration, value); err != nil { + return err + } + case "name": if value != nil { jtv, ok := value.(string) @@ -6263,6 +6320,47 @@ func awsRestjson1_deserializeDocumentIngestConfiguration(v **types.IngestConfigu return nil } +func awsRestjson1_deserializeDocumentIngestConfigurations(v **types.IngestConfigurations, 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.IngestConfigurations + if *v == nil { + sv = &types.IngestConfigurations{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "audioConfigurations": + if err := awsRestjson1_deserializeDocumentAudioConfigurationList(&sv.AudioConfigurations, value); err != nil { + return err + } + + case "videoConfigurations": + if err := awsRestjson1_deserializeDocumentVideoConfigurationList(&sv.VideoConfigurations, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6303,6 +6401,64 @@ func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalS return nil } +func awsRestjson1_deserializeDocumentMultitrackInputConfiguration(v **types.MultitrackInputConfiguration, 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.MultitrackInputConfiguration + if *v == nil { + sv = &types.MultitrackInputConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "enabled": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected IsMultitrackInputEnabled to be of type *bool, got %T instead", value) + } + sv.Enabled = jtv + } + + case "maximumResolution": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected MultitrackMaximumResolution to be of type string, got %T instead", value) + } + sv.MaximumResolution = types.MultitrackMaximumResolution(jtv) + } + + case "policy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected MultitrackPolicy to be of type string, got %T instead", value) + } + sv.Policy = types.MultitrackPolicy(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentPendingVerification(v **types.PendingVerification, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -7660,6 +7816,11 @@ func awsRestjson1_deserializeDocumentStreamSession(v **types.StreamSession, valu return err } + case "ingestConfigurations": + if err := awsRestjson1_deserializeDocumentIngestConfigurations(&sv.IngestConfigurations, value); err != nil { + return err + } + case "recordingConfiguration": if err := awsRestjson1_deserializeDocumentRecordingConfiguration(&sv.RecordingConfiguration, value); err != nil { return err @@ -8220,6 +8381,24 @@ func awsRestjson1_deserializeDocumentVideoConfiguration(v **types.VideoConfigura sv.Encoder = ptr.String(jtv) } + case "level": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Level = ptr.String(jtv) + } + + case "profile": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Profile = ptr.String(jtv) + } + case "targetBitrate": if value != nil { jtv, ok := value.(json.Number) @@ -8246,6 +8425,15 @@ func awsRestjson1_deserializeDocumentVideoConfiguration(v **types.VideoConfigura sv.TargetFramerate = i64 } + case "track": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Track = ptr.String(jtv) + } + case "videoHeight": if value != nil { jtv, ok := value.(json.Number) @@ -8280,3 +8468,37 @@ func awsRestjson1_deserializeDocumentVideoConfiguration(v **types.VideoConfigura *v = sv return nil } + +func awsRestjson1_deserializeDocumentVideoConfigurationList(v *[]types.VideoConfiguration, 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.VideoConfiguration + if *v == nil { + cv = []types.VideoConfiguration{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.VideoConfiguration + destAddr := &col + if err := awsRestjson1_deserializeDocumentVideoConfiguration(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} diff --git a/service/ivs/serializers.go b/service/ivs/serializers.go index 725367c0acd..213bd7fccbe 100644 --- a/service/ivs/serializers.go +++ b/service/ivs/serializers.go @@ -342,6 +342,11 @@ func awsRestjson1_serializeOpDocumentCreateChannelInput(v *CreateChannelInput, v ok.Boolean(v.Authorized) } + if len(v.ContainerFormat) > 0 { + ok := object.Key("containerFormat") + ok.String(string(v.ContainerFormat)) + } + if v.InsecureIngest { ok := object.Key("insecureIngest") ok.Boolean(v.InsecureIngest) @@ -352,6 +357,13 @@ func awsRestjson1_serializeOpDocumentCreateChannelInput(v *CreateChannelInput, v ok.String(string(v.LatencyMode)) } + if v.MultitrackInputConfiguration != nil { + ok := object.Key("multitrackInputConfiguration") + if err := awsRestjson1_serializeDocumentMultitrackInputConfiguration(v.MultitrackInputConfiguration, ok); err != nil { + return err + } + } + if v.Name != nil { ok := object.Key("name") ok.String(*v.Name) @@ -2985,6 +2997,11 @@ func awsRestjson1_serializeOpDocumentUpdateChannelInput(v *UpdateChannelInput, v ok.Boolean(v.Authorized) } + if len(v.ContainerFormat) > 0 { + ok := object.Key("containerFormat") + ok.String(string(v.ContainerFormat)) + } + if v.InsecureIngest { ok := object.Key("insecureIngest") ok.Boolean(v.InsecureIngest) @@ -2995,6 +3012,13 @@ func awsRestjson1_serializeOpDocumentUpdateChannelInput(v *UpdateChannelInput, v ok.String(string(v.LatencyMode)) } + if v.MultitrackInputConfiguration != nil { + ok := object.Key("multitrackInputConfiguration") + if err := awsRestjson1_serializeDocumentMultitrackInputConfiguration(v.MultitrackInputConfiguration, ok); err != nil { + return err + } + } + if v.Name != nil { ok := object.Key("name") ok.String(*v.Name) @@ -3188,6 +3212,28 @@ func awsRestjson1_serializeDocumentDestinationConfiguration(v *types.Destination return nil } +func awsRestjson1_serializeDocumentMultitrackInputConfiguration(v *types.MultitrackInputConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Enabled { + ok := object.Key("enabled") + ok.Boolean(v.Enabled) + } + + if len(v.MaximumResolution) > 0 { + ok := object.Key("maximumResolution") + ok.String(string(v.MaximumResolution)) + } + + if len(v.Policy) > 0 { + ok := object.Key("policy") + ok.String(string(v.Policy)) + } + + return nil +} + func awsRestjson1_serializeDocumentPlaybackRestrictionPolicyAllowedCountryList(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/service/ivs/types/enums.go b/service/ivs/types/enums.go index 87654e5e975..871def55866 100644 --- a/service/ivs/types/enums.go +++ b/service/ivs/types/enums.go @@ -44,6 +44,65 @@ func (ChannelType) Values() []ChannelType { } } +type ContainerFormat string + +// Enum values for ContainerFormat +const ( + ContainerFormatTs ContainerFormat = "TS" + ContainerFormatFragmentedMP4 ContainerFormat = "FRAGMENTED_MP4" +) + +// Values returns all known values for ContainerFormat. 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 (ContainerFormat) Values() []ContainerFormat { + return []ContainerFormat{ + "TS", + "FRAGMENTED_MP4", + } +} + +type MultitrackMaximumResolution string + +// Enum values for MultitrackMaximumResolution +const ( + MultitrackMaximumResolutionSd MultitrackMaximumResolution = "SD" + MultitrackMaximumResolutionHd MultitrackMaximumResolution = "HD" + MultitrackMaximumResolutionFullHd MultitrackMaximumResolution = "FULL_HD" +) + +// Values returns all known values for MultitrackMaximumResolution. 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 (MultitrackMaximumResolution) Values() []MultitrackMaximumResolution { + return []MultitrackMaximumResolution{ + "SD", + "HD", + "FULL_HD", + } +} + +type MultitrackPolicy string + +// Enum values for MultitrackPolicy +const ( + MultitrackPolicyAllow MultitrackPolicy = "ALLOW" + MultitrackPolicyRequire MultitrackPolicy = "REQUIRE" +) + +// Values returns all known values for MultitrackPolicy. 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 (MultitrackPolicy) Values() []MultitrackPolicy { + return []MultitrackPolicy{ + "ALLOW", + "REQUIRE", + } +} + type RecordingConfigurationState string // Enum values for RecordingConfigurationState diff --git a/service/ivs/types/types.go b/service/ivs/types/types.go index 37956f1646f..51d12def0e0 100644 --- a/service/ivs/types/types.go +++ b/service/ivs/types/types.go @@ -8,8 +8,8 @@ import ( ) // Object specifying a stream’s audio configuration, as set up by the broadcaster -// (usually in an encoder). This is part of the IngestConfigurationobject and used for monitoring -// stream health. +// (usually in an encoder). This is part of the IngestConfigurationsobject and the deprecated IngestConfiguration object. +// It is used for monitoring stream health. type AudioConfiguration struct { // Number of audio channels. @@ -25,6 +25,10 @@ type AudioConfiguration struct { // encoder. TargetBitrate int64 + // Name of the audio track (if the stream has an audio track). If multitrack is + // not enabled, this is track0 (the sole track). + Track *string + noSmithyDocumentSerde } @@ -98,6 +102,12 @@ type Channel struct { // false . Authorized bool + // Indicates which content-packaging format is used (MPEG-TS or fMP4). If + // multitrackInputConfiguration is specified and enabled is true , then + // containerFormat is required and must be set to FRAGMENTED_MP4 . Otherwise, + // containerFormat may be set to TS or FRAGMENTED_MP4 . Default: TS . + ContainerFormat ContainerFormat + // Channel ingest endpoint, part of the definition of an ingest server, used when // you set up streaming software. IngestEndpoint *string @@ -109,6 +119,10 @@ type Channel struct { // HD. Use LOW for near-real-time interaction with viewers. Default: LOW . LatencyMode ChannelLatencyMode + // Object specifying multitrack input configuration. Default: no multitrack input + // configuration is specified. + MultitrackInputConfiguration *MultitrackInputConfiguration + // Channel name. Name *string @@ -220,6 +234,13 @@ type DestinationConfiguration struct { // Object specifying the ingest configuration set up by the broadcaster, usually // in an encoder. +// +// Note: IngestConfiguration is deprecated in favor of IngestConfigurations but retained to ensure +// backward compatibility. If multitrack is not enabled, IngestConfiguration and +// IngestConfigurations contain the same data, namely information about track0 (the +// sole track). If multitrack is enabled, IngestConfiguration contains data for +// only the first track (track0) and IngestConfigurations contains data for all +// tracks. type IngestConfiguration struct { // Encoder settings for audio. @@ -231,6 +252,49 @@ type IngestConfiguration struct { noSmithyDocumentSerde } +// Object specifying the ingest configuration set up by the broadcaster, usually +// in an encoder. +// +// Note: Use IngestConfigurations instead of IngestConfiguration (which is deprecated). If multitrack +// is not enabled, IngestConfiguration and IngestConfigurations contain the same +// data, namely information about track0 (the sole track). If multitrack is +// enabled, IngestConfiguration contains data for only the first track (track0) and +// IngestConfigurations contains data for all tracks. +type IngestConfigurations struct { + + // Encoder settings for audio. + // + // This member is required. + AudioConfigurations []AudioConfiguration + + // Encoder settings for video + // + // This member is required. + VideoConfigurations []VideoConfiguration + + noSmithyDocumentSerde +} + +// A complex type that specifies multitrack input configuration. +type MultitrackInputConfiguration struct { + + // Indicates whether multitrack input is enabled. Can be set to true only if + // channel type is STANDARD . Setting enabled to true with any other channel type + // will cause an exception. If true , then policy , maximumResolution , and + // containerFormat are required, and containerFormat must be set to FRAGMENTED_MP4 + // . Default: false . + Enabled bool + + // Maximum resolution for multitrack input. Required if enabled is true . + MaximumResolution MultitrackMaximumResolution + + // Indicates whether multitrack input is allowed or required. Required if enabled + // is true . + Policy MultitrackPolicy + + noSmithyDocumentSerde +} + // A key pair used to sign and validate a playback authorization token. type PlaybackKeyPair struct { @@ -530,8 +594,33 @@ type Stream struct { type StreamEvent struct { // Provides additional details about the stream event. There are several values; - // note that the long descriptions are provided in the IVS console but not - // delivered through the IVS API or EventBridge: + // the long descriptions are provided in the IVS console but not delivered through + // the IVS API or EventBridge. Multitrack-related codes are used only for certain + // Session Ended events. + // + // - MultitrackInputNotAllowed — The broadcast client attempted to connect with + // multitrack input, but multitrack input was not enabled on the channel. Check + // your broadcast software settings or set MultitrackInputConfiguration.Policy to + // ALLOW or REQUIRE . + // + // - MultitrackInputRequired — The broadcast client attempted to connect with + // single-track video, but multitrack input is required on this channel. Enable + // multitrack video in your broadcast software or configure the channel’s + // MultitrackInputConfiguration.Policy to ALLOW . + // + // - InvalidGetClientConfigurationStreamKey — The broadcast client attempted to + // connect with an invalid, expired, or corrupt stream key. + // + // - GetClientConfigurationStreamKeyRequired — The broadcast client attempted to + // stream multitrack video without providing an authenticated stream key from + // GetClientConfiguration. + // + // - InvalidMultitrackInputTrackCount — The multitrack input stream contained an + // invalid number of tracks. + // + // - InvalidMultitrackInputVideoTrackMediaProperties — The multitrack input + // stream contained one or more tracks with an invalid codec, resolution, bitrate, + // or framerate. // // - StreamTakeoverMediaMismatch — The broadcast client attempted to take over // with different media properties (e.g., codec, resolution, or video track type) @@ -541,8 +630,8 @@ type StreamEvent struct { // with either a priority integer value equal to or lower than the original // stream's value or a value outside the allowed range of 1 to 2,147,483,647. // - // - StreamTakeoverLimitBreached — The broadcast client reached the maximum - // allowed takeover attempts for this stream. + // StreamTakeoverLimitBreached — The broadcast client reached the maximum allowed + // takeover attempts for this stream. Code *string // Time when the event occurred. This is an ISO 8601 timestamp; note that this is @@ -624,9 +713,21 @@ type StreamSession struct { // this is returned as a string. For live streams, this is NULL . EndTime *time.Time - // The properties of the incoming RTMP stream for the stream. + // The properties of the incoming RTMP stream. + // + // Note: ingestConfiguration is deprecated in favor of ingestConfigurations but + // retained to ensure backward compatibility. If multitrack is not enabled, + // ingestConfiguration and ingestConfigurations contain the same data, namely + // information about track0 (the sole track). If multitrack is enabled, + // ingestConfiguration contains data for only the first track (track0) and + // ingestConfigurations contains data for all tracks. IngestConfiguration *IngestConfiguration + // The properties of the incoming RTMP stream. If multitrack is enabled, + // ingestConfigurations contains data for all tracks; otherwise, it contains data + // only for track0 (the sole track). + IngestConfigurations *IngestConfigurations + // The properties of recording the live stream. RecordingConfiguration *RecordingConfiguration @@ -721,12 +822,13 @@ type ThumbnailConfiguration struct { // The targeted thumbnail-generation interval in seconds. This is configurable // (and required) only if recordingMode is INTERVAL . Default: 60. // - // Important: For the BASIC channel type, setting a value for targetIntervalSeconds - // does not guarantee that thumbnails are generated at the specified interval. For - // thumbnails to be generated at the targetIntervalSeconds interval, the - // IDR/Keyframe value for the input video must be less than the - // targetIntervalSeconds value. See [Amazon IVS Streaming Configuration] for information on setting IDR/Keyframe to - // the recommended value in video-encoder settings. + // Important: For the BASIC channel type, or the STANDARD channel type with + // multitrack input, setting a value for targetIntervalSeconds does not guarantee + // that thumbnails are generated at the specified interval. For thumbnails to be + // generated at the targetIntervalSeconds interval, the IDR/Keyframe value for the + // input video must be less than the targetIntervalSeconds value. See [Amazon IVS Streaming Configuration] for + // information on setting IDR/Keyframe to the recommended value in video-encoder + // settings. // // [Amazon IVS Streaming Configuration]: https://docs.aws.amazon.com/ivs/latest/userguide/streaming-config.html TargetIntervalSeconds *int64 @@ -735,8 +837,8 @@ type ThumbnailConfiguration struct { } // Object specifying a stream’s video configuration, as set up by the broadcaster -// (usually in an encoder). This is part of the IngestConfigurationobject and used for monitoring -// stream health. +// (usually in an encoder). This is part of the IngestConfigurationsobject and the deprecated IngestConfiguration object. +// It is used for monitoring stream health. type VideoConfiguration struct { // Indicates the degree of required decoder performance for a profile. Normally @@ -754,6 +856,15 @@ type VideoConfiguration struct { // Software or hardware used to encode the video. Encoder *string + // Indicates the degree of required decoder performance for a profile. Normally + // this is set automatically by the encoder. When an AVC codec is used, this field + // has the same value as avcLevel . + Level *string + + // Indicates to the decoder the requirements for decoding the stream. When an AVC + // codec is used, this field has the same value as avcProfile . + Profile *string + // The expected ingest bitrate (bits per second). This is configured in the // encoder. TargetBitrate int64 @@ -761,6 +872,10 @@ type VideoConfiguration struct { // The expected ingest framerate. This is configured in the encoder. TargetFramerate int64 + // Name of the video track. If multitrack is not enabled, this is track0 (the sole + // track). + Track *string + // Video-resolution height in pixels. VideoHeight int64 diff --git a/service/licensemanagerusersubscriptions/api_op_AssociateUser.go b/service/licensemanagerusersubscriptions/api_op_AssociateUser.go index b2f8514d173..0a9aafaac1e 100644 --- a/service/licensemanagerusersubscriptions/api_op_AssociateUser.go +++ b/service/licensemanagerusersubscriptions/api_op_AssociateUser.go @@ -36,24 +36,28 @@ func (c *Client) AssociateUser(ctx context.Context, params *AssociateUserInput, type AssociateUserInput struct { - // The identity provider of the user. + // The identity provider for the user. // // This member is required. IdentityProvider types.IdentityProvider - // The ID of the EC2 instance, which provides user-based subscriptions. + // The ID of the EC2 instance that provides the user-based subscription. // // This member is required. InstanceId *string - // The user name from the identity provider for the user. + // The user name from the identity provider. // // This member is required. Username *string - // The domain name of the user. + // The domain name of the Active Directory that contains information for the user + // to associate. Domain *string + // The tags that apply for the user association. + Tags map[string]string + noSmithyDocumentSerde } diff --git a/service/licensemanagerusersubscriptions/api_op_CreateLicenseServerEndpoint.go b/service/licensemanagerusersubscriptions/api_op_CreateLicenseServerEndpoint.go new file mode 100644 index 00000000000..86911ef4328 --- /dev/null +++ b/service/licensemanagerusersubscriptions/api_op_CreateLicenseServerEndpoint.go @@ -0,0 +1,174 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package licensemanagerusersubscriptions + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/licensemanagerusersubscriptions/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a network endpoint for the Remote Desktop Services (RDS) license server. +func (c *Client) CreateLicenseServerEndpoint(ctx context.Context, params *CreateLicenseServerEndpointInput, optFns ...func(*Options)) (*CreateLicenseServerEndpointOutput, error) { + if params == nil { + params = &CreateLicenseServerEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateLicenseServerEndpoint", params, optFns, c.addOperationCreateLicenseServerEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateLicenseServerEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateLicenseServerEndpointInput struct { + + // The Amazon Resource Name (ARN) that identifies the IdentityProvider resource + // that contains details about a registered identity provider. In the case of + // Active Directory, that can be a self-managed Active Directory or an Amazon Web + // Services Managed Active Directory that contains user identity details. + // + // This member is required. + IdentityProviderArn *string + + // The LicenseServerSettings resource to create for the endpoint. The settings + // include the type of license server and the Secrets Manager secret that enables + // administrators to add or remove users associated with the license server. + // + // This member is required. + LicenseServerSettings *types.LicenseServerSettings + + // The tags that apply for the license server endpoint. + Tags map[string]string + + noSmithyDocumentSerde +} + +type CreateLicenseServerEndpointOutput struct { + + // The Amazon Resource Name (ARN) of the identity provider specified in the + // request. + IdentityProviderArn *string + + // The ARN of the LicenseServerEndpoint resource. + LicenseServerEndpointArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateLicenseServerEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateLicenseServerEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateLicenseServerEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateLicenseServerEndpoint"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpCreateLicenseServerEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateLicenseServerEndpoint(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCreateLicenseServerEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateLicenseServerEndpoint", + } +} diff --git a/service/licensemanagerusersubscriptions/api_op_DeleteLicenseServerEndpoint.go b/service/licensemanagerusersubscriptions/api_op_DeleteLicenseServerEndpoint.go new file mode 100644 index 00000000000..992a9be84b2 --- /dev/null +++ b/service/licensemanagerusersubscriptions/api_op_DeleteLicenseServerEndpoint.go @@ -0,0 +1,163 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package licensemanagerusersubscriptions + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/licensemanagerusersubscriptions/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes a LicenseServerEndpoint resource. +func (c *Client) DeleteLicenseServerEndpoint(ctx context.Context, params *DeleteLicenseServerEndpointInput, optFns ...func(*Options)) (*DeleteLicenseServerEndpointOutput, error) { + if params == nil { + params = &DeleteLicenseServerEndpointInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteLicenseServerEndpoint", params, optFns, c.addOperationDeleteLicenseServerEndpointMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteLicenseServerEndpointOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteLicenseServerEndpointInput struct { + + // The Amazon Resource Name (ARN) that identifies the LicenseServerEndpoint + // resource to delete. + // + // This member is required. + LicenseServerEndpointArn *string + + // The type of License Server that the delete request refers to. + // + // This member is required. + ServerType types.ServerType + + noSmithyDocumentSerde +} + +type DeleteLicenseServerEndpointOutput struct { + + // Shows details from the LicenseServerEndpoint resource that was deleted. + LicenseServerEndpoint *types.LicenseServerEndpoint + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteLicenseServerEndpointMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteLicenseServerEndpoint{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteLicenseServerEndpoint{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteLicenseServerEndpoint"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDeleteLicenseServerEndpointValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteLicenseServerEndpoint(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteLicenseServerEndpoint(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteLicenseServerEndpoint", + } +} diff --git a/service/licensemanagerusersubscriptions/api_op_DeregisterIdentityProvider.go b/service/licensemanagerusersubscriptions/api_op_DeregisterIdentityProvider.go index 239a0071d5c..47137e80b03 100644 --- a/service/licensemanagerusersubscriptions/api_op_DeregisterIdentityProvider.go +++ b/service/licensemanagerusersubscriptions/api_op_DeregisterIdentityProvider.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deregisters the identity provider from providing user-based subscriptions. +// Deregisters the Active Directory identity provider from License Manager +// user-based subscriptions. func (c *Client) DeregisterIdentityProvider(ctx context.Context, params *DeregisterIdentityProviderInput, optFns ...func(*Options)) (*DeregisterIdentityProviderOutput, error) { if params == nil { params = &DeregisterIdentityProviderInput{} @@ -29,14 +30,17 @@ func (c *Client) DeregisterIdentityProvider(ctx context.Context, params *Deregis type DeregisterIdentityProviderInput struct { - // An object that specifies details for the identity provider. - // - // This member is required. + // An object that specifies details for the Active Directory identity provider. IdentityProvider types.IdentityProvider + // The Amazon Resource Name (ARN) that identifies the identity provider to + // deregister. + IdentityProviderArn *string + // The name of the user-based subscription product. // - // This member is required. + // Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | + // OFFICE_PROFESSIONAL_PLUS Product *string noSmithyDocumentSerde diff --git a/service/licensemanagerusersubscriptions/api_op_DisassociateUser.go b/service/licensemanagerusersubscriptions/api_op_DisassociateUser.go index d0cf50ffe63..c6169571b0c 100644 --- a/service/licensemanagerusersubscriptions/api_op_DisassociateUser.go +++ b/service/licensemanagerusersubscriptions/api_op_DisassociateUser.go @@ -29,23 +29,22 @@ func (c *Client) DisassociateUser(ctx context.Context, params *DisassociateUserI type DisassociateUserInput struct { - // An object that specifies details for the identity provider. - // - // This member is required. + // The domain name of the Active Directory that contains information for the user + // to disassociate. + Domain *string + + // An object that specifies details for the Active Directory identity provider. IdentityProvider types.IdentityProvider - // The ID of the EC2 instance, which provides user-based subscriptions. - // - // This member is required. + // The ID of the EC2 instance which provides user-based subscriptions. InstanceId *string - // The user name from the identity provider for the user. - // - // This member is required. - Username *string + // The Amazon Resource Name (ARN) of the user to disassociate from the EC2 + // instance. + InstanceUserArn *string - // The domain name of the user. - Domain *string + // The user name from the Active Directory identity provider for the user. + Username *string noSmithyDocumentSerde } diff --git a/service/licensemanagerusersubscriptions/api_op_ListIdentityProviders.go b/service/licensemanagerusersubscriptions/api_op_ListIdentityProviders.go index 62514b2b625..995ab00b600 100644 --- a/service/licensemanagerusersubscriptions/api_op_ListIdentityProviders.go +++ b/service/licensemanagerusersubscriptions/api_op_ListIdentityProviders.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists the identity providers for user-based subscriptions. +// Lists the Active Directory identity providers for user-based subscriptions. func (c *Client) ListIdentityProviders(ctx context.Context, params *ListIdentityProvidersInput, optFns ...func(*Options)) (*ListIdentityProvidersOutput, error) { if params == nil { params = &ListIdentityProvidersInput{} @@ -29,10 +29,18 @@ func (c *Client) ListIdentityProviders(ctx context.Context, params *ListIdentity type ListIdentityProvidersInput struct { - // Maximum number of results to return in a single call. + // You can use the following filters to streamline results: + // + // - Product + // + // - DirectoryId + Filters []types.Filter + + // The maximum number of results to return from a single request. MaxResults *int32 - // Token for the next set of results. + // A token to specify where to start paginating. This is the nextToken from a + // previously truncated response. NextToken *string noSmithyDocumentSerde @@ -40,12 +48,15 @@ type ListIdentityProvidersInput struct { type ListIdentityProvidersOutput struct { - // Metadata that describes the list identity providers operation. + // An array of IdentityProviderSummary resources that contain details about the + // Active Directory identity providers that meet the request criteria. // // This member is required. IdentityProviderSummaries []types.IdentityProviderSummary - // Token for the next set of results. + // The next token used for paginated responses. When this field isn't empty, there + // are additional elements that the service hasn't included in this request. Use + // this token with the next request to retrieve additional objects. NextToken *string // Metadata pertaining to the operation's result. @@ -154,7 +165,7 @@ func (c *Client) addOperationListIdentityProvidersMiddlewares(stack *middleware. // ListIdentityProvidersPaginatorOptions is the paginator options for // ListIdentityProviders type ListIdentityProvidersPaginatorOptions struct { - // Maximum number of results to return in a single call. + // The maximum number of results to return from a single request. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/licensemanagerusersubscriptions/api_op_ListInstances.go b/service/licensemanagerusersubscriptions/api_op_ListInstances.go index 8b9f4f78a60..c811db71771 100644 --- a/service/licensemanagerusersubscriptions/api_op_ListInstances.go +++ b/service/licensemanagerusersubscriptions/api_op_ListInstances.go @@ -29,14 +29,18 @@ func (c *Client) ListInstances(ctx context.Context, params *ListInstancesInput, type ListInstancesInput struct { - // An array of structures that you can use to filter the results to those that - // match one or more sets of key-value pairs that you specify. + // You can use the following filters to streamline results: + // + // - Status + // + // - InstanceId Filters []types.Filter - // Maximum number of results to return in a single call. + // The maximum number of results to return from a single request. MaxResults *int32 - // Token for the next set of results. + // A token to specify where to start paginating. This is the nextToken from a + // previously truncated response. NextToken *string noSmithyDocumentSerde @@ -44,10 +48,13 @@ type ListInstancesInput struct { type ListInstancesOutput struct { - // Metadata that describes the list instances operation. + // An array of InstanceSummary resources that contain details about the instances + // that provide user-based subscriptions and also meet the request criteria. InstanceSummaries []types.InstanceSummary - // Token for the next set of results. + // The next token used for paginated responses. When this field isn't empty, there + // are additional elements that the service hasn't included in this request. Use + // this token with the next request to retrieve additional objects. NextToken *string // Metadata pertaining to the operation's result. @@ -155,7 +162,7 @@ func (c *Client) addOperationListInstancesMiddlewares(stack *middleware.Stack, o // ListInstancesPaginatorOptions is the paginator options for ListInstances type ListInstancesPaginatorOptions struct { - // Maximum number of results to return in a single call. + // The maximum number of results to return from a single request. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/licensemanagerusersubscriptions/api_op_ListLicenseServerEndpoints.go b/service/licensemanagerusersubscriptions/api_op_ListLicenseServerEndpoints.go new file mode 100644 index 00000000000..4257d266b7c --- /dev/null +++ b/service/licensemanagerusersubscriptions/api_op_ListLicenseServerEndpoints.go @@ -0,0 +1,263 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package licensemanagerusersubscriptions + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/licensemanagerusersubscriptions/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// List the Remote Desktop Services (RDS) License Server endpoints +func (c *Client) ListLicenseServerEndpoints(ctx context.Context, params *ListLicenseServerEndpointsInput, optFns ...func(*Options)) (*ListLicenseServerEndpointsOutput, error) { + if params == nil { + params = &ListLicenseServerEndpointsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListLicenseServerEndpoints", params, optFns, c.addOperationListLicenseServerEndpointsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListLicenseServerEndpointsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListLicenseServerEndpointsInput struct { + + // You can use the following filters to streamline results: + // + // - IdentityProviderArn + Filters []types.Filter + + // The maximum number of results to return from a single request. + MaxResults *int32 + + // A token to specify where to start paginating. This is the nextToken from a + // previously truncated response. + NextToken *string + + noSmithyDocumentSerde +} + +type ListLicenseServerEndpointsOutput struct { + + // An array of LicenseServerEndpoint resources that contain detailed information + // about the RDS License Servers that meet the request criteria. + LicenseServerEndpoints []types.LicenseServerEndpoint + + // The next token used for paginated responses. When this field isn't empty, there + // are additional elements that the service hasn't included in this request. Use + // this token with the next request to retrieve additional objects. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListLicenseServerEndpointsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListLicenseServerEndpoints{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListLicenseServerEndpoints{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListLicenseServerEndpoints"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListLicenseServerEndpoints(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListLicenseServerEndpointsPaginatorOptions is the paginator options for +// ListLicenseServerEndpoints +type ListLicenseServerEndpointsPaginatorOptions struct { + // The maximum number of results to return from a single request. + 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 +} + +// ListLicenseServerEndpointsPaginator is a paginator for +// ListLicenseServerEndpoints +type ListLicenseServerEndpointsPaginator struct { + options ListLicenseServerEndpointsPaginatorOptions + client ListLicenseServerEndpointsAPIClient + params *ListLicenseServerEndpointsInput + nextToken *string + firstPage bool +} + +// NewListLicenseServerEndpointsPaginator returns a new +// ListLicenseServerEndpointsPaginator +func NewListLicenseServerEndpointsPaginator(client ListLicenseServerEndpointsAPIClient, params *ListLicenseServerEndpointsInput, optFns ...func(*ListLicenseServerEndpointsPaginatorOptions)) *ListLicenseServerEndpointsPaginator { + if params == nil { + params = &ListLicenseServerEndpointsInput{} + } + + options := ListLicenseServerEndpointsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListLicenseServerEndpointsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListLicenseServerEndpointsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListLicenseServerEndpoints page. +func (p *ListLicenseServerEndpointsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListLicenseServerEndpointsOutput, 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 + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListLicenseServerEndpoints(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 +} + +// ListLicenseServerEndpointsAPIClient is a client that implements the +// ListLicenseServerEndpoints operation. +type ListLicenseServerEndpointsAPIClient interface { + ListLicenseServerEndpoints(context.Context, *ListLicenseServerEndpointsInput, ...func(*Options)) (*ListLicenseServerEndpointsOutput, error) +} + +var _ ListLicenseServerEndpointsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListLicenseServerEndpoints(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListLicenseServerEndpoints", + } +} diff --git a/service/licensemanagerusersubscriptions/api_op_ListProductSubscriptions.go b/service/licensemanagerusersubscriptions/api_op_ListProductSubscriptions.go index 4b4d304595d..1eeac01111f 100644 --- a/service/licensemanagerusersubscriptions/api_op_ListProductSubscriptions.go +++ b/service/licensemanagerusersubscriptions/api_op_ListProductSubscriptions.go @@ -34,27 +34,36 @@ type ListProductSubscriptionsInput struct { // This member is required. IdentityProvider types.IdentityProvider - // The name of the user-based subscription product. + // You can use the following filters to streamline results: // - // This member is required. - Product *string - - // An array of structures that you can use to filter the results to those that - // match one or more sets of key-value pairs that you specify. + // - Status + // + // - Username + // + // - Domain Filters []types.Filter - // Maximum number of results to return in a single call. + // The maximum number of results to return from a single request. MaxResults *int32 - // Token for the next set of results. + // A token to specify where to start paginating. This is the nextToken from a + // previously truncated response. NextToken *string + // The name of the user-based subscription product. + // + // Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | + // OFFICE_PROFESSIONAL_PLUS + Product *string + noSmithyDocumentSerde } type ListProductSubscriptionsOutput struct { - // Token for the next set of results. + // The next token used for paginated responses. When this field isn't empty, there + // are additional elements that the service hasn't included in this request. Use + // this token with the next request to retrieve additional objects. NextToken *string // Metadata that describes the list product subscriptions operation. @@ -169,7 +178,7 @@ func (c *Client) addOperationListProductSubscriptionsMiddlewares(stack *middlewa // ListProductSubscriptionsPaginatorOptions is the paginator options for // ListProductSubscriptions type ListProductSubscriptionsPaginatorOptions struct { - // Maximum number of results to return in a single call. + // The maximum number of results to return from a single request. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/licensemanagerusersubscriptions/api_op_ListTagsForResource.go b/service/licensemanagerusersubscriptions/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..6a25a09b43a --- /dev/null +++ b/service/licensemanagerusersubscriptions/api_op_ListTagsForResource.go @@ -0,0 +1,156 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package licensemanagerusersubscriptions + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns the list of tags for the specified resource. +func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForResourceInput, optFns ...func(*Options)) (*ListTagsForResourceOutput, error) { + if params == nil { + params = &ListTagsForResourceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListTagsForResource", params, optFns, c.addOperationListTagsForResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListTagsForResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListTagsForResourceInput struct { + + // The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve. + // + // This member is required. + ResourceArn *string + + noSmithyDocumentSerde +} + +type ListTagsForResourceOutput struct { + + // The tags for the specified resource. + Tags map[string]string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListTagsForResourceMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListTagsForResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListTagsForResource{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListTagsForResource"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListTagsForResourceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListTagsForResource(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opListTagsForResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListTagsForResource", + } +} diff --git a/service/licensemanagerusersubscriptions/api_op_ListUserAssociations.go b/service/licensemanagerusersubscriptions/api_op_ListUserAssociations.go index 2211a24ad5d..8b7b20044c5 100644 --- a/service/licensemanagerusersubscriptions/api_op_ListUserAssociations.go +++ b/service/licensemanagerusersubscriptions/api_op_ListUserAssociations.go @@ -39,14 +39,20 @@ type ListUserAssociationsInput struct { // This member is required. InstanceId *string - // An array of structures that you can use to filter the results to those that - // match one or more sets of key-value pairs that you specify. + // You can use the following filters to streamline results: + // + // - Status + // + // - Username + // + // - Domain Filters []types.Filter - // Maximum number of results to return in a single call. + // The maximum number of results to return from a single request. MaxResults *int32 - // Token for the next set of results. + // A token to specify where to start paginating. This is the nextToken from a + // previously truncated response. NextToken *string noSmithyDocumentSerde @@ -57,7 +63,9 @@ type ListUserAssociationsOutput struct { // Metadata that describes the list user association operation. InstanceUserSummaries []types.InstanceUserSummary - // Token for the next set of results. + // The next token used for paginated responses. When this field isn't empty, there + // are additional elements that the service hasn't included in this request. Use + // this token with the next request to retrieve additional objects. NextToken *string // Metadata pertaining to the operation's result. @@ -169,7 +177,7 @@ func (c *Client) addOperationListUserAssociationsMiddlewares(stack *middleware.S // ListUserAssociationsPaginatorOptions is the paginator options for // ListUserAssociations type ListUserAssociationsPaginatorOptions struct { - // Maximum number of results to return in a single call. + // The maximum number of results to return from a single request. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/licensemanagerusersubscriptions/api_op_RegisterIdentityProvider.go b/service/licensemanagerusersubscriptions/api_op_RegisterIdentityProvider.go index 1b326daf3fb..8b07096adb1 100644 --- a/service/licensemanagerusersubscriptions/api_op_RegisterIdentityProvider.go +++ b/service/licensemanagerusersubscriptions/api_op_RegisterIdentityProvider.go @@ -29,13 +29,16 @@ func (c *Client) RegisterIdentityProvider(ctx context.Context, params *RegisterI type RegisterIdentityProviderInput struct { - // An object that specifies details for the identity provider. + // An object that specifies details for the identity provider to register. // // This member is required. IdentityProvider types.IdentityProvider // The name of the user-based subscription product. // + // Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | + // OFFICE_PROFESSIONAL_PLUS + // // This member is required. Product *string @@ -43,6 +46,9 @@ type RegisterIdentityProviderInput struct { // as the subnets to provision VPC endpoints. Settings *types.Settings + // The tags that apply to the identity provider's registration. + Tags map[string]string + noSmithyDocumentSerde } diff --git a/service/licensemanagerusersubscriptions/api_op_StartProductSubscription.go b/service/licensemanagerusersubscriptions/api_op_StartProductSubscription.go index 0647da74092..242553af371 100644 --- a/service/licensemanagerusersubscriptions/api_op_StartProductSubscription.go +++ b/service/licensemanagerusersubscriptions/api_op_StartProductSubscription.go @@ -43,6 +43,9 @@ type StartProductSubscriptionInput struct { // The name of the user-based subscription product. // + // Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | + // OFFICE_PROFESSIONAL_PLUS + // // This member is required. Product *string @@ -51,9 +54,13 @@ type StartProductSubscriptionInput struct { // This member is required. Username *string - // The domain name of the user. + // The domain name of the Active Directory that contains the user for whom to + // start the product subscription. Domain *string + // The tags that apply to the product subscription. + Tags map[string]string + noSmithyDocumentSerde } diff --git a/service/licensemanagerusersubscriptions/api_op_StopProductSubscription.go b/service/licensemanagerusersubscriptions/api_op_StopProductSubscription.go index a77c21918fa..80b0324f764 100644 --- a/service/licensemanagerusersubscriptions/api_op_StopProductSubscription.go +++ b/service/licensemanagerusersubscriptions/api_op_StopProductSubscription.go @@ -29,24 +29,25 @@ func (c *Client) StopProductSubscription(ctx context.Context, params *StopProduc type StopProductSubscriptionInput struct { + // The domain name of the Active Directory that contains the user for whom to stop + // the product subscription. + Domain *string + // An object that specifies details for the identity provider. - // - // This member is required. IdentityProvider types.IdentityProvider // The name of the user-based subscription product. // - // This member is required. + // Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | + // OFFICE_PROFESSIONAL_PLUS Product *string + // The Amazon Resource Name (ARN) of the product user. + ProductUserArn *string + // The user name from the identity provider for the user. - // - // This member is required. Username *string - // The domain name of the user. - Domain *string - noSmithyDocumentSerde } diff --git a/service/licensemanagerusersubscriptions/api_op_TagResource.go b/service/licensemanagerusersubscriptions/api_op_TagResource.go new file mode 100644 index 00000000000..4fdfe782ee7 --- /dev/null +++ b/service/licensemanagerusersubscriptions/api_op_TagResource.go @@ -0,0 +1,157 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package licensemanagerusersubscriptions + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Adds tags to a resource. +func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optFns ...func(*Options)) (*TagResourceOutput, error) { + if params == nil { + params = &TagResourceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "TagResource", params, optFns, c.addOperationTagResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*TagResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type TagResourceInput struct { + + // The Amazon Resource Name (ARN) of the resource that you want to tag. + // + // This member is required. + ResourceArn *string + + // The tags to apply to the specified resource. + // + // This member is required. + Tags map[string]string + + noSmithyDocumentSerde +} + +type TagResourceOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationTagResourceMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpTagResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpTagResource{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "TagResource"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpTagResourceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opTagResource(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opTagResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "TagResource", + } +} diff --git a/service/licensemanagerusersubscriptions/api_op_UntagResource.go b/service/licensemanagerusersubscriptions/api_op_UntagResource.go new file mode 100644 index 00000000000..970cf998f4b --- /dev/null +++ b/service/licensemanagerusersubscriptions/api_op_UntagResource.go @@ -0,0 +1,158 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package licensemanagerusersubscriptions + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Removes tags from a resource. +func (c *Client) UntagResource(ctx context.Context, params *UntagResourceInput, optFns ...func(*Options)) (*UntagResourceOutput, error) { + if params == nil { + params = &UntagResourceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UntagResource", params, optFns, c.addOperationUntagResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UntagResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UntagResourceInput struct { + + // The Amazon Resource Name (ARN) of the resource that you want to remove tags + // from. + // + // This member is required. + ResourceArn *string + + // The tag keys to remove from the resource. + // + // This member is required. + TagKeys []string + + noSmithyDocumentSerde +} + +type UntagResourceOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUntagResourceMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUntagResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUntagResource{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UntagResource"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUntagResourceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUntagResource(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUntagResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UntagResource", + } +} diff --git a/service/licensemanagerusersubscriptions/api_op_UpdateIdentityProviderSettings.go b/service/licensemanagerusersubscriptions/api_op_UpdateIdentityProviderSettings.go index 3c12cd27941..2303d78f220 100644 --- a/service/licensemanagerusersubscriptions/api_op_UpdateIdentityProviderSettings.go +++ b/service/licensemanagerusersubscriptions/api_op_UpdateIdentityProviderSettings.go @@ -30,16 +30,6 @@ func (c *Client) UpdateIdentityProviderSettings(ctx context.Context, params *Upd type UpdateIdentityProviderSettingsInput struct { - // Details about an identity provider. - // - // This member is required. - IdentityProvider types.IdentityProvider - - // The name of the user-based subscription product. - // - // This member is required. - Product *string - // Updates the registered identity provider’s product related configuration // settings. You can update any combination of settings in a single operation such // as the: @@ -53,6 +43,18 @@ type UpdateIdentityProviderSettingsInput struct { // This member is required. UpdateSettings *types.UpdateSettings + // Refers to an identity provider. + IdentityProvider types.IdentityProvider + + // The Amazon Resource Name (ARN) of the identity provider to update. + IdentityProviderArn *string + + // The name of the user-based subscription product. + // + // Valid values: VISUAL_STUDIO_ENTERPRISE | VISUAL_STUDIO_PROFESSIONAL | + // OFFICE_PROFESSIONAL_PLUS + Product *string + noSmithyDocumentSerde } diff --git a/service/licensemanagerusersubscriptions/deserializers.go b/service/licensemanagerusersubscriptions/deserializers.go index 44a79437ce8..c0d930cea41 100644 --- a/service/licensemanagerusersubscriptions/deserializers.go +++ b/service/licensemanagerusersubscriptions/deserializers.go @@ -199,14 +199,14 @@ func awsRestjson1_deserializeOpDocumentAssociateUserOutput(v **AssociateUserOutp return nil } -type awsRestjson1_deserializeOpDeregisterIdentityProvider struct { +type awsRestjson1_deserializeOpCreateLicenseServerEndpoint struct { } -func (*awsRestjson1_deserializeOpDeregisterIdentityProvider) ID() string { +func (*awsRestjson1_deserializeOpCreateLicenseServerEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeregisterIdentityProvider) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateLicenseServerEndpoint) 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) @@ -224,9 +224,9 @@ func (m *awsRestjson1_deserializeOpDeregisterIdentityProvider) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeregisterIdentityProvider(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateLicenseServerEndpoint(response, &metadata) } - output := &DeregisterIdentityProviderOutput{} + output := &CreateLicenseServerEndpointOutput{} out.Result = output var buff [1024]byte @@ -247,7 +247,7 @@ func (m *awsRestjson1_deserializeOpDeregisterIdentityProvider) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeregisterIdentityProviderOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateLicenseServerEndpointOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -261,7 +261,7 @@ func (m *awsRestjson1_deserializeOpDeregisterIdentityProvider) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeregisterIdentityProvider(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateLicenseServerEndpoint(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)} @@ -333,7 +333,7 @@ func awsRestjson1_deserializeOpErrorDeregisterIdentityProvider(response *smithyh } } -func awsRestjson1_deserializeOpDocumentDeregisterIdentityProviderOutput(v **DeregisterIdentityProviderOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateLicenseServerEndpointOutput(v **CreateLicenseServerEndpointOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -346,18 +346,31 @@ func awsRestjson1_deserializeOpDocumentDeregisterIdentityProviderOutput(v **Dere return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeregisterIdentityProviderOutput + var sv *CreateLicenseServerEndpointOutput if *v == nil { - sv = &DeregisterIdentityProviderOutput{} + sv = &CreateLicenseServerEndpointOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "IdentityProviderSummary": - if err := awsRestjson1_deserializeDocumentIdentityProviderSummary(&sv.IdentityProviderSummary, value); err != nil { - return err + case "IdentityProviderArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.IdentityProviderArn = ptr.String(jtv) + } + + case "LicenseServerEndpointArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.LicenseServerEndpointArn = ptr.String(jtv) } default: @@ -369,14 +382,14 @@ func awsRestjson1_deserializeOpDocumentDeregisterIdentityProviderOutput(v **Dere return nil } -type awsRestjson1_deserializeOpDisassociateUser struct { +type awsRestjson1_deserializeOpDeleteLicenseServerEndpoint struct { } -func (*awsRestjson1_deserializeOpDisassociateUser) ID() string { +func (*awsRestjson1_deserializeOpDeleteLicenseServerEndpoint) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDisassociateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteLicenseServerEndpoint) 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) @@ -394,9 +407,9 @@ func (m *awsRestjson1_deserializeOpDisassociateUser) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDisassociateUser(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteLicenseServerEndpoint(response, &metadata) } - output := &DisassociateUserOutput{} + output := &DeleteLicenseServerEndpointOutput{} out.Result = output var buff [1024]byte @@ -417,7 +430,7 @@ func (m *awsRestjson1_deserializeOpDisassociateUser) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDisassociateUserOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteLicenseServerEndpointOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -431,7 +444,7 @@ func (m *awsRestjson1_deserializeOpDisassociateUser) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorDisassociateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteLicenseServerEndpoint(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)} @@ -503,7 +516,7 @@ func awsRestjson1_deserializeOpErrorDisassociateUser(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpDocumentDisassociateUserOutput(v **DisassociateUserOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteLicenseServerEndpointOutput(v **DeleteLicenseServerEndpointOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -516,17 +529,17 @@ func awsRestjson1_deserializeOpDocumentDisassociateUserOutput(v **DisassociateUs return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DisassociateUserOutput + var sv *DeleteLicenseServerEndpointOutput if *v == nil { - sv = &DisassociateUserOutput{} + sv = &DeleteLicenseServerEndpointOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "InstanceUserSummary": - if err := awsRestjson1_deserializeDocumentInstanceUserSummary(&sv.InstanceUserSummary, value); err != nil { + case "LicenseServerEndpoint": + if err := awsRestjson1_deserializeDocumentLicenseServerEndpoint(&sv.LicenseServerEndpoint, value); err != nil { return err } @@ -539,14 +552,14 @@ func awsRestjson1_deserializeOpDocumentDisassociateUserOutput(v **DisassociateUs return nil } -type awsRestjson1_deserializeOpListIdentityProviders struct { +type awsRestjson1_deserializeOpDeregisterIdentityProvider struct { } -func (*awsRestjson1_deserializeOpListIdentityProviders) ID() string { +func (*awsRestjson1_deserializeOpDeregisterIdentityProvider) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListIdentityProviders) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeregisterIdentityProvider) 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) @@ -564,9 +577,9 @@ func (m *awsRestjson1_deserializeOpListIdentityProviders) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListIdentityProviders(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeregisterIdentityProvider(response, &metadata) } - output := &ListIdentityProvidersOutput{} + output := &DeregisterIdentityProviderOutput{} out.Result = output var buff [1024]byte @@ -587,7 +600,7 @@ func (m *awsRestjson1_deserializeOpListIdentityProviders) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListIdentityProvidersOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeregisterIdentityProviderOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -601,7 +614,7 @@ func (m *awsRestjson1_deserializeOpListIdentityProviders) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorListIdentityProviders(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeregisterIdentityProvider(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)} @@ -673,7 +686,7 @@ func awsRestjson1_deserializeOpErrorListIdentityProviders(response *smithyhttp.R } } -func awsRestjson1_deserializeOpDocumentListIdentityProvidersOutput(v **ListIdentityProvidersOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeregisterIdentityProviderOutput(v **DeregisterIdentityProviderOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -686,29 +699,20 @@ func awsRestjson1_deserializeOpDocumentListIdentityProvidersOutput(v **ListIdent return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListIdentityProvidersOutput + var sv *DeregisterIdentityProviderOutput if *v == nil { - sv = &ListIdentityProvidersOutput{} + sv = &DeregisterIdentityProviderOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "IdentityProviderSummaries": - if err := awsRestjson1_deserializeDocumentIdentityProviderSummaryList(&sv.IdentityProviderSummaries, value); err != nil { + case "IdentityProviderSummary": + if err := awsRestjson1_deserializeDocumentIdentityProviderSummary(&sv.IdentityProviderSummary, value); err != nil { return err } - 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) - } - default: _, _ = key, value @@ -718,14 +722,14 @@ func awsRestjson1_deserializeOpDocumentListIdentityProvidersOutput(v **ListIdent return nil } -type awsRestjson1_deserializeOpListInstances struct { +type awsRestjson1_deserializeOpDisassociateUser struct { } -func (*awsRestjson1_deserializeOpListInstances) ID() string { +func (*awsRestjson1_deserializeOpDisassociateUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDisassociateUser) 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) @@ -743,9 +747,9 @@ func (m *awsRestjson1_deserializeOpListInstances) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListInstances(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDisassociateUser(response, &metadata) } - output := &ListInstancesOutput{} + output := &DisassociateUserOutput{} out.Result = output var buff [1024]byte @@ -766,7 +770,7 @@ func (m *awsRestjson1_deserializeOpListInstances) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListInstancesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDisassociateUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -780,7 +784,7 @@ func (m *awsRestjson1_deserializeOpListInstances) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorListInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDisassociateUser(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)} @@ -852,7 +856,7 @@ func awsRestjson1_deserializeOpErrorListInstances(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentListInstancesOutput(v **ListInstancesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDisassociateUserOutput(v **DisassociateUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -865,29 +869,20 @@ func awsRestjson1_deserializeOpDocumentListInstancesOutput(v **ListInstancesOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListInstancesOutput + var sv *DisassociateUserOutput if *v == nil { - sv = &ListInstancesOutput{} + sv = &DisassociateUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "InstanceSummaries": - if err := awsRestjson1_deserializeDocumentInstanceSummaryList(&sv.InstanceSummaries, value); err != nil { + case "InstanceUserSummary": + if err := awsRestjson1_deserializeDocumentInstanceUserSummary(&sv.InstanceUserSummary, value); err != nil { return err } - 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) - } - default: _, _ = key, value @@ -897,14 +892,14 @@ func awsRestjson1_deserializeOpDocumentListInstancesOutput(v **ListInstancesOutp return nil } -type awsRestjson1_deserializeOpListProductSubscriptions struct { +type awsRestjson1_deserializeOpListIdentityProviders struct { } -func (*awsRestjson1_deserializeOpListProductSubscriptions) ID() string { +func (*awsRestjson1_deserializeOpListIdentityProviders) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListProductSubscriptions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListIdentityProviders) 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) @@ -922,9 +917,9 @@ func (m *awsRestjson1_deserializeOpListProductSubscriptions) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListProductSubscriptions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListIdentityProviders(response, &metadata) } - output := &ListProductSubscriptionsOutput{} + output := &ListIdentityProvidersOutput{} out.Result = output var buff [1024]byte @@ -945,7 +940,7 @@ func (m *awsRestjson1_deserializeOpListProductSubscriptions) HandleDeserialize(c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListProductSubscriptionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListIdentityProvidersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -959,7 +954,7 @@ func (m *awsRestjson1_deserializeOpListProductSubscriptions) HandleDeserialize(c return out, metadata, err } -func awsRestjson1_deserializeOpErrorListProductSubscriptions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListIdentityProviders(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)} @@ -1031,7 +1026,7 @@ func awsRestjson1_deserializeOpErrorListProductSubscriptions(response *smithyhtt } } -func awsRestjson1_deserializeOpDocumentListProductSubscriptionsOutput(v **ListProductSubscriptionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListIdentityProvidersOutput(v **ListIdentityProvidersOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1044,15 +1039,20 @@ func awsRestjson1_deserializeOpDocumentListProductSubscriptionsOutput(v **ListPr return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListProductSubscriptionsOutput + var sv *ListIdentityProvidersOutput if *v == nil { - sv = &ListProductSubscriptionsOutput{} + sv = &ListIdentityProvidersOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "IdentityProviderSummaries": + if err := awsRestjson1_deserializeDocumentIdentityProviderSummaryList(&sv.IdentityProviderSummaries, value); err != nil { + return err + } + case "NextToken": if value != nil { jtv, ok := value.(string) @@ -1062,11 +1062,6 @@ func awsRestjson1_deserializeOpDocumentListProductSubscriptionsOutput(v **ListPr sv.NextToken = ptr.String(jtv) } - case "ProductUserSummaries": - if err := awsRestjson1_deserializeDocumentProductUserSummaryList(&sv.ProductUserSummaries, value); err != nil { - return err - } - default: _, _ = key, value @@ -1076,14 +1071,14 @@ func awsRestjson1_deserializeOpDocumentListProductSubscriptionsOutput(v **ListPr return nil } -type awsRestjson1_deserializeOpListUserAssociations struct { +type awsRestjson1_deserializeOpListInstances struct { } -func (*awsRestjson1_deserializeOpListUserAssociations) ID() string { +func (*awsRestjson1_deserializeOpListInstances) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListUserAssociations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListInstances) 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) @@ -1101,9 +1096,9 @@ func (m *awsRestjson1_deserializeOpListUserAssociations) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListUserAssociations(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListInstances(response, &metadata) } - output := &ListUserAssociationsOutput{} + output := &ListInstancesOutput{} out.Result = output var buff [1024]byte @@ -1124,7 +1119,7 @@ func (m *awsRestjson1_deserializeOpListUserAssociations) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListUserAssociationsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListInstancesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1138,7 +1133,7 @@ func (m *awsRestjson1_deserializeOpListUserAssociations) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorListUserAssociations(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListInstances(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)} @@ -1210,7 +1205,7 @@ func awsRestjson1_deserializeOpErrorListUserAssociations(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpDocumentListUserAssociationsOutput(v **ListUserAssociationsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListInstancesOutput(v **ListInstancesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1223,17 +1218,17 @@ func awsRestjson1_deserializeOpDocumentListUserAssociationsOutput(v **ListUserAs return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListUserAssociationsOutput + var sv *ListInstancesOutput if *v == nil { - sv = &ListUserAssociationsOutput{} + sv = &ListInstancesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "InstanceUserSummaries": - if err := awsRestjson1_deserializeDocumentInstanceUserSummaryList(&sv.InstanceUserSummaries, value); err != nil { + case "InstanceSummaries": + if err := awsRestjson1_deserializeDocumentInstanceSummaryList(&sv.InstanceSummaries, value); err != nil { return err } @@ -1255,14 +1250,14 @@ func awsRestjson1_deserializeOpDocumentListUserAssociationsOutput(v **ListUserAs return nil } -type awsRestjson1_deserializeOpRegisterIdentityProvider struct { +type awsRestjson1_deserializeOpListLicenseServerEndpoints struct { } -func (*awsRestjson1_deserializeOpRegisterIdentityProvider) ID() string { +func (*awsRestjson1_deserializeOpListLicenseServerEndpoints) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpRegisterIdentityProvider) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListLicenseServerEndpoints) 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) @@ -1280,9 +1275,9 @@ func (m *awsRestjson1_deserializeOpRegisterIdentityProvider) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorRegisterIdentityProvider(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListLicenseServerEndpoints(response, &metadata) } - output := &RegisterIdentityProviderOutput{} + output := &ListLicenseServerEndpointsOutput{} out.Result = output var buff [1024]byte @@ -1303,7 +1298,7 @@ func (m *awsRestjson1_deserializeOpRegisterIdentityProvider) HandleDeserialize(c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentRegisterIdentityProviderOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListLicenseServerEndpointsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1317,7 +1312,7 @@ func (m *awsRestjson1_deserializeOpRegisterIdentityProvider) HandleDeserialize(c return out, metadata, err } -func awsRestjson1_deserializeOpErrorRegisterIdentityProvider(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListLicenseServerEndpoints(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)} @@ -1367,9 +1362,6 @@ func awsRestjson1_deserializeOpErrorRegisterIdentityProvider(response *smithyhtt case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ServiceQuotaExceededException", errorCode): return awsRestjson1_deserializeErrorServiceQuotaExceededException(response, errorBody) @@ -1389,7 +1381,7 @@ func awsRestjson1_deserializeOpErrorRegisterIdentityProvider(response *smithyhtt } } -func awsRestjson1_deserializeOpDocumentRegisterIdentityProviderOutput(v **RegisterIdentityProviderOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListLicenseServerEndpointsOutput(v **ListLicenseServerEndpointsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1402,20 +1394,29 @@ func awsRestjson1_deserializeOpDocumentRegisterIdentityProviderOutput(v **Regist return fmt.Errorf("unexpected JSON type %v", value) } - var sv *RegisterIdentityProviderOutput + var sv *ListLicenseServerEndpointsOutput if *v == nil { - sv = &RegisterIdentityProviderOutput{} + sv = &ListLicenseServerEndpointsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "IdentityProviderSummary": - if err := awsRestjson1_deserializeDocumentIdentityProviderSummary(&sv.IdentityProviderSummary, value); err != nil { + case "LicenseServerEndpoints": + if err := awsRestjson1_deserializeDocumentLicenseServerEndpointList(&sv.LicenseServerEndpoints, value); err != nil { return err } + 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) + } + default: _, _ = key, value @@ -1425,14 +1426,14 @@ func awsRestjson1_deserializeOpDocumentRegisterIdentityProviderOutput(v **Regist return nil } -type awsRestjson1_deserializeOpStartProductSubscription struct { +type awsRestjson1_deserializeOpListProductSubscriptions struct { } -func (*awsRestjson1_deserializeOpStartProductSubscription) ID() string { +func (*awsRestjson1_deserializeOpListProductSubscriptions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpStartProductSubscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListProductSubscriptions) 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) @@ -1450,9 +1451,9 @@ func (m *awsRestjson1_deserializeOpStartProductSubscription) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorStartProductSubscription(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListProductSubscriptions(response, &metadata) } - output := &StartProductSubscriptionOutput{} + output := &ListProductSubscriptionsOutput{} out.Result = output var buff [1024]byte @@ -1473,7 +1474,7 @@ func (m *awsRestjson1_deserializeOpStartProductSubscription) HandleDeserialize(c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentStartProductSubscriptionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListProductSubscriptionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1487,7 +1488,7 @@ func (m *awsRestjson1_deserializeOpStartProductSubscription) HandleDeserialize(c return out, metadata, err } -func awsRestjson1_deserializeOpErrorStartProductSubscription(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListProductSubscriptions(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)} @@ -1559,7 +1560,7 @@ func awsRestjson1_deserializeOpErrorStartProductSubscription(response *smithyhtt } } -func awsRestjson1_deserializeOpDocumentStartProductSubscriptionOutput(v **StartProductSubscriptionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListProductSubscriptionsOutput(v **ListProductSubscriptionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1572,17 +1573,26 @@ func awsRestjson1_deserializeOpDocumentStartProductSubscriptionOutput(v **StartP return fmt.Errorf("unexpected JSON type %v", value) } - var sv *StartProductSubscriptionOutput + var sv *ListProductSubscriptionsOutput if *v == nil { - sv = &StartProductSubscriptionOutput{} + sv = &ListProductSubscriptionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ProductUserSummary": - if err := awsRestjson1_deserializeDocumentProductUserSummary(&sv.ProductUserSummary, value); err != nil { + 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 "ProductUserSummaries": + if err := awsRestjson1_deserializeDocumentProductUserSummaryList(&sv.ProductUserSummaries, value); err != nil { return err } @@ -1595,14 +1605,14 @@ func awsRestjson1_deserializeOpDocumentStartProductSubscriptionOutput(v **StartP return nil } -type awsRestjson1_deserializeOpStopProductSubscription struct { +type awsRestjson1_deserializeOpListTagsForResource struct { } -func (*awsRestjson1_deserializeOpStopProductSubscription) ID() string { +func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpStopProductSubscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +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) @@ -1620,9 +1630,9 @@ func (m *awsRestjson1_deserializeOpStopProductSubscription) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorStopProductSubscription(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata) } - output := &StopProductSubscriptionOutput{} + output := &ListTagsForResourceOutput{} out.Result = output var buff [1024]byte @@ -1643,7 +1653,7 @@ func (m *awsRestjson1_deserializeOpStopProductSubscription) HandleDeserialize(ct return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentStopProductSubscriptionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1657,7 +1667,7 @@ func (m *awsRestjson1_deserializeOpStopProductSubscription) HandleDeserialize(ct return out, metadata, err } -func awsRestjson1_deserializeOpErrorStopProductSubscription(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListTagsForResource(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)} @@ -1698,24 +1708,12 @@ func awsRestjson1_deserializeOpErrorStopProductSubscription(response *smithyhttp } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(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) @@ -1729,7 +1727,7 @@ func awsRestjson1_deserializeOpErrorStopProductSubscription(response *smithyhttp } } -func awsRestjson1_deserializeOpDocumentStopProductSubscriptionOutput(v **StopProductSubscriptionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1742,17 +1740,17 @@ func awsRestjson1_deserializeOpDocumentStopProductSubscriptionOutput(v **StopPro return fmt.Errorf("unexpected JSON type %v", value) } - var sv *StopProductSubscriptionOutput + var sv *ListTagsForResourceOutput if *v == nil { - sv = &StopProductSubscriptionOutput{} + sv = &ListTagsForResourceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ProductUserSummary": - if err := awsRestjson1_deserializeDocumentProductUserSummary(&sv.ProductUserSummary, value); err != nil { + case "Tags": + if err := awsRestjson1_deserializeDocumentTags(&sv.Tags, value); err != nil { return err } @@ -1765,14 +1763,14 @@ func awsRestjson1_deserializeOpDocumentStopProductSubscriptionOutput(v **StopPro return nil } -type awsRestjson1_deserializeOpUpdateIdentityProviderSettings struct { +type awsRestjson1_deserializeOpListUserAssociations struct { } -func (*awsRestjson1_deserializeOpUpdateIdentityProviderSettings) ID() string { +func (*awsRestjson1_deserializeOpListUserAssociations) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateIdentityProviderSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListUserAssociations) 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) @@ -1790,9 +1788,9 @@ func (m *awsRestjson1_deserializeOpUpdateIdentityProviderSettings) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateIdentityProviderSettings(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListUserAssociations(response, &metadata) } - output := &UpdateIdentityProviderSettingsOutput{} + output := &ListUserAssociationsOutput{} out.Result = output var buff [1024]byte @@ -1813,7 +1811,7 @@ func (m *awsRestjson1_deserializeOpUpdateIdentityProviderSettings) HandleDeseria return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateIdentityProviderSettingsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListUserAssociationsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1827,7 +1825,7 @@ func (m *awsRestjson1_deserializeOpUpdateIdentityProviderSettings) HandleDeseria return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateIdentityProviderSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListUserAssociations(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)} @@ -1871,12 +1869,21 @@ func awsRestjson1_deserializeOpErrorUpdateIdentityProviderSettings(response *smi case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): - return awsRestjson1_deserializeErrorThrottlingException(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) @@ -1890,7 +1897,7 @@ func awsRestjson1_deserializeOpErrorUpdateIdentityProviderSettings(response *smi } } -func awsRestjson1_deserializeOpDocumentUpdateIdentityProviderSettingsOutput(v **UpdateIdentityProviderSettingsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListUserAssociationsOutput(v **ListUserAssociationsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1903,20 +1910,29 @@ func awsRestjson1_deserializeOpDocumentUpdateIdentityProviderSettingsOutput(v ** return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateIdentityProviderSettingsOutput + var sv *ListUserAssociationsOutput if *v == nil { - sv = &UpdateIdentityProviderSettingsOutput{} + sv = &ListUserAssociationsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "IdentityProviderSummary": - if err := awsRestjson1_deserializeDocumentIdentityProviderSummary(&sv.IdentityProviderSummary, value); err != nil { + case "InstanceUserSummaries": + if err := awsRestjson1_deserializeDocumentInstanceUserSummaryList(&sv.InstanceUserSummaries, value); err != nil { return err } + 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) + } + default: _, _ = key, value @@ -1926,12 +1942,41 @@ func awsRestjson1_deserializeOpDocumentUpdateIdentityProviderSettingsOutput(v ** return nil } -func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.AccessDeniedException{} +type awsRestjson1_deserializeOpRegisterIdentityProvider struct { +} + +func (*awsRestjson1_deserializeOpRegisterIdentityProvider) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpRegisterIdentityProvider) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorRegisterIdentityProvider(response, &metadata) + } + output := &RegisterIdentityProviderOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -1942,36 +1987,46 @@ func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Res Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape) - + err = awsRestjson1_deserializeOpDocumentRegisterIdentityProviderOutput(&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), + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), Snapshot: snapshot.Bytes(), } - return err } - errorBody.Seek(0, io.SeekStart) - - return output + span.End() + return out, metadata, err } -func awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ConflictException{} +func awsRestjson1_deserializeOpErrorRegisterIdentityProvider(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + 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 { + jsonCode, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -1981,29 +2036,117 @@ func awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Respons return err } - err := awsRestjson1_deserializeDocumentConflictException(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } - 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(), + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(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 err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) +func awsRestjson1_deserializeOpDocumentRegisterIdentityProviderOutput(v **RegisterIdentityProviderOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - return output + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *RegisterIdentityProviderOutput + if *v == nil { + sv = &RegisterIdentityProviderOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "IdentityProviderSummary": + if err := awsRestjson1_deserializeDocumentIdentityProviderSummary(&sv.IdentityProviderSummary, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil } -func awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.InternalServerException{} +type awsRestjson1_deserializeOpStartProductSubscription struct { +} + +func (*awsRestjson1_deserializeOpStartProductSubscription) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpStartProductSubscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorStartProductSubscription(response, &metadata) + } + output := &StartProductSubscriptionOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2014,36 +2157,46 @@ func awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.R Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - err := awsRestjson1_deserializeDocumentInternalServerException(&output, shape) - + err = awsRestjson1_deserializeOpDocumentStartProductSubscriptionOutput(&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), + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), Snapshot: snapshot.Bytes(), } - return err } - errorBody.Seek(0, io.SeekStart) - - return output + span.End() + return out, metadata, err } -func awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ResourceNotFoundException{} +func awsRestjson1_deserializeOpErrorStartProductSubscription(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + 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 { + jsonCode, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -2053,29 +2206,117 @@ func awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp return err } - err := awsRestjson1_deserializeDocumentResourceNotFoundException(&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(), + errorBody.Seek(0, io.SeekStart) + if len(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(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 err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) +func awsRestjson1_deserializeOpDocumentStartProductSubscriptionOutput(v **StartProductSubscriptionOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - return output + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *StartProductSubscriptionOutput + if *v == nil { + sv = &StartProductSubscriptionOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ProductUserSummary": + if err := awsRestjson1_deserializeDocumentProductUserSummary(&sv.ProductUserSummary, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil } -func awsRestjson1_deserializeErrorServiceQuotaExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ServiceQuotaExceededException{} +type awsRestjson1_deserializeOpStopProductSubscription struct { +} + +func (*awsRestjson1_deserializeOpStopProductSubscription) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpStopProductSubscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorStopProductSubscription(response, &metadata) + } + output := &StopProductSubscriptionOutput{} + out.Result = output + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) - body := io.TeeReader(errorBody, ringBuffer) + body := io.TeeReader(response.Body, ringBuffer) + decoder := json.NewDecoder(body) decoder.UseNumber() var shape interface{} @@ -2086,36 +2327,46 @@ func awsRestjson1_deserializeErrorServiceQuotaExceededException(response *smithy Err: fmt.Errorf("failed to decode response body, %w", err), Snapshot: snapshot.Bytes(), } - return err + return out, metadata, err } - err := awsRestjson1_deserializeDocumentServiceQuotaExceededException(&output, shape) - + err = awsRestjson1_deserializeOpDocumentStopProductSubscriptionOutput(&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), + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), Snapshot: snapshot.Bytes(), } - return err } - errorBody.Seek(0, io.SeekStart) - - return output + span.End() + return out, metadata, err } -func awsRestjson1_deserializeErrorThrottlingException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ThrottlingException{} +func awsRestjson1_deserializeOpErrorStopProductSubscription(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + 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 { + jsonCode, message, err := restjson.GetErrorInfo(decoder) + if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) err = &smithy.DeserializationError{ @@ -2125,60 +2376,1097 @@ func awsRestjson1_deserializeErrorThrottlingException(response *smithyhttp.Respo return err } - err := awsRestjson1_deserializeDocumentThrottlingException(&output, shape) + errorBody.Seek(0, io.SeekStart) + if len(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } - 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(), + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(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 err + return genericError + } +} - errorBody.Seek(0, io.SeekStart) +func awsRestjson1_deserializeOpDocumentStopProductSubscriptionOutput(v **StopProductSubscriptionOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } - return output -} + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } -func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { - output := &types.ValidationException{} - var buff [1024]byte - ringBuffer := smithyio.NewRingBuffer(buff[:]) + var sv *StopProductSubscriptionOutput + if *v == nil { + sv = &StopProductSubscriptionOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ProductUserSummary": + if err := awsRestjson1_deserializeDocumentProductUserSummary(&sv.ProductUserSummary, value); err != nil { + return err + } + + default: + _, _ = key, value - 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 + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpTagResource struct { +} + +func (*awsRestjson1_deserializeOpTagResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorTagResource(response, &metadata) + } + output := &TagResourceOutput{} + out.Result = output + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpUntagResource struct { +} + +func (*awsRestjson1_deserializeOpUntagResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUntagResource(response, &metadata) + } + output := &UntagResourceOutput{} + out.Result = output + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsRestjson1_deserializeOpUpdateIdentityProviderSettings struct { +} + +func (*awsRestjson1_deserializeOpUpdateIdentityProviderSettings) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateIdentityProviderSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUpdateIdentityProviderSettings(response, &metadata) + } + output := &UpdateIdentityProviderSettingsOutput{} + 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_deserializeOpDocumentUpdateIdentityProviderSettingsOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdateIdentityProviderSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(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_deserializeOpDocumentUpdateIdentityProviderSettingsOutput(v **UpdateIdentityProviderSettingsOutput, 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 *UpdateIdentityProviderSettingsOutput + if *v == nil { + sv = &UpdateIdentityProviderSettingsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "IdentityProviderSummary": + if err := awsRestjson1_deserializeDocumentIdentityProviderSummary(&sv.IdentityProviderSummary, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.AccessDeniedException{} + 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 + } + + err := awsRestjson1_deserializeDocumentAccessDeniedException(&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 awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ConflictException{} + 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 + } + + err := awsRestjson1_deserializeDocumentConflictException(&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 awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.InternalServerException{} + 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 + } + + err := awsRestjson1_deserializeDocumentInternalServerException(&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 awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ResourceNotFoundException{} + 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 + } + + err := awsRestjson1_deserializeDocumentResourceNotFoundException(&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 awsRestjson1_deserializeErrorServiceQuotaExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ServiceQuotaExceededException{} + 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 + } + + err := awsRestjson1_deserializeDocumentServiceQuotaExceededException(&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 awsRestjson1_deserializeErrorThrottlingException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ThrottlingException{} + 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 + } + + err := awsRestjson1_deserializeDocumentThrottlingException(&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 awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.ValidationException{} + 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 + } + + err := awsRestjson1_deserializeDocumentValidationException(&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 awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, 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.AccessDeniedException + if *v == nil { + sv = &types.AccessDeniedException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentActiveDirectoryIdentityProvider(v **types.ActiveDirectoryIdentityProvider, 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.ActiveDirectoryIdentityProvider + if *v == nil { + sv = &types.ActiveDirectoryIdentityProvider{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ActiveDirectorySettings": + if err := awsRestjson1_deserializeDocumentActiveDirectorySettings(&sv.ActiveDirectorySettings, value); err != nil { + return err + } + + case "ActiveDirectoryType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ActiveDirectoryType to be of type string, got %T instead", value) + } + sv.ActiveDirectoryType = types.ActiveDirectoryType(jtv) + } + + case "DirectoryId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Directory to be of type string, got %T instead", value) + } + sv.DirectoryId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentActiveDirectorySettings(v **types.ActiveDirectorySettings, 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.ActiveDirectorySettings + if *v == nil { + sv = &types.ActiveDirectorySettings{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DomainCredentialsProvider": + if err := awsRestjson1_deserializeDocumentCredentialsProvider(&sv.DomainCredentialsProvider, value); err != nil { + return err + } + + case "DomainIpv4List": + if err := awsRestjson1_deserializeDocumentIpV4List(&sv.DomainIpv4List, value); err != nil { + return err + } + + case "DomainName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.DomainName = ptr.String(jtv) + } + + case "DomainNetworkSettings": + if err := awsRestjson1_deserializeDocumentDomainNetworkSettings(&sv.DomainNetworkSettings, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, 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.ConflictException + if *v == nil { + sv = &types.ConflictException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentCredentialsProvider(v *types.CredentialsProvider, 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 uv types.CredentialsProvider +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "SecretsManagerCredentialsProvider": + var mv types.SecretsManagerCredentialsProvider + destAddr := &mv + if err := awsRestjson1_deserializeDocumentSecretsManagerCredentialsProvider(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.CredentialsProviderMemberSecretsManagerCredentialsProvider{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsRestjson1_deserializeDocumentDomainNetworkSettings(v **types.DomainNetworkSettings, 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.DomainNetworkSettings + if *v == nil { + sv = &types.DomainNetworkSettings{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Subnets": + if err := awsRestjson1_deserializeDocumentSubnets(&sv.Subnets, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentIdentityProvider(v *types.IdentityProvider, 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 uv types.IdentityProvider +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "ActiveDirectoryIdentityProvider": + var mv types.ActiveDirectoryIdentityProvider + destAddr := &mv + if err := awsRestjson1_deserializeDocumentActiveDirectoryIdentityProvider(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.IdentityProviderMemberActiveDirectoryIdentityProvider{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsRestjson1_deserializeDocumentIdentityProviderSummary(v **types.IdentityProviderSummary, 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.IdentityProviderSummary + if *v == nil { + sv = &types.IdentityProviderSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FailureMessage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.FailureMessage = ptr.String(jtv) + } + + case "IdentityProvider": + if err := awsRestjson1_deserializeDocumentIdentityProvider(&sv.IdentityProvider, value); err != nil { + return err + } + + case "IdentityProviderArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.IdentityProviderArn = ptr.String(jtv) + } + + case "Product": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Product = ptr.String(jtv) + } + + case "Settings": + if err := awsRestjson1_deserializeDocumentSettings(&sv.Settings, value); err != nil { + return err + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Status = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentIdentityProviderSummaryList(v *[]types.IdentityProviderSummary, 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) } - err := awsRestjson1_deserializeDocumentValidationException(&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 + var cv []types.IdentityProviderSummary + if *v == nil { + cv = []types.IdentityProviderSummary{} + } else { + cv = *v } - errorBody.Seek(0, io.SeekStart) + for _, value := range shape { + var col types.IdentityProviderSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentIdentityProviderSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) - return output + } + *v = cv + return nil } -func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { +func awsRestjson1_deserializeDocumentInstanceSummary(v **types.InstanceSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2191,22 +3479,54 @@ func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDenie return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.AccessDeniedException + var sv *types.InstanceSummary if *v == nil { - sv = &types.AccessDeniedException{} + sv = &types.InstanceSummary{} } else { sv = *v } for key, value := range shape { switch key { - case "message", "Message": + case "InstanceId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.InstanceId = ptr.String(jtv) + } + + case "LastStatusCheckDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.LastStatusCheckDate = ptr.String(jtv) + } + + case "Products": + if err := awsRestjson1_deserializeDocumentStringList(&sv.Products, value); err != nil { + return err + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Status = ptr.String(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) } default: @@ -2218,7 +3538,7 @@ func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDenie return nil } -func awsRestjson1_deserializeDocumentActiveDirectoryIdentityProvider(v **types.ActiveDirectoryIdentityProvider, value interface{}) error { +func awsRestjson1_deserializeDocumentInstanceSummaryList(v *[]types.InstanceSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2226,39 +3546,33 @@ func awsRestjson1_deserializeDocumentActiveDirectoryIdentityProvider(v **types.A return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ActiveDirectoryIdentityProvider + var cv []types.InstanceSummary if *v == nil { - sv = &types.ActiveDirectoryIdentityProvider{} + cv = []types.InstanceSummary{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "DirectoryId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.DirectoryId = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.InstanceSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentInstanceSummary(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } -func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { +func awsRestjson1_deserializeDocumentInstanceUserSummary(v **types.InstanceUserSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2271,22 +3585,90 @@ func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictExcepti return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ConflictException + var sv *types.InstanceUserSummary if *v == nil { - sv = &types.ConflictException{} + sv = &types.InstanceUserSummary{} } else { sv = *v } for key, value := range shape { switch key { - case "message", "Message": + case "AssociationDate": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.AssociationDate = ptr.String(jtv) + } + + case "DisassociationDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.DisassociationDate = ptr.String(jtv) + } + + case "Domain": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Domain = ptr.String(jtv) + } + + case "IdentityProvider": + if err := awsRestjson1_deserializeDocumentIdentityProvider(&sv.IdentityProvider, value); err != nil { + return err + } + + case "InstanceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.InstanceId = ptr.String(jtv) + } + + case "InstanceUserArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.InstanceUserArn = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Status = ptr.String(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 "Username": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Username = ptr.String(jtv) } default: @@ -2298,7 +3680,7 @@ func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictExcepti return nil } -func awsRestjson1_deserializeDocumentIdentityProvider(v *types.IdentityProvider, value interface{}) error { +func awsRestjson1_deserializeDocumentInstanceUserSummaryList(v *[]types.InstanceUserSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2306,39 +3688,33 @@ func awsRestjson1_deserializeDocumentIdentityProvider(v *types.IdentityProvider, return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var uv types.IdentityProvider -loop: - for key, value := range shape { - if value == nil { - continue - } - switch key { - case "ActiveDirectoryIdentityProvider": - var mv types.ActiveDirectoryIdentityProvider - destAddr := &mv - if err := awsRestjson1_deserializeDocumentActiveDirectoryIdentityProvider(&destAddr, value); err != nil { - return err - } - mv = *destAddr - uv = &types.IdentityProviderMemberActiveDirectoryIdentityProvider{Value: mv} - break loop - - default: - uv = &types.UnknownUnionMember{Tag: key} - break loop + var cv []types.InstanceUserSummary + if *v == nil { + cv = []types.InstanceUserSummary{} + } else { + cv = *v + } + for _, value := range shape { + var col types.InstanceUserSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentInstanceUserSummary(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = uv + *v = cv return nil } -func awsRestjson1_deserializeDocumentIdentityProviderSummary(v **types.IdentityProviderSummary, value interface{}) error { +func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2351,50 +3727,22 @@ func awsRestjson1_deserializeDocumentIdentityProviderSummary(v **types.IdentityP return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.IdentityProviderSummary + var sv *types.InternalServerException if *v == nil { - sv = &types.IdentityProviderSummary{} + sv = &types.InternalServerException{} } else { sv = *v } for key, value := range shape { - switch key { - case "FailureMessage": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.FailureMessage = ptr.String(jtv) - } - - case "IdentityProvider": - if err := awsRestjson1_deserializeDocumentIdentityProvider(&sv.IdentityProvider, value); err != nil { - return err - } - - case "Product": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.Product = ptr.String(jtv) - } - - case "Settings": - if err := awsRestjson1_deserializeDocumentSettings(&sv.Settings, value); err != nil { - return err - } - - case "Status": + switch key { + case "message", "Message": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.Message = ptr.String(jtv) } default: @@ -2406,7 +3754,7 @@ func awsRestjson1_deserializeDocumentIdentityProviderSummary(v **types.IdentityP return nil } -func awsRestjson1_deserializeDocumentIdentityProviderSummaryList(v *[]types.IdentityProviderSummary, value interface{}) error { +func awsRestjson1_deserializeDocumentIpV4List(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2419,20 +3767,22 @@ func awsRestjson1_deserializeDocumentIdentityProviderSummaryList(v *[]types.Iden return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.IdentityProviderSummary + var cv []string if *v == nil { - cv = []types.IdentityProviderSummary{} + cv = []string{} } else { cv = *v } for _, value := range shape { - var col types.IdentityProviderSummary - destAddr := &col - if err := awsRestjson1_deserializeDocumentIdentityProviderSummary(&destAddr, value); err != nil { - return err + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IpV4 to be of type string, got %T instead", value) + } + col = jtv } - col = *destAddr cv = append(cv, col) } @@ -2440,7 +3790,7 @@ func awsRestjson1_deserializeDocumentIdentityProviderSummaryList(v *[]types.Iden return nil } -func awsRestjson1_deserializeDocumentInstanceSummary(v **types.InstanceSummary, value interface{}) error { +func awsRestjson1_deserializeDocumentLicenseServer(v **types.LicenseServer, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2453,54 +3803,40 @@ func awsRestjson1_deserializeDocumentInstanceSummary(v **types.InstanceSummary, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InstanceSummary + var sv *types.LicenseServer if *v == nil { - sv = &types.InstanceSummary{} + sv = &types.LicenseServer{} } else { sv = *v } for key, value := range shape { switch key { - case "InstanceId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.InstanceId = ptr.String(jtv) - } - - case "LastStatusCheckDate": + case "HealthStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected LicenseServerHealthStatus to be of type string, got %T instead", value) } - sv.LastStatusCheckDate = ptr.String(jtv) - } - - case "Products": - if err := awsRestjson1_deserializeDocumentStringList(&sv.Products, value); err != nil { - return err + sv.HealthStatus = types.LicenseServerHealthStatus(jtv) } - case "Status": + case "Ipv4Address": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.Ipv4Address = ptr.String(jtv) } - case "StatusMessage": + case "ProvisioningStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected LicenseServerEndpointProvisioningStatus to be of type string, got %T instead", value) } - sv.StatusMessage = ptr.String(jtv) + sv.ProvisioningStatus = types.LicenseServerEndpointProvisioningStatus(jtv) } default: @@ -2512,41 +3848,7 @@ func awsRestjson1_deserializeDocumentInstanceSummary(v **types.InstanceSummary, return nil } -func awsRestjson1_deserializeDocumentInstanceSummaryList(v *[]types.InstanceSummary, 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.InstanceSummary - if *v == nil { - cv = []types.InstanceSummary{} - } else { - cv = *v - } - - for _, value := range shape { - var col types.InstanceSummary - destAddr := &col - if err := awsRestjson1_deserializeDocumentInstanceSummary(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) - - } - *v = cv - return nil -} - -func awsRestjson1_deserializeDocumentInstanceUserSummary(v **types.InstanceUserSummary, value interface{}) error { +func awsRestjson1_deserializeDocumentLicenseServerEndpoint(v **types.LicenseServerEndpoint, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2559,81 +3861,93 @@ func awsRestjson1_deserializeDocumentInstanceUserSummary(v **types.InstanceUserS return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InstanceUserSummary + var sv *types.LicenseServerEndpoint if *v == nil { - sv = &types.InstanceUserSummary{} + sv = &types.LicenseServerEndpoint{} } else { sv = *v } for key, value := range shape { switch key { - case "AssociationDate": + case "CreationTime": if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + } - sv.AssociationDate = ptr.String(jtv) } - case "DisassociationDate": + case "IdentityProviderArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.DisassociationDate = ptr.String(jtv) + sv.IdentityProviderArn = ptr.String(jtv) } - case "Domain": + case "LicenseServerEndpointArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.Domain = ptr.String(jtv) - } - - case "IdentityProvider": - if err := awsRestjson1_deserializeDocumentIdentityProvider(&sv.IdentityProvider, value); err != nil { - return err + sv.LicenseServerEndpointArn = ptr.String(jtv) } - case "InstanceId": + case "LicenseServerEndpointId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected LicenseServerEndpointId to be of type string, got %T instead", value) } - sv.InstanceId = ptr.String(jtv) + sv.LicenseServerEndpointId = ptr.String(jtv) } - case "Status": + case "LicenseServerEndpointProvisioningStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected LicenseServerEndpointProvisioningStatus to be of type string, got %T instead", value) } - sv.Status = ptr.String(jtv) + sv.LicenseServerEndpointProvisioningStatus = types.LicenseServerEndpointProvisioningStatus(jtv) } - case "StatusMessage": + case "LicenseServers": + if err := awsRestjson1_deserializeDocumentLicenseServerList(&sv.LicenseServers, value); err != nil { + return err + } + + case "ServerEndpoint": + if err := awsRestjson1_deserializeDocumentServerEndpoint(&sv.ServerEndpoint, value); err != nil { + return err + } + + case "ServerType": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected ServerType to be of type string, got %T instead", value) } - sv.StatusMessage = ptr.String(jtv) + sv.ServerType = types.ServerType(jtv) } - case "Username": + 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.Username = ptr.String(jtv) + sv.StatusMessage = ptr.String(jtv) } default: @@ -2645,7 +3959,7 @@ func awsRestjson1_deserializeDocumentInstanceUserSummary(v **types.InstanceUserS return nil } -func awsRestjson1_deserializeDocumentInstanceUserSummaryList(v *[]types.InstanceUserSummary, value interface{}) error { +func awsRestjson1_deserializeDocumentLicenseServerEndpointList(v *[]types.LicenseServerEndpoint, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2658,17 +3972,17 @@ func awsRestjson1_deserializeDocumentInstanceUserSummaryList(v *[]types.Instance return fmt.Errorf("unexpected JSON type %v", value) } - var cv []types.InstanceUserSummary + var cv []types.LicenseServerEndpoint if *v == nil { - cv = []types.InstanceUserSummary{} + cv = []types.LicenseServerEndpoint{} } else { cv = *v } for _, value := range shape { - var col types.InstanceUserSummary + var col types.LicenseServerEndpoint destAddr := &col - if err := awsRestjson1_deserializeDocumentInstanceUserSummary(&destAddr, value); err != nil { + if err := awsRestjson1_deserializeDocumentLicenseServerEndpoint(&destAddr, value); err != nil { return err } col = *destAddr @@ -2679,7 +3993,7 @@ func awsRestjson1_deserializeDocumentInstanceUserSummaryList(v *[]types.Instance return nil } -func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { +func awsRestjson1_deserializeDocumentLicenseServerList(v *[]types.LicenseServer, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2687,35 +4001,29 @@ func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalS return nil } - shape, ok := value.(map[string]interface{}) + shape, ok := value.([]interface{}) if !ok { return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.InternalServerException + var cv []types.LicenseServer if *v == nil { - sv = &types.InternalServerException{} + cv = []types.LicenseServer{} } else { - sv = *v + cv = *v } - for key, value := range shape { - switch key { - case "message", "Message": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.Message = ptr.String(jtv) - } - - default: - _, _ = key, value - + for _, value := range shape { + var col types.LicenseServer + destAddr := &col + if err := awsRestjson1_deserializeDocumentLicenseServer(&destAddr, value); err != nil { + return err } + col = *destAddr + cv = append(cv, col) + } - *v = sv + *v = cv return nil } @@ -2764,6 +4072,15 @@ func awsRestjson1_deserializeDocumentProductUserSummary(v **types.ProductUserSum sv.Product = ptr.String(jtv) } + case "ProductUserArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.ProductUserArn = ptr.String(jtv) + } + case "Status": if value != nil { jtv, ok := value.(string) @@ -2892,6 +4209,86 @@ func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.Resourc return nil } +func awsRestjson1_deserializeDocumentSecretsManagerCredentialsProvider(v **types.SecretsManagerCredentialsProvider, 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.SecretsManagerCredentialsProvider + if *v == nil { + sv = &types.SecretsManagerCredentialsProvider{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "SecretId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.SecretId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentServerEndpoint(v **types.ServerEndpoint, 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.ServerEndpoint + if *v == nil { + sv = &types.ServerEndpoint{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Endpoint": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Endpoint = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentServiceQuotaExceededException(v **types.ServiceQuotaExceededException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -3049,6 +4446,42 @@ func awsRestjson1_deserializeDocumentSubnets(v *[]string, value interface{}) err return nil } +func awsRestjson1_deserializeDocumentTags(v *map[string]string, 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 mv map[string]string + if *v == nil { + mv = map[string]string{} + } else { + mv = *v + } + + for key, value := range shape { + var parsedVal string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsRestjson1_deserializeDocumentThrottlingException(v **types.ThrottlingException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/licensemanagerusersubscriptions/endpoints.go b/service/licensemanagerusersubscriptions/endpoints.go index e84a74fa67c..e7b6a02ffc7 100644 --- a/service/licensemanagerusersubscriptions/endpoints.go +++ b/service/licensemanagerusersubscriptions/endpoints.go @@ -385,7 +385,7 @@ func (r *resolver) ResolveEndpoint( } } if _UseFIPS == true { - if true == _PartitionResult.SupportsFIPS { + if _PartitionResult.SupportsFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://license-manager-user-subscriptions-fips.") diff --git a/service/licensemanagerusersubscriptions/generated.json b/service/licensemanagerusersubscriptions/generated.json index b2ea6dae67e..4b39b45d40a 100644 --- a/service/licensemanagerusersubscriptions/generated.json +++ b/service/licensemanagerusersubscriptions/generated.json @@ -9,15 +9,21 @@ "api_client.go", "api_client_test.go", "api_op_AssociateUser.go", + "api_op_CreateLicenseServerEndpoint.go", + "api_op_DeleteLicenseServerEndpoint.go", "api_op_DeregisterIdentityProvider.go", "api_op_DisassociateUser.go", "api_op_ListIdentityProviders.go", "api_op_ListInstances.go", + "api_op_ListLicenseServerEndpoints.go", "api_op_ListProductSubscriptions.go", + "api_op_ListTagsForResource.go", "api_op_ListUserAssociations.go", "api_op_RegisterIdentityProvider.go", "api_op_StartProductSubscription.go", "api_op_StopProductSubscription.go", + "api_op_TagResource.go", + "api_op_UntagResource.go", "api_op_UpdateIdentityProviderSettings.go", "auth.go", "deserializers.go", @@ -32,6 +38,7 @@ "protocol_test.go", "serializers.go", "snapshot_test.go", + "types/enums.go", "types/errors.go", "types/types.go", "types/types_exported_test.go", diff --git a/service/licensemanagerusersubscriptions/serializers.go b/service/licensemanagerusersubscriptions/serializers.go index b721eeecbc0..5d910eddf6a 100644 --- a/service/licensemanagerusersubscriptions/serializers.go +++ b/service/licensemanagerusersubscriptions/serializers.go @@ -105,6 +105,13 @@ func awsRestjson1_serializeOpDocumentAssociateUserInput(v *AssociateUserInput, v ok.String(*v.InstanceId) } + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTags(v.Tags, ok); err != nil { + return err + } + } + if v.Username != nil { ok := object.Key("Username") ok.String(*v.Username) @@ -113,14 +120,14 @@ func awsRestjson1_serializeOpDocumentAssociateUserInput(v *AssociateUserInput, v return nil } -type awsRestjson1_serializeOpDeregisterIdentityProvider struct { +type awsRestjson1_serializeOpCreateLicenseServerEndpoint struct { } -func (*awsRestjson1_serializeOpDeregisterIdentityProvider) ID() string { +func (*awsRestjson1_serializeOpCreateLicenseServerEndpoint) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDeregisterIdentityProvider) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpCreateLicenseServerEndpoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -132,13 +139,13 @@ func (m *awsRestjson1_serializeOpDeregisterIdentityProvider) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DeregisterIdentityProviderInput) + input, ok := in.Parameters.(*CreateLicenseServerEndpointInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/identity-provider/DeregisterIdentityProvider") + opPath, opQuery := httpbinding.SplitURI("/license-server/CreateLicenseServerEndpoint") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -157,7 +164,7 @@ func (m *awsRestjson1_serializeOpDeregisterIdentityProvider) HandleSerialize(ctx restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentDeregisterIdentityProviderInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentCreateLicenseServerEndpointInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -174,7 +181,7 @@ func (m *awsRestjson1_serializeOpDeregisterIdentityProvider) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDeregisterIdentityProviderInput(v *DeregisterIdentityProviderInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsCreateLicenseServerEndpointInput(v *CreateLicenseServerEndpointInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -182,33 +189,40 @@ func awsRestjson1_serializeOpHttpBindingsDeregisterIdentityProviderInput(v *Dere return nil } -func awsRestjson1_serializeOpDocumentDeregisterIdentityProviderInput(v *DeregisterIdentityProviderInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentCreateLicenseServerEndpointInput(v *CreateLicenseServerEndpointInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.IdentityProvider != nil { - ok := object.Key("IdentityProvider") - if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { + if v.IdentityProviderArn != nil { + ok := object.Key("IdentityProviderArn") + ok.String(*v.IdentityProviderArn) + } + + if v.LicenseServerSettings != nil { + ok := object.Key("LicenseServerSettings") + if err := awsRestjson1_serializeDocumentLicenseServerSettings(v.LicenseServerSettings, ok); err != nil { return err } } - if v.Product != nil { - ok := object.Key("Product") - ok.String(*v.Product) + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTags(v.Tags, ok); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpDisassociateUser struct { +type awsRestjson1_serializeOpDeleteLicenseServerEndpoint struct { } -func (*awsRestjson1_serializeOpDisassociateUser) ID() string { +func (*awsRestjson1_serializeOpDeleteLicenseServerEndpoint) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDisassociateUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDeleteLicenseServerEndpoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -220,13 +234,13 @@ func (m *awsRestjson1_serializeOpDisassociateUser) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DisassociateUserInput) + input, ok := in.Parameters.(*DeleteLicenseServerEndpointInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/user/DisassociateUser") + opPath, opQuery := httpbinding.SplitURI("/license-server/DeleteLicenseServerEndpoint") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -245,7 +259,7 @@ func (m *awsRestjson1_serializeOpDisassociateUser) HandleSerialize(ctx context.C restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentDisassociateUserInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentDeleteLicenseServerEndpointInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -262,7 +276,7 @@ func (m *awsRestjson1_serializeOpDisassociateUser) HandleSerialize(ctx context.C span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDisassociateUserInput(v *DisassociateUserInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDeleteLicenseServerEndpointInput(v *DeleteLicenseServerEndpointInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -270,43 +284,31 @@ func awsRestjson1_serializeOpHttpBindingsDisassociateUserInput(v *DisassociateUs return nil } -func awsRestjson1_serializeOpDocumentDisassociateUserInput(v *DisassociateUserInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentDeleteLicenseServerEndpointInput(v *DeleteLicenseServerEndpointInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Domain != nil { - ok := object.Key("Domain") - ok.String(*v.Domain) - } - - if v.IdentityProvider != nil { - ok := object.Key("IdentityProvider") - if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { - return err - } - } - - if v.InstanceId != nil { - ok := object.Key("InstanceId") - ok.String(*v.InstanceId) + if v.LicenseServerEndpointArn != nil { + ok := object.Key("LicenseServerEndpointArn") + ok.String(*v.LicenseServerEndpointArn) } - if v.Username != nil { - ok := object.Key("Username") - ok.String(*v.Username) + if len(v.ServerType) > 0 { + ok := object.Key("ServerType") + ok.String(string(v.ServerType)) } return nil } -type awsRestjson1_serializeOpListIdentityProviders struct { +type awsRestjson1_serializeOpDeregisterIdentityProvider struct { } -func (*awsRestjson1_serializeOpListIdentityProviders) ID() string { +func (*awsRestjson1_serializeOpDeregisterIdentityProvider) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListIdentityProviders) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDeregisterIdentityProvider) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -318,13 +320,13 @@ func (m *awsRestjson1_serializeOpListIdentityProviders) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListIdentityProvidersInput) + input, ok := in.Parameters.(*DeregisterIdentityProviderInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/identity-provider/ListIdentityProviders") + opPath, opQuery := httpbinding.SplitURI("/identity-provider/DeregisterIdentityProvider") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -343,7 +345,7 @@ func (m *awsRestjson1_serializeOpListIdentityProviders) HandleSerialize(ctx cont restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentListIdentityProvidersInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentDeregisterIdentityProviderInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -360,7 +362,7 @@ func (m *awsRestjson1_serializeOpListIdentityProviders) HandleSerialize(ctx cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListIdentityProvidersInput(v *ListIdentityProvidersInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDeregisterIdentityProviderInput(v *DeregisterIdentityProviderInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -368,31 +370,38 @@ func awsRestjson1_serializeOpHttpBindingsListIdentityProvidersInput(v *ListIdent return nil } -func awsRestjson1_serializeOpDocumentListIdentityProvidersInput(v *ListIdentityProvidersInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentDeregisterIdentityProviderInput(v *DeregisterIdentityProviderInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.MaxResults != nil { - ok := object.Key("MaxResults") - ok.Integer(*v.MaxResults) + if v.IdentityProvider != nil { + ok := object.Key("IdentityProvider") + if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { + return err + } } - if v.NextToken != nil { - ok := object.Key("NextToken") - ok.String(*v.NextToken) + if v.IdentityProviderArn != nil { + ok := object.Key("IdentityProviderArn") + ok.String(*v.IdentityProviderArn) + } + + if v.Product != nil { + ok := object.Key("Product") + ok.String(*v.Product) } return nil } -type awsRestjson1_serializeOpListInstances struct { +type awsRestjson1_serializeOpDisassociateUser struct { } -func (*awsRestjson1_serializeOpListInstances) ID() string { +func (*awsRestjson1_serializeOpDisassociateUser) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListInstances) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDisassociateUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -404,13 +413,13 @@ func (m *awsRestjson1_serializeOpListInstances) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListInstancesInput) + input, ok := in.Parameters.(*DisassociateUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/instance/ListInstances") + opPath, opQuery := httpbinding.SplitURI("/user/DisassociateUser") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -429,7 +438,7 @@ func (m *awsRestjson1_serializeOpListInstances) HandleSerialize(ctx context.Cont restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentListInstancesInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentDisassociateUserInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -446,7 +455,7 @@ func (m *awsRestjson1_serializeOpListInstances) HandleSerialize(ctx context.Cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListInstancesInput(v *ListInstancesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDisassociateUserInput(v *DisassociateUserInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -454,38 +463,48 @@ func awsRestjson1_serializeOpHttpBindingsListInstancesInput(v *ListInstancesInpu return nil } -func awsRestjson1_serializeOpDocumentListInstancesInput(v *ListInstancesInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentDisassociateUserInput(v *DisassociateUserInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Filters != nil { - ok := object.Key("Filters") - if err := awsRestjson1_serializeDocumentFilterList(v.Filters, ok); err != nil { + if v.Domain != nil { + ok := object.Key("Domain") + ok.String(*v.Domain) + } + + if v.IdentityProvider != nil { + ok := object.Key("IdentityProvider") + if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { return err } } - if v.MaxResults != nil { - ok := object.Key("MaxResults") - ok.Integer(*v.MaxResults) + if v.InstanceId != nil { + ok := object.Key("InstanceId") + ok.String(*v.InstanceId) } - if v.NextToken != nil { - ok := object.Key("NextToken") - ok.String(*v.NextToken) + if v.InstanceUserArn != nil { + ok := object.Key("InstanceUserArn") + ok.String(*v.InstanceUserArn) + } + + if v.Username != nil { + ok := object.Key("Username") + ok.String(*v.Username) } return nil } -type awsRestjson1_serializeOpListProductSubscriptions struct { +type awsRestjson1_serializeOpListIdentityProviders struct { } -func (*awsRestjson1_serializeOpListProductSubscriptions) ID() string { +func (*awsRestjson1_serializeOpListIdentityProviders) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListProductSubscriptions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListIdentityProviders) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -497,13 +516,13 @@ func (m *awsRestjson1_serializeOpListProductSubscriptions) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListProductSubscriptionsInput) + input, ok := in.Parameters.(*ListIdentityProvidersInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/user/ListProductSubscriptions") + opPath, opQuery := httpbinding.SplitURI("/identity-provider/ListIdentityProviders") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -522,7 +541,7 @@ func (m *awsRestjson1_serializeOpListProductSubscriptions) HandleSerialize(ctx c restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentListProductSubscriptionsInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentListIdentityProvidersInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -539,7 +558,7 @@ func (m *awsRestjson1_serializeOpListProductSubscriptions) HandleSerialize(ctx c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListProductSubscriptionsInput(v *ListProductSubscriptionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListIdentityProvidersInput(v *ListIdentityProvidersInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -547,7 +566,7 @@ func awsRestjson1_serializeOpHttpBindingsListProductSubscriptionsInput(v *ListPr return nil } -func awsRestjson1_serializeOpDocumentListProductSubscriptionsInput(v *ListProductSubscriptionsInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentListIdentityProvidersInput(v *ListIdentityProvidersInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -558,13 +577,6 @@ func awsRestjson1_serializeOpDocumentListProductSubscriptionsInput(v *ListProduc } } - if v.IdentityProvider != nil { - ok := object.Key("IdentityProvider") - if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { - return err - } - } - if v.MaxResults != nil { ok := object.Key("MaxResults") ok.Integer(*v.MaxResults) @@ -575,22 +587,17 @@ func awsRestjson1_serializeOpDocumentListProductSubscriptionsInput(v *ListProduc ok.String(*v.NextToken) } - if v.Product != nil { - ok := object.Key("Product") - ok.String(*v.Product) - } - return nil } -type awsRestjson1_serializeOpListUserAssociations struct { +type awsRestjson1_serializeOpListInstances struct { } -func (*awsRestjson1_serializeOpListUserAssociations) ID() string { +func (*awsRestjson1_serializeOpListInstances) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListUserAssociations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListInstances) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -602,13 +609,13 @@ func (m *awsRestjson1_serializeOpListUserAssociations) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListUserAssociationsInput) + input, ok := in.Parameters.(*ListInstancesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/user/ListUserAssociations") + opPath, opQuery := httpbinding.SplitURI("/instance/ListInstances") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -627,7 +634,7 @@ func (m *awsRestjson1_serializeOpListUserAssociations) HandleSerialize(ctx conte restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentListUserAssociationsInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentListInstancesInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -644,7 +651,7 @@ func (m *awsRestjson1_serializeOpListUserAssociations) HandleSerialize(ctx conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListUserAssociationsInput(v *ListUserAssociationsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListInstancesInput(v *ListInstancesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -652,7 +659,7 @@ func awsRestjson1_serializeOpHttpBindingsListUserAssociationsInput(v *ListUserAs return nil } -func awsRestjson1_serializeOpDocumentListUserAssociationsInput(v *ListUserAssociationsInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentListInstancesInput(v *ListInstancesInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -663,18 +670,6 @@ func awsRestjson1_serializeOpDocumentListUserAssociationsInput(v *ListUserAssoci } } - if v.IdentityProvider != nil { - ok := object.Key("IdentityProvider") - if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { - return err - } - } - - if v.InstanceId != nil { - ok := object.Key("InstanceId") - ok.String(*v.InstanceId) - } - if v.MaxResults != nil { ok := object.Key("MaxResults") ok.Integer(*v.MaxResults) @@ -688,14 +683,14 @@ func awsRestjson1_serializeOpDocumentListUserAssociationsInput(v *ListUserAssoci return nil } -type awsRestjson1_serializeOpRegisterIdentityProvider struct { +type awsRestjson1_serializeOpListLicenseServerEndpoints struct { } -func (*awsRestjson1_serializeOpRegisterIdentityProvider) ID() string { +func (*awsRestjson1_serializeOpListLicenseServerEndpoints) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpRegisterIdentityProvider) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListLicenseServerEndpoints) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -707,13 +702,13 @@ func (m *awsRestjson1_serializeOpRegisterIdentityProvider) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*RegisterIdentityProviderInput) + input, ok := in.Parameters.(*ListLicenseServerEndpointsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/identity-provider/RegisterIdentityProvider") + opPath, opQuery := httpbinding.SplitURI("/license-server/ListLicenseServerEndpoints") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -732,7 +727,7 @@ func (m *awsRestjson1_serializeOpRegisterIdentityProvider) HandleSerialize(ctx c restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentRegisterIdentityProviderInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentListLicenseServerEndpointsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -749,7 +744,7 @@ func (m *awsRestjson1_serializeOpRegisterIdentityProvider) HandleSerialize(ctx c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsRegisterIdentityProviderInput(v *RegisterIdentityProviderInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListLicenseServerEndpointsInput(v *ListLicenseServerEndpointsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -757,40 +752,38 @@ func awsRestjson1_serializeOpHttpBindingsRegisterIdentityProviderInput(v *Regist return nil } -func awsRestjson1_serializeOpDocumentRegisterIdentityProviderInput(v *RegisterIdentityProviderInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentListLicenseServerEndpointsInput(v *ListLicenseServerEndpointsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.IdentityProvider != nil { - ok := object.Key("IdentityProvider") - if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentFilterList(v.Filters, ok); err != nil { return err } } - if v.Product != nil { - ok := object.Key("Product") - ok.String(*v.Product) + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) } - if v.Settings != nil { - ok := object.Key("Settings") - if err := awsRestjson1_serializeDocumentSettings(v.Settings, ok); err != nil { - return err - } + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) } return nil } -type awsRestjson1_serializeOpStartProductSubscription struct { +type awsRestjson1_serializeOpListProductSubscriptions struct { } -func (*awsRestjson1_serializeOpStartProductSubscription) ID() string { +func (*awsRestjson1_serializeOpListProductSubscriptions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpStartProductSubscription) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListProductSubscriptions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -802,13 +795,13 @@ func (m *awsRestjson1_serializeOpStartProductSubscription) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StartProductSubscriptionInput) + input, ok := in.Parameters.(*ListProductSubscriptionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/user/StartProductSubscription") + opPath, opQuery := httpbinding.SplitURI("/user/ListProductSubscriptions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -827,7 +820,7 @@ func (m *awsRestjson1_serializeOpStartProductSubscription) HandleSerialize(ctx c restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentStartProductSubscriptionInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentListProductSubscriptionsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -844,7 +837,7 @@ func (m *awsRestjson1_serializeOpStartProductSubscription) HandleSerialize(ctx c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsStartProductSubscriptionInput(v *StartProductSubscriptionInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListProductSubscriptionsInput(v *ListProductSubscriptionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -852,13 +845,15 @@ func awsRestjson1_serializeOpHttpBindingsStartProductSubscriptionInput(v *StartP return nil } -func awsRestjson1_serializeOpDocumentStartProductSubscriptionInput(v *StartProductSubscriptionInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentListProductSubscriptionsInput(v *ListProductSubscriptionsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Domain != nil { - ok := object.Key("Domain") - ok.String(*v.Domain) + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentFilterList(v.Filters, ok); err != nil { + return err + } } if v.IdentityProvider != nil { @@ -868,27 +863,32 @@ func awsRestjson1_serializeOpDocumentStartProductSubscriptionInput(v *StartProdu } } + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + if v.Product != nil { ok := object.Key("Product") ok.String(*v.Product) } - if v.Username != nil { - ok := object.Key("Username") - ok.String(*v.Username) - } - return nil } -type awsRestjson1_serializeOpStopProductSubscription struct { +type awsRestjson1_serializeOpListTagsForResource struct { } -func (*awsRestjson1_serializeOpStopProductSubscription) ID() string { +func (*awsRestjson1_serializeOpListTagsForResource) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpStopProductSubscription) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -900,16 +900,16 @@ func (m *awsRestjson1_serializeOpStopProductSubscription) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StopProductSubscriptionInput) + input, ok := in.Parameters.(*ListTagsForResourceInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/user/StopProductSubscription") + opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -922,14 +922,504 @@ func (m *awsRestjson1_serializeOpStopProductSubscription) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: err} } - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentStopProductSubscriptionInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(v *ListTagsForResourceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + } + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpListUserAssociations struct { +} + +func (*awsRestjson1_serializeOpListUserAssociations) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListUserAssociations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListUserAssociationsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/user/ListUserAssociations") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentListUserAssociationsInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsListUserAssociationsInput(v *ListUserAssociationsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentListUserAssociationsInput(v *ListUserAssociationsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentFilterList(v.Filters, ok); err != nil { + return err + } + } + + if v.IdentityProvider != nil { + ok := object.Key("IdentityProvider") + if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { + return err + } + } + + if v.InstanceId != nil { + ok := object.Key("InstanceId") + ok.String(*v.InstanceId) + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + return nil +} + +type awsRestjson1_serializeOpRegisterIdentityProvider struct { +} + +func (*awsRestjson1_serializeOpRegisterIdentityProvider) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpRegisterIdentityProvider) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*RegisterIdentityProviderInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/identity-provider/RegisterIdentityProvider") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentRegisterIdentityProviderInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsRegisterIdentityProviderInput(v *RegisterIdentityProviderInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentRegisterIdentityProviderInput(v *RegisterIdentityProviderInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.IdentityProvider != nil { + ok := object.Key("IdentityProvider") + if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { + return err + } + } + + if v.Product != nil { + ok := object.Key("Product") + ok.String(*v.Product) + } + + if v.Settings != nil { + ok := object.Key("Settings") + if err := awsRestjson1_serializeDocumentSettings(v.Settings, ok); err != nil { + return err + } + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTags(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpStartProductSubscription struct { +} + +func (*awsRestjson1_serializeOpStartProductSubscription) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpStartProductSubscription) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*StartProductSubscriptionInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/user/StartProductSubscription") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentStartProductSubscriptionInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsStartProductSubscriptionInput(v *StartProductSubscriptionInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentStartProductSubscriptionInput(v *StartProductSubscriptionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Domain != nil { + ok := object.Key("Domain") + ok.String(*v.Domain) + } + + if v.IdentityProvider != nil { + ok := object.Key("IdentityProvider") + if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { + return err + } + } + + if v.Product != nil { + ok := object.Key("Product") + ok.String(*v.Product) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTags(v.Tags, ok); err != nil { + return err + } + } + + if v.Username != nil { + ok := object.Key("Username") + ok.String(*v.Username) + } + + return nil +} + +type awsRestjson1_serializeOpStopProductSubscription struct { +} + +func (*awsRestjson1_serializeOpStopProductSubscription) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpStopProductSubscription) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*StopProductSubscriptionInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/user/StopProductSubscription") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentStopProductSubscriptionInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsStopProductSubscriptionInput(v *StopProductSubscriptionInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentStopProductSubscriptionInput(v *StopProductSubscriptionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Domain != nil { + ok := object.Key("Domain") + ok.String(*v.Domain) + } + + if v.IdentityProvider != nil { + ok := object.Key("IdentityProvider") + if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { + return err + } + } + + if v.Product != nil { + ok := object.Key("Product") + ok.String(*v.Product) + } + + if v.ProductUserArn != nil { + ok := object.Key("ProductUserArn") + ok.String(*v.ProductUserArn) + } + + if v.Username != nil { + ok := object.Key("Username") + ok.String(*v.Username) + } + + return nil +} + +type awsRestjson1_serializeOpTagResource struct { +} + +func (*awsRestjson1_serializeOpTagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*TagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsTagResourceInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentTagResourceInput(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} } @@ -942,38 +1432,109 @@ func (m *awsRestjson1_serializeOpStopProductSubscription) HandleSerialize(ctx co span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsStopProductSubscriptionInput(v *StopProductSubscriptionInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsTagResourceInput(v *TagResourceInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + } + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + return err + } + } + return nil } -func awsRestjson1_serializeOpDocumentStopProductSubscriptionInput(v *StopProductSubscriptionInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Domain != nil { - ok := object.Key("Domain") - ok.String(*v.Domain) - } - - if v.IdentityProvider != nil { - ok := object.Key("IdentityProvider") - if err := awsRestjson1_serializeDocumentIdentityProvider(v.IdentityProvider, ok); err != nil { + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTags(v.Tags, ok); err != nil { return err } } - if v.Product != nil { - ok := object.Key("Product") - ok.String(*v.Product) + return nil +} + +type awsRestjson1_serializeOpUntagResource struct { +} + +func (*awsRestjson1_serializeOpUntagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - if v.Username != nil { - ok := object.Key("Username") - ok.String(*v.Username) + input, ok := in.Parameters.(*UntagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/tags/{ResourceArn}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUntagResourceInput(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 + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUntagResourceInput(v *UntagResourceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + } + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + return err + } + } + + if v.TagKeys != nil { + for i := range v.TagKeys { + encoder.AddQuery("tagKeys").String(v.TagKeys[i]) + } } return nil @@ -1059,6 +1620,11 @@ func awsRestjson1_serializeOpDocumentUpdateIdentityProviderSettingsInput(v *Upda } } + if v.IdentityProviderArn != nil { + ok := object.Key("IdentityProviderArn") + ok.String(*v.IdentityProviderArn) + } + if v.Product != nil { ok := object.Key("Product") ok.String(*v.Product) @@ -1078,6 +1644,18 @@ func awsRestjson1_serializeDocumentActiveDirectoryIdentityProvider(v *types.Acti object := value.Object() defer object.Close() + if v.ActiveDirectorySettings != nil { + ok := object.Key("ActiveDirectorySettings") + if err := awsRestjson1_serializeDocumentActiveDirectorySettings(v.ActiveDirectorySettings, ok); err != nil { + return err + } + } + + if len(v.ActiveDirectoryType) > 0 { + ok := object.Key("ActiveDirectoryType") + ok.String(string(v.ActiveDirectoryType)) + } + if v.DirectoryId != nil { ok := object.Key("DirectoryId") ok.String(*v.DirectoryId) @@ -1086,6 +1664,71 @@ func awsRestjson1_serializeDocumentActiveDirectoryIdentityProvider(v *types.Acti return nil } +func awsRestjson1_serializeDocumentActiveDirectorySettings(v *types.ActiveDirectorySettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DomainCredentialsProvider != nil { + ok := object.Key("DomainCredentialsProvider") + if err := awsRestjson1_serializeDocumentCredentialsProvider(v.DomainCredentialsProvider, ok); err != nil { + return err + } + } + + if v.DomainIpv4List != nil { + ok := object.Key("DomainIpv4List") + if err := awsRestjson1_serializeDocumentIpV4List(v.DomainIpv4List, ok); err != nil { + return err + } + } + + if v.DomainName != nil { + ok := object.Key("DomainName") + ok.String(*v.DomainName) + } + + if v.DomainNetworkSettings != nil { + ok := object.Key("DomainNetworkSettings") + if err := awsRestjson1_serializeDocumentDomainNetworkSettings(v.DomainNetworkSettings, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentCredentialsProvider(v types.CredentialsProvider, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + switch uv := v.(type) { + case *types.CredentialsProviderMemberSecretsManagerCredentialsProvider: + av := object.Key("SecretsManagerCredentialsProvider") + if err := awsRestjson1_serializeDocumentSecretsManagerCredentialsProvider(&uv.Value, av); err != nil { + return err + } + + default: + return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) + + } + return nil +} + +func awsRestjson1_serializeDocumentDomainNetworkSettings(v *types.DomainNetworkSettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Subnets != nil { + ok := object.Key("Subnets") + if err := awsRestjson1_serializeDocumentSubnets(v.Subnets, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentFilter(v *types.Filter, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1139,6 +1782,80 @@ func awsRestjson1_serializeDocumentIdentityProvider(v types.IdentityProvider, va return nil } +func awsRestjson1_serializeDocumentIpV4List(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentLicenseServerSettings(v *types.LicenseServerSettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ServerSettings != nil { + ok := object.Key("ServerSettings") + if err := awsRestjson1_serializeDocumentServerSettings(v.ServerSettings, ok); err != nil { + return err + } + } + + if len(v.ServerType) > 0 { + ok := object.Key("ServerType") + ok.String(string(v.ServerType)) + } + + return nil +} + +func awsRestjson1_serializeDocumentRdsSalSettings(v *types.RdsSalSettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.RdsSalCredentialsProvider != nil { + ok := object.Key("RdsSalCredentialsProvider") + if err := awsRestjson1_serializeDocumentCredentialsProvider(v.RdsSalCredentialsProvider, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentSecretsManagerCredentialsProvider(v *types.SecretsManagerCredentialsProvider, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SecretId != nil { + ok := object.Key("SecretId") + ok.String(*v.SecretId) + } + + return nil +} + +func awsRestjson1_serializeDocumentServerSettings(v types.ServerSettings, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + switch uv := v.(type) { + case *types.ServerSettingsMemberRdsSalSettings: + av := object.Key("RdsSalSettings") + if err := awsRestjson1_serializeDocumentRdsSalSettings(&uv.Value, av); err != nil { + return err + } + + default: + return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) + + } + return nil +} + func awsRestjson1_serializeDocumentSettings(v *types.Settings, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1169,6 +1886,17 @@ func awsRestjson1_serializeDocumentSubnets(v []string, value smithyjson.Value) e return nil } +func awsRestjson1_serializeDocumentTags(v map[string]string, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + for key := range v { + om := object.Key(key) + om.String(v[key]) + } + return nil +} + func awsRestjson1_serializeDocumentUpdateSettings(v *types.UpdateSettings, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/licensemanagerusersubscriptions/snapshot/api_op_CreateLicenseServerEndpoint.go.snap b/service/licensemanagerusersubscriptions/snapshot/api_op_CreateLicenseServerEndpoint.go.snap new file mode 100644 index 00000000000..a9c64d0b953 --- /dev/null +++ b/service/licensemanagerusersubscriptions/snapshot/api_op_CreateLicenseServerEndpoint.go.snap @@ -0,0 +1,41 @@ +CreateLicenseServerEndpoint + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/licensemanagerusersubscriptions/snapshot/api_op_DeleteLicenseServerEndpoint.go.snap b/service/licensemanagerusersubscriptions/snapshot/api_op_DeleteLicenseServerEndpoint.go.snap new file mode 100644 index 00000000000..b4ff3a8f11d --- /dev/null +++ b/service/licensemanagerusersubscriptions/snapshot/api_op_DeleteLicenseServerEndpoint.go.snap @@ -0,0 +1,41 @@ +DeleteLicenseServerEndpoint + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/licensemanagerusersubscriptions/snapshot/api_op_ListLicenseServerEndpoints.go.snap b/service/licensemanagerusersubscriptions/snapshot/api_op_ListLicenseServerEndpoints.go.snap new file mode 100644 index 00000000000..7785a476fa7 --- /dev/null +++ b/service/licensemanagerusersubscriptions/snapshot/api_op_ListLicenseServerEndpoints.go.snap @@ -0,0 +1,40 @@ +ListLicenseServerEndpoints + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/licensemanagerusersubscriptions/snapshot/api_op_ListTagsForResource.go.snap b/service/licensemanagerusersubscriptions/snapshot/api_op_ListTagsForResource.go.snap new file mode 100644 index 00000000000..071d3ac4e96 --- /dev/null +++ b/service/licensemanagerusersubscriptions/snapshot/api_op_ListTagsForResource.go.snap @@ -0,0 +1,41 @@ +ListTagsForResource + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/licensemanagerusersubscriptions/snapshot/api_op_TagResource.go.snap b/service/licensemanagerusersubscriptions/snapshot/api_op_TagResource.go.snap new file mode 100644 index 00000000000..ae6f8e0846c --- /dev/null +++ b/service/licensemanagerusersubscriptions/snapshot/api_op_TagResource.go.snap @@ -0,0 +1,41 @@ +TagResource + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/licensemanagerusersubscriptions/snapshot/api_op_UntagResource.go.snap b/service/licensemanagerusersubscriptions/snapshot/api_op_UntagResource.go.snap new file mode 100644 index 00000000000..c7bbe038d98 --- /dev/null +++ b/service/licensemanagerusersubscriptions/snapshot/api_op_UntagResource.go.snap @@ -0,0 +1,41 @@ +UntagResource + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/licensemanagerusersubscriptions/snapshot_test.go b/service/licensemanagerusersubscriptions/snapshot_test.go index 7522e929552..577ce50ffa1 100644 --- a/service/licensemanagerusersubscriptions/snapshot_test.go +++ b/service/licensemanagerusersubscriptions/snapshot_test.go @@ -74,6 +74,30 @@ func TestCheckSnapshot_AssociateUser(t *testing.T) { } } +func TestCheckSnapshot_CreateLicenseServerEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateLicenseServerEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateLicenseServerEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DeleteLicenseServerEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteLicenseServerEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteLicenseServerEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeregisterIdentityProvider(t *testing.T) { svc := New(Options{}) _, err := svc.DeregisterIdentityProvider(context.Background(), nil, func(o *Options) { @@ -122,6 +146,18 @@ func TestCheckSnapshot_ListInstances(t *testing.T) { } } +func TestCheckSnapshot_ListLicenseServerEndpoints(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListLicenseServerEndpoints(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListLicenseServerEndpoints") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListProductSubscriptions(t *testing.T) { svc := New(Options{}) _, err := svc.ListProductSubscriptions(context.Background(), nil, func(o *Options) { @@ -134,6 +170,18 @@ func TestCheckSnapshot_ListProductSubscriptions(t *testing.T) { } } +func TestCheckSnapshot_ListTagsForResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListTagsForResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListTagsForResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListUserAssociations(t *testing.T) { svc := New(Options{}) _, err := svc.ListUserAssociations(context.Background(), nil, func(o *Options) { @@ -182,6 +230,30 @@ func TestCheckSnapshot_StopProductSubscription(t *testing.T) { } } +func TestCheckSnapshot_TagResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.TagResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "TagResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_UntagResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.UntagResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UntagResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateIdentityProviderSettings(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateIdentityProviderSettings(context.Background(), nil, func(o *Options) { @@ -205,6 +277,30 @@ func TestUpdateSnapshot_AssociateUser(t *testing.T) { } } +func TestUpdateSnapshot_CreateLicenseServerEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateLicenseServerEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateLicenseServerEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DeleteLicenseServerEndpoint(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteLicenseServerEndpoint(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteLicenseServerEndpoint") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeregisterIdentityProvider(t *testing.T) { svc := New(Options{}) _, err := svc.DeregisterIdentityProvider(context.Background(), nil, func(o *Options) { @@ -253,6 +349,18 @@ func TestUpdateSnapshot_ListInstances(t *testing.T) { } } +func TestUpdateSnapshot_ListLicenseServerEndpoints(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListLicenseServerEndpoints(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListLicenseServerEndpoints") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListProductSubscriptions(t *testing.T) { svc := New(Options{}) _, err := svc.ListProductSubscriptions(context.Background(), nil, func(o *Options) { @@ -265,6 +373,18 @@ func TestUpdateSnapshot_ListProductSubscriptions(t *testing.T) { } } +func TestUpdateSnapshot_ListTagsForResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListTagsForResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListTagsForResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListUserAssociations(t *testing.T) { svc := New(Options{}) _, err := svc.ListUserAssociations(context.Background(), nil, func(o *Options) { @@ -313,6 +433,30 @@ func TestUpdateSnapshot_StopProductSubscription(t *testing.T) { } } +func TestUpdateSnapshot_TagResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.TagResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "TagResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_UntagResource(t *testing.T) { + svc := New(Options{}) + _, err := svc.UntagResource(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UntagResource") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateIdentityProviderSettings(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateIdentityProviderSettings(context.Background(), nil, func(o *Options) { diff --git a/service/licensemanagerusersubscriptions/types/enums.go b/service/licensemanagerusersubscriptions/types/enums.go new file mode 100644 index 00000000000..0c06c85f7e3 --- /dev/null +++ b/service/licensemanagerusersubscriptions/types/enums.go @@ -0,0 +1,100 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +type ActiveDirectoryType string + +// Enum values for ActiveDirectoryType +const ( + // SELF_MANAGED type of Active Directory + ActiveDirectoryTypeSelfManaged ActiveDirectoryType = "SELF_MANAGED" + // AWS_MANAGED type of Active Directory + ActiveDirectoryTypeAwsManaged ActiveDirectoryType = "AWS_MANAGED" +) + +// Values returns all known values for ActiveDirectoryType. 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 (ActiveDirectoryType) Values() []ActiveDirectoryType { + return []ActiveDirectoryType{ + "SELF_MANAGED", + "AWS_MANAGED", + } +} + +type LicenseServerEndpointProvisioningStatus string + +// Enum values for LicenseServerEndpointProvisioningStatus +const ( + // + LicenseServerEndpointProvisioningStatusProvisioning LicenseServerEndpointProvisioningStatus = "PROVISIONING" + // + LicenseServerEndpointProvisioningStatusProvisioningFailed LicenseServerEndpointProvisioningStatus = "PROVISIONING_FAILED" + // + LicenseServerEndpointProvisioningStatusProvisioned LicenseServerEndpointProvisioningStatus = "PROVISIONED" + // + LicenseServerEndpointProvisioningStatusDeleting LicenseServerEndpointProvisioningStatus = "DELETING" + // + LicenseServerEndpointProvisioningStatusDeletionFailed LicenseServerEndpointProvisioningStatus = "DELETION_FAILED" + // + LicenseServerEndpointProvisioningStatusDeleted LicenseServerEndpointProvisioningStatus = "DELETED" +) + +// Values returns all known values for LicenseServerEndpointProvisioningStatus. +// 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 (LicenseServerEndpointProvisioningStatus) Values() []LicenseServerEndpointProvisioningStatus { + return []LicenseServerEndpointProvisioningStatus{ + "PROVISIONING", + "PROVISIONING_FAILED", + "PROVISIONED", + "DELETING", + "DELETION_FAILED", + "DELETED", + } +} + +type LicenseServerHealthStatus string + +// Enum values for LicenseServerHealthStatus +const ( + // + LicenseServerHealthStatusHealthy LicenseServerHealthStatus = "HEALTHY" + // + LicenseServerHealthStatusUnhealthy LicenseServerHealthStatus = "UNHEALTHY" + // + LicenseServerHealthStatusNotApplicable LicenseServerHealthStatus = "NOT_APPLICABLE" +) + +// Values returns all known values for LicenseServerHealthStatus. 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 (LicenseServerHealthStatus) Values() []LicenseServerHealthStatus { + return []LicenseServerHealthStatus{ + "HEALTHY", + "UNHEALTHY", + "NOT_APPLICABLE", + } +} + +type ServerType string + +// Enum values for ServerType +const ( + // + ServerTypeRdsSal ServerType = "RDS_SAL" +) + +// Values returns all known values for ServerType. 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 (ServerType) Values() []ServerType { + return []ServerType{ + "RDS_SAL", + } +} diff --git a/service/licensemanagerusersubscriptions/types/types.go b/service/licensemanagerusersubscriptions/types/types.go index 0b8e0ed2305..b78198afb73 100644 --- a/service/licensemanagerusersubscriptions/types/types.go +++ b/service/licensemanagerusersubscriptions/types/types.go @@ -4,20 +4,81 @@ package types import ( smithydocument "github.com/aws/smithy-go/document" + "time" ) // Details about an Active Directory identity provider. type ActiveDirectoryIdentityProvider struct { + // The ActiveDirectorySettings resource contains details about the Active + // Directory, including network access details such as domain name and IP + // addresses, and the credential provider for user administration. + ActiveDirectorySettings *ActiveDirectorySettings + + // The type of Active Directory – either a self-managed Active Directory or an + // Amazon Web Services Managed Active Directory. + ActiveDirectoryType ActiveDirectoryType + // The directory ID for an Active Directory identity provider. DirectoryId *string noSmithyDocumentSerde } +// Contains network access and credential details that are needed for user +// administration in the Active Directory. +type ActiveDirectorySettings struct { + + // Points to the CredentialsProvider resource that contains information about the + // credential provider for user administration. + DomainCredentialsProvider CredentialsProvider + + // A list of domain IPv4 addresses that are used for the Active Directory. + DomainIpv4List []string + + // The domain name for the Active Directory. + DomainName *string + + // The DomainNetworkSettings resource contains an array of subnets that apply for + // the Active Directory. + DomainNetworkSettings *DomainNetworkSettings + + noSmithyDocumentSerde +} + +// Contains information about the credential provider for user administration. +// +// The following types satisfy this interface: +// +// CredentialsProviderMemberSecretsManagerCredentialsProvider +type CredentialsProvider interface { + isCredentialsProvider() +} + +// Identifies the Secrets Manager secret that contains credentials needed for user +// administration in the Active Directory. +type CredentialsProviderMemberSecretsManagerCredentialsProvider struct { + Value SecretsManagerCredentialsProvider + + noSmithyDocumentSerde +} + +func (*CredentialsProviderMemberSecretsManagerCredentialsProvider) isCredentialsProvider() {} + +// Contains network settings for the Active Directory domain. +type DomainNetworkSettings struct { + + // Contains a list of subnets that apply for the Active Directory domain. + // + // This member is required. + Subnets []string + + noSmithyDocumentSerde +} + // A filter name and value pair that is used to return more specific results from -// a describe operation. Filters can be used to match a set of resources by -// specific criteria, such as tags, attributes, or IDs. +// a describe or list operation. You can use filters can be used to match a set of +// resources by specific criteria, such as tags, attributes, or IDs. type Filter struct { // The name of an attribute to use as a filter. @@ -32,7 +93,7 @@ type Filter struct { noSmithyDocumentSerde } -// Details about an identity provider. +// Refers to an identity provider. // // The following types satisfy this interface: // @@ -41,7 +102,8 @@ type IdentityProvider interface { isIdentityProvider() } -// An object that details an Active Directory identity provider. +// The ActiveDirectoryIdentityProvider resource contains settings and other +// details about a specific Active Directory identity provider. type IdentityProviderMemberActiveDirectoryIdentityProvider struct { Value ActiveDirectoryIdentityProvider @@ -53,7 +115,7 @@ func (*IdentityProviderMemberActiveDirectoryIdentityProvider) isIdentityProvider // Describes an identity provider. type IdentityProviderSummary struct { - // An object that specifies details for the identity provider. + // The IdentityProvider resource contains information about an identity provider. // // This member is required. IdentityProvider IdentityProvider @@ -63,13 +125,14 @@ type IdentityProviderSummary struct { // This member is required. Product *string - // An object that details the registered identity provider’s product related - // configuration settings such as the subnets to provision VPC endpoints. + // The Settings resource contains details about the registered identity provider’s + // product related configuration settings, such as the subnets to provision VPC + // endpoints. // // This member is required. Settings *Settings - // The status of an identity provider. + // The status of the identity provider. // // This member is required. Status *string @@ -77,6 +140,9 @@ type IdentityProviderSummary struct { // The failure message associated with an identity provider. FailureMessage *string + // The Amazon Resource Name (ARN) of the identity provider. + IdentityProviderArn *string + noSmithyDocumentSerde } @@ -110,12 +176,12 @@ type InstanceSummary struct { // Describes users of an EC2 instance providing user-based subscriptions. type InstanceUserSummary struct { - // An object that specifies details for the identity provider. + // The IdentityProvider resource specifies details about the identity provider. // // This member is required. IdentityProvider IdentityProvider - // The ID of the EC2 instance, which provides user-based subscriptions. + // The ID of the EC2 instance that provides user-based subscriptions. // // This member is required. InstanceId *string @@ -136,16 +202,89 @@ type InstanceUserSummary struct { // The date a user was disassociated from an EC2 instance. DisassociationDate *string - // The domain name of the user. + // The domain name of the Active Directory that contains the user information for + // the product subscription. Domain *string + // The Amazon Resource Name (ARN) that identifies the instance user. + InstanceUserArn *string + // The status message for users of an EC2 instance. StatusMessage *string noSmithyDocumentSerde } -// The summary of the user-based subscription products for a user. +// Information about a Remote Desktop Services (RDS) license server. +type LicenseServer struct { + + // The health status of the RDS license server. + HealthStatus LicenseServerHealthStatus + + // A list of domain IPv4 addresses that are used for the RDS license server. + Ipv4Address *string + + // The current state of the provisioning process for the RDS license server. + ProvisioningStatus LicenseServerEndpointProvisioningStatus + + noSmithyDocumentSerde +} + +// Contains details about a network endpoint for a Remote Desktop Services (RDS) +// license server. +type LicenseServerEndpoint struct { + + // The timestamp when License Manager created the license server endpoint. + CreationTime *time.Time + + // The Amazon Resource Name (ARN) of the identity provider that's associated with + // the RDS license server endpoint. + IdentityProviderArn *string + + // The ARN of the ServerEndpoint resource for the RDS license server. + LicenseServerEndpointArn *string + + // The ID of the license server endpoint. + LicenseServerEndpointId *string + + // The current state of the provisioning process for the RDS license server + // endpoint + LicenseServerEndpointProvisioningStatus LicenseServerEndpointProvisioningStatus + + // An array of LicenseServer resources that represent the license servers that are + // accessed through this endpoint. + LicenseServers []LicenseServer + + // The ServerEndpoint resource contains the network address of the RDS license + // server endpoint. + ServerEndpoint *ServerEndpoint + + // The type of license server. + ServerType ServerType + + // The message associated with the provisioning status, if there is one. + StatusMessage *string + + noSmithyDocumentSerde +} + +// The settings to configure your license server. +type LicenseServerSettings struct { + + // The ServerSettings resource contains the settings for your server. + // + // This member is required. + ServerSettings ServerSettings + + // The type of license server. + // + // This member is required. + ServerType ServerType + + noSmithyDocumentSerde +} + +// A summary of the user-based subscription products for a specific user. type ProductUserSummary struct { // An object that specifies details for the identity provider. @@ -158,20 +297,24 @@ type ProductUserSummary struct { // This member is required. Product *string - // The status of a product for a user. + // The status of a product for this user. // // This member is required. Status *string - // The user name from the identity provider of the user. + // The user name from the identity provider for this product user. // // This member is required. Username *string - // The domain name of the user. + // The domain name of the Active Directory that contains the user information for + // the product subscription. Domain *string - // The status message for a product for a user. + // The Amazon Resource Name (ARN) for this product user. + ProductUserArn *string + + // The status message for a product for this user. StatusMessage *string // The end date of a subscription. @@ -183,6 +326,56 @@ type ProductUserSummary struct { noSmithyDocumentSerde } +// Server settings that are specific to a Remote Desktop Services (RDS) license +// server. +type RdsSalSettings struct { + + // The CredentialsProvider resource contains a reference to the credentials + // provider that's used for RDS license server user administration. + // + // This member is required. + RdsSalCredentialsProvider CredentialsProvider + + noSmithyDocumentSerde +} + +// Contains a credentials secret that's stored in Secrets Manager. +type SecretsManagerCredentialsProvider struct { + + // The ID of the Secrets Manager secret that contains credentials. + SecretId *string + + noSmithyDocumentSerde +} + +// A network endpoint through which you can access one or more servers. +type ServerEndpoint struct { + + // The network address of the endpoint. + Endpoint *string + + noSmithyDocumentSerde +} + +// Contains settings for a specific server. +// +// The following types satisfy this interface: +// +// ServerSettingsMemberRdsSalSettings +type ServerSettings interface { + isServerSettings() +} + +// The RdsSalSettings resource contains settings to configure a specific Remote +// Desktop Services (RDS) license server. +type ServerSettingsMemberRdsSalSettings struct { + Value RdsSalSettings + + noSmithyDocumentSerde +} + +func (*ServerSettingsMemberRdsSalSettings) isServerSettings() {} + // The registered identity provider’s product related configuration settings such // as the subnets to provision VPC endpoints, and the security group ID that is // associated with the VPC endpoints. The security group should permit inbound TCP @@ -236,4 +429,6 @@ type UnknownUnionMember struct { noSmithyDocumentSerde } -func (*UnknownUnionMember) isIdentityProvider() {} +func (*UnknownUnionMember) isCredentialsProvider() {} +func (*UnknownUnionMember) isIdentityProvider() {} +func (*UnknownUnionMember) isServerSettings() {} diff --git a/service/licensemanagerusersubscriptions/types/types_exported_test.go b/service/licensemanagerusersubscriptions/types/types_exported_test.go index fd0c0979f5c..2fa5f47886f 100644 --- a/service/licensemanagerusersubscriptions/types/types_exported_test.go +++ b/service/licensemanagerusersubscriptions/types/types_exported_test.go @@ -7,6 +7,24 @@ import ( "github.com/aws/aws-sdk-go-v2/service/licensemanagerusersubscriptions/types" ) +func ExampleCredentialsProvider_outputUsage() { + var union types.CredentialsProvider + // type switches can be used to check the union value + switch v := union.(type) { + case *types.CredentialsProviderMemberSecretsManagerCredentialsProvider: + _ = v.Value // Value is types.SecretsManagerCredentialsProvider + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *types.SecretsManagerCredentialsProvider + func ExampleIdentityProvider_outputUsage() { var union types.IdentityProvider // type switches can be used to check the union value @@ -24,3 +42,21 @@ func ExampleIdentityProvider_outputUsage() { } var _ *types.ActiveDirectoryIdentityProvider + +func ExampleServerSettings_outputUsage() { + var union types.ServerSettings + // type switches can be used to check the union value + switch v := union.(type) { + case *types.ServerSettingsMemberRdsSalSettings: + _ = v.Value // Value is types.RdsSalSettings + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *types.RdsSalSettings diff --git a/service/licensemanagerusersubscriptions/validators.go b/service/licensemanagerusersubscriptions/validators.go index 3e431a3939f..f69ffaf69cf 100644 --- a/service/licensemanagerusersubscriptions/validators.go +++ b/service/licensemanagerusersubscriptions/validators.go @@ -30,6 +30,46 @@ func (m *validateOpAssociateUser) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpCreateLicenseServerEndpoint struct { +} + +func (*validateOpCreateLicenseServerEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateLicenseServerEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateLicenseServerEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateLicenseServerEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteLicenseServerEndpoint struct { +} + +func (*validateOpDeleteLicenseServerEndpoint) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteLicenseServerEndpoint) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteLicenseServerEndpointInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteLicenseServerEndpointInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeregisterIdentityProvider struct { } @@ -90,6 +130,26 @@ func (m *validateOpListProductSubscriptions) HandleInitialize(ctx context.Contex return next.HandleInitialize(ctx, in) } +type validateOpListTagsForResource struct { +} + +func (*validateOpListTagsForResource) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListTagsForResource) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListTagsForResourceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListTagsForResourceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListUserAssociations struct { } @@ -170,6 +230,46 @@ func (m *validateOpStopProductSubscription) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } +type validateOpTagResource struct { +} + +func (*validateOpTagResource) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpTagResource) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*TagResourceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpTagResourceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUntagResource struct { +} + +func (*validateOpUntagResource) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUntagResource) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UntagResourceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUntagResourceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateIdentityProviderSettings struct { } @@ -194,6 +294,14 @@ func addOpAssociateUserValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpAssociateUser{}, middleware.After) } +func addOpCreateLicenseServerEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateLicenseServerEndpoint{}, middleware.After) +} + +func addOpDeleteLicenseServerEndpointValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteLicenseServerEndpoint{}, middleware.After) +} + func addOpDeregisterIdentityProviderValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeregisterIdentityProvider{}, middleware.After) } @@ -206,6 +314,10 @@ func addOpListProductSubscriptionsValidationMiddleware(stack *middleware.Stack) return stack.Initialize.Add(&validateOpListProductSubscriptions{}, middleware.After) } +func addOpListTagsForResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListTagsForResource{}, middleware.After) +} + func addOpListUserAssociationsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListUserAssociations{}, middleware.After) } @@ -222,10 +334,142 @@ func addOpStopProductSubscriptionValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpStopProductSubscription{}, middleware.After) } +func addOpTagResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpTagResource{}, middleware.After) +} + +func addOpUntagResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUntagResource{}, middleware.After) +} + func addOpUpdateIdentityProviderSettingsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateIdentityProviderSettings{}, middleware.After) } +func validateActiveDirectoryIdentityProvider(v *types.ActiveDirectoryIdentityProvider) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ActiveDirectoryIdentityProvider"} + if v.ActiveDirectorySettings != nil { + if err := validateActiveDirectorySettings(v.ActiveDirectorySettings); err != nil { + invalidParams.AddNested("ActiveDirectorySettings", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateActiveDirectorySettings(v *types.ActiveDirectorySettings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ActiveDirectorySettings"} + if v.DomainNetworkSettings != nil { + if err := validateDomainNetworkSettings(v.DomainNetworkSettings); err != nil { + invalidParams.AddNested("DomainNetworkSettings", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateDomainNetworkSettings(v *types.DomainNetworkSettings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DomainNetworkSettings"} + if v.Subnets == nil { + invalidParams.Add(smithy.NewErrParamRequired("Subnets")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateIdentityProvider(v types.IdentityProvider) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "IdentityProvider"} + switch uv := v.(type) { + case *types.IdentityProviderMemberActiveDirectoryIdentityProvider: + if err := validateActiveDirectoryIdentityProvider(&uv.Value); err != nil { + invalidParams.AddNested("[ActiveDirectoryIdentityProvider]", err.(smithy.InvalidParamsError)) + } + + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateLicenseServerSettings(v *types.LicenseServerSettings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "LicenseServerSettings"} + if len(v.ServerType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ServerType")) + } + if v.ServerSettings == nil { + invalidParams.Add(smithy.NewErrParamRequired("ServerSettings")) + } else if v.ServerSettings != nil { + if err := validateServerSettings(v.ServerSettings); err != nil { + invalidParams.AddNested("ServerSettings", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateRdsSalSettings(v *types.RdsSalSettings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RdsSalSettings"} + if v.RdsSalCredentialsProvider == nil { + invalidParams.Add(smithy.NewErrParamRequired("RdsSalCredentialsProvider")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateServerSettings(v types.ServerSettings) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ServerSettings"} + switch uv := v.(type) { + case *types.ServerSettingsMemberRdsSalSettings: + if err := validateRdsSalSettings(&uv.Value); err != nil { + invalidParams.AddNested("[RdsSalSettings]", err.(smithy.InvalidParamsError)) + } + + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateSettings(v *types.Settings) error { if v == nil { return nil @@ -275,6 +519,50 @@ func validateOpAssociateUserInput(v *AssociateUserInput) error { } if v.IdentityProvider == nil { invalidParams.Add(smithy.NewErrParamRequired("IdentityProvider")) + } else if v.IdentityProvider != nil { + if err := validateIdentityProvider(v.IdentityProvider); err != nil { + invalidParams.AddNested("IdentityProvider", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateLicenseServerEndpointInput(v *CreateLicenseServerEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateLicenseServerEndpointInput"} + if v.IdentityProviderArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("IdentityProviderArn")) + } + if v.LicenseServerSettings == nil { + invalidParams.Add(smithy.NewErrParamRequired("LicenseServerSettings")) + } else if v.LicenseServerSettings != nil { + if err := validateLicenseServerSettings(v.LicenseServerSettings); err != nil { + invalidParams.AddNested("LicenseServerSettings", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteLicenseServerEndpointInput(v *DeleteLicenseServerEndpointInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteLicenseServerEndpointInput"} + if v.LicenseServerEndpointArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("LicenseServerEndpointArn")) + } + if len(v.ServerType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ServerType")) } if invalidParams.Len() > 0 { return invalidParams @@ -288,11 +576,10 @@ func validateOpDeregisterIdentityProviderInput(v *DeregisterIdentityProviderInpu return nil } invalidParams := smithy.InvalidParamsError{Context: "DeregisterIdentityProviderInput"} - if v.IdentityProvider == nil { - invalidParams.Add(smithy.NewErrParamRequired("IdentityProvider")) - } - if v.Product == nil { - invalidParams.Add(smithy.NewErrParamRequired("Product")) + if v.IdentityProvider != nil { + if err := validateIdentityProvider(v.IdentityProvider); err != nil { + invalidParams.AddNested("IdentityProvider", err.(smithy.InvalidParamsError)) + } } if invalidParams.Len() > 0 { return invalidParams @@ -306,14 +593,10 @@ func validateOpDisassociateUserInput(v *DisassociateUserInput) error { return nil } invalidParams := smithy.InvalidParamsError{Context: "DisassociateUserInput"} - if v.Username == nil { - invalidParams.Add(smithy.NewErrParamRequired("Username")) - } - if v.InstanceId == nil { - invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) - } - if v.IdentityProvider == nil { - invalidParams.Add(smithy.NewErrParamRequired("IdentityProvider")) + if v.IdentityProvider != nil { + if err := validateIdentityProvider(v.IdentityProvider); err != nil { + invalidParams.AddNested("IdentityProvider", err.(smithy.InvalidParamsError)) + } } if invalidParams.Len() > 0 { return invalidParams @@ -327,11 +610,27 @@ func validateOpListProductSubscriptionsInput(v *ListProductSubscriptionsInput) e return nil } invalidParams := smithy.InvalidParamsError{Context: "ListProductSubscriptionsInput"} - if v.Product == nil { - invalidParams.Add(smithy.NewErrParamRequired("Product")) - } if v.IdentityProvider == nil { invalidParams.Add(smithy.NewErrParamRequired("IdentityProvider")) + } else if v.IdentityProvider != nil { + if err := validateIdentityProvider(v.IdentityProvider); err != nil { + invalidParams.AddNested("IdentityProvider", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListTagsForResourceInput(v *ListTagsForResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListTagsForResourceInput"} + if v.ResourceArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceArn")) } if invalidParams.Len() > 0 { return invalidParams @@ -350,6 +649,10 @@ func validateOpListUserAssociationsInput(v *ListUserAssociationsInput) error { } if v.IdentityProvider == nil { invalidParams.Add(smithy.NewErrParamRequired("IdentityProvider")) + } else if v.IdentityProvider != nil { + if err := validateIdentityProvider(v.IdentityProvider); err != nil { + invalidParams.AddNested("IdentityProvider", err.(smithy.InvalidParamsError)) + } } if invalidParams.Len() > 0 { return invalidParams @@ -365,6 +668,10 @@ func validateOpRegisterIdentityProviderInput(v *RegisterIdentityProviderInput) e invalidParams := smithy.InvalidParamsError{Context: "RegisterIdentityProviderInput"} if v.IdentityProvider == nil { invalidParams.Add(smithy.NewErrParamRequired("IdentityProvider")) + } else if v.IdentityProvider != nil { + if err := validateIdentityProvider(v.IdentityProvider); err != nil { + invalidParams.AddNested("IdentityProvider", err.(smithy.InvalidParamsError)) + } } if v.Product == nil { invalidParams.Add(smithy.NewErrParamRequired("Product")) @@ -391,6 +698,10 @@ func validateOpStartProductSubscriptionInput(v *StartProductSubscriptionInput) e } if v.IdentityProvider == nil { invalidParams.Add(smithy.NewErrParamRequired("IdentityProvider")) + } else if v.IdentityProvider != nil { + if err := validateIdentityProvider(v.IdentityProvider); err != nil { + invalidParams.AddNested("IdentityProvider", err.(smithy.InvalidParamsError)) + } } if v.Product == nil { invalidParams.Add(smithy.NewErrParamRequired("Product")) @@ -407,14 +718,46 @@ func validateOpStopProductSubscriptionInput(v *StopProductSubscriptionInput) err return nil } invalidParams := smithy.InvalidParamsError{Context: "StopProductSubscriptionInput"} - if v.Username == nil { - invalidParams.Add(smithy.NewErrParamRequired("Username")) + if v.IdentityProvider != nil { + if err := validateIdentityProvider(v.IdentityProvider); err != nil { + invalidParams.AddNested("IdentityProvider", err.(smithy.InvalidParamsError)) + } } - if v.IdentityProvider == nil { - invalidParams.Add(smithy.NewErrParamRequired("IdentityProvider")) + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil } - if v.Product == nil { - invalidParams.Add(smithy.NewErrParamRequired("Product")) +} + +func validateOpTagResourceInput(v *TagResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TagResourceInput"} + if v.ResourceArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceArn")) + } + if v.Tags == nil { + invalidParams.Add(smithy.NewErrParamRequired("Tags")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUntagResourceInput(v *UntagResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UntagResourceInput"} + if v.ResourceArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceArn")) + } + if v.TagKeys == nil { + invalidParams.Add(smithy.NewErrParamRequired("TagKeys")) } if invalidParams.Len() > 0 { return invalidParams @@ -428,11 +771,10 @@ func validateOpUpdateIdentityProviderSettingsInput(v *UpdateIdentityProviderSett return nil } invalidParams := smithy.InvalidParamsError{Context: "UpdateIdentityProviderSettingsInput"} - if v.IdentityProvider == nil { - invalidParams.Add(smithy.NewErrParamRequired("IdentityProvider")) - } - if v.Product == nil { - invalidParams.Add(smithy.NewErrParamRequired("Product")) + if v.IdentityProvider != nil { + if err := validateIdentityProvider(v.IdentityProvider); err != nil { + invalidParams.AddNested("IdentityProvider", err.(smithy.InvalidParamsError)) + } } if v.UpdateSettings == nil { invalidParams.Add(smithy.NewErrParamRequired("UpdateSettings")) diff --git a/service/mq/internal/endpoints/endpoints.go b/service/mq/internal/endpoints/endpoints.go index d37f1ba8dc4..ce506e45840 100644 --- a/service/mq/internal/endpoints/endpoints.go +++ b/service/mq/internal/endpoints/endpoints.go @@ -172,6 +172,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-4", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-5", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, diff --git a/service/partnercentralselling/LICENSE.txt b/service/partnercentralselling/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/service/partnercentralselling/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/service/partnercentralselling/api_client.go b/service/partnercentralselling/api_client.go new file mode 100644 index 00000000000..afb0309355d --- /dev/null +++ b/service/partnercentralselling/api_client.go @@ -0,0 +1,929 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + cryptorand "crypto/rand" + "errors" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/defaults" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/retry" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" + internalauth "github.com/aws/aws-sdk-go-v2/internal/auth" + internalauthsmithy "github.com/aws/aws-sdk-go-v2/internal/auth/smithy" + internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources" + internalmiddleware "github.com/aws/aws-sdk-go-v2/internal/middleware" + smithy "github.com/aws/smithy-go" + smithyauth "github.com/aws/smithy-go/auth" + smithydocument "github.com/aws/smithy-go/document" + "github.com/aws/smithy-go/logging" + "github.com/aws/smithy-go/metrics" + "github.com/aws/smithy-go/middleware" + smithyrand "github.com/aws/smithy-go/rand" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net" + "net/http" + "sync/atomic" + "time" +) + +const ServiceID = "PartnerCentral Selling" +const ServiceAPIVersion = "2022-07-26" + +type operationMetrics struct { + Duration metrics.Float64Histogram + SerializeDuration metrics.Float64Histogram + ResolveIdentityDuration metrics.Float64Histogram + ResolveEndpointDuration metrics.Float64Histogram + SignRequestDuration metrics.Float64Histogram + DeserializeDuration metrics.Float64Histogram +} + +func (m *operationMetrics) histogramFor(name string) metrics.Float64Histogram { + switch name { + case "client.call.duration": + return m.Duration + case "client.call.serialization_duration": + return m.SerializeDuration + case "client.call.resolve_identity_duration": + return m.ResolveIdentityDuration + case "client.call.resolve_endpoint_duration": + return m.ResolveEndpointDuration + case "client.call.signing_duration": + return m.SignRequestDuration + case "client.call.deserialization_duration": + return m.DeserializeDuration + default: + panic("unrecognized operation metric") + } +} + +func timeOperationMetric[T any]( + ctx context.Context, metric string, fn func() (T, error), + opts ...metrics.RecordMetricOption, +) (T, error) { + instr := getOperationMetrics(ctx).histogramFor(metric) + opts = append([]metrics.RecordMetricOption{withOperationMetadata(ctx)}, opts...) + + start := time.Now() + v, err := fn() + end := time.Now() + + elapsed := end.Sub(start) + instr.Record(ctx, float64(elapsed)/1e9, opts...) + return v, err +} + +func startMetricTimer(ctx context.Context, metric string, opts ...metrics.RecordMetricOption) func() { + instr := getOperationMetrics(ctx).histogramFor(metric) + opts = append([]metrics.RecordMetricOption{withOperationMetadata(ctx)}, opts...) + + var ended bool + start := time.Now() + return func() { + if ended { + return + } + ended = true + + end := time.Now() + + elapsed := end.Sub(start) + instr.Record(ctx, float64(elapsed)/1e9, opts...) + } +} + +func withOperationMetadata(ctx context.Context) metrics.RecordMetricOption { + return func(o *metrics.RecordMetricOptions) { + o.Properties.Set("rpc.service", middleware.GetServiceID(ctx)) + o.Properties.Set("rpc.method", middleware.GetOperationName(ctx)) + } +} + +type operationMetricsKey struct{} + +func withOperationMetrics(parent context.Context, mp metrics.MeterProvider) (context.Context, error) { + meter := mp.Meter("github.com/aws/aws-sdk-go-v2/service/partnercentralselling") + om := &operationMetrics{} + + var err error + + om.Duration, err = operationMetricTimer(meter, "client.call.duration", + "Overall call duration (including retries and time to send or receive request and response body)") + if err != nil { + return nil, err + } + om.SerializeDuration, err = operationMetricTimer(meter, "client.call.serialization_duration", + "The time it takes to serialize a message body") + if err != nil { + return nil, err + } + om.ResolveIdentityDuration, err = operationMetricTimer(meter, "client.call.auth.resolve_identity_duration", + "The time taken to acquire an identity (AWS credentials, bearer token, etc) from an Identity Provider") + if err != nil { + return nil, err + } + om.ResolveEndpointDuration, err = operationMetricTimer(meter, "client.call.resolve_endpoint_duration", + "The time it takes to resolve an endpoint (endpoint resolver, not DNS) for the request") + if err != nil { + return nil, err + } + om.SignRequestDuration, err = operationMetricTimer(meter, "client.call.auth.signing_duration", + "The time it takes to sign a request") + if err != nil { + return nil, err + } + om.DeserializeDuration, err = operationMetricTimer(meter, "client.call.deserialization_duration", + "The time it takes to deserialize a message body") + if err != nil { + return nil, err + } + + return context.WithValue(parent, operationMetricsKey{}, om), nil +} + +func operationMetricTimer(m metrics.Meter, name, desc string) (metrics.Float64Histogram, error) { + return m.Float64Histogram(name, func(o *metrics.InstrumentOptions) { + o.UnitLabel = "s" + o.Description = desc + }) +} + +func getOperationMetrics(ctx context.Context) *operationMetrics { + return ctx.Value(operationMetricsKey{}).(*operationMetrics) +} + +func operationTracer(p tracing.TracerProvider) tracing.Tracer { + return p.Tracer("github.com/aws/aws-sdk-go-v2/service/partnercentralselling") +} + +// Client provides the API client to make operations call for Partner Central +// Selling API. +type Client struct { + options Options + + // Difference between the time reported by the server and the client + timeOffset *atomic.Int64 +} + +// New returns an initialized Client based on the functional options. Provide +// additional functional options to further configure the behavior of the client, +// such as changing the client's endpoint or adding custom middleware behavior. +func New(options Options, optFns ...func(*Options)) *Client { + options = options.Copy() + + resolveDefaultLogger(&options) + + setResolvedDefaultsMode(&options) + + resolveRetryer(&options) + + resolveHTTPClient(&options) + + resolveHTTPSignerV4(&options) + + resolveIdempotencyTokenProvider(&options) + + resolveEndpointResolverV2(&options) + + resolveTracerProvider(&options) + + resolveMeterProvider(&options) + + resolveAuthSchemeResolver(&options) + + for _, fn := range optFns { + fn(&options) + } + + finalizeRetryMaxAttempts(&options) + + ignoreAnonymousAuth(&options) + + wrapWithAnonymousAuth(&options) + + resolveAuthSchemes(&options) + + client := &Client{ + options: options, + } + + initializeTimeOffsetResolver(client) + + return client +} + +// Options returns a copy of the client configuration. +// +// Callers SHOULD NOT perform mutations on any inner structures within client +// config. Config overrides should instead be made on a per-operation basis through +// functional options. +func (c *Client) Options() Options { + return c.options.Copy() +} + +func (c *Client) invokeOperation( + ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error, +) ( + result interface{}, metadata middleware.Metadata, err error, +) { + ctx = middleware.ClearStackValues(ctx) + ctx = middleware.WithServiceID(ctx, ServiceID) + ctx = middleware.WithOperationName(ctx, opID) + + stack := middleware.NewStack(opID, smithyhttp.NewStackRequest) + options := c.options.Copy() + + for _, fn := range optFns { + fn(&options) + } + + finalizeOperationRetryMaxAttempts(&options, *c) + + finalizeClientEndpointResolverOptions(&options) + + for _, fn := range stackFns { + if err := fn(stack, options); err != nil { + return nil, metadata, err + } + } + + for _, fn := range options.APIOptions { + if err := fn(stack); err != nil { + return nil, metadata, err + } + } + + ctx, err = withOperationMetrics(ctx, options.MeterProvider) + if err != nil { + return nil, metadata, err + } + + tracer := operationTracer(options.TracerProvider) + spanName := fmt.Sprintf("%s.%s", ServiceID, opID) + + ctx = tracing.WithOperationTracer(ctx, tracer) + + ctx, span := tracer.StartSpan(ctx, spanName, func(o *tracing.SpanOptions) { + o.Kind = tracing.SpanKindClient + o.Properties.Set("rpc.system", "aws-api") + o.Properties.Set("rpc.method", opID) + o.Properties.Set("rpc.service", ServiceID) + }) + endTimer := startMetricTimer(ctx, "client.call.duration") + defer endTimer() + defer span.End() + + handler := smithyhttp.NewClientHandlerWithOptions(options.HTTPClient, func(o *smithyhttp.ClientHandler) { + o.Meter = options.MeterProvider.Meter("github.com/aws/aws-sdk-go-v2/service/partnercentralselling") + }) + decorated := middleware.DecorateHandler(handler, stack) + result, metadata, err = decorated.Handle(ctx, params) + if err != nil { + span.SetProperty("exception.type", fmt.Sprintf("%T", err)) + span.SetProperty("exception.message", err.Error()) + + var aerr smithy.APIError + if errors.As(err, &aerr) { + span.SetProperty("api.error_code", aerr.ErrorCode()) + span.SetProperty("api.error_message", aerr.ErrorMessage()) + span.SetProperty("api.error_fault", aerr.ErrorFault().String()) + } + + err = &smithy.OperationError{ + ServiceID: ServiceID, + OperationName: opID, + Err: err, + } + } + + span.SetProperty("error", err != nil) + if err == nil { + span.SetStatus(tracing.SpanStatusOK) + } else { + span.SetStatus(tracing.SpanStatusError) + } + + return result, metadata, err +} + +type operationInputKey struct{} + +func setOperationInput(ctx context.Context, input interface{}) context.Context { + return middleware.WithStackValue(ctx, operationInputKey{}, input) +} + +func getOperationInput(ctx context.Context) interface{} { + return middleware.GetStackValue(ctx, operationInputKey{}) +} + +type setOperationInputMiddleware struct { +} + +func (*setOperationInputMiddleware) ID() string { + return "setOperationInput" +} + +func (m *setOperationInputMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + ctx = setOperationInput(ctx, in.Parameters) + return next.HandleSerialize(ctx, in) +} + +func addProtocolFinalizerMiddlewares(stack *middleware.Stack, options Options, operation string) error { + if err := stack.Finalize.Add(&resolveAuthSchemeMiddleware{operation: operation, options: options}, middleware.Before); err != nil { + return fmt.Errorf("add ResolveAuthScheme: %w", err) + } + if err := stack.Finalize.Insert(&getIdentityMiddleware{options: options}, "ResolveAuthScheme", middleware.After); err != nil { + return fmt.Errorf("add GetIdentity: %v", err) + } + if err := stack.Finalize.Insert(&resolveEndpointV2Middleware{options: options}, "GetIdentity", middleware.After); err != nil { + return fmt.Errorf("add ResolveEndpointV2: %v", err) + } + if err := stack.Finalize.Insert(&signRequestMiddleware{options: options}, "ResolveEndpointV2", middleware.After); err != nil { + return fmt.Errorf("add Signing: %w", err) + } + return nil +} +func resolveAuthSchemeResolver(options *Options) { + if options.AuthSchemeResolver == nil { + options.AuthSchemeResolver = &defaultAuthSchemeResolver{} + } +} + +func resolveAuthSchemes(options *Options) { + if options.AuthSchemes == nil { + options.AuthSchemes = []smithyhttp.AuthScheme{ + internalauth.NewHTTPAuthScheme("aws.auth#sigv4", &internalauthsmithy.V4SignerAdapter{ + Signer: options.HTTPSignerV4, + Logger: options.Logger, + LogSigning: options.ClientLogMode.IsSigning(), + }), + } + } +} + +type noSmithyDocumentSerde = smithydocument.NoSerde + +type legacyEndpointContextSetter struct { + LegacyResolver EndpointResolver +} + +func (*legacyEndpointContextSetter) ID() string { + return "legacyEndpointContextSetter" +} + +func (m *legacyEndpointContextSetter) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.LegacyResolver != nil { + ctx = awsmiddleware.SetRequiresLegacyEndpoints(ctx, true) + } + + return next.HandleInitialize(ctx, in) + +} +func addlegacyEndpointContextSetter(stack *middleware.Stack, o Options) error { + return stack.Initialize.Add(&legacyEndpointContextSetter{ + LegacyResolver: o.EndpointResolver, + }, middleware.Before) +} + +func resolveDefaultLogger(o *Options) { + if o.Logger != nil { + return + } + o.Logger = logging.Nop{} +} + +func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error { + return middleware.AddSetLoggerMiddleware(stack, o.Logger) +} + +func setResolvedDefaultsMode(o *Options) { + if len(o.resolvedDefaultsMode) > 0 { + return + } + + var mode aws.DefaultsMode + mode.SetFromString(string(o.DefaultsMode)) + + if mode == aws.DefaultsModeAuto { + mode = defaults.ResolveDefaultsModeAuto(o.Region, o.RuntimeEnvironment) + } + + o.resolvedDefaultsMode = mode +} + +// NewFromConfig returns a new client from the provided config. +func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client { + opts := Options{ + Region: cfg.Region, + DefaultsMode: cfg.DefaultsMode, + RuntimeEnvironment: cfg.RuntimeEnvironment, + HTTPClient: cfg.HTTPClient, + Credentials: cfg.Credentials, + APIOptions: cfg.APIOptions, + Logger: cfg.Logger, + ClientLogMode: cfg.ClientLogMode, + AppID: cfg.AppID, + } + resolveAWSRetryerProvider(cfg, &opts) + resolveAWSRetryMaxAttempts(cfg, &opts) + resolveAWSRetryMode(cfg, &opts) + resolveAWSEndpointResolver(cfg, &opts) + resolveUseDualStackEndpoint(cfg, &opts) + resolveUseFIPSEndpoint(cfg, &opts) + resolveBaseEndpoint(cfg, &opts) + return New(opts, optFns...) +} + +func resolveHTTPClient(o *Options) { + var buildable *awshttp.BuildableClient + + if o.HTTPClient != nil { + var ok bool + buildable, ok = o.HTTPClient.(*awshttp.BuildableClient) + if !ok { + return + } + } else { + buildable = awshttp.NewBuildableClient() + } + + modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode) + if err == nil { + buildable = buildable.WithDialerOptions(func(dialer *net.Dialer) { + if dialerTimeout, ok := modeConfig.GetConnectTimeout(); ok { + dialer.Timeout = dialerTimeout + } + }) + + buildable = buildable.WithTransportOptions(func(transport *http.Transport) { + if tlsHandshakeTimeout, ok := modeConfig.GetTLSNegotiationTimeout(); ok { + transport.TLSHandshakeTimeout = tlsHandshakeTimeout + } + }) + } + + o.HTTPClient = buildable +} + +func resolveRetryer(o *Options) { + if o.Retryer != nil { + return + } + + if len(o.RetryMode) == 0 { + modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode) + if err == nil { + o.RetryMode = modeConfig.RetryMode + } + } + if len(o.RetryMode) == 0 { + o.RetryMode = aws.RetryModeStandard + } + + var standardOptions []func(*retry.StandardOptions) + if v := o.RetryMaxAttempts; v != 0 { + standardOptions = append(standardOptions, func(so *retry.StandardOptions) { + so.MaxAttempts = v + }) + } + + switch o.RetryMode { + case aws.RetryModeAdaptive: + var adaptiveOptions []func(*retry.AdaptiveModeOptions) + if len(standardOptions) != 0 { + adaptiveOptions = append(adaptiveOptions, func(ao *retry.AdaptiveModeOptions) { + ao.StandardOptions = append(ao.StandardOptions, standardOptions...) + }) + } + o.Retryer = retry.NewAdaptiveMode(adaptiveOptions...) + + default: + o.Retryer = retry.NewStandard(standardOptions...) + } +} + +func resolveAWSRetryerProvider(cfg aws.Config, o *Options) { + if cfg.Retryer == nil { + return + } + o.Retryer = cfg.Retryer() +} + +func resolveAWSRetryMode(cfg aws.Config, o *Options) { + if len(cfg.RetryMode) == 0 { + return + } + o.RetryMode = cfg.RetryMode +} +func resolveAWSRetryMaxAttempts(cfg aws.Config, o *Options) { + if cfg.RetryMaxAttempts == 0 { + return + } + o.RetryMaxAttempts = cfg.RetryMaxAttempts +} + +func finalizeRetryMaxAttempts(o *Options) { + if o.RetryMaxAttempts == 0 { + return + } + + o.Retryer = retry.AddWithMaxAttempts(o.Retryer, o.RetryMaxAttempts) +} + +func finalizeOperationRetryMaxAttempts(o *Options, client Client) { + if v := o.RetryMaxAttempts; v == 0 || v == client.options.RetryMaxAttempts { + return + } + + o.Retryer = retry.AddWithMaxAttempts(o.Retryer, o.RetryMaxAttempts) +} + +func resolveAWSEndpointResolver(cfg aws.Config, o *Options) { + if cfg.EndpointResolver == nil && cfg.EndpointResolverWithOptions == nil { + return + } + o.EndpointResolver = withEndpointResolver(cfg.EndpointResolver, cfg.EndpointResolverWithOptions) +} + +func addClientUserAgent(stack *middleware.Stack, options Options) error { + ua, err := getOrAddRequestUserAgent(stack) + if err != nil { + return err + } + + ua.AddSDKAgentKeyValue(awsmiddleware.APIMetadata, "partnercentralselling", goModuleVersion) + if len(options.AppID) > 0 { + ua.AddSDKAgentKey(awsmiddleware.ApplicationIdentifier, options.AppID) + } + + return nil +} + +func getOrAddRequestUserAgent(stack *middleware.Stack) (*awsmiddleware.RequestUserAgent, error) { + id := (*awsmiddleware.RequestUserAgent)(nil).ID() + mw, ok := stack.Build.Get(id) + if !ok { + mw = awsmiddleware.NewRequestUserAgent() + if err := stack.Build.Add(mw, middleware.After); err != nil { + return nil, err + } + } + + ua, ok := mw.(*awsmiddleware.RequestUserAgent) + if !ok { + return nil, fmt.Errorf("%T for %s middleware did not match expected type", mw, id) + } + + return ua, nil +} + +type HTTPSignerV4 interface { + SignHTTP(ctx context.Context, credentials aws.Credentials, r *http.Request, payloadHash string, service string, region string, signingTime time.Time, optFns ...func(*v4.SignerOptions)) error +} + +func resolveHTTPSignerV4(o *Options) { + if o.HTTPSignerV4 != nil { + return + } + o.HTTPSignerV4 = newDefaultV4Signer(*o) +} + +func newDefaultV4Signer(o Options) *v4.Signer { + return v4.NewSigner(func(so *v4.SignerOptions) { + so.Logger = o.Logger + so.LogSigning = o.ClientLogMode.IsSigning() + }) +} + +func addClientRequestID(stack *middleware.Stack) error { + return stack.Build.Add(&awsmiddleware.ClientRequestID{}, middleware.After) +} + +func addComputeContentLength(stack *middleware.Stack) error { + return stack.Build.Add(&smithyhttp.ComputeContentLength{}, middleware.After) +} + +func addRawResponseToMetadata(stack *middleware.Stack) error { + return stack.Deserialize.Add(&awsmiddleware.AddRawResponse{}, middleware.Before) +} + +func addRecordResponseTiming(stack *middleware.Stack) error { + return stack.Deserialize.Add(&awsmiddleware.RecordResponseTiming{}, middleware.After) +} + +func addSpanRetryLoop(stack *middleware.Stack, options Options) error { + return stack.Finalize.Insert(&spanRetryLoop{options: options}, "Retry", middleware.Before) +} + +type spanRetryLoop struct { + options Options +} + +func (*spanRetryLoop) ID() string { + return "spanRetryLoop" +} + +func (m *spanRetryLoop) HandleFinalize( + ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler, +) ( + middleware.FinalizeOutput, middleware.Metadata, error, +) { + tracer := operationTracer(m.options.TracerProvider) + ctx, span := tracer.StartSpan(ctx, "RetryLoop") + defer span.End() + + return next.HandleFinalize(ctx, in) +} +func addStreamingEventsPayload(stack *middleware.Stack) error { + return stack.Finalize.Add(&v4.StreamingEventsPayload{}, middleware.Before) +} + +func addUnsignedPayload(stack *middleware.Stack) error { + return stack.Finalize.Insert(&v4.UnsignedPayload{}, "ResolveEndpointV2", middleware.After) +} + +func addComputePayloadSHA256(stack *middleware.Stack) error { + return stack.Finalize.Insert(&v4.ComputePayloadSHA256{}, "ResolveEndpointV2", middleware.After) +} + +func addContentSHA256Header(stack *middleware.Stack) error { + return stack.Finalize.Insert(&v4.ContentSHA256Header{}, (*v4.ComputePayloadSHA256)(nil).ID(), middleware.After) +} + +func addIsWaiterUserAgent(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + ua, err := getOrAddRequestUserAgent(stack) + if err != nil { + return err + } + + ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureWaiter) + return nil + }) +} + +func addIsPaginatorUserAgent(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + ua, err := getOrAddRequestUserAgent(stack) + if err != nil { + return err + } + + ua.AddUserAgentFeature(awsmiddleware.UserAgentFeaturePaginator) + return nil + }) +} + +func resolveIdempotencyTokenProvider(o *Options) { + if o.IdempotencyTokenProvider != nil { + return + } + o.IdempotencyTokenProvider = smithyrand.NewUUIDIdempotencyToken(cryptorand.Reader) +} + +func addRetry(stack *middleware.Stack, o Options) error { + attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) { + m.LogAttempts = o.ClientLogMode.IsRetries() + m.OperationMeter = o.MeterProvider.Meter("github.com/aws/aws-sdk-go-v2/service/partnercentralselling") + }) + if err := stack.Finalize.Insert(attempt, "Signing", middleware.Before); err != nil { + return err + } + if err := stack.Finalize.Insert(&retry.MetricsHeader{}, attempt.ID(), middleware.After); err != nil { + return err + } + return nil +} + +// resolves dual-stack endpoint configuration +func resolveUseDualStackEndpoint(cfg aws.Config, o *Options) error { + if len(cfg.ConfigSources) == 0 { + return nil + } + value, found, err := internalConfig.ResolveUseDualStackEndpoint(context.Background(), cfg.ConfigSources) + if err != nil { + return err + } + if found { + o.EndpointOptions.UseDualStackEndpoint = value + } + return nil +} + +// resolves FIPS endpoint configuration +func resolveUseFIPSEndpoint(cfg aws.Config, o *Options) error { + if len(cfg.ConfigSources) == 0 { + return nil + } + value, found, err := internalConfig.ResolveUseFIPSEndpoint(context.Background(), cfg.ConfigSources) + if err != nil { + return err + } + if found { + o.EndpointOptions.UseFIPSEndpoint = value + } + return nil +} + +func resolveAccountID(identity smithyauth.Identity, mode aws.AccountIDEndpointMode) *string { + if mode == aws.AccountIDEndpointModeDisabled { + return nil + } + + if ca, ok := identity.(*internalauthsmithy.CredentialsAdapter); ok && ca.Credentials.AccountID != "" { + return aws.String(ca.Credentials.AccountID) + } + + return nil +} + +func addTimeOffsetBuild(stack *middleware.Stack, c *Client) error { + mw := internalmiddleware.AddTimeOffsetMiddleware{Offset: c.timeOffset} + if err := stack.Build.Add(&mw, middleware.After); err != nil { + return err + } + return stack.Deserialize.Insert(&mw, "RecordResponseTiming", middleware.Before) +} +func initializeTimeOffsetResolver(c *Client) { + c.timeOffset = new(atomic.Int64) +} + +func addUserAgentRetryMode(stack *middleware.Stack, options Options) error { + ua, err := getOrAddRequestUserAgent(stack) + if err != nil { + return err + } + + switch options.Retryer.(type) { + case *retry.Standard: + ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeStandard) + case *retry.AdaptiveMode: + ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeAdaptive) + } + return nil +} + +func resolveTracerProvider(options *Options) { + if options.TracerProvider == nil { + options.TracerProvider = &tracing.NopTracerProvider{} + } +} + +func resolveMeterProvider(options *Options) { + if options.MeterProvider == nil { + options.MeterProvider = metrics.NopMeterProvider{} + } +} + +// IdempotencyTokenProvider interface for providing idempotency token +type IdempotencyTokenProvider interface { + GetIdempotencyToken() (string, error) +} + +func addRecursionDetection(stack *middleware.Stack) error { + return stack.Build.Add(&awsmiddleware.RecursionDetection{}, middleware.After) +} + +func addRequestIDRetrieverMiddleware(stack *middleware.Stack) error { + return stack.Deserialize.Insert(&awsmiddleware.RequestIDRetriever{}, "OperationDeserializer", middleware.Before) + +} + +func addResponseErrorMiddleware(stack *middleware.Stack) error { + return stack.Deserialize.Insert(&awshttp.ResponseErrorWrapper{}, "RequestIDRetriever", middleware.Before) + +} + +func addRequestResponseLogging(stack *middleware.Stack, o Options) error { + return stack.Deserialize.Add(&smithyhttp.RequestResponseLogger{ + LogRequest: o.ClientLogMode.IsRequest(), + LogRequestWithBody: o.ClientLogMode.IsRequestWithBody(), + LogResponse: o.ClientLogMode.IsResponse(), + LogResponseWithBody: o.ClientLogMode.IsResponseWithBody(), + }, middleware.After) +} + +type disableHTTPSMiddleware struct { + DisableHTTPS bool +} + +func (*disableHTTPSMiddleware) ID() string { + return "disableHTTPS" +} + +func (m *disableHTTPSMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + if m.DisableHTTPS && !smithyhttp.GetHostnameImmutable(ctx) { + req.URL.Scheme = "http" + } + + return next.HandleFinalize(ctx, in) +} + +func addDisableHTTPSMiddleware(stack *middleware.Stack, o Options) error { + return stack.Finalize.Insert(&disableHTTPSMiddleware{ + DisableHTTPS: o.EndpointOptions.DisableHTTPS, + }, "ResolveEndpointV2", middleware.After) +} + +type spanInitializeStart struct { +} + +func (*spanInitializeStart) ID() string { + return "spanInitializeStart" +} + +func (m *spanInitializeStart) HandleInitialize( + ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler, +) ( + middleware.InitializeOutput, middleware.Metadata, error, +) { + ctx, _ = tracing.StartSpan(ctx, "Initialize") + + return next.HandleInitialize(ctx, in) +} + +type spanInitializeEnd struct { +} + +func (*spanInitializeEnd) ID() string { + return "spanInitializeEnd" +} + +func (m *spanInitializeEnd) HandleInitialize( + ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler, +) ( + middleware.InitializeOutput, middleware.Metadata, error, +) { + ctx, span := tracing.PopSpan(ctx) + span.End() + + return next.HandleInitialize(ctx, in) +} + +type spanBuildRequestStart struct { +} + +func (*spanBuildRequestStart) ID() string { + return "spanBuildRequestStart" +} + +func (m *spanBuildRequestStart) HandleSerialize( + ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler, +) ( + middleware.SerializeOutput, middleware.Metadata, error, +) { + ctx, _ = tracing.StartSpan(ctx, "BuildRequest") + + return next.HandleSerialize(ctx, in) +} + +type spanBuildRequestEnd struct { +} + +func (*spanBuildRequestEnd) ID() string { + return "spanBuildRequestEnd" +} + +func (m *spanBuildRequestEnd) HandleBuild( + ctx context.Context, in middleware.BuildInput, next middleware.BuildHandler, +) ( + middleware.BuildOutput, middleware.Metadata, error, +) { + ctx, span := tracing.PopSpan(ctx) + span.End() + + return next.HandleBuild(ctx, in) +} + +func addSpanInitializeStart(stack *middleware.Stack) error { + return stack.Initialize.Add(&spanInitializeStart{}, middleware.Before) +} + +func addSpanInitializeEnd(stack *middleware.Stack) error { + return stack.Initialize.Add(&spanInitializeEnd{}, middleware.After) +} + +func addSpanBuildRequestStart(stack *middleware.Stack) error { + return stack.Serialize.Add(&spanBuildRequestStart{}, middleware.Before) +} + +func addSpanBuildRequestEnd(stack *middleware.Stack) error { + return stack.Build.Add(&spanBuildRequestEnd{}, middleware.After) +} diff --git a/service/partnercentralselling/api_client_test.go b/service/partnercentralselling/api_client_test.go new file mode 100644 index 00000000000..26d29e1d346 --- /dev/null +++ b/service/partnercentralselling/api_client_test.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "io/ioutil" + "net/http" + "strings" + "testing" +) + +func TestClient_resolveRetryOptions(t *testing.T) { + nopClient := smithyhttp.ClientDoFunc(func(_ *http.Request) (*http.Response, error) { + return &http.Response{ + StatusCode: 200, + Header: http.Header{}, + Body: ioutil.NopCloser(strings.NewReader("")), + }, nil + }) + + cases := map[string]struct { + defaultsMode aws.DefaultsMode + retryer aws.Retryer + retryMaxAttempts int + opRetryMaxAttempts *int + retryMode aws.RetryMode + expectClientRetryMode aws.RetryMode + expectClientMaxAttempts int + expectOpMaxAttempts int + }{ + "defaults": { + defaultsMode: aws.DefaultsModeStandard, + expectClientRetryMode: aws.RetryModeStandard, + expectClientMaxAttempts: 3, + expectOpMaxAttempts: 3, + }, + "custom default retry": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 10, + }, + "custom op max attempts": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + opRetryMaxAttempts: aws.Int(2), + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 2, + }, + "custom op no change max attempts": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + opRetryMaxAttempts: aws.Int(10), + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 10, + }, + "custom op 0 max attempts": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + opRetryMaxAttempts: aws.Int(0), + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 10, + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + client := NewFromConfig(aws.Config{ + DefaultsMode: c.defaultsMode, + Retryer: func() func() aws.Retryer { + if c.retryer == nil { + return nil + } + + return func() aws.Retryer { return c.retryer } + }(), + HTTPClient: nopClient, + RetryMaxAttempts: c.retryMaxAttempts, + RetryMode: c.retryMode, + }, func(o *Options) { + if o.Retryer == nil { + t.Errorf("retryer must not be nil in functional options") + } + }) + + if e, a := c.expectClientRetryMode, client.options.RetryMode; e != a { + t.Errorf("expect %v retry mode, got %v", e, a) + } + if e, a := c.expectClientMaxAttempts, client.options.Retryer.MaxAttempts(); e != a { + t.Errorf("expect %v max attempts, got %v", e, a) + } + + _, _, err := client.invokeOperation(context.Background(), "mockOperation", struct{}{}, + []func(*Options){ + func(o *Options) { + if c.opRetryMaxAttempts == nil { + return + } + o.RetryMaxAttempts = *c.opRetryMaxAttempts + }, + }, + func(s *middleware.Stack, o Options) error { + s.Initialize.Clear() + s.Serialize.Clear() + s.Build.Clear() + s.Finalize.Clear() + s.Deserialize.Clear() + + if e, a := c.expectOpMaxAttempts, o.Retryer.MaxAttempts(); e != a { + t.Errorf("expect %v op max attempts, got %v", e, a) + } + return nil + }) + if err != nil { + t.Fatalf("expect no operation error, got %v", err) + } + }) + } +} diff --git a/service/partnercentralselling/api_op_AssignOpportunity.go b/service/partnercentralselling/api_op_AssignOpportunity.go new file mode 100644 index 00000000000..d410da1eca8 --- /dev/null +++ b/service/partnercentralselling/api_op_AssignOpportunity.go @@ -0,0 +1,181 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Enables you to reassign an existing Opportunity to another user within your +// +// Partner Central account. The specified user receives the opportunity, and it +// appears on their Partner Central dashboard, allowing them to take necessary +// actions or proceed with the opportunity. +// +// This is useful for distributing opportunities to the appropriate team members +// or departments within your organization, ensuring that each opportunity is +// handled by the right person. By default, the opportunity owner is the one who +// creates it. Currently, there's no API to enumerate the list of available users. +func (c *Client) AssignOpportunity(ctx context.Context, params *AssignOpportunityInput, optFns ...func(*Options)) (*AssignOpportunityOutput, error) { + if params == nil { + params = &AssignOpportunityInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AssignOpportunity", params, optFns, c.addOperationAssignOpportunityMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AssignOpportunityOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AssignOpportunityInput struct { + + // Specifies the user or team member responsible for managing the assigned + // opportunity. This field identifies the Assignee based on the partner's internal + // team structure. Ensure that the email address is associated with a registered + // user in your Partner Central account. + // + // This member is required. + Assignee *types.AssigneeContact + + // Specifies the catalog associated with the request. This field takes a string + // value from a predefined list: AWS or Sandbox . The catalog determines which + // environment the opportunity is assigned in. Use AWS to assign real + // opportunities in the Amazon Web Services catalog, and Sandbox to test in a + // secure and isolated environment. + // + // This member is required. + Catalog *string + + // Requires the Opportunity 's unique identifier when you want to assign it to + // another user. Provide the correct identifier so the intended opportunity is + // reassigned. + // + // This member is required. + Identifier *string + + noSmithyDocumentSerde +} + +type AssignOpportunityOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAssignOpportunityMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpAssignOpportunity{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpAssignOpportunity{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "AssignOpportunity"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpAssignOpportunityValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssignOpportunity(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opAssignOpportunity(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "AssignOpportunity", + } +} diff --git a/service/partnercentralselling/api_op_AssociateOpportunity.go b/service/partnercentralselling/api_op_AssociateOpportunity.go new file mode 100644 index 00000000000..e63c271c858 --- /dev/null +++ b/service/partnercentralselling/api_op_AssociateOpportunity.go @@ -0,0 +1,217 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Enables you to create a formal association between an Opportunity and various +// +// related entities, enriching the context and details of the opportunity for +// better collaboration and decision-making. You can associate an opportunity with +// the following types of entities: +// +// - Partner Solution: A software product or consulting practice created and +// delivered by Partners. Partner Solutions help customers address specific +// business challenges or achieve particular goals using Amazon Web Services +// services. +// +// - Amazon Web Services Product: Amazon Web Services offers a wide range of +// products and services designed to provide scalable, reliable, and cost-effective +// infrastructure solutions. For the latest list of Amazon Web Services products, +// refer to [Amazon Web Services products]. +// +// - Amazon Web Services Marketplace private offer: Allows Amazon Web Services +// Marketplace sellers to extend custom pricing and terms to individual Amazon Web +// Services customers. Sellers can negotiate custom prices, payment schedules, and +// end user license terms through private offers, enabling Amazon Web Services +// customers to acquire software solutions tailored to their specific needs. For +// more information, refer to [Private offers in Amazon Web Services Marketplace]. +// +// To obtain identifiers for these entities, use the following methods: +// +// - Solution: Use the ListSolutions operation. +// +// - AWS products: For the latest list of Amazon Web Services products, refer to +// the Amazon Web Services products list. +// +// - Amazon Web Services Marketplace private offer: Use the [AWS Marketplace Catalog API]to list entities. +// Specifically, use the ListEntities operation to retrieve a list of private +// offers. The request to the ListEntities API returns the details of the private +// offers available to you. For more information, refer to [ListEntities]. +// +// [Private offers in Amazon Web Services Marketplace]: https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-private-offers.html +// [AWS Marketplace Catalog API]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html +// [ListEntities]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_ListEntities.html +// [Amazon Web Services products]: https://github.com/aws-samples/partner-crm-integration-samples/blob/main/resources/aws_products.json +func (c *Client) AssociateOpportunity(ctx context.Context, params *AssociateOpportunityInput, optFns ...func(*Options)) (*AssociateOpportunityOutput, error) { + if params == nil { + params = &AssociateOpportunityInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AssociateOpportunity", params, optFns, c.addOperationAssociateOpportunityMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AssociateOpportunityOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AssociateOpportunityInput struct { + + // Specifies the catalog associated with the request. This field takes a string + // value from a predefined list: AWS or Sandbox . The catalog determines + // whichenvironment the opportunity association is made in. Use AWS to associate + // opportunities in the Amazon Web Services catalog, and Sandbox to test in a + // secure and isolated environment. + // + // This member is required. + Catalog *string + + // Requires the Opportunity 's unique identifier when you want to associate it with + // a related entity. Provide the correct identifier so the intended opportunity is + // updated with the association. + // + // This member is required. + OpportunityIdentifier *string + + // Requires the related entity's unique identifier when you want to associate it + // with the Opportunity . For Amazon Web Services Marketplace entities, provide the + // Amazon Resource Name (ARN). Use the [Amazon Web Services Marketplace API]to obtain the ARN. + // + // [Amazon Web Services Marketplace API]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html + // + // This member is required. + RelatedEntityIdentifier *string + + // Specifies the type of the related entity you're associating with the + // Opportunity . This helps to categorize and properly process the association. + // + // This member is required. + RelatedEntityType types.RelatedEntityType + + noSmithyDocumentSerde +} + +type AssociateOpportunityOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAssociateOpportunityMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpAssociateOpportunity{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpAssociateOpportunity{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "AssociateOpportunity"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpAssociateOpportunityValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssociateOpportunity(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opAssociateOpportunity(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "AssociateOpportunity", + } +} diff --git a/service/partnercentralselling/api_op_CreateOpportunity.go b/service/partnercentralselling/api_op_CreateOpportunity.go new file mode 100644 index 00000000000..83588bf348f --- /dev/null +++ b/service/partnercentralselling/api_op_CreateOpportunity.go @@ -0,0 +1,345 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Creates an Opportunity record in Partner Central. Use this operation to create +// +// a potential business opportunity intended to be submitted to Amazon Web +// Services. Creating an opportunity sets its Lifecycle.ReviewStatus to Pending +// Submission . +// +// To fully submit an opportunity, follow these steps: +// +// - To create the opportunity, use CreateOpportunity . +// +// - To associate a solution with the opportunity, use AssociateOpportunity . +// +// - To submit the opportunity, use SubmitOpportunity . +// +// After submission, you can't edit the opportunity until the review is complete. +// However, opportunities in the Pending Submission state still need all details +// completed. You can update the opportunity while it's in the Pending Submission +// state. +// +// There's a set of mandatory fields required to create opportunities, but +// consider providing optional fields to enrich the opportunity record. +func (c *Client) CreateOpportunity(ctx context.Context, params *CreateOpportunityInput, optFns ...func(*Options)) (*CreateOpportunityOutput, error) { + if params == nil { + params = &CreateOpportunityInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateOpportunity", params, optFns, c.addOperationCreateOpportunityMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateOpportunityOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateOpportunityInput struct { + + // Specifies the catalog associated with the request. This field takes a string + // value from a predefined list: AWS or Sandbox . The catalog determines which + // environment the opportunity is created in. Use AWS to create opportunities in + // the Amazon Web Services catalog, and Sandbox to test in a secure and isolated + // environment. + // + // This member is required. + Catalog *string + + // Required to be unique, and should be unchanging, it can be randomly generated + // or a meaningful string. + // + // Default: None + // + // Best practice: To ensure uniqueness and avoid collisions, we recommend you use + // a UUID (Universally Unique Identifier) as the ClientToken . You can use standard + // libraries available in most programming languages to generated this. If you use + // the same client token, the API throws this error: "Conflicting client token + // submitted for a new request body". + // + // This member is required. + ClientToken *string + + // Specifies customer details associated with the Opportunity . + Customer *types.Customer + + // An object that contains lifecycle details for the Opportunity . + LifeCycle *types.LifeCycle + + // This object contains marketing details and is optional for an opportunity. + Marketing *types.Marketing + + // Indicates whether the Opportunity pertains to a national security project. This + // field must be set to true only when the customer's industry is Government. + // Additional privacy and security measures apply during the review and management + // process for opportunities marked as NationalSecurity . + NationalSecurity types.NationalSecurity + + // Represents the internal team handling the opportunity. Specify the members + // involved in collaborating on this opportunity within the partner's organization. + OpportunityTeam []types.Contact + + // Specifies the opportunity type as a renewal, new, or expansion. + // + // Opportunity types: + // + // - New opportunity: Represents a new business opportunity with a potential + // customer that's not previously engaged with your solutions or services. + // + // - Renewal opportunity: Represents an opportunity to renew an existing + // contract or subscription with a current customer, ensuring continuity of + // service. + // + // - Expansion opportunity: Represents an opportunity to expand the scope of an + // existing contract or subscription, either by adding new services or increasing + // the volume of existing services for a current customer. + OpportunityType types.OpportunityType + + // Specifies the origin of the opportunity, indicating if it was sourced from + // Amazon Web Services or the partner. For all opportunities created with Catalog: + // AWS , this field must only be Partner Referral . However, when using Catalog: + // Sandbox , you can set this field to AWS Referral to simulate Amazon Web + // Services referral creation. This allows Amazon Web Services-originated flows + // testing in the sandbox catalog. + Origin types.OpportunityOrigin + + // Specifies the opportunity's unique identifier in the partner's CRM system. + // This value is essential to track and reconcile because it's included in the + // outbound payload sent back to the partner. + // + // This field allows partners to link an opportunity to their CRM, to ensure + // seamless integration and accurate synchronization between the Partner Central + // API and the partner's internal systems. + PartnerOpportunityIdentifier *string + + // Identifies the type of support the partner needs from Amazon Web Services. + // + // Valid values: + // + // - Co-Sell - Architectural Validation: Confirmation from Amazon Web Services + // that the partner's proposed solution architecture is aligned with Amazon Web + // Services best practices and poses minimal architectural risks. + // + // - Co-Sell - Business Presentation: Request Amazon Web Services seller's + // participation in a joint customer presentation. + // + // - Co-Sell - Competitive Information: Access to Amazon Web Services + // competitive resources and support for the partner's proposed solution. + // + // - Co-Sell - Pricing Assistance: Connect with an Amazon Web Services seller + // for support situations where a partner may be receiving an upfront discount on a + // service (for example: EDP deals). + // + // - Co-Sell - Technical Consultation: Connect with an Amazon Web Services + // Solutions Architect to address the partner's questions about the proposed + // solution. + // + // - Co-Sell - Total Cost of Ownership Evaluation: Assistance with quoting + // different cost savings of proposed solutions on Amazon Web Services versus + // on-premises or a traditional hosting environment. + // + // - Co-Sell - Deal Support: Request Amazon Web Services seller's support to + // progress the opportunity (for example: joint customer call, strategic + // positioning). + // + // - Co-Sell - Support for Public Tender / RFx: Opportunity related to the + // public sector where the partner needs Amazon Web Services RFx support. + // + // - Do Not Need Support from AWS Sales Rep: Indicates that a partner doesn't + // need support from an Amazon Web Services sales representative, and the partner + // solely manages the opportunity. It's possible to request co-selling support on + // these opportunities at any stage during their lifecycle. Also known as, + // for-visibility-only (FVO) opportunity. + PrimaryNeedsFromAws []types.PrimaryNeedFromAws + + // An object that contains project details for the Opportunity . + Project *types.Project + + // Specifies details of a customer's procurement terms. Required only for partners + // in eligible programs. + SoftwareRevenue *types.SoftwareRevenue + + noSmithyDocumentSerde +} + +type CreateOpportunityOutput struct { + + // Read-only, system-generated Opportunity unique identifier. Amazon Web Services + // creates this identifier, and it's used for all subsequent actions on the + // opportunity, such as updates, associations, and submissions. It ensures that + // each opportunity can be accurately tracked and managed within the system. + // + // This member is required. + Id *string + + // DateTime when the opportunity was last modified. When the Opportunity is + // created, its value is equal to CreatedDate . + LastModifiedDate *time.Time + + // Specifies the opportunity's unique identifier in the partner's CRM system. This + // value is essential to track and reconcile because it's included in the outbound + // payload sent back to the partner. + PartnerOpportunityIdentifier *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateOpportunityMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpCreateOpportunity{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpCreateOpportunity{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateOpportunity"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addIdempotencyToken_opCreateOpportunityMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateOpportunityValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateOpportunity(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpCreateOpportunity struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateOpportunity) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateOpportunity) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*CreateOpportunityInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateOpportunityInput ") + } + + if input.ClientToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opCreateOpportunityMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateOpportunity{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateOpportunity(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateOpportunity", + } +} diff --git a/service/partnercentralselling/api_op_DisassociateOpportunity.go b/service/partnercentralselling/api_op_DisassociateOpportunity.go new file mode 100644 index 00000000000..f455524d40a --- /dev/null +++ b/service/partnercentralselling/api_op_DisassociateOpportunity.go @@ -0,0 +1,211 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Allows you to remove an existing association between an Opportunity and +// +// related entities such as a Partner Solution, Amazon Web Services product, or an +// Amazon Web Services Marketplace offer. This operation is the counterpart to +// AssociateOpportunity , and it provides flexibility to manage associations as +// business needs change. +// +// Use this operation to update the associations of an Opportunity due to changes +// in the related entities, or if an association was made in error. Ensuring +// accurate associations helps maintain clarity and accuracy to track and manage +// business opportunities. When you replace an entity, first attach the new entity +// and then disassociate the one to be removed, especially if it's the last +// remaining related entity that's required. +func (c *Client) DisassociateOpportunity(ctx context.Context, params *DisassociateOpportunityInput, optFns ...func(*Options)) (*DisassociateOpportunityOutput, error) { + if params == nil { + params = &DisassociateOpportunityInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DisassociateOpportunity", params, optFns, c.addOperationDisassociateOpportunityMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DisassociateOpportunityOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DisassociateOpportunityInput struct { + + // Specifies the catalog associated with the request. This field takes a string + // value from a predefined list: AWS or Sandbox . The catalog determines which + // environment the opportunity disassociation is made in. Use AWS to disassociate + // opportunities in the Amazon Web Services catalog, and Sandbox to test in a + // secure and isolated environment. + // + // This member is required. + Catalog *string + + // The opportunity's unique identifier for when you want to disassociate it from + // related entities. This identifier is crucial to ensure the correct opportunity + // is updated, especially in environments with numerous opportunities. + // + // Validation: Ensure that the identifier provided corresponds to an existing + // opportunity in the Amazon Web Services system because incorrect identifiers + // result in an error and no changes are made. + // + // This member is required. + OpportunityIdentifier *string + + // The related entity's identifier that you want to disassociate from the + // opportunity. Depending on the type of entity, this could be a simple identifier + // or an Amazon Resource Name (ARN) for entities managed through Amazon Web + // Services Marketplace. + // + // For Amazon Web Services Marketplace entities, use the Amazon Web Services + // Marketplace API to obtain the necessary ARNs. For guidance on retrieving these + // ARNs, refer to [Amazon Web Services Marketplace Catalog API]. + // + // Validation: Ensure the identifier or ARN is valid and corresponds to an + // existing related entity. An incorrect or invalid identifier results in an error. + // + // [Amazon Web Services Marketplace Catalog API]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html + // + // This member is required. + RelatedEntityIdentifier *string + + // The type of the entity that you're disassociating from the opportunity. When + // you specify the entity type, it helps the system correctly process the + // disassociation request and ensures that the right connections are removed. + // + // Examples of entity types include Partner Solution, Amazon Web Services product, + // and Amazon Web Services Marketplace offer. Ensure that the value matches one of + // the expected entity types. + // + // Validation: Provide a valid entity type to ensure successful disassociation. + // Invalid or incorrect entity types result in an error. + // + // This member is required. + RelatedEntityType types.RelatedEntityType + + noSmithyDocumentSerde +} + +type DisassociateOpportunityOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDisassociateOpportunityMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpDisassociateOpportunity{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpDisassociateOpportunity{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DisassociateOpportunity"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDisassociateOpportunityValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDisassociateOpportunity(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDisassociateOpportunity(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DisassociateOpportunity", + } +} diff --git a/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go b/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go new file mode 100644 index 00000000000..76f780ddcad --- /dev/null +++ b/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go @@ -0,0 +1,229 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves a summary of an AWS Opportunity. This summary includes high-level +// +// details about the opportunity sourced from AWS, such as lifecycle information, +// customer details, and involvement type. It is useful for tracking updates on the +// AWS opportunity corresponding to an opportunity in the partner's account. +func (c *Client) GetAwsOpportunitySummary(ctx context.Context, params *GetAwsOpportunitySummaryInput, optFns ...func(*Options)) (*GetAwsOpportunitySummaryOutput, error) { + if params == nil { + params = &GetAwsOpportunitySummaryInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetAwsOpportunitySummary", params, optFns, c.addOperationGetAwsOpportunitySummaryMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetAwsOpportunitySummaryOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetAwsOpportunitySummaryInput struct { + + // Specifies the catalog in which the AWS Opportunity is located. Accepted values + // include AWS for production opportunities or Sandbox for testing purposes. The + // catalog determines which environment the opportunity data is pulled from. + // + // This member is required. + Catalog *string + + // The unique identifier for the related partner opportunity. Use this field to + // correlate an AWS opportunity with its corresponding partner opportunity in your + // CRM system. + // + // This member is required. + RelatedOpportunityIdentifier *string + + noSmithyDocumentSerde +} + +type GetAwsOpportunitySummaryOutput struct { + + // Specifies the catalog in which the AWS Opportunity exists. This is the + // environment (e.g., AWS or Sandbox ) where the opportunity is being managed. + // + // This member is required. + Catalog *string + + // Provides details about the customer associated with the AWS Opportunity, + // including account information, industry, and other key customer data. These + // details help partners understand the business context of the opportunity. + Customer *types.AwsOpportunityCustomer + + // Provides insights into the AWS Opportunity, including engagement score and + // recommended actions that AWS suggests for the partner. + Insights *types.AwsOpportunityInsights + + // Specifies the type of involvement AWS has in the opportunity, such as direct + // co-sell or advisory support. This field helps partners understand the role AWS + // will play in advancing the opportunity. + InvolvementType types.SalesInvolvementType + + // Provides a reason for any changes in the involvement type of AWS in the + // opportunity. This field is used to track why the level of AWS engagement has + // changed from For Visibility Only to Co-sell offering transparency into the + // partnership dynamics. + InvolvementTypeChangeReason types.InvolvementTypeChangeReason + + // Contains lifecycle information for the AWS Opportunity, including review + // status, stage, and target close date. This field is crucial for partners to + // monitor the progression of the opportunity. + LifeCycle *types.AwsOpportunityLifeCycle + + // Details the AWS Opportunity team, including key members involved in the + // opportunity. This information helps partners know who from AWS is engaged and + // their roles in the opportunity. + OpportunityTeam []types.AwsTeamMember + + // Specifies whether the AWS Opportunity originated from AWS or the partner. This + // helps distinguish between opportunities that were sourced by AWS and those + // referred by the partner. + Origin types.OpportunityOrigin + + // Provides details about the project associated with the AWS Opportunity, + // including the customer’s business problem, expected outcomes, and project scope. + // This information is crucial for understanding the broader context of the + // opportunity. + Project *types.AwsOpportunityProject + + // Lists related entity identifiers, such as AWS products or partner solutions, + // associated with the AWS Opportunity. These identifiers provide additional + // context and help partners understand which AWS services are involved. + RelatedEntityIds *types.AwsOpportunityRelatedEntities + + // Provides the unique identifier of the related partner opportunity, allowing + // partners to link the AWS Opportunity to their corresponding opportunity in their + // CRM system. + RelatedOpportunityId *string + + // Defines the visibility level for the AWS Opportunity. Use Full visibility for + // most cases, while Limited visibility is reserved for special programs or + // sensitive opportunities. + Visibility types.Visibility + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetAwsOpportunitySummaryMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGetAwsOpportunitySummary{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGetAwsOpportunitySummary{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetAwsOpportunitySummary"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpGetAwsOpportunitySummaryValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetAwsOpportunitySummary(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetAwsOpportunitySummary(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetAwsOpportunitySummary", + } +} diff --git a/service/partnercentralselling/api_op_GetEngagementInvitation.go b/service/partnercentralselling/api_op_GetEngagementInvitation.go new file mode 100644 index 00000000000..124616e9b25 --- /dev/null +++ b/service/partnercentralselling/api_op_GetEngagementInvitation.go @@ -0,0 +1,219 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Retrieves the details of an engagement invitation shared by AWS with a partner. +// The information includes key aspects such as the customer, project details, and +// lifecycle information related to the engagement. +func (c *Client) GetEngagementInvitation(ctx context.Context, params *GetEngagementInvitationInput, optFns ...func(*Options)) (*GetEngagementInvitationOutput, error) { + if params == nil { + params = &GetEngagementInvitationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetEngagementInvitation", params, optFns, c.addOperationGetEngagementInvitationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetEngagementInvitationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetEngagementInvitationInput struct { + + // Specifies the catalog associated with the request. The field accepts values + // from the predefined set: AWS for live operations or Sandbox for testing + // environments. + // + // This member is required. + Catalog *string + + // Specifies the unique identifier for the engagement invitation being retrieved. + // + // This member is required. + Identifier *string + + noSmithyDocumentSerde +} + +type GetEngagementInvitationOutput struct { + + // Indicates the catalog from which the engagement invitation details are + // retrieved. This field helps in identifying the appropriate catalog (e.g., AWS + // or Sandbox ) used in the request. + // + // This member is required. + Catalog *string + + // Unique identifier assigned to the engagement invitation being retrieved. + // + // This member is required. + Id *string + + // The Amazon Resource Name (ARN) that uniquely identifies the engagement + // invitation. + Arn *string + + // The title of the engagement invitation, summarizing the purpose or key + // objectives of the opportunity shared by AWS. + EngagementTitle *string + + // Indicates the date on which the engagement invitation will expire if not + // accepted by the partner. + ExpirationDate *time.Time + + // The date when the engagement invitation was sent to the partner. + InvitationDate *time.Time + + // Details of the engagement invitation payload, including specific data relevant + // to the invitation's contents, such as customer information and opportunity + // insights. + Payload types.Payload + + // The type of payload contained in the engagement invitation, indicating what + // data or context the payload covers. + PayloadType types.EngagementInvitationPayloadType + + // Information about the partner organization or team that received the engagement + // invitation, including contact details and identifiers. + Receiver types.Receiver + + // If the engagement invitation was rejected, this field specifies the reason + // provided by the partner for the rejection. + RejectionReason *string + + // Specifies the AWS Account ID of the sender, which identifies the AWS team + // responsible for sharing the engagement invitation. + SenderAwsAccountId *string + + // The name of the AWS organization or team that sent the engagement invitation. + SenderCompanyName *string + + // The current status of the engagement invitation (e.g., Accepted , Pending , or + // Rejected ). + Status types.InvitationStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetEngagementInvitationMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGetEngagementInvitation{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGetEngagementInvitation{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetEngagementInvitation"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpGetEngagementInvitationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetEngagementInvitation(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetEngagementInvitation(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetEngagementInvitation", + } +} diff --git a/service/partnercentralselling/api_op_GetOpportunity.go b/service/partnercentralselling/api_op_GetOpportunity.go new file mode 100644 index 00000000000..5a7442fc114 --- /dev/null +++ b/service/partnercentralselling/api_op_GetOpportunity.go @@ -0,0 +1,285 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Fetches the Opportunity record from Partner Central by a given Identifier . +// +// Use the ListOpportunities action or the event notification (from Amazon +// EventBridge) to obtain this identifier. +func (c *Client) GetOpportunity(ctx context.Context, params *GetOpportunityInput, optFns ...func(*Options)) (*GetOpportunityOutput, error) { + if params == nil { + params = &GetOpportunityInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetOpportunity", params, optFns, c.addOperationGetOpportunityMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetOpportunityOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetOpportunityInput struct { + + // Specifies the catalog associated with the request. This field takes a string + // value from a predefined list: AWS or Sandbox . The catalog determines which + // environment the opportunity is fetched from. Use AWS to retrieve opportunities + // in the Amazon Web Services catalog, and Sandbox to retrieve opportunities in a + // secure and isolated testing environment. + // + // This member is required. + Catalog *string + + // Read-only, system generated Opportunity unique identifier. + // + // This member is required. + Identifier *string + + noSmithyDocumentSerde +} + +type GetOpportunityOutput struct { + + // Specifies the catalog associated with the request. This field takes a string + // value from a predefined list: AWS or Sandbox . The catalog determines which + // environment the opportunity information is retrieved from. Use AWS to retrieve + // opportunities in the Amazon Web Services catalog, and Sandbox to retrieve + // opportunities in a secure and isolated testing environment. + // + // This member is required. + Catalog *string + + // DateTime when the Opportunity was last created. + // + // This member is required. + CreatedDate *time.Time + + // Read-only, system generated Opportunity unique identifier. + // + // This member is required. + Id *string + + // DateTime when the opportunity was last modified. + // + // This member is required. + LastModifiedDate *time.Time + + // Provides information about the associations of other entities with the + // opportunity. These entities include identifiers for AWSProducts , Partner + // Solutions , and AWSMarketplaceOffers . + // + // This member is required. + RelatedEntityIdentifiers *types.RelatedEntityIdentifiers + + // Specifies details of the customer associated with the Opportunity . + Customer *types.Customer + + // An object that contains lifecycle details for the Opportunity . + LifeCycle *types.LifeCycle + + // An object that contains marketing details for the Opportunity . + Marketing *types.Marketing + + // Indicates whether the Opportunity pertains to a national security project. This + // field must be set to true only when the customer's industry is Government. + // Additional privacy and security measures apply during the review and management + // process for opportunities marked as NationalSecurity . + NationalSecurity types.NationalSecurity + + // Represents the internal team handling the opportunity. Specify the members + // involved in collaborating on this opportunity within the partner's organization. + OpportunityTeam []types.Contact + + // Specifies the opportunity type as renewal, new, or expansion. + // + // Opportunity types: + // + // - New opportunity: Represents a new business opportunity with a potential + // customer that's not previously engaged with your solutions or services. + // + // - Renewal opportunity: Represents an opportunity to renew an existing + // contract or subscription with a current customer, ensuring continuity of + // service. + // + // - Expansion opportunity: Represents an opportunity to expand the scope of an + // existing contract or subscription, either by adding new services or increasing + // the volume of existing services for a current customer. + OpportunityType types.OpportunityType + + // Specifies the opportunity's unique identifier in the partner's CRM system. This + // value is essential to track and reconcile because it's included in the outbound + // payload sent back to the partner. + PartnerOpportunityIdentifier *string + + // Identifies the type of support the partner needs from Amazon Web Services. + // + // Valid values: + // + // - Co-Sell - Architectural Validation: Confirmation from Amazon Web Services + // that the partner's proposed solution architecture is aligned with Amazon Web + // Services best practices and poses minimal architectural risks. + // + // - Co-Sell - Business Presentation: Request Amazon Web Services seller's + // participation in a joint customer presentation. + // + // - Co-Sell - Competitive Information: Access to Amazon Web Services + // competitive resources and support for the partner's proposed solution. + // + // - Co-Sell - Pricing Assistance: Connect with an Amazon Web Services seller + // for support situations where a partner may be receiving an upfront discount on a + // service (for example: EDP deals). + // + // - Co-Sell - Technical Consultation: Connect with an Amazon Web Services + // Solutions Architect to address the partner's questions about the proposed + // solution. + // + // - Co-Sell - Total Cost of Ownership Evaluation: Assistance with quoting + // different cost savings of proposed solutions on Amazon Web Services versus + // on-premises or a traditional hosting environment. + // + // - Co-Sell - Deal Support: Request Amazon Web Services seller's support to + // progress the opportunity (for example: joint customer call, strategic + // positioning). + // + // - Co-Sell - Support for Public Tender / RFx: Opportunity related to the + // public sector where the partner needs Amazon Web Services RFx support. + // + // - Do Not Need Support from Amazon Web Services Sales Rep: Indicates that a + // partner doesn't need support from an Amazon Web Services sales representative, + // and the partner solely manages the opportunity. It's possible to request + // co-selling support on these opportunities at any stage during their lifecycle. + // Also known as, for-visibility-only (FVO) opportunity. + PrimaryNeedsFromAws []types.PrimaryNeedFromAws + + // An object that contains project details summary for the Opportunity . + Project *types.Project + + // Specifies details of a customer's procurement terms. Required only for partners + // in eligible programs. + SoftwareRevenue *types.SoftwareRevenue + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetOpportunityMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGetOpportunity{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGetOpportunity{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetOpportunity"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpGetOpportunityValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetOpportunity(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetOpportunity(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetOpportunity", + } +} diff --git a/service/partnercentralselling/api_op_ListEngagementInvitations.go b/service/partnercentralselling/api_op_ListEngagementInvitations.go new file mode 100644 index 00000000000..547736e7505 --- /dev/null +++ b/service/partnercentralselling/api_op_ListEngagementInvitations.go @@ -0,0 +1,288 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves a list of engagement invitations sent to the partner. This allows +// partners to view all pending or past engagement invitations, helping them track +// opportunities shared by AWS. +func (c *Client) ListEngagementInvitations(ctx context.Context, params *ListEngagementInvitationsInput, optFns ...func(*Options)) (*ListEngagementInvitationsOutput, error) { + if params == nil { + params = &ListEngagementInvitationsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListEngagementInvitations", params, optFns, c.addOperationListEngagementInvitationsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListEngagementInvitationsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListEngagementInvitationsInput struct { + + // Specifies the catalog from which to list the engagement invitations. Use AWS + // for production invitations or Sandbox for testing environments. + // + // This member is required. + Catalog *string + + // Specifies the type of participant for which to list engagement invitations. + // Identifies the role of the participant. + // + // This member is required. + ParticipantType types.ParticipantType + + // Specifies the maximum number of engagement invitations to return in the + // response. If more results are available, a pagination token will be provided. + MaxResults *int32 + + // A pagination token used to retrieve additional pages of results when the + // response to a previous request was truncated. Pass this token to continue + // listing invitations from where the previous call left off. + NextToken *string + + // Defines the type of payload associated with the engagement invitations to be + // listed. The attributes in this payload help decide on acceptance or rejection of + // the invitation. + PayloadType []types.EngagementInvitationPayloadType + + // Specifies the sorting options for listing engagement invitations. Invitations + // can be sorted by fields such as InvitationDate or Status to help partners view + // results in their preferred order. + Sort *types.OpportunityEngagementInvitationSort + + noSmithyDocumentSerde +} + +type ListEngagementInvitationsOutput struct { + + // An array containing summaries of engagement invitations. Each summary includes + // key information such as the invitation title, invitation date, and the current + // status of the invitation. + EngagementInvitationSummaries []types.EngagementInvitationSummary + + // A pagination token returned when there are more results available than can be + // returned in a single call. Use this token to retrieve additional pages of + // engagement invitation summaries. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListEngagementInvitationsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListEngagementInvitations{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListEngagementInvitations{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListEngagementInvitations"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListEngagementInvitationsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListEngagementInvitations(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListEngagementInvitationsPaginatorOptions is the paginator options for +// ListEngagementInvitations +type ListEngagementInvitationsPaginatorOptions struct { + // Specifies the maximum number of engagement invitations to return in the + // response. If more results are available, a pagination token will be provided. + 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 +} + +// ListEngagementInvitationsPaginator is a paginator for ListEngagementInvitations +type ListEngagementInvitationsPaginator struct { + options ListEngagementInvitationsPaginatorOptions + client ListEngagementInvitationsAPIClient + params *ListEngagementInvitationsInput + nextToken *string + firstPage bool +} + +// NewListEngagementInvitationsPaginator returns a new +// ListEngagementInvitationsPaginator +func NewListEngagementInvitationsPaginator(client ListEngagementInvitationsAPIClient, params *ListEngagementInvitationsInput, optFns ...func(*ListEngagementInvitationsPaginatorOptions)) *ListEngagementInvitationsPaginator { + if params == nil { + params = &ListEngagementInvitationsInput{} + } + + options := ListEngagementInvitationsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListEngagementInvitationsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListEngagementInvitationsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListEngagementInvitations page. +func (p *ListEngagementInvitationsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListEngagementInvitationsOutput, 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 + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListEngagementInvitations(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 +} + +// ListEngagementInvitationsAPIClient is a client that implements the +// ListEngagementInvitations operation. +type ListEngagementInvitationsAPIClient interface { + ListEngagementInvitations(context.Context, *ListEngagementInvitationsInput, ...func(*Options)) (*ListEngagementInvitationsOutput, error) +} + +var _ ListEngagementInvitationsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListEngagementInvitations(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListEngagementInvitations", + } +} diff --git a/service/partnercentralselling/api_op_ListOpportunities.go b/service/partnercentralselling/api_op_ListOpportunities.go new file mode 100644 index 00000000000..1f0d6107d20 --- /dev/null +++ b/service/partnercentralselling/api_op_ListOpportunities.go @@ -0,0 +1,328 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// This request accepts a list of filters to use to retrieve a specific subset of +// opportunities, as well as sort options. This feature is available to partners +// from [Partner Central]using the ListOpportunities API action. +// +// To synchronize your system with Amazon Web Services, only list the +// opportunities that were newly created or updated. We recommend you rely on +// events emitted by the service into your Amazon Web Services account’s Amazon +// EventBridge default event bus, you can also use the ListOpportunities action. +// +// We recommend the following approach: +// +// - Find the latest LastModifiedDate that you stored, and only use the values +// that came from Amazon Web Services. Don’t use values generated by your system. +// +// - When you send a ListOpportunities request, submit the date in ISO 8601 +// format in the AfterLastModifiedDate filter. +// +// - Amazon Web Services only returns opportunities created or updated on or +// after that date and time. Use NextToken to iterate over all pages. +// +// [Partner Central]: https://partnercentral.awspartner.com/ +func (c *Client) ListOpportunities(ctx context.Context, params *ListOpportunitiesInput, optFns ...func(*Options)) (*ListOpportunitiesOutput, error) { + if params == nil { + params = &ListOpportunitiesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListOpportunities", params, optFns, c.addOperationListOpportunitiesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListOpportunitiesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListOpportunitiesInput struct { + + // Specifies the catalog associated with the request. This field takes a string + // value from a predefined list: AWS or Sandbox . The catalog determines which + // environment the opportunities are listed in. Use AWS for listing real + // opportunities in the Amazon Web Services catalog, and Sandbox for to test in a + // secure and isolated environment. + // + // This member is required. + Catalog *string + + // Filters the opportunities based on the customer's company name. This allows + // partners to search for opportunities associated with a specific customer by + // matching the provided company name string. + CustomerCompanyName []string + + // Filters the opportunities based on the opportunity identifier. This allows + // partners to retrieve specific opportunities by providing their unique + // identifiers, ensuring precise results. + Identifier []string + + // Filters the opportunities based on their last modified date. This filter helps + // retrieve opportunities that were updated after the specified date, allowing + // partners to track recent changes or updates. + LastModifiedDate *types.LastModifiedDate + + // Filters the opportunities based on their current lifecycle approval status. Use + // this filter to retrieve opportunities with statuses such as Pending Submission , + // In Review , Action Required , or Approved . + LifeCycleReviewStatus []types.ReviewStatus + + // Filters the opportunities based on their lifecycle stage. This filter allows + // partners to retrieve opportunities at various stages in the sales cycle, such as + // Qualified , Technical Validation , Business Validation , or Closed Won . + LifeCycleStage []types.Stage + + // Specifies the maximum number of results to return in a single call. This + // limits the number of opportunities returned in the response to avoid overloading + // with too many results at once. + // + // Default: 20 + MaxResults *int32 + + // A pagination token used to retrieve the next set of results in subsequent + // calls. This token is included in the response only if there are additional + // result pages available. + NextToken *string + + // An object that specifies how the response is sorted. The default Sort.SortBy + // value is LastModifiedDate . + Sort *types.OpportunitySort + + noSmithyDocumentSerde +} + +type ListOpportunitiesOutput struct { + + // An array that contains minimal details for opportunities that match the + // request criteria. This summary view provides a quick overview of relevant + // opportunities. + // + // This member is required. + OpportunitySummaries []types.OpportunitySummary + + // A pagination token used to retrieve the next set of results in subsequent + // calls. This token is included in the response only if there are additional + // result pages available. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListOpportunitiesMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListOpportunities{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListOpportunities{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListOpportunities"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListOpportunitiesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListOpportunities(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListOpportunitiesPaginatorOptions is the paginator options for ListOpportunities +type ListOpportunitiesPaginatorOptions struct { + // Specifies the maximum number of results to return in a single call. This + // limits the number of opportunities returned in the response to avoid overloading + // with too many results at once. + // + // Default: 20 + 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 +} + +// ListOpportunitiesPaginator is a paginator for ListOpportunities +type ListOpportunitiesPaginator struct { + options ListOpportunitiesPaginatorOptions + client ListOpportunitiesAPIClient + params *ListOpportunitiesInput + nextToken *string + firstPage bool +} + +// NewListOpportunitiesPaginator returns a new ListOpportunitiesPaginator +func NewListOpportunitiesPaginator(client ListOpportunitiesAPIClient, params *ListOpportunitiesInput, optFns ...func(*ListOpportunitiesPaginatorOptions)) *ListOpportunitiesPaginator { + if params == nil { + params = &ListOpportunitiesInput{} + } + + options := ListOpportunitiesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListOpportunitiesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListOpportunitiesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListOpportunities page. +func (p *ListOpportunitiesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListOpportunitiesOutput, 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 + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListOpportunities(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 +} + +// ListOpportunitiesAPIClient is a client that implements the ListOpportunities +// operation. +type ListOpportunitiesAPIClient interface { + ListOpportunities(context.Context, *ListOpportunitiesInput, ...func(*Options)) (*ListOpportunitiesOutput, error) +} + +var _ ListOpportunitiesAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListOpportunities(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListOpportunities", + } +} diff --git a/service/partnercentralselling/api_op_ListSolutions.go b/service/partnercentralselling/api_op_ListSolutions.go new file mode 100644 index 00000000000..c23fb631f5d --- /dev/null +++ b/service/partnercentralselling/api_op_ListSolutions.go @@ -0,0 +1,296 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves a list of Partner Solutions that the partner registered on Partner +// +// Central. This API is used to generate a list of solutions that an end user +// selects from for association with an opportunity. +func (c *Client) ListSolutions(ctx context.Context, params *ListSolutionsInput, optFns ...func(*Options)) (*ListSolutionsOutput, error) { + if params == nil { + params = &ListSolutionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListSolutions", params, optFns, c.addOperationListSolutionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListSolutionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListSolutionsInput struct { + + // Specifies the catalog associated with the request. This field takes a string + // value from a predefined list: AWS or Sandbox . The catalog determines which + // environment the solutions are listed in. Use AWS to list solutions in the + // Amazon Web Services catalog, and Sandbox to list solutions in a secure and + // isolated testing environment. + // + // This member is required. + Catalog *string + + // Filters the solutions based on the category to which they belong. This allows + // partners to search for solutions within specific categories, such as Software , + // Consulting , or Managed Services . + Category []string + + // Filters the solutions based on their unique identifier. Use this filter to + // retrieve specific solutions by providing the solution's identifier for accurate + // results. + Identifier []string + + // The maximum number of results returned by a single call. This value must be + // provided in the next call to retrieve the next set of results. + // + // Default: 20 + MaxResults *int32 + + // A pagination token used to retrieve the next set of results in subsequent + // calls. This token is included in the response only if there are additional + // result pages available. + NextToken *string + + // Object that configures sorting done on the response. Default Sort.SortBy is + // Identifier . + Sort *types.SolutionSort + + // Filters the solutions based on their status. This filter helps retrieve + // solutions with statuses such as Active , Inactive , or Pending Approval , + // allowing partners to manage their solution portfolios effectively. + Status []types.SolutionStatus + + noSmithyDocumentSerde +} + +type ListSolutionsOutput struct { + + // An array with minimal details for solutions matching the request criteria. + // + // This member is required. + SolutionSummaries []types.SolutionBase + + // A pagination token used to retrieve the next set of results in subsequent + // calls. This token is included in the response only if there are additional + // result pages available. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListSolutionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListSolutions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListSolutions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListSolutions"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListSolutionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListSolutions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListSolutionsPaginatorOptions is the paginator options for ListSolutions +type ListSolutionsPaginatorOptions struct { + // The maximum number of results returned by a single call. This value must be + // provided in the next call to retrieve the next set of results. + // + // Default: 20 + 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 +} + +// ListSolutionsPaginator is a paginator for ListSolutions +type ListSolutionsPaginator struct { + options ListSolutionsPaginatorOptions + client ListSolutionsAPIClient + params *ListSolutionsInput + nextToken *string + firstPage bool +} + +// NewListSolutionsPaginator returns a new ListSolutionsPaginator +func NewListSolutionsPaginator(client ListSolutionsAPIClient, params *ListSolutionsInput, optFns ...func(*ListSolutionsPaginatorOptions)) *ListSolutionsPaginator { + if params == nil { + params = &ListSolutionsInput{} + } + + options := ListSolutionsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListSolutionsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListSolutionsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListSolutions page. +func (p *ListSolutionsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListSolutionsOutput, 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 + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListSolutions(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 +} + +// ListSolutionsAPIClient is a client that implements the ListSolutions operation. +type ListSolutionsAPIClient interface { + ListSolutions(context.Context, *ListSolutionsInput, ...func(*Options)) (*ListSolutionsOutput, error) +} + +var _ ListSolutionsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListSolutions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListSolutions", + } +} diff --git a/service/partnercentralselling/api_op_RejectEngagementInvitation.go b/service/partnercentralselling/api_op_RejectEngagementInvitation.go new file mode 100644 index 00000000000..e0b21e9bd0f --- /dev/null +++ b/service/partnercentralselling/api_op_RejectEngagementInvitation.go @@ -0,0 +1,181 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Use this action to reject an EngagementInvitation that has been shared by AWS. +// Rejecting the engagement invitation indicates that the partner does not wish to +// pursue the opportunity, and all related data will be inaccessible after the +// rejection. +func (c *Client) RejectEngagementInvitation(ctx context.Context, params *RejectEngagementInvitationInput, optFns ...func(*Options)) (*RejectEngagementInvitationOutput, error) { + if params == nil { + params = &RejectEngagementInvitationInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "RejectEngagementInvitation", params, optFns, c.addOperationRejectEngagementInvitationMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*RejectEngagementInvitationOutput) + out.ResultMetadata = metadata + return out, nil +} + +type RejectEngagementInvitationInput struct { + + // Specifies the catalog related to the engagement invitation. Accepted values are + // AWS and Sandbox , which determine the environment in which the opportunity is + // managed. + // + // This member is required. + Catalog *string + + // Specifies the unique identifier of the EngagementInvitation to be rejected. + // Providing the correct identifier ensures that the intended invitation is + // rejected. + // + // This member is required. + Identifier *string + + // Specifies the reason for rejecting the engagement invitation. Providing a + // reason helps document the rationale behind the rejection and assists AWS in + // tracking patterns or issues. Possible values include: + // + // - Customer problem unclear: The customer's problem is not clearly defined. + // + // - Next steps unclear: The next steps required to proceed are not clear. + // + // - Unable to support: The partner is unable to provide support due to resource + // or capability constraints. + // + // - Duplicate of Partner Referral: The opportunity is a duplicate of an + // existing referral. + // + // - Other: Any other reason not covered by the specified values. + RejectionReason *string + + noSmithyDocumentSerde +} + +type RejectEngagementInvitationOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationRejectEngagementInvitationMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpRejectEngagementInvitation{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpRejectEngagementInvitation{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "RejectEngagementInvitation"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpRejectEngagementInvitationValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opRejectEngagementInvitation(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opRejectEngagementInvitation(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "RejectEngagementInvitation", + } +} diff --git a/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go b/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go new file mode 100644 index 00000000000..fdc7f626520 --- /dev/null +++ b/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go @@ -0,0 +1,245 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// This action starts the engagement by accepting an EngagementInvitation . The +// task is asynchronous and involves several steps: accepting the invitation, +// creating an opportunity in the partner’s account from the AWS Opportunity, and +// copying over key details for tracking. Once completed, an Opportunity Created +// event is generated, indicating that the opportunity has been successfully +// created in the partner's account. +func (c *Client) StartEngagementByAcceptingInvitationTask(ctx context.Context, params *StartEngagementByAcceptingInvitationTaskInput, optFns ...func(*Options)) (*StartEngagementByAcceptingInvitationTaskOutput, error) { + if params == nil { + params = &StartEngagementByAcceptingInvitationTaskInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "StartEngagementByAcceptingInvitationTask", params, optFns, c.addOperationStartEngagementByAcceptingInvitationTaskMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*StartEngagementByAcceptingInvitationTaskOutput) + out.ResultMetadata = metadata + return out, nil +} + +type StartEngagementByAcceptingInvitationTaskInput struct { + + // Specifies the catalog related to the task. Use AWS for production engagements + // and Sandbox for testing scenarios. + // + // This member is required. + Catalog *string + + // A unique, case-sensitive identifier provided by the client to ensure the + // idempotency of the request. Can be a random or meaningful string, but must be + // unique for each request. + // + // This member is required. + ClientToken *string + + // Specifies the unique identifier of the EngagementInvitation to be accepted. + // Providing the correct identifier ensures the right engagement invitation is + // processed. + // + // This member is required. + Identifier *string + + noSmithyDocumentSerde +} + +type StartEngagementByAcceptingInvitationTaskOutput struct { + + // Returns the identifier of the engagement invitation that was accepted and used + // to create the opportunity. + EngagementInvitationId *string + + // If the task fails, this field contains a detailed message describing the + // failure and possible recovery steps. + Message *string + + // Returns the original opportunity identifier passed in the request. This is the + // unique identifier for the opportunity. + OpportunityId *string + + // Indicates the reason for task failure using an enumerated code. Possible values + // are: ACCEPT_ENGAGEMENT_INVITATION_FAILED , GET_ENGAGEMENT_INVITATION_FAILED , + // CREATE_OPPORTUNITY_FAILED , CREATE_RESOURCE_VIEW_AUTOMATION_FAILED , + // SUBMIT_OPPORTUNITY_FAILED . + ReasonCode types.ReasonCode + + // The timestamp indicating when the task was initiated. The format follows RFC + // 3339 section 5.6. + StartTime *time.Time + + // The Amazon Resource Name (ARN) of the task, used for tracking and managing the + // task within AWS. + TaskArn *string + + // The unique identifier of the task, used to track the task’s progress. This + // value follows a specific pattern: ^oit-[0-9a-z]{13}$ . + TaskId *string + + // Indicates the current status of the task. Valid values include IN_PROGRESS , + // COMPLETE , and FAILED . + TaskStatus types.TaskStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationStartEngagementByAcceptingInvitationTaskMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "StartEngagementByAcceptingInvitationTask"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addIdempotencyToken_opStartEngagementByAcceptingInvitationTaskMiddleware(stack, options); err != nil { + return err + } + if err = addOpStartEngagementByAcceptingInvitationTaskValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStartEngagementByAcceptingInvitationTask(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpStartEngagementByAcceptingInvitationTask struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpStartEngagementByAcceptingInvitationTask) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpStartEngagementByAcceptingInvitationTask) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*StartEngagementByAcceptingInvitationTaskInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *StartEngagementByAcceptingInvitationTaskInput ") + } + + if input.ClientToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opStartEngagementByAcceptingInvitationTaskMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpStartEngagementByAcceptingInvitationTask{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opStartEngagementByAcceptingInvitationTask(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "StartEngagementByAcceptingInvitationTask", + } +} diff --git a/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go b/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go new file mode 100644 index 00000000000..90486197c1a --- /dev/null +++ b/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go @@ -0,0 +1,244 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// This action initiates the engagement process from an existing opportunity by +// accepting the engagement invitation and creating a corresponding opportunity in +// the partner’s system. Similar to StartEngagementByAcceptingInvitationTask , this +// action is asynchronous and performs multiple steps before completion. +func (c *Client) StartEngagementFromOpportunityTask(ctx context.Context, params *StartEngagementFromOpportunityTaskInput, optFns ...func(*Options)) (*StartEngagementFromOpportunityTaskOutput, error) { + if params == nil { + params = &StartEngagementFromOpportunityTaskInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "StartEngagementFromOpportunityTask", params, optFns, c.addOperationStartEngagementFromOpportunityTaskMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*StartEngagementFromOpportunityTaskOutput) + out.ResultMetadata = metadata + return out, nil +} + +type StartEngagementFromOpportunityTaskInput struct { + + // Indicates the level of AWS involvement in the opportunity. This field helps + // track AWS's role and participation throughout the engagement, such as providing + // technical support, deal assistance, or sales support. + // + // This member is required. + AwsSubmission *types.AwsSubmission + + // Specifies the catalog in which the engagement is tracked. Acceptable values + // include AWS for production and Sandbox for testing environments. + // + // This member is required. + Catalog *string + + // A unique token provided by the client to ensure the idempotency of the request. + // It helps prevent the same task from being performed multiple times. + // + // This member is required. + ClientToken *string + + // The unique identifier of the opportunity from which the engagement task is to + // be initiated. This ensures the task is applied to the correct opportunity. + // + // This member is required. + Identifier *string + + noSmithyDocumentSerde +} + +type StartEngagementFromOpportunityTaskOutput struct { + + // If the task fails, this field contains a detailed message describing the + // failure and possible recovery steps. + Message *string + + // Returns the original opportunity identifier passed in the request, which is the + // unique identifier for the opportunity created in the partner’s system. + OpportunityId *string + + // Indicates the reason for task failure using an enumerated code. Possible values + // are: ACCEPT_ENGAGEMENT_INVITATION_FAILED , GET_ENGAGEMENT_INVITATION_FAILED , + // CREATE_OPPORTUNITY_FAILED , CREATE_RESOURCE_VIEW_AUTOMATION_FAILED , + // SUBMIT_OPPORTUNITY_FAILED . + ReasonCode types.ReasonCode + + // The timestamp indicating when the task was initiated. The format follows RFC + // 3339 section 5.6. + StartTime *time.Time + + // The Amazon Resource Name (ARN) of the task, used for tracking and managing the + // task within AWS. + TaskArn *string + + // The unique identifier of the task, used to track the task’s progress. This + // value follows a specific pattern: ^oit-[0-9a-z]{13}$ . + TaskId *string + + // Indicates the current status of the task. Valid values include IN_PROGRESS , + // COMPLETE , and FAILED . + TaskStatus types.TaskStatus + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationStartEngagementFromOpportunityTaskMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpStartEngagementFromOpportunityTask{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "StartEngagementFromOpportunityTask"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addIdempotencyToken_opStartEngagementFromOpportunityTaskMiddleware(stack, options); err != nil { + return err + } + if err = addOpStartEngagementFromOpportunityTaskValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opStartEngagementFromOpportunityTask(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +type idempotencyToken_initializeOpStartEngagementFromOpportunityTask struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpStartEngagementFromOpportunityTask) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpStartEngagementFromOpportunityTask) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + if m.tokenProvider == nil { + return next.HandleInitialize(ctx, in) + } + + input, ok := in.Parameters.(*StartEngagementFromOpportunityTaskInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *StartEngagementFromOpportunityTaskInput ") + } + + if input.ClientToken == nil { + t, err := m.tokenProvider.GetIdempotencyToken() + if err != nil { + return out, metadata, err + } + input.ClientToken = &t + } + return next.HandleInitialize(ctx, in) +} +func addIdempotencyToken_opStartEngagementFromOpportunityTaskMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpStartEngagementFromOpportunityTask{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opStartEngagementFromOpportunityTask(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "StartEngagementFromOpportunityTask", + } +} diff --git a/service/partnercentralselling/api_op_UpdateOpportunity.go b/service/partnercentralselling/api_op_UpdateOpportunity.go new file mode 100644 index 00000000000..e6fdec1a197 --- /dev/null +++ b/service/partnercentralselling/api_op_UpdateOpportunity.go @@ -0,0 +1,273 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Updates the Opportunity record identified by a given Identifier . This +// +// operation allows you to modify the details of an existing opportunity to reflect +// the latest information and progress. Use this action to keep the opportunity +// record up-to-date and accurate. +// +// When you perform updates, include the entire payload with each request. If any +// field is omitted, the API assumes that the field is set to null . The best +// practice is to always perform a GetOpportunity to retrieve the latest values, +// then send the complete payload with the updated values to be changed. +func (c *Client) UpdateOpportunity(ctx context.Context, params *UpdateOpportunityInput, optFns ...func(*Options)) (*UpdateOpportunityOutput, error) { + if params == nil { + params = &UpdateOpportunityInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateOpportunity", params, optFns, c.addOperationUpdateOpportunityMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateOpportunityOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateOpportunityInput struct { + + // Specifies the catalog associated with the request. This field takes a string + // value from a predefined list: AWS or Sandbox . The catalog determines which + // environment the opportunity is updated in. Use AWS to update real opportunities + // in the production environment, and Sandbox to test in a secure and isolated + // environment. When you use the Sandbox catalog, it allows you to simulate and + // validate your interactions with Amazon Web Services services without affecting + // live data or operations. + // + // This member is required. + Catalog *string + + // Read-only, system generated Opportunity unique identifier. + // + // This member is required. + Identifier *string + + // DateTime when the opportunity was last modified. + // + // This member is required. + LastModifiedDate *time.Time + + // Specifies details of the customer associated with the Opportunity . + Customer *types.Customer + + // An object that contains lifecycle details for the Opportunity . + LifeCycle *types.LifeCycle + + // An object that contains marketing details for the Opportunity . + Marketing *types.Marketing + + // Specifies if the opportunity is associated with national security concerns. + // This flag is only applicable when the industry is Government . For national + // security-related opportunities, specific validation and compliance rules may + // apply, impacting the opportunity's visibility and processing. + NationalSecurity types.NationalSecurity + + // Specifies the opportunity type as a renewal, new, or expansion. + // + // Opportunity types: + // + // - New opportunity: Represents a new business opportunity with a potential + // customer that's not previously engaged with your solutions or services. + // + // - Renewal opportunity: Represents an opportunity to renew an existing + // contract or subscription with a current customer, ensuring continuity of + // service. + // + // - Expansion opportunity: Represents an opportunity to expand the scope of an + // existing contract or subscription, either by adding new services or increasing + // the volume of existing services for a current customer. + OpportunityType types.OpportunityType + + // Specifies the opportunity's unique identifier in the partner's CRM system. This + // value is essential to track and reconcile because it's included in the outbound + // payload sent back to the partner. + PartnerOpportunityIdentifier *string + + // Identifies the type of support the partner needs from Amazon Web Services. + // + // Valid values: + // + // - Co-Sell - Architectural Validation: Confirmation from Amazon Web Services + // that the partner's proposed solution architecture is aligned with Amazon Web + // Services best practices and poses minimal architectural risks. + // + // - Co-Sell - Business Presentation: Request Amazon Web Services seller's + // participation in a joint customer presentation. + // + // - Co-Sell - Competitive Information: Access to Amazon Web Services + // competitive resources and support for the partner's proposed solution. + // + // - Co-Sell - Pricing Assistance: Connect with an AWS seller for support + // situations where a partner may be receiving an upfront discount on a service + // (for example: EDP deals). + // + // - Co-Sell - Technical Consultation: Connection with an Amazon Web Services + // Solutions Architect to address the partner's questions about the proposed + // solution. + // + // - Co-Sell - Total Cost of Ownership Evaluation: Assistance with quoting + // different cost savings of proposed solutions on Amazon Web Services versus + // on-premises or a traditional hosting environment. + // + // - Co-Sell - Deal Support: Request Amazon Web Services seller's support to + // progress the opportunity (for example: joint customer call, strategic + // positioning). + // + // - Co-Sell - Support for Public Tender / RFx: Opportunity related to the + // public sector where the partner needs RFx support from Amazon Web Services. + // + // - Do Not Need Support from AWS Sales Rep: Indicates that a partner doesn't + // need support from an Amazon Web Services Sales representative. The opportunity + // is managed solely by the partner. It's possible to request co-selling support on + // these opportunities at any stage during their lifecycle. Also known as, + // for-visibility-only (FVO) opportunity. + PrimaryNeedsFromAws []types.PrimaryNeedFromAws + + // An object that contains project details summary for the Opportunity . + Project *types.Project + + // Specifies details of a customer's procurement terms. Required only for partners + // in eligible programs. + SoftwareRevenue *types.SoftwareRevenue + + noSmithyDocumentSerde +} + +type UpdateOpportunityOutput struct { + + // Read-only, system generated Opportunity unique identifier. + // + // This member is required. + Id *string + + // DateTime when the opportunity was last modified. + // + // This member is required. + LastModifiedDate *time.Time + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateOpportunityMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsjson10_serializeOpUpdateOpportunity{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpUpdateOpportunity{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateOpportunity"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdateOpportunityValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateOpportunity(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateOpportunity(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateOpportunity", + } +} diff --git a/service/partnercentralselling/auth.go b/service/partnercentralselling/auth.go new file mode 100644 index 00000000000..44a12e9115e --- /dev/null +++ b/service/partnercentralselling/auth.go @@ -0,0 +1,313 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + smithy "github.com/aws/smithy-go" + smithyauth "github.com/aws/smithy-go/auth" + "github.com/aws/smithy-go/metrics" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +func bindAuthParamsRegion(_ interface{}, params *AuthResolverParameters, _ interface{}, options Options) { + params.Region = options.Region +} + +type setLegacyContextSigningOptionsMiddleware struct { +} + +func (*setLegacyContextSigningOptionsMiddleware) ID() string { + return "setLegacyContextSigningOptions" +} + +func (m *setLegacyContextSigningOptionsMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + rscheme := getResolvedAuthScheme(ctx) + schemeID := rscheme.Scheme.SchemeID() + + if sn := awsmiddleware.GetSigningName(ctx); sn != "" { + if schemeID == "aws.auth#sigv4" { + smithyhttp.SetSigV4SigningName(&rscheme.SignerProperties, sn) + } else if schemeID == "aws.auth#sigv4a" { + smithyhttp.SetSigV4ASigningName(&rscheme.SignerProperties, sn) + } + } + + if sr := awsmiddleware.GetSigningRegion(ctx); sr != "" { + if schemeID == "aws.auth#sigv4" { + smithyhttp.SetSigV4SigningRegion(&rscheme.SignerProperties, sr) + } else if schemeID == "aws.auth#sigv4a" { + smithyhttp.SetSigV4ASigningRegions(&rscheme.SignerProperties, []string{sr}) + } + } + + return next.HandleFinalize(ctx, in) +} + +func addSetLegacyContextSigningOptionsMiddleware(stack *middleware.Stack) error { + return stack.Finalize.Insert(&setLegacyContextSigningOptionsMiddleware{}, "Signing", middleware.Before) +} + +type withAnonymous struct { + resolver AuthSchemeResolver +} + +var _ AuthSchemeResolver = (*withAnonymous)(nil) + +func (v *withAnonymous) ResolveAuthSchemes(ctx context.Context, params *AuthResolverParameters) ([]*smithyauth.Option, error) { + opts, err := v.resolver.ResolveAuthSchemes(ctx, params) + if err != nil { + return nil, err + } + + opts = append(opts, &smithyauth.Option{ + SchemeID: smithyauth.SchemeIDAnonymous, + }) + return opts, nil +} + +func wrapWithAnonymousAuth(options *Options) { + if _, ok := options.AuthSchemeResolver.(*defaultAuthSchemeResolver); !ok { + return + } + + options.AuthSchemeResolver = &withAnonymous{ + resolver: options.AuthSchemeResolver, + } +} + +// AuthResolverParameters contains the set of inputs necessary for auth scheme +// resolution. +type AuthResolverParameters struct { + // The name of the operation being invoked. + Operation string + + // The region in which the operation is being invoked. + Region string +} + +func bindAuthResolverParams(ctx context.Context, operation string, input interface{}, options Options) *AuthResolverParameters { + params := &AuthResolverParameters{ + Operation: operation, + } + + bindAuthParamsRegion(ctx, params, input, options) + + return params +} + +// AuthSchemeResolver returns a set of possible authentication options for an +// operation. +type AuthSchemeResolver interface { + ResolveAuthSchemes(context.Context, *AuthResolverParameters) ([]*smithyauth.Option, error) +} + +type defaultAuthSchemeResolver struct{} + +var _ AuthSchemeResolver = (*defaultAuthSchemeResolver)(nil) + +func (*defaultAuthSchemeResolver) ResolveAuthSchemes(ctx context.Context, params *AuthResolverParameters) ([]*smithyauth.Option, error) { + if overrides, ok := operationAuthOptions[params.Operation]; ok { + return overrides(params), nil + } + return serviceAuthOptions(params), nil +} + +var operationAuthOptions = map[string]func(*AuthResolverParameters) []*smithyauth.Option{} + +func serviceAuthOptions(params *AuthResolverParameters) []*smithyauth.Option { + return []*smithyauth.Option{ + { + SchemeID: smithyauth.SchemeIDSigV4, + SignerProperties: func() smithy.Properties { + var props smithy.Properties + smithyhttp.SetSigV4SigningName(&props, "partnercentral-selling") + smithyhttp.SetSigV4SigningRegion(&props, params.Region) + return props + }(), + }, + } +} + +type resolveAuthSchemeMiddleware struct { + operation string + options Options +} + +func (*resolveAuthSchemeMiddleware) ID() string { + return "ResolveAuthScheme" +} + +func (m *resolveAuthSchemeMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "ResolveAuthScheme") + defer span.End() + + params := bindAuthResolverParams(ctx, m.operation, getOperationInput(ctx), m.options) + options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params) + if err != nil { + return out, metadata, fmt.Errorf("resolve auth scheme: %w", err) + } + + scheme, ok := m.selectScheme(options) + if !ok { + return out, metadata, fmt.Errorf("could not select an auth scheme") + } + + ctx = setResolvedAuthScheme(ctx, scheme) + + span.SetProperty("auth.scheme_id", scheme.Scheme.SchemeID()) + span.End() + return next.HandleFinalize(ctx, in) +} + +func (m *resolveAuthSchemeMiddleware) selectScheme(options []*smithyauth.Option) (*resolvedAuthScheme, bool) { + for _, option := range options { + if option.SchemeID == smithyauth.SchemeIDAnonymous { + return newResolvedAuthScheme(smithyhttp.NewAnonymousScheme(), option), true + } + + for _, scheme := range m.options.AuthSchemes { + if scheme.SchemeID() != option.SchemeID { + continue + } + + if scheme.IdentityResolver(m.options) != nil { + return newResolvedAuthScheme(scheme, option), true + } + } + } + + return nil, false +} + +type resolvedAuthSchemeKey struct{} + +type resolvedAuthScheme struct { + Scheme smithyhttp.AuthScheme + IdentityProperties smithy.Properties + SignerProperties smithy.Properties +} + +func newResolvedAuthScheme(scheme smithyhttp.AuthScheme, option *smithyauth.Option) *resolvedAuthScheme { + return &resolvedAuthScheme{ + Scheme: scheme, + IdentityProperties: option.IdentityProperties, + SignerProperties: option.SignerProperties, + } +} + +func setResolvedAuthScheme(ctx context.Context, scheme *resolvedAuthScheme) context.Context { + return middleware.WithStackValue(ctx, resolvedAuthSchemeKey{}, scheme) +} + +func getResolvedAuthScheme(ctx context.Context) *resolvedAuthScheme { + v, _ := middleware.GetStackValue(ctx, resolvedAuthSchemeKey{}).(*resolvedAuthScheme) + return v +} + +type getIdentityMiddleware struct { + options Options +} + +func (*getIdentityMiddleware) ID() string { + return "GetIdentity" +} + +func (m *getIdentityMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + innerCtx, span := tracing.StartSpan(ctx, "GetIdentity") + defer span.End() + + rscheme := getResolvedAuthScheme(innerCtx) + if rscheme == nil { + return out, metadata, fmt.Errorf("no resolved auth scheme") + } + + resolver := rscheme.Scheme.IdentityResolver(m.options) + if resolver == nil { + return out, metadata, fmt.Errorf("no identity resolver") + } + + identity, err := timeOperationMetric(ctx, "client.call.resolve_identity_duration", + func() (smithyauth.Identity, error) { + return resolver.GetIdentity(innerCtx, rscheme.IdentityProperties) + }, + func(o *metrics.RecordMetricOptions) { + o.Properties.Set("auth.scheme_id", rscheme.Scheme.SchemeID()) + }) + if err != nil { + return out, metadata, fmt.Errorf("get identity: %w", err) + } + + ctx = setIdentity(ctx, identity) + + span.End() + return next.HandleFinalize(ctx, in) +} + +type identityKey struct{} + +func setIdentity(ctx context.Context, identity smithyauth.Identity) context.Context { + return middleware.WithStackValue(ctx, identityKey{}, identity) +} + +func getIdentity(ctx context.Context) smithyauth.Identity { + v, _ := middleware.GetStackValue(ctx, identityKey{}).(smithyauth.Identity) + return v +} + +type signRequestMiddleware struct { + options Options +} + +func (*signRequestMiddleware) ID() string { + return "Signing" +} + +func (m *signRequestMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "SignRequest") + defer span.End() + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unexpected transport type %T", in.Request) + } + + rscheme := getResolvedAuthScheme(ctx) + if rscheme == nil { + return out, metadata, fmt.Errorf("no resolved auth scheme") + } + + identity := getIdentity(ctx) + if identity == nil { + return out, metadata, fmt.Errorf("no identity") + } + + signer := rscheme.Scheme.Signer() + if signer == nil { + return out, metadata, fmt.Errorf("no signer") + } + + _, err = timeOperationMetric(ctx, "client.call.signing_duration", func() (any, error) { + return nil, signer.SignRequest(ctx, req, identity, rscheme.SignerProperties) + }, func(o *metrics.RecordMetricOptions) { + o.Properties.Set("auth.scheme_id", rscheme.Scheme.SchemeID()) + }) + if err != nil { + return out, metadata, fmt.Errorf("sign request: %w", err) + } + + span.End() + return next.HandleFinalize(ctx, in) +} diff --git a/service/partnercentralselling/deserializers.go b/service/partnercentralselling/deserializers.go new file mode 100644 index 00000000000..82802ef5f1a --- /dev/null +++ b/service/partnercentralselling/deserializers.go @@ -0,0 +1,6132 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws/protocol/restjson" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + smithy "github.com/aws/smithy-go" + smithyio "github.com/aws/smithy-go/io" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/ptr" + smithytime "github.com/aws/smithy-go/time" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "io" + "io/ioutil" + "strings" + "time" +) + +func deserializeS3Expires(v string) (*time.Time, error) { + t, err := smithytime.ParseHTTPDate(v) + if err != nil { + return nil, nil + } + return &t, nil +} + +type awsAwsjson10_deserializeOpAssignOpportunity struct { +} + +func (*awsAwsjson10_deserializeOpAssignOpportunity) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpAssignOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorAssignOpportunity(response, &metadata) + } + output := &AssignOpportunityOutput{} + 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 awsAwsjson10_deserializeOpErrorAssignOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpAssociateOpportunity struct { +} + +func (*awsAwsjson10_deserializeOpAssociateOpportunity) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpAssociateOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorAssociateOpportunity(response, &metadata) + } + output := &AssociateOpportunityOutput{} + 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 awsAwsjson10_deserializeOpErrorAssociateOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpCreateOpportunity struct { +} + +func (*awsAwsjson10_deserializeOpCreateOpportunity) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpCreateOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorCreateOpportunity(response, &metadata) + } + output := &CreateOpportunityOutput{} + 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 = awsAwsjson10_deserializeOpDocumentCreateOpportunityOutput(&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 awsAwsjson10_deserializeOpErrorCreateOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpDisassociateOpportunity struct { +} + +func (*awsAwsjson10_deserializeOpDisassociateOpportunity) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpDisassociateOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorDisassociateOpportunity(response, &metadata) + } + output := &DisassociateOpportunityOutput{} + 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 awsAwsjson10_deserializeOpErrorDisassociateOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpGetAwsOpportunitySummary struct { +} + +func (*awsAwsjson10_deserializeOpGetAwsOpportunitySummary) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpGetAwsOpportunitySummary) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorGetAwsOpportunitySummary(response, &metadata) + } + output := &GetAwsOpportunitySummaryOutput{} + 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 = awsAwsjson10_deserializeOpDocumentGetAwsOpportunitySummaryOutput(&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 awsAwsjson10_deserializeOpErrorGetAwsOpportunitySummary(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpGetEngagementInvitation struct { +} + +func (*awsAwsjson10_deserializeOpGetEngagementInvitation) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpGetEngagementInvitation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorGetEngagementInvitation(response, &metadata) + } + output := &GetEngagementInvitationOutput{} + 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 = awsAwsjson10_deserializeOpDocumentGetEngagementInvitationOutput(&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 awsAwsjson10_deserializeOpErrorGetEngagementInvitation(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpGetOpportunity struct { +} + +func (*awsAwsjson10_deserializeOpGetOpportunity) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpGetOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorGetOpportunity(response, &metadata) + } + output := &GetOpportunityOutput{} + 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 = awsAwsjson10_deserializeOpDocumentGetOpportunityOutput(&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 awsAwsjson10_deserializeOpErrorGetOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpListEngagementInvitations struct { +} + +func (*awsAwsjson10_deserializeOpListEngagementInvitations) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListEngagementInvitations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorListEngagementInvitations(response, &metadata) + } + output := &ListEngagementInvitationsOutput{} + 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 = awsAwsjson10_deserializeOpDocumentListEngagementInvitationsOutput(&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 awsAwsjson10_deserializeOpErrorListEngagementInvitations(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpListOpportunities struct { +} + +func (*awsAwsjson10_deserializeOpListOpportunities) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListOpportunities) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorListOpportunities(response, &metadata) + } + output := &ListOpportunitiesOutput{} + 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 = awsAwsjson10_deserializeOpDocumentListOpportunitiesOutput(&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 awsAwsjson10_deserializeOpErrorListOpportunities(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpListSolutions struct { +} + +func (*awsAwsjson10_deserializeOpListSolutions) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListSolutions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorListSolutions(response, &metadata) + } + output := &ListSolutionsOutput{} + 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 = awsAwsjson10_deserializeOpDocumentListSolutionsOutput(&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 awsAwsjson10_deserializeOpErrorListSolutions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpRejectEngagementInvitation struct { +} + +func (*awsAwsjson10_deserializeOpRejectEngagementInvitation) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpRejectEngagementInvitation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorRejectEngagementInvitation(response, &metadata) + } + output := &RejectEngagementInvitationOutput{} + 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 awsAwsjson10_deserializeOpErrorRejectEngagementInvitation(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask struct { +} + +func (*awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpStartEngagementByAcceptingInvitationTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorStartEngagementByAcceptingInvitationTask(response, &metadata) + } + output := &StartEngagementByAcceptingInvitationTaskOutput{} + 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 = awsAwsjson10_deserializeOpDocumentStartEngagementByAcceptingInvitationTaskOutput(&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 awsAwsjson10_deserializeOpErrorStartEngagementByAcceptingInvitationTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask struct { +} + +func (*awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpStartEngagementFromOpportunityTask) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorStartEngagementFromOpportunityTask(response, &metadata) + } + output := &StartEngagementFromOpportunityTaskOutput{} + 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 = awsAwsjson10_deserializeOpDocumentStartEngagementFromOpportunityTaskOutput(&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 awsAwsjson10_deserializeOpErrorStartEngagementFromOpportunityTask(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpUpdateOpportunity struct { +} + +func (*awsAwsjson10_deserializeOpUpdateOpportunity) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpUpdateOpportunity) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsjson10_deserializeOpErrorUpdateOpportunity(response, &metadata) + } + output := &UpdateOpportunityOutput{} + 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 = awsAwsjson10_deserializeOpDocumentUpdateOpportunityOutput(&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 awsAwsjson10_deserializeOpErrorUpdateOpportunity(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + bodyInfo, err := getProtocolErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if typ, ok := resolveProtocolErrorType(headerCode, bodyInfo); ok { + errorCode = restjson.SanitizeErrorCode(typ) + } + if len(bodyInfo.Message) != 0 { + errorMessage = bodyInfo.Message + } + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + 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, + Message: errorMessage, + } + return genericError + + } +} + +func awsAwsjson10_deserializeErrorAccessDeniedException(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.AccessDeniedException{} + err := awsAwsjson10_deserializeDocumentAccessDeniedException(&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 awsAwsjson10_deserializeErrorConflictException(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.ConflictException{} + err := awsAwsjson10_deserializeDocumentConflictException(&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 awsAwsjson10_deserializeErrorInternalServerException(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.InternalServerException{} + err := awsAwsjson10_deserializeDocumentInternalServerException(&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 awsAwsjson10_deserializeErrorResourceNotFoundException(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.ResourceNotFoundException{} + err := awsAwsjson10_deserializeDocumentResourceNotFoundException(&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 awsAwsjson10_deserializeErrorServiceQuotaExceededException(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.ServiceQuotaExceededException{} + err := awsAwsjson10_deserializeDocumentServiceQuotaExceededException(&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 awsAwsjson10_deserializeErrorThrottlingException(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.ThrottlingException{} + err := awsAwsjson10_deserializeDocumentThrottlingException(&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 awsAwsjson10_deserializeErrorValidationException(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.ValidationException{} + err := awsAwsjson10_deserializeDocumentValidationException(&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 awsAwsjson10_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, 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.AccessDeniedException + if *v == nil { + sv = &types.AccessDeniedException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAccount(v **types.Account, 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.Account + if *v == nil { + sv = &types.Account{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Address": + if err := awsAwsjson10_deserializeDocumentAddress(&sv.Address, value); err != nil { + return err + } + + case "AwsAccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) + } + sv.AwsAccountId = ptr.String(jtv) + } + + case "CompanyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Name to be of type string, got %T instead", value) + } + sv.CompanyName = ptr.String(jtv) + } + + case "Duns": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DunsNumber to be of type string, got %T instead", value) + } + sv.Duns = ptr.String(jtv) + } + + case "Industry": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Industry to be of type string, got %T instead", value) + } + sv.Industry = types.Industry(jtv) + } + + case "OtherIndustry": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.OtherIndustry = ptr.String(jtv) + } + + case "WebsiteUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WebsiteUrl to be of type string, got %T instead", value) + } + sv.WebsiteUrl = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAccountReceiver(v **types.AccountReceiver, 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.AccountReceiver + if *v == nil { + sv = &types.AccountReceiver{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Alias": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Alias to be of type string, got %T instead", value) + } + sv.Alias = ptr.String(jtv) + } + + case "AwsAccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccount to be of type string, got %T instead", value) + } + sv.AwsAccountId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAccountSummary(v **types.AccountSummary, 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.AccountSummary + if *v == nil { + sv = &types.AccountSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Address": + if err := awsAwsjson10_deserializeDocumentAddressSummary(&sv.Address, value); err != nil { + return err + } + + case "CompanyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Name to be of type string, got %T instead", value) + } + sv.CompanyName = ptr.String(jtv) + } + + case "Industry": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Industry to be of type string, got %T instead", value) + } + sv.Industry = types.Industry(jtv) + } + + case "OtherIndustry": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.OtherIndustry = ptr.String(jtv) + } + + case "WebsiteUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected WebsiteUrl to be of type string, got %T instead", value) + } + sv.WebsiteUrl = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAddress(v **types.Address, 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.Address + if *v == nil { + sv = &types.Address{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "City": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + } + sv.City = ptr.String(jtv) + } + + case "CountryCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CountryCode to be of type string, got %T instead", value) + } + sv.CountryCode = types.CountryCode(jtv) + } + + case "PostalCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + } + sv.PostalCode = ptr.String(jtv) + } + + case "StateOrRegion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + } + sv.StateOrRegion = ptr.String(jtv) + } + + case "StreetAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + } + sv.StreetAddress = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAddressSummary(v **types.AddressSummary, 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.AddressSummary + if *v == nil { + sv = &types.AddressSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "City": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + } + sv.City = ptr.String(jtv) + } + + case "CountryCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CountryCode to be of type string, got %T instead", value) + } + sv.CountryCode = types.CountryCode(jtv) + } + + case "PostalCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + } + sv.PostalCode = ptr.String(jtv) + } + + case "StateOrRegion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AddressPart to be of type string, got %T instead", value) + } + sv.StateOrRegion = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentApnPrograms(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentAwsMarketplaceOfferIdentifiers(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsMarketplaceOfferIdentifier to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentAwsOpportunityCustomer(v **types.AwsOpportunityCustomer, 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.AwsOpportunityCustomer + if *v == nil { + sv = &types.AwsOpportunityCustomer{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Contacts": + if err := awsAwsjson10_deserializeDocumentCustomerContactsList(&sv.Contacts, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAwsOpportunityInsights(v **types.AwsOpportunityInsights, 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.AwsOpportunityInsights + if *v == nil { + sv = &types.AwsOpportunityInsights{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EngagementScore": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementScore to be of type string, got %T instead", value) + } + sv.EngagementScore = types.EngagementScore(jtv) + } + + case "NextBestActions": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.NextBestActions = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAwsOpportunityLifeCycle(v **types.AwsOpportunityLifeCycle, 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.AwsOpportunityLifeCycle + if *v == nil { + sv = &types.AwsOpportunityLifeCycle{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClosedLostReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsClosedLostReason to be of type string, got %T instead", value) + } + sv.ClosedLostReason = types.AwsClosedLostReason(jtv) + } + + case "NextSteps": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) + } + sv.NextSteps = ptr.String(jtv) + } + + case "NextStepsHistory": + if err := awsAwsjson10_deserializeDocumentProfileNextStepsHistories(&sv.NextStepsHistory, value); err != nil { + return err + } + + case "Stage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsOpportunityStage to be of type string, got %T instead", value) + } + sv.Stage = types.AwsOpportunityStage(jtv) + } + + case "TargetCloseDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Date to be of type string, got %T instead", value) + } + sv.TargetCloseDate = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAwsOpportunityProject(v **types.AwsOpportunityProject, 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.AwsOpportunityProject + if *v == nil { + sv = &types.AwsOpportunityProject{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ExpectedCustomerSpend": + if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(&sv.ExpectedCustomerSpend, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAwsOpportunityRelatedEntities(v **types.AwsOpportunityRelatedEntities, 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.AwsOpportunityRelatedEntities + if *v == nil { + sv = &types.AwsOpportunityRelatedEntities{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AwsProducts": + if err := awsAwsjson10_deserializeDocumentAwsProductIdentifiers(&sv.AwsProducts, value); err != nil { + return err + } + + case "Solutions": + if err := awsAwsjson10_deserializeDocumentSolutionIdentifiers(&sv.Solutions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentAwsOpportunityTeamMembersList(v *[]types.AwsTeamMember, 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.AwsTeamMember + if *v == nil { + cv = []types.AwsTeamMember{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AwsTeamMember + destAddr := &col + if err := awsAwsjson10_deserializeDocumentAwsTeamMember(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentAwsProductIdentifiers(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsProductIdentifier to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentAwsTeamMember(v **types.AwsTeamMember, 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.AwsTeamMember + if *v == nil { + sv = &types.AwsTeamMember{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BusinessTitle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsMemberBusinessTitle to be of type string, got %T instead", value) + } + sv.BusinessTitle = types.AwsMemberBusinessTitle(jtv) + } + + case "Email": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Email to be of type string, got %T instead", value) + } + sv.Email = ptr.String(jtv) + } + + case "FirstName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Name to be of type string, got %T instead", value) + } + sv.FirstName = ptr.String(jtv) + } + + case "LastName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Name to be of type string, got %T instead", value) + } + sv.LastName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentChannels(v *[]types.Channel, 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.Channel + if *v == nil { + cv = []types.Channel{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Channel + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Channel to be of type string, got %T instead", value) + } + col = types.Channel(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentConflictException(v **types.ConflictException, 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.ConflictException + if *v == nil { + sv = &types.ConflictException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentContact(v **types.Contact, 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.Contact + if *v == nil { + sv = &types.Contact{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BusinessTitle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JobTitle to be of type string, got %T instead", value) + } + sv.BusinessTitle = ptr.String(jtv) + } + + case "Email": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Email to be of type string, got %T instead", value) + } + sv.Email = ptr.String(jtv) + } + + case "FirstName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Name to be of type string, got %T instead", value) + } + sv.FirstName = ptr.String(jtv) + } + + case "LastName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Name to be of type string, got %T instead", value) + } + sv.LastName = ptr.String(jtv) + } + + case "Phone": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PhoneNumber to be of type string, got %T instead", value) + } + sv.Phone = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentCustomer(v **types.Customer, 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.Customer + if *v == nil { + sv = &types.Customer{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Account": + if err := awsAwsjson10_deserializeDocumentAccount(&sv.Account, value); err != nil { + return err + } + + case "Contacts": + if err := awsAwsjson10_deserializeDocumentCustomerContactsList(&sv.Contacts, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentCustomerContactsList(v *[]types.Contact, 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.Contact + if *v == nil { + cv = []types.Contact{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Contact + destAddr := &col + if err := awsAwsjson10_deserializeDocumentContact(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentCustomerSummary(v **types.CustomerSummary, 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.CustomerSummary + if *v == nil { + sv = &types.CustomerSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Account": + if err := awsAwsjson10_deserializeDocumentAccountSummary(&sv.Account, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentDeliveryModels(v *[]types.DeliveryModel, 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.DeliveryModel + if *v == nil { + cv = []types.DeliveryModel{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.DeliveryModel + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DeliveryModel to be of type string, got %T instead", value) + } + col = types.DeliveryModel(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementCustomer(v **types.EngagementCustomer, 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.EngagementCustomer + if *v == nil { + sv = &types.EngagementCustomer{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CompanyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CompanyName to be of type string, got %T instead", value) + } + sv.CompanyName = ptr.String(jtv) + } + + case "CountryCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CountryCode to be of type string, got %T instead", value) + } + sv.CountryCode = types.CountryCode(jtv) + } + + case "Industry": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Industry to be of type string, got %T instead", value) + } + sv.Industry = types.Industry(jtv) + } + + case "WebsiteUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CompanyWebsiteUrl to be of type string, got %T instead", value) + } + sv.WebsiteUrl = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementInvitationSummaries(v *[]types.EngagementInvitationSummary, 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.EngagementInvitationSummary + if *v == nil { + cv = []types.EngagementInvitationSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.EngagementInvitationSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentEngagementInvitationSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentEngagementInvitationSummary(v **types.EngagementInvitationSummary, 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.EngagementInvitationSummary + if *v == nil { + sv = &types.EngagementInvitationSummary{} + } 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 "Catalog": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CatalogIdentifier to be of type string, got %T instead", value) + } + sv.Catalog = ptr.String(jtv) + } + + case "EngagementTitle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementTitle to be of type string, got %T instead", value) + } + sv.EngagementTitle = ptr.String(jtv) + } + + case "ExpirationDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.ExpirationDate = ptr.Time(t) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementInvitationArnOrIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "InvitationDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.InvitationDate = ptr.Time(t) + } + + case "PayloadType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementInvitationPayloadType to be of type string, got %T instead", value) + } + sv.PayloadType = types.EngagementInvitationPayloadType(jtv) + } + + case "Receiver": + if err := awsAwsjson10_deserializeDocumentReceiver(&sv.Receiver, value); err != nil { + return err + } + + case "SenderAwsAccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccountIdOrLabel to be of type string, got %T instead", value) + } + sv.SenderAwsAccountId = ptr.String(jtv) + } + + case "SenderCompanyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.SenderCompanyName = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InvitationStatus to be of type string, got %T instead", value) + } + sv.Status = types.InvitationStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentExpectedCustomerSpend(v **types.ExpectedCustomerSpend, 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.ExpectedCustomerSpend + if *v == nil { + sv = &types.ExpectedCustomerSpend{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Amount": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Amount = ptr.String(jtv) + } + + case "CurrencyCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CurrencyCode to be of type string, got %T instead", value) + } + sv.CurrencyCode = types.CurrencyCode(jtv) + } + + case "Frequency": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaymentFrequency to be of type string, got %T instead", value) + } + sv.Frequency = types.PaymentFrequency(jtv) + } + + case "TargetCompany": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.TargetCompany = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(v *[]types.ExpectedCustomerSpend, 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.ExpectedCustomerSpend + if *v == nil { + cv = []types.ExpectedCustomerSpend{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ExpectedCustomerSpend + destAddr := &col + if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpend(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentInternalServerException(v **types.InternalServerException, 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.InternalServerException + if *v == nil { + sv = &types.InternalServerException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentLifeCycle(v **types.LifeCycle, 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.LifeCycle + if *v == nil { + sv = &types.LifeCycle{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClosedLostReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClosedLostReason to be of type string, got %T instead", value) + } + sv.ClosedLostReason = types.ClosedLostReason(jtv) + } + + case "NextSteps": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) + } + sv.NextSteps = ptr.String(jtv) + } + + case "NextStepsHistory": + if err := awsAwsjson10_deserializeDocumentNextStepsHistories(&sv.NextStepsHistory, value); err != nil { + return err + } + + case "ReviewComments": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ReviewComments = ptr.String(jtv) + } + + case "ReviewStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReviewStatus to be of type string, got %T instead", value) + } + sv.ReviewStatus = types.ReviewStatus(jtv) + } + + case "ReviewStatusReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ReviewStatusReason = ptr.String(jtv) + } + + case "Stage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Stage to be of type string, got %T instead", value) + } + sv.Stage = types.Stage(jtv) + } + + case "TargetCloseDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Date to be of type string, got %T instead", value) + } + sv.TargetCloseDate = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentLifeCycleSummary(v **types.LifeCycleSummary, 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.LifeCycleSummary + if *v == nil { + sv = &types.LifeCycleSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ClosedLostReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ClosedLostReason to be of type string, got %T instead", value) + } + sv.ClosedLostReason = types.ClosedLostReason(jtv) + } + + case "NextSteps": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) + } + sv.NextSteps = ptr.String(jtv) + } + + case "ReviewComments": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ReviewComments = ptr.String(jtv) + } + + case "ReviewStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReviewStatus to be of type string, got %T instead", value) + } + sv.ReviewStatus = types.ReviewStatus(jtv) + } + + case "ReviewStatusReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ReviewStatusReason = ptr.String(jtv) + } + + case "Stage": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Stage to be of type string, got %T instead", value) + } + sv.Stage = types.Stage(jtv) + } + + case "TargetCloseDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Date to be of type string, got %T instead", value) + } + sv.TargetCloseDate = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentMarketing(v **types.Marketing, 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.Marketing + if *v == nil { + sv = &types.Marketing{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AwsFundingUsed": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsFundingUsed to be of type string, got %T instead", value) + } + sv.AwsFundingUsed = types.AwsFundingUsed(jtv) + } + + case "CampaignName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.CampaignName = ptr.String(jtv) + } + + case "Channels": + if err := awsAwsjson10_deserializeDocumentChannels(&sv.Channels, value); err != nil { + return err + } + + case "Source": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected MarketingSource to be of type string, got %T instead", value) + } + sv.Source = types.MarketingSource(jtv) + } + + case "UseCases": + if err := awsAwsjson10_deserializeDocumentUseCases(&sv.UseCases, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentMonetaryValue(v **types.MonetaryValue, 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.MonetaryValue + if *v == nil { + sv = &types.MonetaryValue{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Amount": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Amount = ptr.String(jtv) + } + + case "CurrencyCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CurrencyCode to be of type string, got %T instead", value) + } + sv.CurrencyCode = types.CurrencyCode(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentNextStepsHistories(v *[]types.NextStepsHistory, 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.NextStepsHistory + if *v == nil { + cv = []types.NextStepsHistory{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.NextStepsHistory + destAddr := &col + if err := awsAwsjson10_deserializeDocumentNextStepsHistory(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentNextStepsHistory(v **types.NextStepsHistory, 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.NextStepsHistory + if *v == nil { + sv = &types.NextStepsHistory{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Time": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.Time = ptr.Time(t) + } + + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentOpportunityInvitationPayload(v **types.OpportunityInvitationPayload, 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.OpportunityInvitationPayload + if *v == nil { + sv = &types.OpportunityInvitationPayload{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Customer": + if err := awsAwsjson10_deserializeDocumentEngagementCustomer(&sv.Customer, value); err != nil { + return err + } + + case "Project": + if err := awsAwsjson10_deserializeDocumentProjectDetails(&sv.Project, value); err != nil { + return err + } + + case "ReceiverResponsibilities": + if err := awsAwsjson10_deserializeDocumentReceiverResponsibilityList(&sv.ReceiverResponsibilities, value); err != nil { + return err + } + + case "SenderContacts": + if err := awsAwsjson10_deserializeDocumentSenderContactList(&sv.SenderContacts, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentOpportunitySummaries(v *[]types.OpportunitySummary, 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.OpportunitySummary + if *v == nil { + cv = []types.OpportunitySummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.OpportunitySummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentOpportunitySummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentOpportunitySummary(v **types.OpportunitySummary, 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.OpportunitySummary + if *v == nil { + sv = &types.OpportunitySummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Catalog": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CatalogIdentifier to be of type string, got %T instead", value) + } + sv.Catalog = ptr.String(jtv) + } + + case "CreatedDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedDate = ptr.Time(t) + } + + case "Customer": + if err := awsAwsjson10_deserializeDocumentCustomerSummary(&sv.Customer, value); err != nil { + return err + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "LastModifiedDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.LastModifiedDate = ptr.Time(t) + } + + case "LifeCycle": + if err := awsAwsjson10_deserializeDocumentLifeCycleSummary(&sv.LifeCycle, value); err != nil { + return err + } + + case "OpportunityType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityType to be of type string, got %T instead", value) + } + sv.OpportunityType = types.OpportunityType(jtv) + } + + case "PartnerOpportunityIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.PartnerOpportunityIdentifier = ptr.String(jtv) + } + + case "Project": + if err := awsAwsjson10_deserializeDocumentProjectSummary(&sv.Project, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentPartnerOpportunityTeamMembersList(v *[]types.Contact, 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.Contact + if *v == nil { + cv = []types.Contact{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Contact + destAddr := &col + if err := awsAwsjson10_deserializeDocumentContact(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentPayload(v *types.Payload, 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 uv types.Payload +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "OpportunityInvitation": + var mv types.OpportunityInvitationPayload + destAddr := &mv + if err := awsAwsjson10_deserializeDocumentOpportunityInvitationPayload(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.PayloadMemberOpportunityInvitation{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsAwsjson10_deserializeDocumentPrimaryNeedsFromAws(v *[]types.PrimaryNeedFromAws, 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.PrimaryNeedFromAws + if *v == nil { + cv = []types.PrimaryNeedFromAws{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.PrimaryNeedFromAws + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PrimaryNeedFromAws to be of type string, got %T instead", value) + } + col = types.PrimaryNeedFromAws(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentProfileNextStepsHistories(v *[]types.ProfileNextStepsHistory, 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.ProfileNextStepsHistory + if *v == nil { + cv = []types.ProfileNextStepsHistory{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ProfileNextStepsHistory + destAddr := &col + if err := awsAwsjson10_deserializeDocumentProfileNextStepsHistory(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentProfileNextStepsHistory(v **types.ProfileNextStepsHistory, 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.ProfileNextStepsHistory + if *v == nil { + sv = &types.ProfileNextStepsHistory{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Time": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.Time = ptr.Time(t) + } + + case "Value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentProject(v **types.Project, 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.Project + if *v == nil { + sv = &types.Project{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AdditionalComments": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.AdditionalComments = ptr.String(jtv) + } + + case "ApnPrograms": + if err := awsAwsjson10_deserializeDocumentApnPrograms(&sv.ApnPrograms, value); err != nil { + return err + } + + case "CompetitorName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CompetitorName to be of type string, got %T instead", value) + } + sv.CompetitorName = types.CompetitorName(jtv) + } + + case "CustomerBusinessProblem": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) + } + sv.CustomerBusinessProblem = ptr.String(jtv) + } + + case "CustomerUseCase": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.CustomerUseCase = ptr.String(jtv) + } + + case "DeliveryModels": + if err := awsAwsjson10_deserializeDocumentDeliveryModels(&sv.DeliveryModels, value); err != nil { + return err + } + + case "ExpectedCustomerSpend": + if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(&sv.ExpectedCustomerSpend, value); err != nil { + return err + } + + case "OtherCompetitorNames": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.OtherCompetitorNames = ptr.String(jtv) + } + + case "OtherSolutionDescription": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) + } + sv.OtherSolutionDescription = ptr.String(jtv) + } + + case "RelatedOpportunityIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + } + sv.RelatedOpportunityIdentifier = ptr.String(jtv) + } + + case "SalesActivities": + if err := awsAwsjson10_deserializeDocumentSalesActivities(&sv.SalesActivities, value); err != nil { + return err + } + + case "Title": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PiiString to be of type string, got %T instead", value) + } + sv.Title = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentProjectDetails(v **types.ProjectDetails, 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.ProjectDetails + if *v == nil { + sv = &types.ProjectDetails{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BusinessProblem": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementCustomerBusinessProblem to be of type string, got %T instead", value) + } + sv.BusinessProblem = ptr.String(jtv) + } + + case "ExpectedCustomerSpend": + if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(&sv.ExpectedCustomerSpend, value); err != nil { + return err + } + + case "TargetCompletionDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Date to be of type string, got %T instead", value) + } + sv.TargetCompletionDate = ptr.String(jtv) + } + + case "Title": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Title = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentProjectSummary(v **types.ProjectSummary, 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.ProjectSummary + if *v == nil { + sv = &types.ProjectSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DeliveryModels": + if err := awsAwsjson10_deserializeDocumentDeliveryModels(&sv.DeliveryModels, value); err != nil { + return err + } + + case "ExpectedCustomerSpend": + if err := awsAwsjson10_deserializeDocumentExpectedCustomerSpendList(&sv.ExpectedCustomerSpend, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentReceiver(v *types.Receiver, 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 uv types.Receiver +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "Account": + var mv types.AccountReceiver + destAddr := &mv + if err := awsAwsjson10_deserializeDocumentAccountReceiver(&destAddr, value); err != nil { + return err + } + mv = *destAddr + uv = &types.ReceiverMemberAccount{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + +func awsAwsjson10_deserializeDocumentReceiverResponsibilityList(v *[]types.ReceiverResponsibility, 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.ReceiverResponsibility + if *v == nil { + cv = []types.ReceiverResponsibility{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ReceiverResponsibility + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReceiverResponsibility to be of type string, got %T instead", value) + } + col = types.ReceiverResponsibility(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentRelatedEntityIdentifiers(v **types.RelatedEntityIdentifiers, 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.RelatedEntityIdentifiers + if *v == nil { + sv = &types.RelatedEntityIdentifiers{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AwsMarketplaceOffers": + if err := awsAwsjson10_deserializeDocumentAwsMarketplaceOfferIdentifiers(&sv.AwsMarketplaceOffers, value); err != nil { + return err + } + + case "AwsProducts": + if err := awsAwsjson10_deserializeDocumentAwsProductIdentifiers(&sv.AwsProducts, value); err != nil { + return err + } + + case "Solutions": + if err := awsAwsjson10_deserializeDocumentSolutionIdentifiers(&sv.Solutions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, 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.ResourceNotFoundException + if *v == nil { + sv = &types.ResourceNotFoundException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentSalesActivities(v *[]types.SalesActivity, 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.SalesActivity + if *v == nil { + cv = []types.SalesActivity{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SalesActivity + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SalesActivity to be of type string, got %T instead", value) + } + col = types.SalesActivity(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentSenderContact(v **types.SenderContact, 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.SenderContact + if *v == nil { + sv = &types.SenderContact{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BusinessTitle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected JobTitle to be of type string, got %T instead", value) + } + sv.BusinessTitle = ptr.String(jtv) + } + + case "Email": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SenderContactEmail to be of type string, got %T instead", value) + } + sv.Email = ptr.String(jtv) + } + + case "FirstName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Name to be of type string, got %T instead", value) + } + sv.FirstName = ptr.String(jtv) + } + + case "LastName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Name to be of type string, got %T instead", value) + } + sv.LastName = ptr.String(jtv) + } + + case "Phone": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PhoneNumber to be of type string, got %T instead", value) + } + sv.Phone = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentSenderContactList(v *[]types.SenderContact, 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.SenderContact + if *v == nil { + cv = []types.SenderContact{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SenderContact + destAddr := &col + if err := awsAwsjson10_deserializeDocumentSenderContact(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentServiceQuotaExceededException(v **types.ServiceQuotaExceededException, 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.ServiceQuotaExceededException + if *v == nil { + sv = &types.ServiceQuotaExceededException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentSoftwareRevenue(v **types.SoftwareRevenue, 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.SoftwareRevenue + if *v == nil { + sv = &types.SoftwareRevenue{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DeliveryModel": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RevenueModel to be of type string, got %T instead", value) + } + sv.DeliveryModel = types.RevenueModel(jtv) + } + + case "EffectiveDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Date to be of type string, got %T instead", value) + } + sv.EffectiveDate = ptr.String(jtv) + } + + case "ExpirationDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Date to be of type string, got %T instead", value) + } + sv.ExpirationDate = ptr.String(jtv) + } + + case "Value": + if err := awsAwsjson10_deserializeDocumentMonetaryValue(&sv.Value, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentSolutionBase(v **types.SolutionBase, 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.SolutionBase + if *v == nil { + sv = &types.SolutionBase{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Catalog": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CatalogIdentifier to be of type string, got %T instead", value) + } + sv.Catalog = ptr.String(jtv) + } + + case "Category": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Category = ptr.String(jtv) + } + + case "CreatedDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedDate = ptr.Time(t) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SolutionIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SolutionStatus to be of type string, got %T instead", value) + } + sv.Status = types.SolutionStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentSolutionIdentifiers(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SolutionIdentifier to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentSolutionList(v *[]types.SolutionBase, 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.SolutionBase + if *v == nil { + cv = []types.SolutionBase{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SolutionBase + destAddr := &col + if err := awsAwsjson10_deserializeDocumentSolutionBase(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentThrottlingException(v **types.ThrottlingException, 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.ThrottlingException + if *v == nil { + sv = &types.ThrottlingException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentUseCases(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentValidationException(v **types.ValidationException, 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.ValidationException + if *v == nil { + sv = &types.ValidationException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ErrorList": + if err := awsAwsjson10_deserializeDocumentValidationExceptionErrorList(&sv.ErrorList, value); err != nil { + return err + } + + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "Reason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ValidationExceptionReason to be of type string, got %T instead", value) + } + sv.Reason = types.ValidationExceptionReason(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentValidationExceptionError(v **types.ValidationExceptionError, 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.ValidationExceptionError + if *v == nil { + sv = &types.ValidationExceptionError{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Code": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ValidationExceptionErrorCode to be of type string, got %T instead", value) + } + sv.Code = types.ValidationExceptionErrorCode(jtv) + } + + case "FieldName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.FieldName = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentValidationExceptionErrorList(v *[]types.ValidationExceptionError, 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.ValidationExceptionError + if *v == nil { + cv = []types.ValidationExceptionError{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ValidationExceptionError + destAddr := &col + if err := awsAwsjson10_deserializeDocumentValidationExceptionError(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeOpDocumentCreateOpportunityOutput(v **CreateOpportunityOutput, 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 *CreateOpportunityOutput + if *v == nil { + sv = &CreateOpportunityOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "LastModifiedDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.LastModifiedDate = ptr.Time(t) + } + + case "PartnerOpportunityIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.PartnerOpportunityIdentifier = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentGetAwsOpportunitySummaryOutput(v **GetAwsOpportunitySummaryOutput, 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 *GetAwsOpportunitySummaryOutput + if *v == nil { + sv = &GetAwsOpportunitySummaryOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Catalog": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CatalogIdentifier to be of type string, got %T instead", value) + } + sv.Catalog = ptr.String(jtv) + } + + case "Customer": + if err := awsAwsjson10_deserializeDocumentAwsOpportunityCustomer(&sv.Customer, value); err != nil { + return err + } + + case "Insights": + if err := awsAwsjson10_deserializeDocumentAwsOpportunityInsights(&sv.Insights, value); err != nil { + return err + } + + case "InvolvementType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SalesInvolvementType to be of type string, got %T instead", value) + } + sv.InvolvementType = types.SalesInvolvementType(jtv) + } + + case "InvolvementTypeChangeReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InvolvementTypeChangeReason to be of type string, got %T instead", value) + } + sv.InvolvementTypeChangeReason = types.InvolvementTypeChangeReason(jtv) + } + + case "LifeCycle": + if err := awsAwsjson10_deserializeDocumentAwsOpportunityLifeCycle(&sv.LifeCycle, value); err != nil { + return err + } + + case "OpportunityTeam": + if err := awsAwsjson10_deserializeDocumentAwsOpportunityTeamMembersList(&sv.OpportunityTeam, value); err != nil { + return err + } + + case "Origin": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityOrigin to be of type string, got %T instead", value) + } + sv.Origin = types.OpportunityOrigin(jtv) + } + + case "Project": + if err := awsAwsjson10_deserializeDocumentAwsOpportunityProject(&sv.Project, value); err != nil { + return err + } + + case "RelatedEntityIds": + if err := awsAwsjson10_deserializeDocumentAwsOpportunityRelatedEntities(&sv.RelatedEntityIds, value); err != nil { + return err + } + + case "RelatedOpportunityId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + } + sv.RelatedOpportunityId = ptr.String(jtv) + } + + case "Visibility": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + } + sv.Visibility = types.Visibility(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentGetEngagementInvitationOutput(v **GetEngagementInvitationOutput, 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 *GetEngagementInvitationOutput + if *v == nil { + sv = &GetEngagementInvitationOutput{} + } 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 "Catalog": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CatalogIdentifier to be of type string, got %T instead", value) + } + sv.Catalog = ptr.String(jtv) + } + + case "EngagementTitle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementTitle to be of type string, got %T instead", value) + } + sv.EngagementTitle = ptr.String(jtv) + } + + case "ExpirationDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.ExpirationDate = ptr.Time(t) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementInvitationArnOrIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "InvitationDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.InvitationDate = ptr.Time(t) + } + + case "Payload": + if err := awsAwsjson10_deserializeDocumentPayload(&sv.Payload, value); err != nil { + return err + } + + case "PayloadType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementInvitationPayloadType to be of type string, got %T instead", value) + } + sv.PayloadType = types.EngagementInvitationPayloadType(jtv) + } + + case "Receiver": + if err := awsAwsjson10_deserializeDocumentReceiver(&sv.Receiver, value); err != nil { + return err + } + + case "RejectionReason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RejectionReasonString to be of type string, got %T instead", value) + } + sv.RejectionReason = ptr.String(jtv) + } + + case "SenderAwsAccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccountIdOrLabel to be of type string, got %T instead", value) + } + sv.SenderAwsAccountId = ptr.String(jtv) + } + + case "SenderCompanyName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.SenderCompanyName = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InvitationStatus to be of type string, got %T instead", value) + } + sv.Status = types.InvitationStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentGetOpportunityOutput(v **GetOpportunityOutput, 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 *GetOpportunityOutput + if *v == nil { + sv = &GetOpportunityOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Catalog": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CatalogIdentifier to be of type string, got %T instead", value) + } + sv.Catalog = ptr.String(jtv) + } + + case "CreatedDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.CreatedDate = ptr.Time(t) + } + + case "Customer": + if err := awsAwsjson10_deserializeDocumentCustomer(&sv.Customer, value); err != nil { + return err + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "LastModifiedDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.LastModifiedDate = ptr.Time(t) + } + + case "LifeCycle": + if err := awsAwsjson10_deserializeDocumentLifeCycle(&sv.LifeCycle, value); err != nil { + return err + } + + case "Marketing": + if err := awsAwsjson10_deserializeDocumentMarketing(&sv.Marketing, value); err != nil { + return err + } + + case "NationalSecurity": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NationalSecurity to be of type string, got %T instead", value) + } + sv.NationalSecurity = types.NationalSecurity(jtv) + } + + case "OpportunityTeam": + if err := awsAwsjson10_deserializeDocumentPartnerOpportunityTeamMembersList(&sv.OpportunityTeam, value); err != nil { + return err + } + + case "OpportunityType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityType to be of type string, got %T instead", value) + } + sv.OpportunityType = types.OpportunityType(jtv) + } + + case "PartnerOpportunityIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.PartnerOpportunityIdentifier = ptr.String(jtv) + } + + case "PrimaryNeedsFromAws": + if err := awsAwsjson10_deserializeDocumentPrimaryNeedsFromAws(&sv.PrimaryNeedsFromAws, value); err != nil { + return err + } + + case "Project": + if err := awsAwsjson10_deserializeDocumentProject(&sv.Project, value); err != nil { + return err + } + + case "RelatedEntityIdentifiers": + if err := awsAwsjson10_deserializeDocumentRelatedEntityIdentifiers(&sv.RelatedEntityIdentifiers, value); err != nil { + return err + } + + case "SoftwareRevenue": + if err := awsAwsjson10_deserializeDocumentSoftwareRevenue(&sv.SoftwareRevenue, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentListEngagementInvitationsOutput(v **ListEngagementInvitationsOutput, 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 *ListEngagementInvitationsOutput + if *v == nil { + sv = &ListEngagementInvitationsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EngagementInvitationSummaries": + if err := awsAwsjson10_deserializeDocumentEngagementInvitationSummaries(&sv.EngagementInvitationSummaries, value); err != nil { + return err + } + + 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) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentListOpportunitiesOutput(v **ListOpportunitiesOutput, 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 *ListOpportunitiesOutput + if *v == nil { + sv = &ListOpportunitiesOutput{} + } 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 "OpportunitySummaries": + if err := awsAwsjson10_deserializeDocumentOpportunitySummaries(&sv.OpportunitySummaries, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentListSolutionsOutput(v **ListSolutionsOutput, 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 *ListSolutionsOutput + if *v == nil { + sv = &ListSolutionsOutput{} + } 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 "SolutionSummaries": + if err := awsAwsjson10_deserializeDocumentSolutionList(&sv.SolutionSummaries, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentStartEngagementByAcceptingInvitationTaskOutput(v **StartEngagementByAcceptingInvitationTaskOutput, 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 *StartEngagementByAcceptingInvitationTaskOutput + if *v == nil { + sv = &StartEngagementByAcceptingInvitationTaskOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EngagementInvitationId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EngagementInvitationIdentifier to be of type string, got %T instead", value) + } + sv.EngagementInvitationId = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "OpportunityId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + } + sv.OpportunityId = ptr.String(jtv) + } + + case "ReasonCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReasonCode to be of type string, got %T instead", value) + } + sv.ReasonCode = types.ReasonCode(jtv) + } + + case "StartTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.StartTime = ptr.Time(t) + } + + case "TaskArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TaskArn to be of type string, got %T instead", value) + } + sv.TaskArn = ptr.String(jtv) + } + + case "TaskId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TaskIdentifier to be of type string, got %T instead", value) + } + sv.TaskId = ptr.String(jtv) + } + + case "TaskStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TaskStatus to be of type string, got %T instead", value) + } + sv.TaskStatus = types.TaskStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentStartEngagementFromOpportunityTaskOutput(v **StartEngagementFromOpportunityTaskOutput, 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 *StartEngagementFromOpportunityTaskOutput + if *v == nil { + sv = &StartEngagementFromOpportunityTaskOutput{} + } 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 String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "OpportunityId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + } + sv.OpportunityId = ptr.String(jtv) + } + + case "ReasonCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ReasonCode to be of type string, got %T instead", value) + } + sv.ReasonCode = types.ReasonCode(jtv) + } + + case "StartTime": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.StartTime = ptr.Time(t) + } + + case "TaskArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TaskArn to be of type string, got %T instead", value) + } + sv.TaskArn = ptr.String(jtv) + } + + case "TaskId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TaskIdentifier to be of type string, got %T instead", value) + } + sv.TaskId = ptr.String(jtv) + } + + case "TaskStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TaskStatus to be of type string, got %T instead", value) + } + sv.TaskStatus = types.TaskStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentUpdateOpportunityOutput(v **UpdateOpportunityOutput, 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 *UpdateOpportunityOutput + if *v == nil { + sv = &UpdateOpportunityOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected OpportunityIdentifier to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "LastModifiedDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DateTime to be of type string, got %T instead", value) + } + t, err := smithytime.ParseDateTime(jtv) + if err != nil { + return err + } + sv.LastModifiedDate = ptr.Time(t) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type protocolErrorInfo struct { + Type string `json:"__type"` + Message string + Code any // nonstandard for awsjson but some services do present the type here +} + +func getProtocolErrorInfo(decoder *json.Decoder) (protocolErrorInfo, error) { + var errInfo protocolErrorInfo + if err := decoder.Decode(&errInfo); err != nil { + if err == io.EOF { + return errInfo, nil + } + return errInfo, err + } + + return errInfo, nil +} + +func resolveProtocolErrorType(headerType string, bodyInfo protocolErrorInfo) (string, bool) { + if len(headerType) != 0 { + return headerType, true + } else if len(bodyInfo.Type) != 0 { + return bodyInfo.Type, true + } else if code, ok := bodyInfo.Code.(string); ok && len(code) != 0 { + return code, true + } + return "", false +} diff --git a/service/partnercentralselling/doc.go b/service/partnercentralselling/doc.go new file mode 100644 index 00000000000..c08ba59c162 --- /dev/null +++ b/service/partnercentralselling/doc.go @@ -0,0 +1,53 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +// Package partnercentralselling provides the API client, operations, and +// parameter types for Partner Central Selling API. +// +// # AWS Partner Central API for Selling +// +// # AWS Partner Central API for Selling Reference Guide +// +// Amazon Web Services (AWS) Partner Central API reference guide is designed to +// help [AWS Partners]programmatically integrate their Customer Relationship Management (CRM) +// systems with AWS Partner Central. Through the Partner Central APIs, partners can +// automate and streamline their interactions with AWS Partner Central, ensuring a +// more efficient and effective engagement in joint business activities. +// +// The AWS Partner Central API service provides standard AWS API functionality. +// You can directly use the API [Actions], or you can use an AWS SDK to access an API +// that's tailored to the programming language or platform that you're using. For +// more information about AWS application development, see [Getting Started with AWS]. For more information +// about using AWS SDKs, see [AWS SDKs]. +// +// Features offered by AWS Partner Central API +// +// - Opportunity management: Facilitates the management of co-selling +// opportunities with AWS using API actions such as CreateOpportunity , +// UpdateOpportunity , ListOpportunities , GetOpportunity , and AssignOpportunity +// . +// +// - AWS referral management: Facilitates receiving referrals shared by AWS +// using actions like ListEngagementInvitations , GetEngagementInvitation , +// StartEngagementByAcceptingInvitation , and RejectEngagementInvitation . +// +// - Entity association: Associate related entities such as AWS Products, +// Partner Solutions, and AWS Marketplace Private Offers with opportunities using +// the actions AssociateOpportunity and DisassociateOpportunity . +// +// - View AWS opportunity details: Use the GetAWSOpportunitySummary action to +// retrieve real-time summaries of AWS opportunities that are linked to your +// opportunities. +// +// - List solutions: Provides list APIs for listing solutions partners offer +// using ListSolutions . +// +// - Event subscription: Partners can subscribe to real-time updates on +// opportunities by listening to events such as Opportunity Created, Opportunity +// Updated, Engagement Invitation Accepted, Engagement Invitation Rejected and +// Engagement Invitation Created using AWS EventBridge. +// +// [AWS Partners]: https://docs.aws.amazon.com/partners/programs/ +// [Actions]: https://docs.aws.amazon.com/partner-central/latest/selling-api/API_Operations.html +// [AWS SDKs]: https://docs.aws.amazon.com/aws-sdk +// [Getting Started with AWS]: https://docs.aws.amazon.com/getting-started +package partnercentralselling diff --git a/service/partnercentralselling/endpoints.go b/service/partnercentralselling/endpoints.go new file mode 100644 index 00000000000..f7c2724cfb4 --- /dev/null +++ b/service/partnercentralselling/endpoints.go @@ -0,0 +1,537 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "errors" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources" + "github.com/aws/aws-sdk-go-v2/internal/endpoints" + "github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn" + internalendpoints "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/internal/endpoints" + smithyauth "github.com/aws/smithy-go/auth" + smithyendpoints "github.com/aws/smithy-go/endpoints" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/ptr" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net/http" + "net/url" + "os" + "strings" +) + +// EndpointResolverOptions is the service endpoint resolver options +type EndpointResolverOptions = internalendpoints.Options + +// EndpointResolver interface for resolving service endpoints. +type EndpointResolver interface { + ResolveEndpoint(region string, options EndpointResolverOptions) (aws.Endpoint, error) +} + +var _ EndpointResolver = &internalendpoints.Resolver{} + +// NewDefaultEndpointResolver constructs a new service endpoint resolver +func NewDefaultEndpointResolver() *internalendpoints.Resolver { + return internalendpoints.New() +} + +// EndpointResolverFunc is a helper utility that wraps a function so it satisfies +// the EndpointResolver interface. This is useful when you want to add additional +// endpoint resolving logic, or stub out specific endpoints with custom values. +type EndpointResolverFunc func(region string, options EndpointResolverOptions) (aws.Endpoint, error) + +func (fn EndpointResolverFunc) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { + return fn(region, options) +} + +// EndpointResolverFromURL returns an EndpointResolver configured using the +// provided endpoint url. By default, the resolved endpoint resolver uses the +// client region as signing region, and the endpoint source is set to +// EndpointSourceCustom.You can provide functional options to configure endpoint +// values for the resolved endpoint. +func EndpointResolverFromURL(url string, optFns ...func(*aws.Endpoint)) EndpointResolver { + e := aws.Endpoint{URL: url, Source: aws.EndpointSourceCustom} + for _, fn := range optFns { + fn(&e) + } + + return EndpointResolverFunc( + func(region string, options EndpointResolverOptions) (aws.Endpoint, error) { + if len(e.SigningRegion) == 0 { + e.SigningRegion = region + } + return e, nil + }, + ) +} + +type ResolveEndpoint struct { + Resolver EndpointResolver + Options EndpointResolverOptions +} + +func (*ResolveEndpoint) ID() string { + return "ResolveEndpoint" +} + +func (m *ResolveEndpoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if !awsmiddleware.GetRequiresLegacyEndpoints(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + if m.Resolver == nil { + return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil") + } + + eo := m.Options + eo.Logger = middleware.GetLogger(ctx) + + var endpoint aws.Endpoint + endpoint, err = m.Resolver.ResolveEndpoint(awsmiddleware.GetRegion(ctx), eo) + if err != nil { + nf := (&aws.EndpointNotFoundError{}) + if errors.As(err, &nf) { + ctx = awsmiddleware.SetRequiresLegacyEndpoints(ctx, false) + return next.HandleSerialize(ctx, in) + } + return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) + } + + req.URL, err = url.Parse(endpoint.URL) + if err != nil { + return out, metadata, fmt.Errorf("failed to parse endpoint URL: %w", err) + } + + if len(awsmiddleware.GetSigningName(ctx)) == 0 { + signingName := endpoint.SigningName + if len(signingName) == 0 { + signingName = "partnercentral" + } + ctx = awsmiddleware.SetSigningName(ctx, signingName) + } + ctx = awsmiddleware.SetEndpointSource(ctx, endpoint.Source) + ctx = smithyhttp.SetHostnameImmutable(ctx, endpoint.HostnameImmutable) + ctx = awsmiddleware.SetSigningRegion(ctx, endpoint.SigningRegion) + ctx = awsmiddleware.SetPartitionID(ctx, endpoint.PartitionID) + return next.HandleSerialize(ctx, in) +} +func addResolveEndpointMiddleware(stack *middleware.Stack, o Options) error { + return stack.Serialize.Insert(&ResolveEndpoint{ + Resolver: o.EndpointResolver, + Options: o.EndpointOptions, + }, "OperationSerializer", middleware.Before) +} + +func removeResolveEndpointMiddleware(stack *middleware.Stack) error { + _, err := stack.Serialize.Remove((&ResolveEndpoint{}).ID()) + return err +} + +type wrappedEndpointResolver struct { + awsResolver aws.EndpointResolverWithOptions +} + +func (w *wrappedEndpointResolver) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { + return w.awsResolver.ResolveEndpoint(ServiceID, region, options) +} + +type awsEndpointResolverAdaptor func(service, region string) (aws.Endpoint, error) + +func (a awsEndpointResolverAdaptor) ResolveEndpoint(service, region string, options ...interface{}) (aws.Endpoint, error) { + return a(service, region) +} + +var _ aws.EndpointResolverWithOptions = awsEndpointResolverAdaptor(nil) + +// withEndpointResolver returns an aws.EndpointResolverWithOptions that first delegates endpoint resolution to the awsResolver. +// If awsResolver returns aws.EndpointNotFoundError error, the v1 resolver middleware will swallow the error, +// and set an appropriate context flag such that fallback will occur when EndpointResolverV2 is invoked +// via its middleware. +// +// If another error (besides aws.EndpointNotFoundError) is returned, then that error will be propagated. +func withEndpointResolver(awsResolver aws.EndpointResolver, awsResolverWithOptions aws.EndpointResolverWithOptions) EndpointResolver { + var resolver aws.EndpointResolverWithOptions + + if awsResolverWithOptions != nil { + resolver = awsResolverWithOptions + } else if awsResolver != nil { + resolver = awsEndpointResolverAdaptor(awsResolver.ResolveEndpoint) + } + + return &wrappedEndpointResolver{ + awsResolver: resolver, + } +} + +func finalizeClientEndpointResolverOptions(options *Options) { + options.EndpointOptions.LogDeprecated = options.ClientLogMode.IsDeprecatedUsage() + + if len(options.EndpointOptions.ResolvedRegion) == 0 { + const fipsInfix = "-fips-" + const fipsPrefix = "fips-" + const fipsSuffix = "-fips" + + if strings.Contains(options.Region, fipsInfix) || + strings.Contains(options.Region, fipsPrefix) || + strings.Contains(options.Region, fipsSuffix) { + options.EndpointOptions.ResolvedRegion = strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll( + options.Region, fipsInfix, "-"), fipsPrefix, ""), fipsSuffix, "") + options.EndpointOptions.UseFIPSEndpoint = aws.FIPSEndpointStateEnabled + } + } + +} + +func resolveEndpointResolverV2(options *Options) { + if options.EndpointResolverV2 == nil { + options.EndpointResolverV2 = NewDefaultEndpointResolverV2() + } +} + +func resolveBaseEndpoint(cfg aws.Config, o *Options) { + if cfg.BaseEndpoint != nil { + o.BaseEndpoint = cfg.BaseEndpoint + } + + _, g := os.LookupEnv("AWS_ENDPOINT_URL") + _, s := os.LookupEnv("AWS_ENDPOINT_URL_PARTNERCENTRAL_SELLING") + + if g && !s { + return + } + + value, found, err := internalConfig.ResolveServiceBaseEndpoint(context.Background(), "PartnerCentral Selling", cfg.ConfigSources) + if found && err == nil { + o.BaseEndpoint = &value + } +} + +func bindRegion(region string) *string { + if region == "" { + return nil + } + return aws.String(endpoints.MapFIPSRegion(region)) +} + +// EndpointParameters provides the parameters that influence how endpoints are +// resolved. +type EndpointParameters struct { + // The AWS region used to dispatch the request. + // + // Parameter is + // required. + // + // AWS::Region + Region *string + + // When true, use the dual-stack endpoint. If the configured endpoint does not + // support dual-stack, dispatching the request MAY return an error. + // + // Defaults to + // false if no value is provided. + // + // AWS::UseDualStack + UseDualStack *bool + + // When true, send this request to the FIPS-compliant regional endpoint. If the + // configured endpoint does not have a FIPS compliant endpoint, dispatching the + // request will return an error. + // + // Defaults to false if no value is + // provided. + // + // AWS::UseFIPS + UseFIPS *bool + + // Override the endpoint used to send this request + // + // Parameter is + // required. + // + // SDK::Endpoint + Endpoint *string +} + +// ValidateRequired validates required parameters are set. +func (p EndpointParameters) ValidateRequired() error { + if p.UseDualStack == nil { + return fmt.Errorf("parameter UseDualStack is required") + } + + if p.UseFIPS == nil { + return fmt.Errorf("parameter UseFIPS is required") + } + + return nil +} + +// WithDefaults returns a shallow copy of EndpointParameterswith default values +// applied to members where applicable. +func (p EndpointParameters) WithDefaults() EndpointParameters { + if p.UseDualStack == nil { + p.UseDualStack = ptr.Bool(false) + } + + if p.UseFIPS == nil { + p.UseFIPS = ptr.Bool(false) + } + return p +} + +type stringSlice []string + +func (s stringSlice) Get(i int) *string { + if i < 0 || i >= len(s) { + return nil + } + + v := s[i] + return &v +} + +// EndpointResolverV2 provides the interface for resolving service endpoints. +type EndpointResolverV2 interface { + // ResolveEndpoint attempts to resolve the endpoint with the provided options, + // returning the endpoint if found. Otherwise an error is returned. + ResolveEndpoint(ctx context.Context, params EndpointParameters) ( + smithyendpoints.Endpoint, error, + ) +} + +// resolver provides the implementation for resolving endpoints. +type resolver struct{} + +func NewDefaultEndpointResolverV2() EndpointResolverV2 { + return &resolver{} +} + +// ResolveEndpoint attempts to resolve the endpoint with the provided options, +// returning the endpoint if found. Otherwise an error is returned. +func (r *resolver) ResolveEndpoint( + ctx context.Context, params EndpointParameters, +) ( + endpoint smithyendpoints.Endpoint, err error, +) { + params = params.WithDefaults() + if err = params.ValidateRequired(); err != nil { + return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err) + } + _UseDualStack := *params.UseDualStack + _UseFIPS := *params.UseFIPS + + if exprVal := params.Endpoint; exprVal != nil { + _Endpoint := *exprVal + _ = _Endpoint + if _UseFIPS == true { + return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: FIPS and custom endpoint are not supported") + } + if _UseDualStack == true { + return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: Dualstack and custom endpoint are not supported") + } + uriString := _Endpoint + + uri, err := url.Parse(uriString) + if err != nil { + return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) + } + + return smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + }, nil + } + if exprVal := params.Region; exprVal != nil { + _Region := *exprVal + _ = _Region + if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { + _PartitionResult := *exprVal + _ = _PartitionResult + if _UseFIPS == true { + if _UseDualStack == true { + if true == _PartitionResult.SupportsFIPS { + if true == _PartitionResult.SupportsDualStack { + uriString := func() string { + var out strings.Builder + out.WriteString("https://partnercentral-selling-fips.") + out.WriteString(_Region) + out.WriteString(".") + out.WriteString(_PartitionResult.DualStackDnsSuffix) + return out.String() + }() + + uri, err := url.Parse(uriString) + if err != nil { + return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) + } + + return smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + }, nil + } + } + return endpoint, fmt.Errorf("endpoint rule error, %s", "FIPS and DualStack are enabled, but this partition does not support one or both") + } + } + if _UseFIPS == true { + if _PartitionResult.SupportsFIPS == true { + uriString := func() string { + var out strings.Builder + out.WriteString("https://partnercentral-selling-fips.") + out.WriteString(_Region) + out.WriteString(".") + out.WriteString(_PartitionResult.DnsSuffix) + return out.String() + }() + + uri, err := url.Parse(uriString) + if err != nil { + return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) + } + + return smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + }, nil + } + return endpoint, fmt.Errorf("endpoint rule error, %s", "FIPS is enabled but this partition does not support FIPS") + } + if _UseDualStack == true { + if true == _PartitionResult.SupportsDualStack { + uriString := func() string { + var out strings.Builder + out.WriteString("https://partnercentral-selling.") + out.WriteString(_Region) + out.WriteString(".") + out.WriteString(_PartitionResult.DualStackDnsSuffix) + return out.String() + }() + + uri, err := url.Parse(uriString) + if err != nil { + return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) + } + + return smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + }, nil + } + return endpoint, fmt.Errorf("endpoint rule error, %s", "DualStack is enabled but this partition does not support DualStack") + } + uriString := func() string { + var out strings.Builder + out.WriteString("https://partnercentral-selling.") + out.WriteString(_Region) + out.WriteString(".") + out.WriteString(_PartitionResult.DnsSuffix) + return out.String() + }() + + uri, err := url.Parse(uriString) + if err != nil { + return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) + } + + return smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + }, nil + } + return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") + } + return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: Missing Region") +} + +type endpointParamsBinder interface { + bindEndpointParams(*EndpointParameters) +} + +func bindEndpointParams(ctx context.Context, input interface{}, options Options) *EndpointParameters { + params := &EndpointParameters{} + + params.Region = bindRegion(options.Region) + params.UseDualStack = aws.Bool(options.EndpointOptions.UseDualStackEndpoint == aws.DualStackEndpointStateEnabled) + params.UseFIPS = aws.Bool(options.EndpointOptions.UseFIPSEndpoint == aws.FIPSEndpointStateEnabled) + params.Endpoint = options.BaseEndpoint + + if b, ok := input.(endpointParamsBinder); ok { + b.bindEndpointParams(params) + } + + return params +} + +type resolveEndpointV2Middleware struct { + options Options +} + +func (*resolveEndpointV2Middleware) ID() string { + return "ResolveEndpointV2" +} + +func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( + out middleware.FinalizeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "ResolveEndpoint") + defer span.End() + + if awsmiddleware.GetRequiresLegacyEndpoints(ctx) { + return next.HandleFinalize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + if m.options.EndpointResolverV2 == nil { + return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil") + } + + params := bindEndpointParams(ctx, getOperationInput(ctx), m.options) + endpt, err := timeOperationMetric(ctx, "client.call.resolve_endpoint_duration", + func() (smithyendpoints.Endpoint, error) { + return m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params) + }) + if err != nil { + return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) + } + + span.SetProperty("client.call.resolved_endpoint", endpt.URI.String()) + + if endpt.URI.RawPath == "" && req.URL.RawPath != "" { + endpt.URI.RawPath = endpt.URI.Path + } + req.URL.Scheme = endpt.URI.Scheme + req.URL.Host = endpt.URI.Host + req.URL.Path = smithyhttp.JoinPath(endpt.URI.Path, req.URL.Path) + req.URL.RawPath = smithyhttp.JoinPath(endpt.URI.RawPath, req.URL.RawPath) + for k := range endpt.Headers { + req.Header.Set(k, endpt.Headers.Get(k)) + } + + rscheme := getResolvedAuthScheme(ctx) + if rscheme == nil { + return out, metadata, fmt.Errorf("no resolved auth scheme") + } + + opts, _ := smithyauth.GetAuthOptions(&endpt.Properties) + for _, o := range opts { + rscheme.SignerProperties.SetAll(&o.SignerProperties) + } + + span.End() + return next.HandleFinalize(ctx, in) +} diff --git a/service/partnercentralselling/endpoints_config_test.go b/service/partnercentralselling/endpoints_config_test.go new file mode 100644 index 00000000000..974b2c8324e --- /dev/null +++ b/service/partnercentralselling/endpoints_config_test.go @@ -0,0 +1,139 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/aws" + "os" + "reflect" + "testing" +) + +type mockConfigSource struct { + global string + service string + ignore bool +} + +// GetIgnoreConfiguredEndpoints is used in knowing when to disable configured +// endpoints feature. +func (m mockConfigSource) GetIgnoreConfiguredEndpoints(context.Context) (bool, bool, error) { + return m.ignore, m.ignore, nil +} + +// GetServiceBaseEndpoint is used to retrieve a normalized SDK ID for use +// with configured endpoints. +func (m mockConfigSource) GetServiceBaseEndpoint(ctx context.Context, sdkID string) (string, bool, error) { + if m.service != "" { + return m.service, true, nil + } + return "", false, nil +} + +func TestResolveBaseEndpoint(t *testing.T) { + cases := map[string]struct { + envGlobal string + envService string + envIgnore bool + configGlobal string + configService string + configIgnore bool + clientEndpoint *string + expectURL *string + }{ + "env ignore": { + envGlobal: "https://env-global.dev", + envService: "https://env-partnercentral-selling.dev", + envIgnore: true, + configGlobal: "http://config-global.dev", + configService: "http://config-partnercentral-selling.dev", + expectURL: nil, + }, + "env global": { + envGlobal: "https://env-global.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-partnercentral-selling.dev", + expectURL: aws.String("https://env-global.dev"), + }, + "env service": { + envGlobal: "https://env-global.dev", + envService: "https://env-partnercentral-selling.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-partnercentral-selling.dev", + expectURL: aws.String("https://env-partnercentral-selling.dev"), + }, + "config ignore": { + envGlobal: "https://env-global.dev", + envService: "https://env-partnercentral-selling.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-partnercentral-selling.dev", + configIgnore: true, + expectURL: nil, + }, + "config global": { + configGlobal: "http://config-global.dev", + expectURL: aws.String("http://config-global.dev"), + }, + "config service": { + configGlobal: "http://config-global.dev", + configService: "http://config-partnercentral-selling.dev", + expectURL: aws.String("http://config-partnercentral-selling.dev"), + }, + "client": { + envGlobal: "https://env-global.dev", + envService: "https://env-partnercentral-selling.dev", + configGlobal: "http://config-global.dev", + configService: "http://config-partnercentral-selling.dev", + clientEndpoint: aws.String("https://client-partnercentral-selling.dev"), + expectURL: aws.String("https://client-partnercentral-selling.dev"), + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + os.Clearenv() + + awsConfig := aws.Config{} + ignore := c.envIgnore || c.configIgnore + + if c.configGlobal != "" && !ignore { + awsConfig.BaseEndpoint = aws.String(c.configGlobal) + } + + if c.envGlobal != "" { + t.Setenv("AWS_ENDPOINT_URL", c.envGlobal) + if !ignore { + awsConfig.BaseEndpoint = aws.String(c.envGlobal) + } + } + + if c.envService != "" { + t.Setenv("AWS_ENDPOINT_URL_PARTNERCENTRAL_SELLING", c.envService) + } + + awsConfig.ConfigSources = []interface{}{ + mockConfigSource{ + global: c.envGlobal, + service: c.envService, + ignore: c.envIgnore, + }, + mockConfigSource{ + global: c.configGlobal, + service: c.configService, + ignore: c.configIgnore, + }, + } + + client := NewFromConfig(awsConfig, func(o *Options) { + if c.clientEndpoint != nil { + o.BaseEndpoint = c.clientEndpoint + } + }) + + if e, a := c.expectURL, client.options.BaseEndpoint; !reflect.DeepEqual(e, a) { + t.Errorf("expect endpoint %v , got %v", e, a) + } + }) + } +} diff --git a/service/partnercentralselling/endpoints_test.go b/service/partnercentralselling/endpoints_test.go new file mode 100644 index 00000000000..c3212129ae9 --- /dev/null +++ b/service/partnercentralselling/endpoints_test.go @@ -0,0 +1,820 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + smithy "github.com/aws/smithy-go" + smithyendpoints "github.com/aws/smithy-go/endpoints" + "github.com/aws/smithy-go/ptr" + "net/http" + "net/url" + "reflect" + "strings" + "testing" +) + +// For region us-east-1 with FIPS enabled and DualStack enabled +func TestEndpointCase0(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling-fips.us-east-1.api.aws") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-east-1 with FIPS enabled and DualStack disabled +func TestEndpointCase1(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling-fips.us-east-1.amazonaws.com") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-east-1 with FIPS disabled and DualStack enabled +func TestEndpointCase2(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling.us-east-1.api.aws") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-east-1 with FIPS disabled and DualStack disabled +func TestEndpointCase3(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling.us-east-1.amazonaws.com") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region cn-north-1 with FIPS enabled and DualStack enabled +func TestEndpointCase4(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("cn-north-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling-fips.cn-north-1.api.amazonwebservices.com.cn") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region cn-north-1 with FIPS enabled and DualStack disabled +func TestEndpointCase5(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("cn-north-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling-fips.cn-north-1.amazonaws.com.cn") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region cn-north-1 with FIPS disabled and DualStack enabled +func TestEndpointCase6(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("cn-north-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling.cn-north-1.api.amazonwebservices.com.cn") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region cn-north-1 with FIPS disabled and DualStack disabled +func TestEndpointCase7(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("cn-north-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling.cn-north-1.amazonaws.com.cn") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-gov-east-1 with FIPS enabled and DualStack enabled +func TestEndpointCase8(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-gov-east-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling-fips.us-gov-east-1.api.aws") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-gov-east-1 with FIPS enabled and DualStack disabled +func TestEndpointCase9(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-gov-east-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling-fips.us-gov-east-1.amazonaws.com") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-gov-east-1 with FIPS disabled and DualStack enabled +func TestEndpointCase10(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-gov-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling.us-gov-east-1.api.aws") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-gov-east-1 with FIPS disabled and DualStack disabled +func TestEndpointCase11(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-gov-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling.us-gov-east-1.amazonaws.com") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-iso-east-1 with FIPS enabled and DualStack enabled +func TestEndpointCase12(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-iso-east-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "FIPS and DualStack are enabled, but this partition does not support one or both", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// For region us-iso-east-1 with FIPS enabled and DualStack disabled +func TestEndpointCase13(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-iso-east-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling-fips.us-iso-east-1.c2s.ic.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-iso-east-1 with FIPS disabled and DualStack enabled +func TestEndpointCase14(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-iso-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "DualStack is enabled but this partition does not support DualStack", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// For region us-iso-east-1 with FIPS disabled and DualStack disabled +func TestEndpointCase15(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-iso-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling.us-iso-east-1.c2s.ic.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-isob-east-1 with FIPS enabled and DualStack enabled +func TestEndpointCase16(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-isob-east-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "FIPS and DualStack are enabled, but this partition does not support one or both", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// For region us-isob-east-1 with FIPS enabled and DualStack disabled +func TestEndpointCase17(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-isob-east-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling-fips.us-isob-east-1.sc2s.sgov.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For region us-isob-east-1 with FIPS disabled and DualStack enabled +func TestEndpointCase18(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-isob-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(true), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "DualStack is enabled but this partition does not support DualStack", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// For region us-isob-east-1 with FIPS disabled and DualStack disabled +func TestEndpointCase19(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-isob-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(false), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://partnercentral-selling.us-isob-east-1.sc2s.sgov.gov") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For custom endpoint with region set and fips disabled and dualstack disabled +func TestEndpointCase20(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(false), + Endpoint: ptr.String("https://example.com"), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://example.com") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For custom endpoint with region not set and fips disabled and dualstack disabled +func TestEndpointCase21(t *testing.T) { + var params = EndpointParameters{ + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(false), + Endpoint: ptr.String("https://example.com"), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err != nil { + t.Fatalf("expect no error, got %v", err) + } + + uri, _ := url.Parse("https://example.com") + + expectEndpoint := smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + Properties: smithy.Properties{}, + } + + if e, a := expectEndpoint.URI, result.URI; e != a { + t.Errorf("expect %v URI, got %v", e, a) + } + + if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { + t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + } + + if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { + t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + } +} + +// For custom endpoint with fips enabled and dualstack disabled +func TestEndpointCase22(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(true), + UseDualStack: ptr.Bool(false), + Endpoint: ptr.String("https://example.com"), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "Invalid Configuration: FIPS and custom endpoint are not supported", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// For custom endpoint with fips disabled and dualstack enabled +func TestEndpointCase23(t *testing.T) { + var params = EndpointParameters{ + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(false), + UseDualStack: ptr.Bool(true), + Endpoint: ptr.String("https://example.com"), + } + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "Invalid Configuration: Dualstack and custom endpoint are not supported", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} + +// Missing region +func TestEndpointCase24(t *testing.T) { + var params = EndpointParameters{} + + resolver := NewDefaultEndpointResolverV2() + result, err := resolver.ResolveEndpoint(context.Background(), params) + _, _ = result, err + + if err == nil { + t.Fatalf("expect error, got none") + } + if e, a := "Invalid Configuration: Missing Region", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) + } +} diff --git a/service/partnercentralselling/generated.json b/service/partnercentralselling/generated.json new file mode 100644 index 00000000000..df8b69c7af9 --- /dev/null +++ b/service/partnercentralselling/generated.json @@ -0,0 +1,47 @@ +{ + "dependencies": { + "github.com/aws/aws-sdk-go-v2": "v1.4.0", + "github.com/aws/aws-sdk-go-v2/internal/configsources": "v0.0.0-00010101000000-000000000000", + "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2": "v2.0.0-00010101000000-000000000000", + "github.com/aws/smithy-go": "v1.4.0" + }, + "files": [ + "api_client.go", + "api_client_test.go", + "api_op_AssignOpportunity.go", + "api_op_AssociateOpportunity.go", + "api_op_CreateOpportunity.go", + "api_op_DisassociateOpportunity.go", + "api_op_GetAwsOpportunitySummary.go", + "api_op_GetEngagementInvitation.go", + "api_op_GetOpportunity.go", + "api_op_ListEngagementInvitations.go", + "api_op_ListOpportunities.go", + "api_op_ListSolutions.go", + "api_op_RejectEngagementInvitation.go", + "api_op_StartEngagementByAcceptingInvitationTask.go", + "api_op_StartEngagementFromOpportunityTask.go", + "api_op_UpdateOpportunity.go", + "auth.go", + "deserializers.go", + "doc.go", + "endpoints.go", + "endpoints_config_test.go", + "endpoints_test.go", + "generated.json", + "internal/endpoints/endpoints.go", + "internal/endpoints/endpoints_test.go", + "options.go", + "protocol_test.go", + "serializers.go", + "snapshot_test.go", + "types/enums.go", + "types/errors.go", + "types/types.go", + "types/types_exported_test.go", + "validators.go" + ], + "go": "1.15", + "module": "github.com/aws/aws-sdk-go-v2/service/partnercentralselling", + "unstable": false +} diff --git a/service/partnercentralselling/go.mod b/service/partnercentralselling/go.mod new file mode 100644 index 00000000000..6b03fe17d1b --- /dev/null +++ b/service/partnercentralselling/go.mod @@ -0,0 +1,16 @@ +module github.com/aws/aws-sdk-go-v2/service/partnercentralselling + +go 1.21 + +require ( + github.com/aws/aws-sdk-go-v2 v1.32.4 + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 + github.com/aws/smithy-go v1.22.0 +) + +replace github.com/aws/aws-sdk-go-v2 => ../../ + +replace github.com/aws/aws-sdk-go-v2/internal/configsources => ../../internal/configsources/ + +replace github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 => ../../internal/endpoints/v2/ diff --git a/service/partnercentralselling/go.sum b/service/partnercentralselling/go.sum new file mode 100644 index 00000000000..70a20636e37 --- /dev/null +++ b/service/partnercentralselling/go.sum @@ -0,0 +1,2 @@ +github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= +github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= diff --git a/service/partnercentralselling/go_module_metadata.go b/service/partnercentralselling/go_module_metadata.go new file mode 100644 index 00000000000..9219e1c923f --- /dev/null +++ b/service/partnercentralselling/go_module_metadata.go @@ -0,0 +1,6 @@ +// Code generated by internal/repotools/cmd/updatemodulemeta DO NOT EDIT. + +package partnercentralselling + +// goModuleVersion is the tagged release for this module +const goModuleVersion = "tip" diff --git a/service/partnercentralselling/internal/endpoints/endpoints.go b/service/partnercentralselling/internal/endpoints/endpoints.go new file mode 100644 index 00000000000..c2baf559ea5 --- /dev/null +++ b/service/partnercentralselling/internal/endpoints/endpoints.go @@ -0,0 +1,296 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package endpoints + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + endpoints "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2" + "github.com/aws/smithy-go/logging" + "regexp" +) + +// Options is the endpoint resolver configuration options +type Options struct { + // Logger is a logging implementation that log events should be sent to. + Logger logging.Logger + + // LogDeprecated indicates that deprecated endpoints should be logged to the + // provided logger. + LogDeprecated bool + + // ResolvedRegion is used to override the region to be resolved, rather then the + // using the value passed to the ResolveEndpoint method. This value is used by the + // SDK to translate regions like fips-us-east-1 or us-east-1-fips to an alternative + // name. You must not set this value directly in your application. + ResolvedRegion string + + // DisableHTTPS informs the resolver to return an endpoint that does not use the + // HTTPS scheme. + DisableHTTPS bool + + // UseDualStackEndpoint specifies the resolver must resolve a dual-stack endpoint. + UseDualStackEndpoint aws.DualStackEndpointState + + // UseFIPSEndpoint specifies the resolver must resolve a FIPS endpoint. + UseFIPSEndpoint aws.FIPSEndpointState +} + +func (o Options) GetResolvedRegion() string { + return o.ResolvedRegion +} + +func (o Options) GetDisableHTTPS() bool { + return o.DisableHTTPS +} + +func (o Options) GetUseDualStackEndpoint() aws.DualStackEndpointState { + return o.UseDualStackEndpoint +} + +func (o Options) GetUseFIPSEndpoint() aws.FIPSEndpointState { + return o.UseFIPSEndpoint +} + +func transformToSharedOptions(options Options) endpoints.Options { + return endpoints.Options{ + Logger: options.Logger, + LogDeprecated: options.LogDeprecated, + ResolvedRegion: options.ResolvedRegion, + DisableHTTPS: options.DisableHTTPS, + UseDualStackEndpoint: options.UseDualStackEndpoint, + UseFIPSEndpoint: options.UseFIPSEndpoint, + } +} + +// Resolver PartnerCentral Selling endpoint resolver +type Resolver struct { + partitions endpoints.Partitions +} + +// ResolveEndpoint resolves the service endpoint for the given region and options +func (r *Resolver) ResolveEndpoint(region string, options Options) (endpoint aws.Endpoint, err error) { + if len(region) == 0 { + return endpoint, &aws.MissingRegionError{} + } + + opt := transformToSharedOptions(options) + return r.partitions.ResolveEndpoint(region, opt) +} + +// New returns a new Resolver +func New() *Resolver { + return &Resolver{ + partitions: defaultPartitions, + } +} + +var partitionRegexp = struct { + Aws *regexp.Regexp + AwsCn *regexp.Regexp + AwsIso *regexp.Regexp + AwsIsoB *regexp.Regexp + AwsIsoE *regexp.Regexp + AwsIsoF *regexp.Regexp + AwsUsGov *regexp.Regexp +}{ + + Aws: regexp.MustCompile("^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$"), + AwsCn: regexp.MustCompile("^cn\\-\\w+\\-\\d+$"), + AwsIso: regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"), + AwsIsoB: regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"), + AwsIsoE: regexp.MustCompile("^eu\\-isoe\\-\\w+\\-\\d+$"), + AwsIsoF: regexp.MustCompile("^us\\-isof\\-\\w+\\-\\d+$"), + AwsUsGov: regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"), +} + +var defaultPartitions = endpoints.Partitions{ + { + ID: "aws", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.DualStackVariant, + }: { + Hostname: "partnercentral-selling.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "partnercentral-selling.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.Aws, + IsRegionalized: true, + }, + { + ID: "aws-cn", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.DualStackVariant, + }: { + Hostname: "partnercentral-selling.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.amazonaws.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "partnercentral-selling.{region}.amazonaws.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsCn, + IsRegionalized: true, + }, + { + ID: "aws-iso", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.c2s.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "partnercentral-selling.{region}.c2s.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIso, + IsRegionalized: true, + }, + { + ID: "aws-iso-b", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.sc2s.sgov.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "partnercentral-selling.{region}.sc2s.sgov.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIsoB, + IsRegionalized: true, + }, + { + ID: "aws-iso-e", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.cloud.adc-e.uk", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "partnercentral-selling.{region}.cloud.adc-e.uk", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIsoE, + IsRegionalized: true, + }, + { + ID: "aws-iso-f", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.csp.hci.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "partnercentral-selling.{region}.csp.hci.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIsoF, + IsRegionalized: true, + }, + { + ID: "aws-us-gov", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.DualStackVariant, + }: { + Hostname: "partnercentral-selling.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "partnercentral-selling-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "partnercentral-selling.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsUsGov, + IsRegionalized: true, + }, +} diff --git a/service/partnercentralselling/internal/endpoints/endpoints_test.go b/service/partnercentralselling/internal/endpoints/endpoints_test.go new file mode 100644 index 00000000000..08e5da2d833 --- /dev/null +++ b/service/partnercentralselling/internal/endpoints/endpoints_test.go @@ -0,0 +1,11 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package endpoints + +import ( + "testing" +) + +func TestRegexCompile(t *testing.T) { + _ = defaultPartitions +} diff --git a/service/partnercentralselling/options.go b/service/partnercentralselling/options.go new file mode 100644 index 00000000000..770a34983d3 --- /dev/null +++ b/service/partnercentralselling/options.go @@ -0,0 +1,236 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/aws" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + internalauthsmithy "github.com/aws/aws-sdk-go-v2/internal/auth/smithy" + smithyauth "github.com/aws/smithy-go/auth" + "github.com/aws/smithy-go/logging" + "github.com/aws/smithy-go/metrics" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net/http" +) + +type HTTPClient interface { + Do(*http.Request) (*http.Response, error) +} + +type Options struct { + // Set of options to modify how an operation is invoked. These apply to all + // operations invoked for this client. Use functional options on operation call to + // modify this list for per operation behavior. + APIOptions []func(*middleware.Stack) error + + // The optional application specific identifier appended to the User-Agent header. + AppID string + + // This endpoint will be given as input to an EndpointResolverV2. It is used for + // providing a custom base endpoint that is subject to modifications by the + // processing EndpointResolverV2. + BaseEndpoint *string + + // Configures the events that will be sent to the configured logger. + ClientLogMode aws.ClientLogMode + + // The credentials object to use when signing requests. + Credentials aws.CredentialsProvider + + // The configuration DefaultsMode that the SDK should use when constructing the + // clients initial default settings. + DefaultsMode aws.DefaultsMode + + // The endpoint options to be used when attempting to resolve an endpoint. + EndpointOptions EndpointResolverOptions + + // The service endpoint resolver. + // + // Deprecated: Deprecated: EndpointResolver and WithEndpointResolver. Providing a + // value for this field will likely prevent you from using any endpoint-related + // service features released after the introduction of EndpointResolverV2 and + // BaseEndpoint. + // + // To migrate an EndpointResolver implementation that uses a custom endpoint, set + // the client option BaseEndpoint instead. + EndpointResolver EndpointResolver + + // Resolves the endpoint used for a particular service operation. This should be + // used over the deprecated EndpointResolver. + EndpointResolverV2 EndpointResolverV2 + + // Signature Version 4 (SigV4) Signer + HTTPSignerV4 HTTPSignerV4 + + // Provides idempotency tokens values that will be automatically populated into + // idempotent API operations. + IdempotencyTokenProvider IdempotencyTokenProvider + + // The logger writer interface to write logging messages to. + Logger logging.Logger + + // The client meter provider. + MeterProvider metrics.MeterProvider + + // The region to send requests to. (Required) + Region string + + // RetryMaxAttempts specifies the maximum number attempts an API client will call + // an operation that fails with a retryable error. A value of 0 is ignored, and + // will not be used to configure the API client created default retryer, or modify + // per operation call's retry max attempts. + // + // If specified in an operation call's functional options with a value that is + // different than the constructed client's Options, the Client's Retryer will be + // wrapped to use the operation's specific RetryMaxAttempts value. + RetryMaxAttempts int + + // RetryMode specifies the retry mode the API client will be created with, if + // Retryer option is not also specified. + // + // When creating a new API Clients this member will only be used if the Retryer + // Options member is nil. This value will be ignored if Retryer is not nil. + // + // Currently does not support per operation call overrides, may in the future. + RetryMode aws.RetryMode + + // Retryer guides how HTTP requests should be retried in case of recoverable + // failures. When nil the API client will use a default retryer. The kind of + // default retry created by the API client can be changed with the RetryMode + // option. + Retryer aws.Retryer + + // The RuntimeEnvironment configuration, only populated if the DefaultsMode is set + // to DefaultsModeAuto and is initialized using config.LoadDefaultConfig . You + // should not populate this structure programmatically, or rely on the values here + // within your applications. + RuntimeEnvironment aws.RuntimeEnvironment + + // The client tracer provider. + TracerProvider tracing.TracerProvider + + // The initial DefaultsMode used when the client options were constructed. If the + // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved + // value was at that point in time. + // + // Currently does not support per operation call overrides, may in the future. + resolvedDefaultsMode aws.DefaultsMode + + // The HTTP client to invoke API calls with. Defaults to client's default HTTP + // implementation if nil. + HTTPClient HTTPClient + + // The auth scheme resolver which determines how to authenticate for each + // operation. + AuthSchemeResolver AuthSchemeResolver + + // The list of auth schemes supported by the client. + AuthSchemes []smithyhttp.AuthScheme +} + +// Copy creates a clone where the APIOptions list is deep copied. +func (o Options) Copy() Options { + to := o + to.APIOptions = make([]func(*middleware.Stack) error, len(o.APIOptions)) + copy(to.APIOptions, o.APIOptions) + + return to +} + +func (o Options) GetIdentityResolver(schemeID string) smithyauth.IdentityResolver { + if schemeID == "aws.auth#sigv4" { + return getSigV4IdentityResolver(o) + } + if schemeID == "smithy.api#noAuth" { + return &smithyauth.AnonymousIdentityResolver{} + } + return nil +} + +// WithAPIOptions returns a functional option for setting the Client's APIOptions +// option. +func WithAPIOptions(optFns ...func(*middleware.Stack) error) func(*Options) { + return func(o *Options) { + o.APIOptions = append(o.APIOptions, optFns...) + } +} + +// Deprecated: EndpointResolver and WithEndpointResolver. Providing a value for +// this field will likely prevent you from using any endpoint-related service +// features released after the introduction of EndpointResolverV2 and BaseEndpoint. +// +// To migrate an EndpointResolver implementation that uses a custom endpoint, set +// the client option BaseEndpoint instead. +func WithEndpointResolver(v EndpointResolver) func(*Options) { + return func(o *Options) { + o.EndpointResolver = v + } +} + +// WithEndpointResolverV2 returns a functional option for setting the Client's +// EndpointResolverV2 option. +func WithEndpointResolverV2(v EndpointResolverV2) func(*Options) { + return func(o *Options) { + o.EndpointResolverV2 = v + } +} + +func getSigV4IdentityResolver(o Options) smithyauth.IdentityResolver { + if o.Credentials != nil { + return &internalauthsmithy.CredentialsProviderAdapter{Provider: o.Credentials} + } + return nil +} + +// WithSigV4SigningName applies an override to the authentication workflow to +// use the given signing name for SigV4-authenticated operations. +// +// This is an advanced setting. The value here is FINAL, taking precedence over +// the resolved signing name from both auth scheme resolution and endpoint +// resolution. +func WithSigV4SigningName(name string) func(*Options) { + fn := func(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, + ) { + return next.HandleInitialize(awsmiddleware.SetSigningName(ctx, name), in) + } + return func(o *Options) { + o.APIOptions = append(o.APIOptions, func(s *middleware.Stack) error { + return s.Initialize.Add( + middleware.InitializeMiddlewareFunc("withSigV4SigningName", fn), + middleware.Before, + ) + }) + } +} + +// WithSigV4SigningRegion applies an override to the authentication workflow to +// use the given signing region for SigV4-authenticated operations. +// +// This is an advanced setting. The value here is FINAL, taking precedence over +// the resolved signing region from both auth scheme resolution and endpoint +// resolution. +func WithSigV4SigningRegion(region string) func(*Options) { + fn := func(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, + ) { + return next.HandleInitialize(awsmiddleware.SetSigningRegion(ctx, region), in) + } + return func(o *Options) { + o.APIOptions = append(o.APIOptions, func(s *middleware.Stack) error { + return s.Initialize.Add( + middleware.InitializeMiddlewareFunc("withSigV4SigningRegion", fn), + middleware.Before, + ) + }) + } +} + +func ignoreAnonymousAuth(options *Options) { + if aws.IsCredentialsProvider(options.Credentials, (*aws.AnonymousCredentials)(nil)) { + options.Credentials = nil + } +} diff --git a/service/partnercentralselling/protocol_test.go b/service/partnercentralselling/protocol_test.go new file mode 100644 index 00000000000..7378cb0b1f1 --- /dev/null +++ b/service/partnercentralselling/protocol_test.go @@ -0,0 +1,3 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling diff --git a/service/partnercentralselling/serializers.go b/service/partnercentralselling/serializers.go new file mode 100644 index 00000000000..24b19718ad6 --- /dev/null +++ b/service/partnercentralselling/serializers.go @@ -0,0 +1,2079 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "bytes" + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/encoding/httpbinding" + smithyjson "github.com/aws/smithy-go/encoding/json" + "github.com/aws/smithy-go/middleware" + smithytime "github.com/aws/smithy-go/time" + "github.com/aws/smithy-go/tracing" + smithyhttp "github.com/aws/smithy-go/transport/http" + "path" +) + +type awsAwsjson10_serializeOpAssignOpportunity struct { +} + +func (*awsAwsjson10_serializeOpAssignOpportunity) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpAssignOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*AssignOpportunityInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.AssignOpportunity") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentAssignOpportunityInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpAssociateOpportunity struct { +} + +func (*awsAwsjson10_serializeOpAssociateOpportunity) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpAssociateOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*AssociateOpportunityInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.AssociateOpportunity") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentAssociateOpportunityInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpCreateOpportunity struct { +} + +func (*awsAwsjson10_serializeOpCreateOpportunity) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpCreateOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateOpportunityInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.CreateOpportunity") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentCreateOpportunityInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpDisassociateOpportunity struct { +} + +func (*awsAwsjson10_serializeOpDisassociateOpportunity) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpDisassociateOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DisassociateOpportunityInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.DisassociateOpportunity") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentDisassociateOpportunityInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpGetAwsOpportunitySummary struct { +} + +func (*awsAwsjson10_serializeOpGetAwsOpportunitySummary) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpGetAwsOpportunitySummary) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetAwsOpportunitySummaryInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.GetAwsOpportunitySummary") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentGetAwsOpportunitySummaryInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpGetEngagementInvitation struct { +} + +func (*awsAwsjson10_serializeOpGetEngagementInvitation) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpGetEngagementInvitation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetEngagementInvitationInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.GetEngagementInvitation") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentGetEngagementInvitationInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpGetOpportunity struct { +} + +func (*awsAwsjson10_serializeOpGetOpportunity) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpGetOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetOpportunityInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.GetOpportunity") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentGetOpportunityInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpListEngagementInvitations struct { +} + +func (*awsAwsjson10_serializeOpListEngagementInvitations) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListEngagementInvitations) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListEngagementInvitationsInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.ListEngagementInvitations") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListEngagementInvitationsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpListOpportunities struct { +} + +func (*awsAwsjson10_serializeOpListOpportunities) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListOpportunities) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListOpportunitiesInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.ListOpportunities") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListOpportunitiesInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpListSolutions struct { +} + +func (*awsAwsjson10_serializeOpListSolutions) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListSolutions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ListSolutionsInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.ListSolutions") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListSolutionsInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpRejectEngagementInvitation struct { +} + +func (*awsAwsjson10_serializeOpRejectEngagementInvitation) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpRejectEngagementInvitation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*RejectEngagementInvitationInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.RejectEngagementInvitation") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentRejectEngagementInvitationInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask struct { +} + +func (*awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpStartEngagementByAcceptingInvitationTask) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*StartEngagementByAcceptingInvitationTaskInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.StartEngagementByAcceptingInvitationTask") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentStartEngagementByAcceptingInvitationTaskInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpStartEngagementFromOpportunityTask struct { +} + +func (*awsAwsjson10_serializeOpStartEngagementFromOpportunityTask) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpStartEngagementFromOpportunityTask) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*StartEngagementFromOpportunityTaskInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.StartEngagementFromOpportunityTask") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentStartEngagementFromOpportunityTaskInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpUpdateOpportunity struct { +} + +func (*awsAwsjson10_serializeOpUpdateOpportunity) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpUpdateOpportunity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateOpportunityInput) + _ = 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.0") + httpBindingEncoder.SetHeader("X-Amz-Target").String("AWSPartnerCentralSelling.UpdateOpportunity") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentUpdateOpportunityInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsAwsjson10_serializeDocumentAccount(v *types.Account, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Address != nil { + ok := object.Key("Address") + if err := awsAwsjson10_serializeDocumentAddress(v.Address, ok); err != nil { + return err + } + } + + if v.AwsAccountId != nil { + ok := object.Key("AwsAccountId") + ok.String(*v.AwsAccountId) + } + + if v.CompanyName != nil { + ok := object.Key("CompanyName") + ok.String(*v.CompanyName) + } + + if v.Duns != nil { + ok := object.Key("Duns") + ok.String(*v.Duns) + } + + if len(v.Industry) > 0 { + ok := object.Key("Industry") + ok.String(string(v.Industry)) + } + + if v.OtherIndustry != nil { + ok := object.Key("OtherIndustry") + ok.String(*v.OtherIndustry) + } + + if v.WebsiteUrl != nil { + ok := object.Key("WebsiteUrl") + ok.String(*v.WebsiteUrl) + } + + return nil +} + +func awsAwsjson10_serializeDocumentAddress(v *types.Address, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.City != nil { + ok := object.Key("City") + ok.String(*v.City) + } + + if len(v.CountryCode) > 0 { + ok := object.Key("CountryCode") + ok.String(string(v.CountryCode)) + } + + if v.PostalCode != nil { + ok := object.Key("PostalCode") + ok.String(*v.PostalCode) + } + + if v.StateOrRegion != nil { + ok := object.Key("StateOrRegion") + ok.String(*v.StateOrRegion) + } + + if v.StreetAddress != nil { + ok := object.Key("StreetAddress") + ok.String(*v.StreetAddress) + } + + return nil +} + +func awsAwsjson10_serializeDocumentApnPrograms(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson10_serializeDocumentAssigneeContact(v *types.AssigneeContact, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BusinessTitle != nil { + ok := object.Key("BusinessTitle") + ok.String(*v.BusinessTitle) + } + + if v.Email != nil { + ok := object.Key("Email") + ok.String(*v.Email) + } + + if v.FirstName != nil { + ok := object.Key("FirstName") + ok.String(*v.FirstName) + } + + if v.LastName != nil { + ok := object.Key("LastName") + ok.String(*v.LastName) + } + + return nil +} + +func awsAwsjson10_serializeDocumentAwsSubmission(v *types.AwsSubmission, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.InvolvementType) > 0 { + ok := object.Key("InvolvementType") + ok.String(string(v.InvolvementType)) + } + + if len(v.Visibility) > 0 { + ok := object.Key("Visibility") + ok.String(string(v.Visibility)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentChannels(v []types.Channel, 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 awsAwsjson10_serializeDocumentContact(v *types.Contact, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BusinessTitle != nil { + ok := object.Key("BusinessTitle") + ok.String(*v.BusinessTitle) + } + + if v.Email != nil { + ok := object.Key("Email") + ok.String(*v.Email) + } + + if v.FirstName != nil { + ok := object.Key("FirstName") + ok.String(*v.FirstName) + } + + if v.LastName != nil { + ok := object.Key("LastName") + ok.String(*v.LastName) + } + + if v.Phone != nil { + ok := object.Key("Phone") + ok.String(*v.Phone) + } + + return nil +} + +func awsAwsjson10_serializeDocumentCustomer(v *types.Customer, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Account != nil { + ok := object.Key("Account") + if err := awsAwsjson10_serializeDocumentAccount(v.Account, ok); err != nil { + return err + } + } + + if v.Contacts != nil { + ok := object.Key("Contacts") + if err := awsAwsjson10_serializeDocumentCustomerContactsList(v.Contacts, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeDocumentCustomerContactsList(v []types.Contact, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentContact(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentDeliveryModels(v []types.DeliveryModel, 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 awsAwsjson10_serializeDocumentEngagementInvitationsPayloadType(v []types.EngagementInvitationPayloadType, 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 awsAwsjson10_serializeDocumentExpectedCustomerSpend(v *types.ExpectedCustomerSpend, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Amount != nil { + ok := object.Key("Amount") + ok.String(*v.Amount) + } + + if len(v.CurrencyCode) > 0 { + ok := object.Key("CurrencyCode") + ok.String(string(v.CurrencyCode)) + } + + if len(v.Frequency) > 0 { + ok := object.Key("Frequency") + ok.String(string(v.Frequency)) + } + + if v.TargetCompany != nil { + ok := object.Key("TargetCompany") + ok.String(*v.TargetCompany) + } + + return nil +} + +func awsAwsjson10_serializeDocumentExpectedCustomerSpendList(v []types.ExpectedCustomerSpend, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentExpectedCustomerSpend(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentFilterIdentifier(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson10_serializeDocumentFilterLifeCycleReviewStatus(v []types.ReviewStatus, 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 awsAwsjson10_serializeDocumentFilterLifeCycleStage(v []types.Stage, 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 awsAwsjson10_serializeDocumentFilterStatus(v []types.SolutionStatus, 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 awsAwsjson10_serializeDocumentLastModifiedDate(v *types.LastModifiedDate, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AfterLastModifiedDate != nil { + ok := object.Key("AfterLastModifiedDate") + ok.String(smithytime.FormatDateTime(*v.AfterLastModifiedDate)) + } + + if v.BeforeLastModifiedDate != nil { + ok := object.Key("BeforeLastModifiedDate") + ok.String(smithytime.FormatDateTime(*v.BeforeLastModifiedDate)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentLifeCycle(v *types.LifeCycle, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ClosedLostReason) > 0 { + ok := object.Key("ClosedLostReason") + ok.String(string(v.ClosedLostReason)) + } + + if v.NextSteps != nil { + ok := object.Key("NextSteps") + ok.String(*v.NextSteps) + } + + if v.NextStepsHistory != nil { + ok := object.Key("NextStepsHistory") + if err := awsAwsjson10_serializeDocumentNextStepsHistories(v.NextStepsHistory, ok); err != nil { + return err + } + } + + if v.ReviewComments != nil { + ok := object.Key("ReviewComments") + ok.String(*v.ReviewComments) + } + + if len(v.ReviewStatus) > 0 { + ok := object.Key("ReviewStatus") + ok.String(string(v.ReviewStatus)) + } + + if v.ReviewStatusReason != nil { + ok := object.Key("ReviewStatusReason") + ok.String(*v.ReviewStatusReason) + } + + if len(v.Stage) > 0 { + ok := object.Key("Stage") + ok.String(string(v.Stage)) + } + + if v.TargetCloseDate != nil { + ok := object.Key("TargetCloseDate") + ok.String(*v.TargetCloseDate) + } + + return nil +} + +func awsAwsjson10_serializeDocumentMarketing(v *types.Marketing, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.AwsFundingUsed) > 0 { + ok := object.Key("AwsFundingUsed") + ok.String(string(v.AwsFundingUsed)) + } + + if v.CampaignName != nil { + ok := object.Key("CampaignName") + ok.String(*v.CampaignName) + } + + if v.Channels != nil { + ok := object.Key("Channels") + if err := awsAwsjson10_serializeDocumentChannels(v.Channels, ok); err != nil { + return err + } + } + + if len(v.Source) > 0 { + ok := object.Key("Source") + ok.String(string(v.Source)) + } + + if v.UseCases != nil { + ok := object.Key("UseCases") + if err := awsAwsjson10_serializeDocumentUseCases(v.UseCases, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeDocumentMonetaryValue(v *types.MonetaryValue, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Amount != nil { + ok := object.Key("Amount") + ok.String(*v.Amount) + } + + if len(v.CurrencyCode) > 0 { + ok := object.Key("CurrencyCode") + ok.String(string(v.CurrencyCode)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentNextStepsHistories(v []types.NextStepsHistory, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentNextStepsHistory(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentNextStepsHistory(v *types.NextStepsHistory, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Time != nil { + ok := object.Key("Time") + ok.String(smithytime.FormatDateTime(*v.Time)) + } + + if v.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + +func awsAwsjson10_serializeDocumentOpportunityEngagementInvitationSort(v *types.OpportunityEngagementInvitationSort, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + 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)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentOpportunitySort(v *types.OpportunitySort, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + 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)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentPartnerOpportunityTeamMembersList(v []types.Contact, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentContact(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentPrimaryNeedsFromAws(v []types.PrimaryNeedFromAws, 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 awsAwsjson10_serializeDocumentProject(v *types.Project, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AdditionalComments != nil { + ok := object.Key("AdditionalComments") + ok.String(*v.AdditionalComments) + } + + if v.ApnPrograms != nil { + ok := object.Key("ApnPrograms") + if err := awsAwsjson10_serializeDocumentApnPrograms(v.ApnPrograms, ok); err != nil { + return err + } + } + + if len(v.CompetitorName) > 0 { + ok := object.Key("CompetitorName") + ok.String(string(v.CompetitorName)) + } + + if v.CustomerBusinessProblem != nil { + ok := object.Key("CustomerBusinessProblem") + ok.String(*v.CustomerBusinessProblem) + } + + if v.CustomerUseCase != nil { + ok := object.Key("CustomerUseCase") + ok.String(*v.CustomerUseCase) + } + + if v.DeliveryModels != nil { + ok := object.Key("DeliveryModels") + if err := awsAwsjson10_serializeDocumentDeliveryModels(v.DeliveryModels, ok); err != nil { + return err + } + } + + if v.ExpectedCustomerSpend != nil { + ok := object.Key("ExpectedCustomerSpend") + if err := awsAwsjson10_serializeDocumentExpectedCustomerSpendList(v.ExpectedCustomerSpend, ok); err != nil { + return err + } + } + + if v.OtherCompetitorNames != nil { + ok := object.Key("OtherCompetitorNames") + ok.String(*v.OtherCompetitorNames) + } + + if v.OtherSolutionDescription != nil { + ok := object.Key("OtherSolutionDescription") + ok.String(*v.OtherSolutionDescription) + } + + if v.RelatedOpportunityIdentifier != nil { + ok := object.Key("RelatedOpportunityIdentifier") + ok.String(*v.RelatedOpportunityIdentifier) + } + + if v.SalesActivities != nil { + ok := object.Key("SalesActivities") + if err := awsAwsjson10_serializeDocumentSalesActivities(v.SalesActivities, ok); err != nil { + return err + } + } + + if v.Title != nil { + ok := object.Key("Title") + ok.String(*v.Title) + } + + return nil +} + +func awsAwsjson10_serializeDocumentSalesActivities(v []types.SalesActivity, 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 awsAwsjson10_serializeDocumentSoftwareRevenue(v *types.SoftwareRevenue, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.DeliveryModel) > 0 { + ok := object.Key("DeliveryModel") + ok.String(string(v.DeliveryModel)) + } + + if v.EffectiveDate != nil { + ok := object.Key("EffectiveDate") + ok.String(*v.EffectiveDate) + } + + if v.ExpirationDate != nil { + ok := object.Key("ExpirationDate") + ok.String(*v.ExpirationDate) + } + + if v.Value != nil { + ok := object.Key("Value") + if err := awsAwsjson10_serializeDocumentMonetaryValue(v.Value, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeDocumentSolutionIdentifiers(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson10_serializeDocumentSolutionSort(v *types.SolutionSort, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + 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)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentStringList(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson10_serializeDocumentUseCases(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsAwsjson10_serializeOpDocumentAssignOpportunityInput(v *AssignOpportunityInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Assignee != nil { + ok := object.Key("Assignee") + if err := awsAwsjson10_serializeDocumentAssigneeContact(v.Assignee, ok); err != nil { + return err + } + } + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentAssociateOpportunityInput(v *AssociateOpportunityInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.OpportunityIdentifier != nil { + ok := object.Key("OpportunityIdentifier") + ok.String(*v.OpportunityIdentifier) + } + + if v.RelatedEntityIdentifier != nil { + ok := object.Key("RelatedEntityIdentifier") + ok.String(*v.RelatedEntityIdentifier) + } + + if len(v.RelatedEntityType) > 0 { + ok := object.Key("RelatedEntityType") + ok.String(string(v.RelatedEntityType)) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentCreateOpportunityInput(v *CreateOpportunityInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) + } + + if v.Customer != nil { + ok := object.Key("Customer") + if err := awsAwsjson10_serializeDocumentCustomer(v.Customer, ok); err != nil { + return err + } + } + + if v.LifeCycle != nil { + ok := object.Key("LifeCycle") + if err := awsAwsjson10_serializeDocumentLifeCycle(v.LifeCycle, ok); err != nil { + return err + } + } + + if v.Marketing != nil { + ok := object.Key("Marketing") + if err := awsAwsjson10_serializeDocumentMarketing(v.Marketing, ok); err != nil { + return err + } + } + + if len(v.NationalSecurity) > 0 { + ok := object.Key("NationalSecurity") + ok.String(string(v.NationalSecurity)) + } + + if v.OpportunityTeam != nil { + ok := object.Key("OpportunityTeam") + if err := awsAwsjson10_serializeDocumentPartnerOpportunityTeamMembersList(v.OpportunityTeam, ok); err != nil { + return err + } + } + + if len(v.OpportunityType) > 0 { + ok := object.Key("OpportunityType") + ok.String(string(v.OpportunityType)) + } + + if len(v.Origin) > 0 { + ok := object.Key("Origin") + ok.String(string(v.Origin)) + } + + if v.PartnerOpportunityIdentifier != nil { + ok := object.Key("PartnerOpportunityIdentifier") + ok.String(*v.PartnerOpportunityIdentifier) + } + + if v.PrimaryNeedsFromAws != nil { + ok := object.Key("PrimaryNeedsFromAws") + if err := awsAwsjson10_serializeDocumentPrimaryNeedsFromAws(v.PrimaryNeedsFromAws, ok); err != nil { + return err + } + } + + if v.Project != nil { + ok := object.Key("Project") + if err := awsAwsjson10_serializeDocumentProject(v.Project, ok); err != nil { + return err + } + } + + if v.SoftwareRevenue != nil { + ok := object.Key("SoftwareRevenue") + if err := awsAwsjson10_serializeDocumentSoftwareRevenue(v.SoftwareRevenue, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentDisassociateOpportunityInput(v *DisassociateOpportunityInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.OpportunityIdentifier != nil { + ok := object.Key("OpportunityIdentifier") + ok.String(*v.OpportunityIdentifier) + } + + if v.RelatedEntityIdentifier != nil { + ok := object.Key("RelatedEntityIdentifier") + ok.String(*v.RelatedEntityIdentifier) + } + + if len(v.RelatedEntityType) > 0 { + ok := object.Key("RelatedEntityType") + ok.String(string(v.RelatedEntityType)) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentGetAwsOpportunitySummaryInput(v *GetAwsOpportunitySummaryInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.RelatedOpportunityIdentifier != nil { + ok := object.Key("RelatedOpportunityIdentifier") + ok.String(*v.RelatedOpportunityIdentifier) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentGetEngagementInvitationInput(v *GetEngagementInvitationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentGetOpportunityInput(v *GetOpportunityInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentListEngagementInvitationsInput(v *ListEngagementInvitationsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if len(v.ParticipantType) > 0 { + ok := object.Key("ParticipantType") + ok.String(string(v.ParticipantType)) + } + + if v.PayloadType != nil { + ok := object.Key("PayloadType") + if err := awsAwsjson10_serializeDocumentEngagementInvitationsPayloadType(v.PayloadType, ok); err != nil { + return err + } + } + + if v.Sort != nil { + ok := object.Key("Sort") + if err := awsAwsjson10_serializeDocumentOpportunityEngagementInvitationSort(v.Sort, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentListOpportunitiesInput(v *ListOpportunitiesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.CustomerCompanyName != nil { + ok := object.Key("CustomerCompanyName") + if err := awsAwsjson10_serializeDocumentStringList(v.CustomerCompanyName, ok); err != nil { + return err + } + } + + if v.Identifier != nil { + ok := object.Key("Identifier") + if err := awsAwsjson10_serializeDocumentFilterIdentifier(v.Identifier, ok); err != nil { + return err + } + } + + if v.LastModifiedDate != nil { + ok := object.Key("LastModifiedDate") + if err := awsAwsjson10_serializeDocumentLastModifiedDate(v.LastModifiedDate, ok); err != nil { + return err + } + } + + if v.LifeCycleReviewStatus != nil { + ok := object.Key("LifeCycleReviewStatus") + if err := awsAwsjson10_serializeDocumentFilterLifeCycleReviewStatus(v.LifeCycleReviewStatus, ok); err != nil { + return err + } + } + + if v.LifeCycleStage != nil { + ok := object.Key("LifeCycleStage") + if err := awsAwsjson10_serializeDocumentFilterLifeCycleStage(v.LifeCycleStage, ok); err != nil { + return err + } + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if v.Sort != nil { + ok := object.Key("Sort") + if err := awsAwsjson10_serializeDocumentOpportunitySort(v.Sort, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentListSolutionsInput(v *ListSolutionsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.Category != nil { + ok := object.Key("Category") + if err := awsAwsjson10_serializeDocumentStringList(v.Category, ok); err != nil { + return err + } + } + + if v.Identifier != nil { + ok := object.Key("Identifier") + if err := awsAwsjson10_serializeDocumentSolutionIdentifiers(v.Identifier, ok); err != nil { + return err + } + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if v.Sort != nil { + ok := object.Key("Sort") + if err := awsAwsjson10_serializeDocumentSolutionSort(v.Sort, ok); err != nil { + return err + } + } + + if v.Status != nil { + ok := object.Key("Status") + if err := awsAwsjson10_serializeDocumentFilterStatus(v.Status, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentRejectEngagementInvitationInput(v *RejectEngagementInvitationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) + } + + if v.RejectionReason != nil { + ok := object.Key("RejectionReason") + ok.String(*v.RejectionReason) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentStartEngagementByAcceptingInvitationTaskInput(v *StartEngagementByAcceptingInvitationTaskInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) + } + + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentStartEngagementFromOpportunityTaskInput(v *StartEngagementFromOpportunityTaskInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AwsSubmission != nil { + ok := object.Key("AwsSubmission") + if err := awsAwsjson10_serializeDocumentAwsSubmission(v.AwsSubmission, ok); err != nil { + return err + } + } + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.ClientToken != nil { + ok := object.Key("ClientToken") + ok.String(*v.ClientToken) + } + + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentUpdateOpportunityInput(v *UpdateOpportunityInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Catalog != nil { + ok := object.Key("Catalog") + ok.String(*v.Catalog) + } + + if v.Customer != nil { + ok := object.Key("Customer") + if err := awsAwsjson10_serializeDocumentCustomer(v.Customer, ok); err != nil { + return err + } + } + + if v.Identifier != nil { + ok := object.Key("Identifier") + ok.String(*v.Identifier) + } + + if v.LastModifiedDate != nil { + ok := object.Key("LastModifiedDate") + ok.String(smithytime.FormatDateTime(*v.LastModifiedDate)) + } + + if v.LifeCycle != nil { + ok := object.Key("LifeCycle") + if err := awsAwsjson10_serializeDocumentLifeCycle(v.LifeCycle, ok); err != nil { + return err + } + } + + if v.Marketing != nil { + ok := object.Key("Marketing") + if err := awsAwsjson10_serializeDocumentMarketing(v.Marketing, ok); err != nil { + return err + } + } + + if len(v.NationalSecurity) > 0 { + ok := object.Key("NationalSecurity") + ok.String(string(v.NationalSecurity)) + } + + if len(v.OpportunityType) > 0 { + ok := object.Key("OpportunityType") + ok.String(string(v.OpportunityType)) + } + + if v.PartnerOpportunityIdentifier != nil { + ok := object.Key("PartnerOpportunityIdentifier") + ok.String(*v.PartnerOpportunityIdentifier) + } + + if v.PrimaryNeedsFromAws != nil { + ok := object.Key("PrimaryNeedsFromAws") + if err := awsAwsjson10_serializeDocumentPrimaryNeedsFromAws(v.PrimaryNeedsFromAws, ok); err != nil { + return err + } + } + + if v.Project != nil { + ok := object.Key("Project") + if err := awsAwsjson10_serializeDocumentProject(v.Project, ok); err != nil { + return err + } + } + + if v.SoftwareRevenue != nil { + ok := object.Key("SoftwareRevenue") + if err := awsAwsjson10_serializeDocumentSoftwareRevenue(v.SoftwareRevenue, ok); err != nil { + return err + } + } + + return nil +} diff --git a/service/partnercentralselling/snapshot/api_op_AssignOpportunity.go.snap b/service/partnercentralselling/snapshot/api_op_AssignOpportunity.go.snap new file mode 100644 index 00000000000..f9f8ce51791 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_AssignOpportunity.go.snap @@ -0,0 +1,41 @@ +AssignOpportunity + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_AssociateOpportunity.go.snap b/service/partnercentralselling/snapshot/api_op_AssociateOpportunity.go.snap new file mode 100644 index 00000000000..89576c8fb99 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_AssociateOpportunity.go.snap @@ -0,0 +1,41 @@ +AssociateOpportunity + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_CreateOpportunity.go.snap b/service/partnercentralselling/snapshot/api_op_CreateOpportunity.go.snap new file mode 100644 index 00000000000..c21118b9683 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_CreateOpportunity.go.snap @@ -0,0 +1,42 @@ +CreateOpportunity + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + OperationIdempotencyTokenAutoFill + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_DisassociateOpportunity.go.snap b/service/partnercentralselling/snapshot/api_op_DisassociateOpportunity.go.snap new file mode 100644 index 00000000000..6caa6023375 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_DisassociateOpportunity.go.snap @@ -0,0 +1,41 @@ +DisassociateOpportunity + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_GetAwsOpportunitySummary.go.snap b/service/partnercentralselling/snapshot/api_op_GetAwsOpportunitySummary.go.snap new file mode 100644 index 00000000000..54c67d760d5 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_GetAwsOpportunitySummary.go.snap @@ -0,0 +1,41 @@ +GetAwsOpportunitySummary + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_GetEngagementInvitation.go.snap b/service/partnercentralselling/snapshot/api_op_GetEngagementInvitation.go.snap new file mode 100644 index 00000000000..cb84cb46e03 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_GetEngagementInvitation.go.snap @@ -0,0 +1,41 @@ +GetEngagementInvitation + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_GetOpportunity.go.snap b/service/partnercentralselling/snapshot/api_op_GetOpportunity.go.snap new file mode 100644 index 00000000000..3c747328cc2 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_GetOpportunity.go.snap @@ -0,0 +1,41 @@ +GetOpportunity + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_ListEngagementInvitations.go.snap b/service/partnercentralselling/snapshot/api_op_ListEngagementInvitations.go.snap new file mode 100644 index 00000000000..ea91202cda1 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListEngagementInvitations.go.snap @@ -0,0 +1,41 @@ +ListEngagementInvitations + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_ListOpportunities.go.snap b/service/partnercentralselling/snapshot/api_op_ListOpportunities.go.snap new file mode 100644 index 00000000000..bfc6f30f328 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListOpportunities.go.snap @@ -0,0 +1,41 @@ +ListOpportunities + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_ListSolutions.go.snap b/service/partnercentralselling/snapshot/api_op_ListSolutions.go.snap new file mode 100644 index 00000000000..494e99064d6 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_ListSolutions.go.snap @@ -0,0 +1,41 @@ +ListSolutions + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_RejectEngagementInvitation.go.snap b/service/partnercentralselling/snapshot/api_op_RejectEngagementInvitation.go.snap new file mode 100644 index 00000000000..02aef2c287d --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_RejectEngagementInvitation.go.snap @@ -0,0 +1,41 @@ +RejectEngagementInvitation + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_StartEngagementByAcceptingInvitationTask.go.snap b/service/partnercentralselling/snapshot/api_op_StartEngagementByAcceptingInvitationTask.go.snap new file mode 100644 index 00000000000..ce039d18cd0 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_StartEngagementByAcceptingInvitationTask.go.snap @@ -0,0 +1,42 @@ +StartEngagementByAcceptingInvitationTask + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + OperationIdempotencyTokenAutoFill + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_StartEngagementFromOpportunityTask.go.snap b/service/partnercentralselling/snapshot/api_op_StartEngagementFromOpportunityTask.go.snap new file mode 100644 index 00000000000..e6bfe8888d3 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_StartEngagementFromOpportunityTask.go.snap @@ -0,0 +1,42 @@ +StartEngagementFromOpportunityTask + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + OperationIdempotencyTokenAutoFill + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot/api_op_UpdateOpportunity.go.snap b/service/partnercentralselling/snapshot/api_op_UpdateOpportunity.go.snap new file mode 100644 index 00000000000..81d6e7764a2 --- /dev/null +++ b/service/partnercentralselling/snapshot/api_op_UpdateOpportunity.go.snap @@ -0,0 +1,41 @@ +UpdateOpportunity + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/partnercentralselling/snapshot_test.go b/service/partnercentralselling/snapshot_test.go new file mode 100644 index 00000000000..3f856528be4 --- /dev/null +++ b/service/partnercentralselling/snapshot_test.go @@ -0,0 +1,398 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +//go:build snapshot + +package partnercentralselling + +import ( + "context" + "errors" + "fmt" + "github.com/aws/smithy-go/middleware" + "io" + "io/fs" + "os" + "testing" +) + +const ssprefix = "snapshot" + +type snapshotOK struct{} + +func (snapshotOK) Error() string { return "error: success" } + +func createp(path string) (*os.File, error) { + if err := os.Mkdir(ssprefix, 0700); err != nil && !errors.Is(err, fs.ErrExist) { + return nil, err + } + return os.Create(path) +} + +func sspath(op string) string { + return fmt.Sprintf("%s/api_op_%s.go.snap", ssprefix, op) +} + +func updateSnapshot(stack *middleware.Stack, operation string) error { + f, err := createp(sspath(operation)) + if err != nil { + return err + } + defer f.Close() + if _, err := f.Write([]byte(stack.String())); err != nil { + return err + } + return snapshotOK{} +} + +func testSnapshot(stack *middleware.Stack, operation string) error { + f, err := os.Open(sspath(operation)) + if errors.Is(err, fs.ErrNotExist) { + return snapshotOK{} + } + if err != nil { + return err + } + defer f.Close() + expected, err := io.ReadAll(f) + if err != nil { + return err + } + if actual := stack.String(); actual != string(expected) { + return fmt.Errorf("%s != %s", expected, actual) + } + return snapshotOK{} +} +func TestCheckSnapshot_AssignOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssignOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "AssignOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_AssociateOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssociateOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "AssociateOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_CreateOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DisassociateOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.DisassociateOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DisassociateOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_GetAwsOpportunitySummary(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetAwsOpportunitySummary(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetAwsOpportunitySummary") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_GetEngagementInvitation(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetEngagementInvitation(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetEngagementInvitation") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_GetOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListEngagementInvitations(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementInvitations(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListEngagementInvitations") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListOpportunities(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListOpportunities(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListOpportunities") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListSolutions(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListSolutions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListSolutions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_RejectEngagementInvitation(t *testing.T) { + svc := New(Options{}) + _, err := svc.RejectEngagementInvitation(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "RejectEngagementInvitation") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_StartEngagementByAcceptingInvitationTask(t *testing.T) { + svc := New(Options{}) + _, err := svc.StartEngagementByAcceptingInvitationTask(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "StartEngagementByAcceptingInvitationTask") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_StartEngagementFromOpportunityTask(t *testing.T) { + svc := New(Options{}) + _, err := svc.StartEngagementFromOpportunityTask(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "StartEngagementFromOpportunityTask") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_UpdateOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} +func TestUpdateSnapshot_AssignOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssignOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "AssignOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_AssociateOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssociateOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "AssociateOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_CreateOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DisassociateOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.DisassociateOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DisassociateOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_GetAwsOpportunitySummary(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetAwsOpportunitySummary(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetAwsOpportunitySummary") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_GetEngagementInvitation(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetEngagementInvitation(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetEngagementInvitation") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_GetOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListEngagementInvitations(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListEngagementInvitations(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListEngagementInvitations") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListOpportunities(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListOpportunities(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListOpportunities") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListSolutions(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListSolutions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListSolutions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_RejectEngagementInvitation(t *testing.T) { + svc := New(Options{}) + _, err := svc.RejectEngagementInvitation(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "RejectEngagementInvitation") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_StartEngagementByAcceptingInvitationTask(t *testing.T) { + svc := New(Options{}) + _, err := svc.StartEngagementByAcceptingInvitationTask(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "StartEngagementByAcceptingInvitationTask") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_StartEngagementFromOpportunityTask(t *testing.T) { + svc := New(Options{}) + _, err := svc.StartEngagementFromOpportunityTask(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "StartEngagementFromOpportunityTask") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_UpdateOpportunity(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateOpportunity(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateOpportunity") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} diff --git a/service/partnercentralselling/types/enums.go b/service/partnercentralselling/types/enums.go new file mode 100644 index 00000000000..23528044ede --- /dev/null +++ b/service/partnercentralselling/types/enums.go @@ -0,0 +1,1959 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +type AwsClosedLostReason string + +// Enum values for AwsClosedLostReason +const ( + AwsClosedLostReasonAdministrative AwsClosedLostReason = "Administrative" + AwsClosedLostReasonBusinessAssociateAgreement AwsClosedLostReason = "Business Associate Agreement" + AwsClosedLostReasonCompanyAcquiredDissolved AwsClosedLostReason = "Company Acquired/Dissolved" + AwsClosedLostReasonCompetitiveOffering AwsClosedLostReason = "Competitive Offering" + AwsClosedLostReasonCustomerDataRequirement AwsClosedLostReason = "Customer Data Requirement" + AwsClosedLostReasonCustomerDeficiency AwsClosedLostReason = "Customer Deficiency" + AwsClosedLostReasonCustomerExperience AwsClosedLostReason = "Customer Experience" + AwsClosedLostReasonDelayCancellationOfProject AwsClosedLostReason = "Delay / Cancellation of Project" + AwsClosedLostReasonDuplicate AwsClosedLostReason = "Duplicate" + AwsClosedLostReasonDuplicateOpportunity AwsClosedLostReason = "Duplicate Opportunity" + AwsClosedLostReasonExecutiveBlocker AwsClosedLostReason = "Executive Blocker" + AwsClosedLostReasonFailedVetting AwsClosedLostReason = "Failed Vetting" + AwsClosedLostReasonFeatureLimitation AwsClosedLostReason = "Feature Limitation" + AwsClosedLostReasonFinancialCommercial AwsClosedLostReason = "Financial/Commercial" + AwsClosedLostReasonInsufficientAmazonValue AwsClosedLostReason = "Insufficient Amazon Value" + AwsClosedLostReasonInsufficientAwsValue AwsClosedLostReason = "Insufficient AWS Value" + AwsClosedLostReasonInternationalConstraints AwsClosedLostReason = "International Constraints" + AwsClosedLostReasonLegalTaxRegulatory AwsClosedLostReason = "Legal / Tax / Regulatory" + AwsClosedLostReasonLegalTermsAndConditions AwsClosedLostReason = "Legal Terms and Conditions" + AwsClosedLostReasonLostToCompetitor AwsClosedLostReason = "Lost to Competitor" + AwsClosedLostReasonLostToCompetitorGoogle AwsClosedLostReason = "Lost to Competitor - Google" + AwsClosedLostReasonLostToCompetitorMicrosoft AwsClosedLostReason = "Lost to Competitor - Microsoft" + AwsClosedLostReasonLostToCompetitorOther AwsClosedLostReason = "Lost to Competitor - Other" + AwsClosedLostReasonLostToCompetitorRackspace AwsClosedLostReason = "Lost to Competitor - Rackspace" + AwsClosedLostReasonLostToCompetitorSoftlayer AwsClosedLostReason = "Lost to Competitor - SoftLayer" + AwsClosedLostReasonLostToCompetitorVmware AwsClosedLostReason = "Lost to Competitor - VMWare" + AwsClosedLostReasonNoCustomerReference AwsClosedLostReason = "No Customer Reference" + AwsClosedLostReasonNoIntegrationResources AwsClosedLostReason = "No Integration Resources" + AwsClosedLostReasonNoOpportunity AwsClosedLostReason = "No Opportunity" + AwsClosedLostReasonNoPerceivedValueOfMp AwsClosedLostReason = "No Perceived Value of MP" + AwsClosedLostReasonNoResponse AwsClosedLostReason = "No Response" + AwsClosedLostReasonNotCommittedToAws AwsClosedLostReason = "Not Committed to AWS" + AwsClosedLostReasonNoUpdate AwsClosedLostReason = "No Update" + AwsClosedLostReasonOnPremisesDeployment AwsClosedLostReason = "On Premises Deployment" + AwsClosedLostReasonOther AwsClosedLostReason = "Other" + AwsClosedLostReasonOtherDetailsInDescription AwsClosedLostReason = "Other (Details in Description)" + AwsClosedLostReasonPartnerGap AwsClosedLostReason = "Partner Gap" + AwsClosedLostReasonPastDue AwsClosedLostReason = "Past Due" + AwsClosedLostReasonPeopleRelationshipGovernance AwsClosedLostReason = "People/Relationship/Governance" + AwsClosedLostReasonPlatformTechnologyLimitation AwsClosedLostReason = "Platform Technology Limitation" + AwsClosedLostReasonPreferenceForCompetitor AwsClosedLostReason = "Preference for Competitor" + AwsClosedLostReasonPrice AwsClosedLostReason = "Price" + AwsClosedLostReasonProductTechnology AwsClosedLostReason = "Product/Technology" + AwsClosedLostReasonProductNotOnAws AwsClosedLostReason = "Product Not on AWS" + AwsClosedLostReasonSecurityCompliance AwsClosedLostReason = "Security / Compliance" + AwsClosedLostReasonSelfService AwsClosedLostReason = "Self-Service" + AwsClosedLostReasonTechnicalLimitations AwsClosedLostReason = "Technical Limitations" + AwsClosedLostReasonTermSheetImpasse AwsClosedLostReason = "Term Sheet Impasse" +) + +// Values returns all known values for AwsClosedLostReason. 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 (AwsClosedLostReason) Values() []AwsClosedLostReason { + return []AwsClosedLostReason{ + "Administrative", + "Business Associate Agreement", + "Company Acquired/Dissolved", + "Competitive Offering", + "Customer Data Requirement", + "Customer Deficiency", + "Customer Experience", + "Delay / Cancellation of Project", + "Duplicate", + "Duplicate Opportunity", + "Executive Blocker", + "Failed Vetting", + "Feature Limitation", + "Financial/Commercial", + "Insufficient Amazon Value", + "Insufficient AWS Value", + "International Constraints", + "Legal / Tax / Regulatory", + "Legal Terms and Conditions", + "Lost to Competitor", + "Lost to Competitor - Google", + "Lost to Competitor - Microsoft", + "Lost to Competitor - Other", + "Lost to Competitor - Rackspace", + "Lost to Competitor - SoftLayer", + "Lost to Competitor - VMWare", + "No Customer Reference", + "No Integration Resources", + "No Opportunity", + "No Perceived Value of MP", + "No Response", + "Not Committed to AWS", + "No Update", + "On Premises Deployment", + "Other", + "Other (Details in Description)", + "Partner Gap", + "Past Due", + "People/Relationship/Governance", + "Platform Technology Limitation", + "Preference for Competitor", + "Price", + "Product/Technology", + "Product Not on AWS", + "Security / Compliance", + "Self-Service", + "Technical Limitations", + "Term Sheet Impasse", + } +} + +type AwsFundingUsed string + +// Enum values for AwsFundingUsed +const ( + AwsFundingUsedYes AwsFundingUsed = "Yes" + AwsFundingUsedNo AwsFundingUsed = "No" +) + +// Values returns all known values for AwsFundingUsed. 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 (AwsFundingUsed) Values() []AwsFundingUsed { + return []AwsFundingUsed{ + "Yes", + "No", + } +} + +type AwsMemberBusinessTitle string + +// Enum values for AwsMemberBusinessTitle +const ( + AwsMemberBusinessTitleAwsSalesRep AwsMemberBusinessTitle = "AWSSalesRep" + AwsMemberBusinessTitleAwsAccountOwner AwsMemberBusinessTitle = "AWSAccountOwner" + AwsMemberBusinessTitleWwpspdm AwsMemberBusinessTitle = "WWPSPDM" + AwsMemberBusinessTitlePdm AwsMemberBusinessTitle = "PDM" + AwsMemberBusinessTitlePsm AwsMemberBusinessTitle = "PSM" + AwsMemberBusinessTitleIsvsm AwsMemberBusinessTitle = "ISVSM" +) + +// Values returns all known values for AwsMemberBusinessTitle. 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 (AwsMemberBusinessTitle) Values() []AwsMemberBusinessTitle { + return []AwsMemberBusinessTitle{ + "AWSSalesRep", + "AWSAccountOwner", + "WWPSPDM", + "PDM", + "PSM", + "ISVSM", + } +} + +type AwsOpportunityStage string + +// Enum values for AwsOpportunityStage +const ( + AwsOpportunityStageNotStarted AwsOpportunityStage = "Not Started" + AwsOpportunityStageInProgress AwsOpportunityStage = "In Progress" + AwsOpportunityStageProspect AwsOpportunityStage = "Prospect" + AwsOpportunityStageEngaged AwsOpportunityStage = "Engaged" + AwsOpportunityStageIdentified AwsOpportunityStage = "Identified" + AwsOpportunityStageQualify AwsOpportunityStage = "Qualify" + AwsOpportunityStageResearch AwsOpportunityStage = "Research" + AwsOpportunityStageSellerEngaged AwsOpportunityStage = "Seller Engaged" + AwsOpportunityStageEvaluating AwsOpportunityStage = "Evaluating" + AwsOpportunityStageSellerRegistered AwsOpportunityStage = "Seller Registered" + AwsOpportunityStageTermSheetNegotiation AwsOpportunityStage = "Term Sheet Negotiation" + AwsOpportunityStageContractNegotiation AwsOpportunityStage = "Contract Negotiation" + AwsOpportunityStageOnboarding AwsOpportunityStage = "Onboarding" + AwsOpportunityStageBuildingIntegration AwsOpportunityStage = "Building Integration" + AwsOpportunityStageQualified AwsOpportunityStage = "Qualified" + AwsOpportunityStageOnHold AwsOpportunityStage = "On-hold" + AwsOpportunityStageTechnicalValidation AwsOpportunityStage = "Technical Validation" + AwsOpportunityStageBusinessValidation AwsOpportunityStage = "Business Validation" + AwsOpportunityStageCommitted AwsOpportunityStage = "Committed" + AwsOpportunityStageLaunched AwsOpportunityStage = "Launched" + AwsOpportunityStageDeferredToPartner AwsOpportunityStage = "Deferred to Partner" + AwsOpportunityStageClosedLost AwsOpportunityStage = "Closed Lost" + AwsOpportunityStageCompleted AwsOpportunityStage = "Completed" + AwsOpportunityStageClosedIncomplete AwsOpportunityStage = "Closed Incomplete" +) + +// Values returns all known values for AwsOpportunityStage. 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 (AwsOpportunityStage) Values() []AwsOpportunityStage { + return []AwsOpportunityStage{ + "Not Started", + "In Progress", + "Prospect", + "Engaged", + "Identified", + "Qualify", + "Research", + "Seller Engaged", + "Evaluating", + "Seller Registered", + "Term Sheet Negotiation", + "Contract Negotiation", + "Onboarding", + "Building Integration", + "Qualified", + "On-hold", + "Technical Validation", + "Business Validation", + "Committed", + "Launched", + "Deferred to Partner", + "Closed Lost", + "Completed", + "Closed Incomplete", + } +} + +type Channel string + +// Enum values for Channel +const ( + ChannelAwsMarketingCentral Channel = "AWS Marketing Central" + ChannelContentSyndication Channel = "Content Syndication" + ChannelDisplay Channel = "Display" + ChannelEmail Channel = "Email" + ChannelLiveEvent Channel = "Live Event" + ChannelOutOfHome Channel = "Out Of Home (OOH)" + ChannelPrint Channel = "Print" + ChannelSearch Channel = "Search" + ChannelSocial Channel = "Social" + ChannelTelemarketing Channel = "Telemarketing" + ChannelTv Channel = "TV" + ChannelVideo Channel = "Video" + ChannelVirtualEvent Channel = "Virtual Event" +) + +// Values returns all known values for Channel. 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 (Channel) Values() []Channel { + return []Channel{ + "AWS Marketing Central", + "Content Syndication", + "Display", + "Email", + "Live Event", + "Out Of Home (OOH)", + "Print", + "Search", + "Social", + "Telemarketing", + "TV", + "Video", + "Virtual Event", + } +} + +type ClosedLostReason string + +// Enum values for ClosedLostReason +const ( + ClosedLostReasonCustomerDeficiency ClosedLostReason = "Customer Deficiency" + ClosedLostReasonDelayCancellationOfProject ClosedLostReason = "Delay / Cancellation of Project" + ClosedLostReasonLegalTaxRegulatory ClosedLostReason = "Legal / Tax / Regulatory" + ClosedLostReasonLostToCompetitorGoogle ClosedLostReason = "Lost to Competitor - Google" + ClosedLostReasonLostToCompetitorMicrosoft ClosedLostReason = "Lost to Competitor - Microsoft" + ClosedLostReasonLostToCompetitorSoftlayer ClosedLostReason = "Lost to Competitor - SoftLayer" + ClosedLostReasonLostToCompetitorVmware ClosedLostReason = "Lost to Competitor - VMWare" + ClosedLostReasonLostToCompetitorOther ClosedLostReason = "Lost to Competitor - Other" + ClosedLostReasonNoOpportunity ClosedLostReason = "No Opportunity" + ClosedLostReasonOnPremisesDeployment ClosedLostReason = "On Premises Deployment" + ClosedLostReasonPartnerGap ClosedLostReason = "Partner Gap" + ClosedLostReasonPrice ClosedLostReason = "Price" + ClosedLostReasonSecurityCompliance ClosedLostReason = "Security / Compliance" + ClosedLostReasonTechnicalLimitations ClosedLostReason = "Technical Limitations" + ClosedLostReasonCustomerExperience ClosedLostReason = "Customer Experience" + ClosedLostReasonOther ClosedLostReason = "Other" + ClosedLostReasonPeoplerelationshipgovernance ClosedLostReason = "People/Relationship/Governance" + ClosedLostReasonProducttechnology ClosedLostReason = "Product/Technology" + ClosedLostReasonFinancialcommercial ClosedLostReason = "Financial/Commercial" +) + +// Values returns all known values for ClosedLostReason. 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 (ClosedLostReason) Values() []ClosedLostReason { + return []ClosedLostReason{ + "Customer Deficiency", + "Delay / Cancellation of Project", + "Legal / Tax / Regulatory", + "Lost to Competitor - Google", + "Lost to Competitor - Microsoft", + "Lost to Competitor - SoftLayer", + "Lost to Competitor - VMWare", + "Lost to Competitor - Other", + "No Opportunity", + "On Premises Deployment", + "Partner Gap", + "Price", + "Security / Compliance", + "Technical Limitations", + "Customer Experience", + "Other", + "People/Relationship/Governance", + "Product/Technology", + "Financial/Commercial", + } +} + +type CompetitorName string + +// Enum values for CompetitorName +const ( + CompetitorNameOracleCloud CompetitorName = "Oracle Cloud" + CompetitorNameOnPrem CompetitorName = "On-Prem" + CompetitorNameCoLocation CompetitorName = "Co-location" + CompetitorNameAkamai CompetitorName = "Akamai" + CompetitorNameAlicloud CompetitorName = "AliCloud" + CompetitorNameGoogleCloudPlatform CompetitorName = "Google Cloud Platform" + CompetitorNameIbmSoftlayer CompetitorName = "IBM Softlayer" + CompetitorNameMicrosoftAzure CompetitorName = "Microsoft Azure" + CompetitorNameOtherCostOptimization CompetitorName = "Other- Cost Optimization" + CompetitorNameNoCompetition CompetitorName = "No Competition" + CompetitorNameOther CompetitorName = "*Other" +) + +// Values returns all known values for CompetitorName. 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 (CompetitorName) Values() []CompetitorName { + return []CompetitorName{ + "Oracle Cloud", + "On-Prem", + "Co-location", + "Akamai", + "AliCloud", + "Google Cloud Platform", + "IBM Softlayer", + "Microsoft Azure", + "Other- Cost Optimization", + "No Competition", + "*Other", + } +} + +type CountryCode string + +// Enum values for CountryCode +const ( + CountryCodeUs CountryCode = "US" + CountryCodeAf CountryCode = "AF" + CountryCodeAx CountryCode = "AX" + CountryCodeAl CountryCode = "AL" + CountryCodeDz CountryCode = "DZ" + CountryCodeAs CountryCode = "AS" + CountryCodeAd CountryCode = "AD" + CountryCodeAo CountryCode = "AO" + CountryCodeAi CountryCode = "AI" + CountryCodeAq CountryCode = "AQ" + CountryCodeAg CountryCode = "AG" + CountryCodeAr CountryCode = "AR" + CountryCodeAm CountryCode = "AM" + CountryCodeAw CountryCode = "AW" + CountryCodeAu CountryCode = "AU" + CountryCodeAt CountryCode = "AT" + CountryCodeAz CountryCode = "AZ" + CountryCodeBs CountryCode = "BS" + CountryCodeBh CountryCode = "BH" + CountryCodeBd CountryCode = "BD" + CountryCodeBb CountryCode = "BB" + CountryCodeBy CountryCode = "BY" + CountryCodeBe CountryCode = "BE" + CountryCodeBz CountryCode = "BZ" + CountryCodeBj CountryCode = "BJ" + CountryCodeBm CountryCode = "BM" + CountryCodeBt CountryCode = "BT" + CountryCodeBo CountryCode = "BO" + CountryCodeBq CountryCode = "BQ" + CountryCodeBa CountryCode = "BA" + CountryCodeBw CountryCode = "BW" + CountryCodeBv CountryCode = "BV" + CountryCodeBr CountryCode = "BR" + CountryCodeIo CountryCode = "IO" + CountryCodeBn CountryCode = "BN" + CountryCodeBg CountryCode = "BG" + CountryCodeBf CountryCode = "BF" + CountryCodeBi CountryCode = "BI" + CountryCodeKh CountryCode = "KH" + CountryCodeCm CountryCode = "CM" + CountryCodeCa CountryCode = "CA" + CountryCodeCv CountryCode = "CV" + CountryCodeKy CountryCode = "KY" + CountryCodeCf CountryCode = "CF" + CountryCodeTd CountryCode = "TD" + CountryCodeCl CountryCode = "CL" + CountryCodeCn CountryCode = "CN" + CountryCodeCx CountryCode = "CX" + CountryCodeCc CountryCode = "CC" + CountryCodeCo CountryCode = "CO" + CountryCodeKm CountryCode = "KM" + CountryCodeCg CountryCode = "CG" + CountryCodeCk CountryCode = "CK" + CountryCodeCr CountryCode = "CR" + CountryCodeCi CountryCode = "CI" + CountryCodeHr CountryCode = "HR" + CountryCodeCu CountryCode = "CU" + CountryCodeCw CountryCode = "CW" + CountryCodeCy CountryCode = "CY" + CountryCodeCz CountryCode = "CZ" + CountryCodeCd CountryCode = "CD" + CountryCodeDk CountryCode = "DK" + CountryCodeDj CountryCode = "DJ" + CountryCodeDm CountryCode = "DM" + CountryCodeDo CountryCode = "DO" + CountryCodeEc CountryCode = "EC" + CountryCodeEg CountryCode = "EG" + CountryCodeSv CountryCode = "SV" + CountryCodeGq CountryCode = "GQ" + CountryCodeEr CountryCode = "ER" + CountryCodeEe CountryCode = "EE" + CountryCodeEt CountryCode = "ET" + CountryCodeFk CountryCode = "FK" + CountryCodeFo CountryCode = "FO" + CountryCodeFj CountryCode = "FJ" + CountryCodeFi CountryCode = "FI" + CountryCodeFr CountryCode = "FR" + CountryCodeGf CountryCode = "GF" + CountryCodePf CountryCode = "PF" + CountryCodeTf CountryCode = "TF" + CountryCodeGa CountryCode = "GA" + CountryCodeGm CountryCode = "GM" + CountryCodeGe CountryCode = "GE" + CountryCodeDe CountryCode = "DE" + CountryCodeGh CountryCode = "GH" + CountryCodeGi CountryCode = "GI" + CountryCodeGr CountryCode = "GR" + CountryCodeGl CountryCode = "GL" + CountryCodeGd CountryCode = "GD" + CountryCodeGp CountryCode = "GP" + CountryCodeGu CountryCode = "GU" + CountryCodeGt CountryCode = "GT" + CountryCodeGg CountryCode = "GG" + CountryCodeGn CountryCode = "GN" + CountryCodeGw CountryCode = "GW" + CountryCodeGy CountryCode = "GY" + CountryCodeHt CountryCode = "HT" + CountryCodeHm CountryCode = "HM" + CountryCodeVa CountryCode = "VA" + CountryCodeHn CountryCode = "HN" + CountryCodeHk CountryCode = "HK" + CountryCodeHu CountryCode = "HU" + CountryCodeIs CountryCode = "IS" + CountryCodeIn CountryCode = "IN" + CountryCodeId CountryCode = "ID" + CountryCodeIr CountryCode = "IR" + CountryCodeIq CountryCode = "IQ" + CountryCodeIe CountryCode = "IE" + CountryCodeIm CountryCode = "IM" + CountryCodeIl CountryCode = "IL" + CountryCodeIt CountryCode = "IT" + CountryCodeJm CountryCode = "JM" + CountryCodeJp CountryCode = "JP" + CountryCodeJe CountryCode = "JE" + CountryCodeJo CountryCode = "JO" + CountryCodeKz CountryCode = "KZ" + CountryCodeKe CountryCode = "KE" + CountryCodeKi CountryCode = "KI" + CountryCodeKr CountryCode = "KR" + CountryCodeKw CountryCode = "KW" + CountryCodeKg CountryCode = "KG" + CountryCodeLa CountryCode = "LA" + CountryCodeLv CountryCode = "LV" + CountryCodeLb CountryCode = "LB" + CountryCodeLs CountryCode = "LS" + CountryCodeLr CountryCode = "LR" + CountryCodeLy CountryCode = "LY" + CountryCodeLi CountryCode = "LI" + CountryCodeLt CountryCode = "LT" + CountryCodeLu CountryCode = "LU" + CountryCodeMo CountryCode = "MO" + CountryCodeMk CountryCode = "MK" + CountryCodeMg CountryCode = "MG" + CountryCodeMw CountryCode = "MW" + CountryCodeMy CountryCode = "MY" + CountryCodeMv CountryCode = "MV" + CountryCodeMl CountryCode = "ML" + CountryCodeMt CountryCode = "MT" + CountryCodeMh CountryCode = "MH" + CountryCodeMq CountryCode = "MQ" + CountryCodeMr CountryCode = "MR" + CountryCodeMu CountryCode = "MU" + CountryCodeYt CountryCode = "YT" + CountryCodeMx CountryCode = "MX" + CountryCodeFm CountryCode = "FM" + CountryCodeMd CountryCode = "MD" + CountryCodeMc CountryCode = "MC" + CountryCodeMn CountryCode = "MN" + CountryCodeMe CountryCode = "ME" + CountryCodeMs CountryCode = "MS" + CountryCodeMa CountryCode = "MA" + CountryCodeMz CountryCode = "MZ" + CountryCodeMm CountryCode = "MM" + CountryCodeNa CountryCode = "NA" + CountryCodeNr CountryCode = "NR" + CountryCodeNp CountryCode = "NP" + CountryCodeNl CountryCode = "NL" + CountryCodeAn CountryCode = "AN" + CountryCodeNc CountryCode = "NC" + CountryCodeNz CountryCode = "NZ" + CountryCodeNi CountryCode = "NI" + CountryCodeNe CountryCode = "NE" + CountryCodeNg CountryCode = "NG" + CountryCodeNu CountryCode = "NU" + CountryCodeNf CountryCode = "NF" + CountryCodeMp CountryCode = "MP" + CountryCodeNo CountryCode = "NO" + CountryCodeOm CountryCode = "OM" + CountryCodePk CountryCode = "PK" + CountryCodePw CountryCode = "PW" + CountryCodePs CountryCode = "PS" + CountryCodePa CountryCode = "PA" + CountryCodePg CountryCode = "PG" + CountryCodePy CountryCode = "PY" + CountryCodePe CountryCode = "PE" + CountryCodePh CountryCode = "PH" + CountryCodePn CountryCode = "PN" + CountryCodePl CountryCode = "PL" + CountryCodePt CountryCode = "PT" + CountryCodePr CountryCode = "PR" + CountryCodeQa CountryCode = "QA" + CountryCodeRe CountryCode = "RE" + CountryCodeRo CountryCode = "RO" + CountryCodeRu CountryCode = "RU" + CountryCodeRw CountryCode = "RW" + CountryCodeBl CountryCode = "BL" + CountryCodeSh CountryCode = "SH" + CountryCodeKn CountryCode = "KN" + CountryCodeLc CountryCode = "LC" + CountryCodeMf CountryCode = "MF" + CountryCodePm CountryCode = "PM" + CountryCodeVc CountryCode = "VC" + CountryCodeWs CountryCode = "WS" + CountryCodeSm CountryCode = "SM" + CountryCodeSt CountryCode = "ST" + CountryCodeSa CountryCode = "SA" + CountryCodeSn CountryCode = "SN" + CountryCodeRs CountryCode = "RS" + CountryCodeSc CountryCode = "SC" + CountryCodeSl CountryCode = "SL" + CountryCodeSg CountryCode = "SG" + CountryCodeSx CountryCode = "SX" + CountryCodeSk CountryCode = "SK" + CountryCodeSi CountryCode = "SI" + CountryCodeSb CountryCode = "SB" + CountryCodeSo CountryCode = "SO" + CountryCodeZa CountryCode = "ZA" + CountryCodeGs CountryCode = "GS" + CountryCodeSs CountryCode = "SS" + CountryCodeEs CountryCode = "ES" + CountryCodeLk CountryCode = "LK" + CountryCodeSd CountryCode = "SD" + CountryCodeSr CountryCode = "SR" + CountryCodeSj CountryCode = "SJ" + CountryCodeSz CountryCode = "SZ" + CountryCodeSe CountryCode = "SE" + CountryCodeCh CountryCode = "CH" + CountryCodeSy CountryCode = "SY" + CountryCodeTw CountryCode = "TW" + CountryCodeTj CountryCode = "TJ" + CountryCodeTz CountryCode = "TZ" + CountryCodeTh CountryCode = "TH" + CountryCodeTl CountryCode = "TL" + CountryCodeTg CountryCode = "TG" + CountryCodeTk CountryCode = "TK" + CountryCodeTo CountryCode = "TO" + CountryCodeTt CountryCode = "TT" + CountryCodeTn CountryCode = "TN" + CountryCodeTr CountryCode = "TR" + CountryCodeTm CountryCode = "TM" + CountryCodeTc CountryCode = "TC" + CountryCodeTv CountryCode = "TV" + CountryCodeUg CountryCode = "UG" + CountryCodeUa CountryCode = "UA" + CountryCodeAe CountryCode = "AE" + CountryCodeGb CountryCode = "GB" + CountryCodeUm CountryCode = "UM" + CountryCodeUy CountryCode = "UY" + CountryCodeUz CountryCode = "UZ" + CountryCodeVu CountryCode = "VU" + CountryCodeVe CountryCode = "VE" + CountryCodeVn CountryCode = "VN" + CountryCodeVg CountryCode = "VG" + CountryCodeVi CountryCode = "VI" + CountryCodeWf CountryCode = "WF" + CountryCodeEh CountryCode = "EH" + CountryCodeYe CountryCode = "YE" + CountryCodeZm CountryCode = "ZM" + CountryCodeZw CountryCode = "ZW" +) + +// Values returns all known values for CountryCode. 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 (CountryCode) Values() []CountryCode { + return []CountryCode{ + "US", + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "KH", + "CM", + "CA", + "CV", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "CD", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KR", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MK", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "AN", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SZ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW", + } +} + +type CurrencyCode string + +// Enum values for CurrencyCode +const ( + CurrencyCodeUsd CurrencyCode = "USD" + CurrencyCodeEur CurrencyCode = "EUR" + CurrencyCodeGbp CurrencyCode = "GBP" + CurrencyCodeAud CurrencyCode = "AUD" + CurrencyCodeCad CurrencyCode = "CAD" + CurrencyCodeCny CurrencyCode = "CNY" + CurrencyCodeNzd CurrencyCode = "NZD" + CurrencyCodeInr CurrencyCode = "INR" + CurrencyCodeJpy CurrencyCode = "JPY" + CurrencyCodeChf CurrencyCode = "CHF" + CurrencyCodeSek CurrencyCode = "SEK" + CurrencyCodeAed CurrencyCode = "AED" + CurrencyCodeAfn CurrencyCode = "AFN" + CurrencyCodeAll CurrencyCode = "ALL" + CurrencyCodeAmd CurrencyCode = "AMD" + CurrencyCodeAng CurrencyCode = "ANG" + CurrencyCodeAoa CurrencyCode = "AOA" + CurrencyCodeArs CurrencyCode = "ARS" + CurrencyCodeAwg CurrencyCode = "AWG" + CurrencyCodeAzn CurrencyCode = "AZN" + CurrencyCodeBam CurrencyCode = "BAM" + CurrencyCodeBbd CurrencyCode = "BBD" + CurrencyCodeBdt CurrencyCode = "BDT" + CurrencyCodeBgn CurrencyCode = "BGN" + CurrencyCodeBhd CurrencyCode = "BHD" + CurrencyCodeBif CurrencyCode = "BIF" + CurrencyCodeBmd CurrencyCode = "BMD" + CurrencyCodeBnd CurrencyCode = "BND" + CurrencyCodeBob CurrencyCode = "BOB" + CurrencyCodeBov CurrencyCode = "BOV" + CurrencyCodeBrl CurrencyCode = "BRL" + CurrencyCodeBsd CurrencyCode = "BSD" + CurrencyCodeBtn CurrencyCode = "BTN" + CurrencyCodeBwp CurrencyCode = "BWP" + CurrencyCodeByn CurrencyCode = "BYN" + CurrencyCodeBzd CurrencyCode = "BZD" + CurrencyCodeCdf CurrencyCode = "CDF" + CurrencyCodeChe CurrencyCode = "CHE" + CurrencyCodeChw CurrencyCode = "CHW" + CurrencyCodeClf CurrencyCode = "CLF" + CurrencyCodeClp CurrencyCode = "CLP" + CurrencyCodeCop CurrencyCode = "COP" + CurrencyCodeCou CurrencyCode = "COU" + CurrencyCodeCrc CurrencyCode = "CRC" + CurrencyCodeCuc CurrencyCode = "CUC" + CurrencyCodeCup CurrencyCode = "CUP" + CurrencyCodeCve CurrencyCode = "CVE" + CurrencyCodeCzk CurrencyCode = "CZK" + CurrencyCodeDjf CurrencyCode = "DJF" + CurrencyCodeDkk CurrencyCode = "DKK" + CurrencyCodeDop CurrencyCode = "DOP" + CurrencyCodeDzd CurrencyCode = "DZD" + CurrencyCodeEgp CurrencyCode = "EGP" + CurrencyCodeErn CurrencyCode = "ERN" + CurrencyCodeEtb CurrencyCode = "ETB" + CurrencyCodeFjd CurrencyCode = "FJD" + CurrencyCodeFkp CurrencyCode = "FKP" + CurrencyCodeGel CurrencyCode = "GEL" + CurrencyCodeGhs CurrencyCode = "GHS" + CurrencyCodeGip CurrencyCode = "GIP" + CurrencyCodeGmd CurrencyCode = "GMD" + CurrencyCodeGnf CurrencyCode = "GNF" + CurrencyCodeGtq CurrencyCode = "GTQ" + CurrencyCodeGyd CurrencyCode = "GYD" + CurrencyCodeHkd CurrencyCode = "HKD" + CurrencyCodeHnl CurrencyCode = "HNL" + CurrencyCodeHrk CurrencyCode = "HRK" + CurrencyCodeHtg CurrencyCode = "HTG" + CurrencyCodeHuf CurrencyCode = "HUF" + CurrencyCodeIdr CurrencyCode = "IDR" + CurrencyCodeIls CurrencyCode = "ILS" + CurrencyCodeIqd CurrencyCode = "IQD" + CurrencyCodeIrr CurrencyCode = "IRR" + CurrencyCodeIsk CurrencyCode = "ISK" + CurrencyCodeJmd CurrencyCode = "JMD" + CurrencyCodeJod CurrencyCode = "JOD" + CurrencyCodeKes CurrencyCode = "KES" + CurrencyCodeKgs CurrencyCode = "KGS" + CurrencyCodeKhr CurrencyCode = "KHR" + CurrencyCodeKmf CurrencyCode = "KMF" + CurrencyCodeKpw CurrencyCode = "KPW" + CurrencyCodeKrw CurrencyCode = "KRW" + CurrencyCodeKwd CurrencyCode = "KWD" + CurrencyCodeKyd CurrencyCode = "KYD" + CurrencyCodeKzt CurrencyCode = "KZT" + CurrencyCodeLak CurrencyCode = "LAK" + CurrencyCodeLbp CurrencyCode = "LBP" + CurrencyCodeLkr CurrencyCode = "LKR" + CurrencyCodeLrd CurrencyCode = "LRD" + CurrencyCodeLsl CurrencyCode = "LSL" + CurrencyCodeLyd CurrencyCode = "LYD" + CurrencyCodeMad CurrencyCode = "MAD" + CurrencyCodeMdl CurrencyCode = "MDL" + CurrencyCodeMga CurrencyCode = "MGA" + CurrencyCodeMkd CurrencyCode = "MKD" + CurrencyCodeMmk CurrencyCode = "MMK" + CurrencyCodeMnt CurrencyCode = "MNT" + CurrencyCodeMop CurrencyCode = "MOP" + CurrencyCodeMru CurrencyCode = "MRU" + CurrencyCodeMur CurrencyCode = "MUR" + CurrencyCodeMvr CurrencyCode = "MVR" + CurrencyCodeMwk CurrencyCode = "MWK" + CurrencyCodeMxn CurrencyCode = "MXN" + CurrencyCodeMxv CurrencyCode = "MXV" + CurrencyCodeMyr CurrencyCode = "MYR" + CurrencyCodeMzn CurrencyCode = "MZN" + CurrencyCodeNad CurrencyCode = "NAD" + CurrencyCodeNgn CurrencyCode = "NGN" + CurrencyCodeNio CurrencyCode = "NIO" + CurrencyCodeNok CurrencyCode = "NOK" + CurrencyCodeNpr CurrencyCode = "NPR" + CurrencyCodeOmr CurrencyCode = "OMR" + CurrencyCodePab CurrencyCode = "PAB" + CurrencyCodePen CurrencyCode = "PEN" + CurrencyCodePgk CurrencyCode = "PGK" + CurrencyCodePhp CurrencyCode = "PHP" + CurrencyCodePkr CurrencyCode = "PKR" + CurrencyCodePln CurrencyCode = "PLN" + CurrencyCodePyg CurrencyCode = "PYG" + CurrencyCodeQar CurrencyCode = "QAR" + CurrencyCodeRon CurrencyCode = "RON" + CurrencyCodeRsd CurrencyCode = "RSD" + CurrencyCodeRub CurrencyCode = "RUB" + CurrencyCodeRwf CurrencyCode = "RWF" + CurrencyCodeSar CurrencyCode = "SAR" + CurrencyCodeSbd CurrencyCode = "SBD" + CurrencyCodeScr CurrencyCode = "SCR" + CurrencyCodeSdg CurrencyCode = "SDG" + CurrencyCodeSgd CurrencyCode = "SGD" + CurrencyCodeShp CurrencyCode = "SHP" + CurrencyCodeSll CurrencyCode = "SLL" + CurrencyCodeSos CurrencyCode = "SOS" + CurrencyCodeSrd CurrencyCode = "SRD" + CurrencyCodeSsp CurrencyCode = "SSP" + CurrencyCodeStn CurrencyCode = "STN" + CurrencyCodeSvc CurrencyCode = "SVC" + CurrencyCodeSyp CurrencyCode = "SYP" + CurrencyCodeSzl CurrencyCode = "SZL" + CurrencyCodeThb CurrencyCode = "THB" + CurrencyCodeTjs CurrencyCode = "TJS" + CurrencyCodeTmt CurrencyCode = "TMT" + CurrencyCodeTnd CurrencyCode = "TND" + CurrencyCodeTop CurrencyCode = "TOP" + CurrencyCodeTry CurrencyCode = "TRY" + CurrencyCodeTtd CurrencyCode = "TTD" + CurrencyCodeTwd CurrencyCode = "TWD" + CurrencyCodeTzs CurrencyCode = "TZS" + CurrencyCodeUah CurrencyCode = "UAH" + CurrencyCodeUgx CurrencyCode = "UGX" + CurrencyCodeUsn CurrencyCode = "USN" + CurrencyCodeUyi CurrencyCode = "UYI" + CurrencyCodeUyu CurrencyCode = "UYU" + CurrencyCodeUzs CurrencyCode = "UZS" + CurrencyCodeVef CurrencyCode = "VEF" + CurrencyCodeVnd CurrencyCode = "VND" + CurrencyCodeVuv CurrencyCode = "VUV" + CurrencyCodeWst CurrencyCode = "WST" + CurrencyCodeXaf CurrencyCode = "XAF" + CurrencyCodeXcd CurrencyCode = "XCD" + CurrencyCodeXdr CurrencyCode = "XDR" + CurrencyCodeXof CurrencyCode = "XOF" + CurrencyCodeXpf CurrencyCode = "XPF" + CurrencyCodeXsu CurrencyCode = "XSU" + CurrencyCodeXua CurrencyCode = "XUA" + CurrencyCodeYer CurrencyCode = "YER" + CurrencyCodeZar CurrencyCode = "ZAR" + CurrencyCodeZmw CurrencyCode = "ZMW" + CurrencyCodeZwl CurrencyCode = "ZWL" +) + +// Values returns all known values for CurrencyCode. 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 (CurrencyCode) Values() []CurrencyCode { + return []CurrencyCode{ + "USD", + "EUR", + "GBP", + "AUD", + "CAD", + "CNY", + "NZD", + "INR", + "JPY", + "CHF", + "SEK", + "AED", + "AFN", + "ALL", + "AMD", + "ANG", + "AOA", + "ARS", + "AWG", + "AZN", + "BAM", + "BBD", + "BDT", + "BGN", + "BHD", + "BIF", + "BMD", + "BND", + "BOB", + "BOV", + "BRL", + "BSD", + "BTN", + "BWP", + "BYN", + "BZD", + "CDF", + "CHE", + "CHW", + "CLF", + "CLP", + "COP", + "COU", + "CRC", + "CUC", + "CUP", + "CVE", + "CZK", + "DJF", + "DKK", + "DOP", + "DZD", + "EGP", + "ERN", + "ETB", + "FJD", + "FKP", + "GEL", + "GHS", + "GIP", + "GMD", + "GNF", + "GTQ", + "GYD", + "HKD", + "HNL", + "HRK", + "HTG", + "HUF", + "IDR", + "ILS", + "IQD", + "IRR", + "ISK", + "JMD", + "JOD", + "KES", + "KGS", + "KHR", + "KMF", + "KPW", + "KRW", + "KWD", + "KYD", + "KZT", + "LAK", + "LBP", + "LKR", + "LRD", + "LSL", + "LYD", + "MAD", + "MDL", + "MGA", + "MKD", + "MMK", + "MNT", + "MOP", + "MRU", + "MUR", + "MVR", + "MWK", + "MXN", + "MXV", + "MYR", + "MZN", + "NAD", + "NGN", + "NIO", + "NOK", + "NPR", + "OMR", + "PAB", + "PEN", + "PGK", + "PHP", + "PKR", + "PLN", + "PYG", + "QAR", + "RON", + "RSD", + "RUB", + "RWF", + "SAR", + "SBD", + "SCR", + "SDG", + "SGD", + "SHP", + "SLL", + "SOS", + "SRD", + "SSP", + "STN", + "SVC", + "SYP", + "SZL", + "THB", + "TJS", + "TMT", + "TND", + "TOP", + "TRY", + "TTD", + "TWD", + "TZS", + "UAH", + "UGX", + "USN", + "UYI", + "UYU", + "UZS", + "VEF", + "VND", + "VUV", + "WST", + "XAF", + "XCD", + "XDR", + "XOF", + "XPF", + "XSU", + "XUA", + "YER", + "ZAR", + "ZMW", + "ZWL", + } +} + +type DeliveryModel string + +// Enum values for DeliveryModel +const ( + DeliveryModelSaasOrPaas DeliveryModel = "SaaS or PaaS" + DeliveryModelByolOrAmi DeliveryModel = "BYOL or AMI" + DeliveryModelManagedServices DeliveryModel = "Managed Services" + DeliveryModelProfessionalServices DeliveryModel = "Professional Services" + DeliveryModelResell DeliveryModel = "Resell" + DeliveryModelOther DeliveryModel = "Other" +) + +// Values returns all known values for DeliveryModel. 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 (DeliveryModel) Values() []DeliveryModel { + return []DeliveryModel{ + "SaaS or PaaS", + "BYOL or AMI", + "Managed Services", + "Professional Services", + "Resell", + "Other", + } +} + +type EngagementInvitationPayloadType string + +// Enum values for EngagementInvitationPayloadType +const ( + EngagementInvitationPayloadTypeOpportunityInvitation EngagementInvitationPayloadType = "OpportunityInvitation" +) + +// Values returns all known values for EngagementInvitationPayloadType. 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 (EngagementInvitationPayloadType) Values() []EngagementInvitationPayloadType { + return []EngagementInvitationPayloadType{ + "OpportunityInvitation", + } +} + +type EngagementScore string + +// Enum values for EngagementScore +const ( + EngagementScoreHigh EngagementScore = "High" + EngagementScoreMedium EngagementScore = "Medium" + EngagementScoreLow EngagementScore = "Low" +) + +// Values returns all known values for EngagementScore. 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 (EngagementScore) Values() []EngagementScore { + return []EngagementScore{ + "High", + "Medium", + "Low", + } +} + +type Industry string + +// Enum values for Industry +const ( + IndustryAerospaceSatellite Industry = "Aerospace" + IndustryAgriculture Industry = "Agriculture" + IndustryAutomotive Industry = "Automotive" + IndustryComputersElectronics Industry = "Computers and Electronics" + IndustryConsumerGoods Industry = "Consumer Goods" + IndustryEducation Industry = "Education" + IndustryEnergyOilGas Industry = "Energy - Oil and Gas" + IndustryEnergyPowerUtilities Industry = "Energy - Power and Utilities" + IndustryFinancialServices Industry = "Financial Services" + IndustryGaming Industry = "Gaming" + IndustryGovernment Industry = "Government" + IndustryHealthcare Industry = "Healthcare" + IndustryHospitality Industry = "Hospitality" + IndustryLifeSciences Industry = "Life Sciences" + IndustryManufacturing Industry = "Manufacturing" + IndustryMarketingAdvertising Industry = "Marketing and Advertising" + IndustryMediaEntertainment Industry = "Media and Entertainment" + IndustryMining Industry = "Mining" + IndustryNonProfitOrganization Industry = "Non-Profit Organization" + IndustryProfessionalServices Industry = "Professional Services" + IndustryRealestateConstruction Industry = "Real Estate and Construction" + IndustryRetail Industry = "Retail" + IndustrySoftwareInternet Industry = "Software and Internet" + IndustryTelecommunications Industry = "Telecommunications" + IndustryTransportationLogistics Industry = "Transportation and Logistics" + IndustryTravel Industry = "Travel" + IndustryWholesaleDistribution Industry = "Wholesale and Distribution" + IndustryOther Industry = "Other" +) + +// Values returns all known values for Industry. 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 (Industry) Values() []Industry { + return []Industry{ + "Aerospace", + "Agriculture", + "Automotive", + "Computers and Electronics", + "Consumer Goods", + "Education", + "Energy - Oil and Gas", + "Energy - Power and Utilities", + "Financial Services", + "Gaming", + "Government", + "Healthcare", + "Hospitality", + "Life Sciences", + "Manufacturing", + "Marketing and Advertising", + "Media and Entertainment", + "Mining", + "Non-Profit Organization", + "Professional Services", + "Real Estate and Construction", + "Retail", + "Software and Internet", + "Telecommunications", + "Transportation and Logistics", + "Travel", + "Wholesale and Distribution", + "Other", + } +} + +type InvitationStatus string + +// Enum values for InvitationStatus +const ( + InvitationStatusAccepted InvitationStatus = "ACCEPTED" + InvitationStatusPending InvitationStatus = "PENDING" + InvitationStatusRejected InvitationStatus = "REJECTED" + InvitationStatusExpired InvitationStatus = "EXPIRED" +) + +// Values returns all known values for InvitationStatus. 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 (InvitationStatus) Values() []InvitationStatus { + return []InvitationStatus{ + "ACCEPTED", + "PENDING", + "REJECTED", + "EXPIRED", + } +} + +type InvolvementTypeChangeReason string + +// Enum values for InvolvementTypeChangeReason +const ( + InvolvementTypeChangeReasonExpansionOpportunity InvolvementTypeChangeReason = "Expansion Opportunity" + InvolvementTypeChangeReasonChangeInDealInformation InvolvementTypeChangeReason = "Change in Deal Information" + InvolvementTypeChangeReasonCustomerRequested InvolvementTypeChangeReason = "Customer Requested" + InvolvementTypeChangeReasonTechnicalComplexity InvolvementTypeChangeReason = "Technical Complexity" + InvolvementTypeChangeReasonRiskMitigation InvolvementTypeChangeReason = "Risk Mitigation" +) + +// Values returns all known values for InvolvementTypeChangeReason. 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 (InvolvementTypeChangeReason) Values() []InvolvementTypeChangeReason { + return []InvolvementTypeChangeReason{ + "Expansion Opportunity", + "Change in Deal Information", + "Customer Requested", + "Technical Complexity", + "Risk Mitigation", + } +} + +type MarketingSource string + +// Enum values for MarketingSource +const ( + MarketingSourceMarketingActivity MarketingSource = "Marketing Activity" + MarketingSourceNone MarketingSource = "None" +) + +// Values returns all known values for MarketingSource. 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 (MarketingSource) Values() []MarketingSource { + return []MarketingSource{ + "Marketing Activity", + "None", + } +} + +type NationalSecurity string + +// Enum values for NationalSecurity +const ( + NationalSecurityYes NationalSecurity = "Yes" + NationalSecurityNo NationalSecurity = "No" +) + +// Values returns all known values for NationalSecurity. 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 (NationalSecurity) Values() []NationalSecurity { + return []NationalSecurity{ + "Yes", + "No", + } +} + +type OpportunityEngagementInvitationSortName string + +// Enum values for OpportunityEngagementInvitationSortName +const ( + OpportunityEngagementInvitationSortNameInvitationDate OpportunityEngagementInvitationSortName = "InvitationDate" +) + +// Values returns all known values for OpportunityEngagementInvitationSortName. +// 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 (OpportunityEngagementInvitationSortName) Values() []OpportunityEngagementInvitationSortName { + return []OpportunityEngagementInvitationSortName{ + "InvitationDate", + } +} + +type OpportunityOrigin string + +// Enum values for OpportunityOrigin +const ( + OpportunityOriginAwsReferral OpportunityOrigin = "AWS Referral" + OpportunityOriginPartnerReferral OpportunityOrigin = "Partner Referral" +) + +// Values returns all known values for OpportunityOrigin. 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 (OpportunityOrigin) Values() []OpportunityOrigin { + return []OpportunityOrigin{ + "AWS Referral", + "Partner Referral", + } +} + +type OpportunitySortName string + +// Enum values for OpportunitySortName +const ( + OpportunitySortNameLastModifieddate OpportunitySortName = "LastModifiedDate" + OpportunitySortNameIdentifier OpportunitySortName = "Identifier" + OpportunitySortNameCustomerCompanyName OpportunitySortName = "CustomerCompanyName" +) + +// Values returns all known values for OpportunitySortName. 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 (OpportunitySortName) Values() []OpportunitySortName { + return []OpportunitySortName{ + "LastModifiedDate", + "Identifier", + "CustomerCompanyName", + } +} + +type OpportunityType string + +// Enum values for OpportunityType +const ( + OpportunityTypeNetNewBusiness OpportunityType = "Net New Business" + OpportunityTypeFlatRenewal OpportunityType = "Flat Renewal" + OpportunityTypeExpansion OpportunityType = "Expansion" +) + +// Values returns all known values for OpportunityType. 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 (OpportunityType) Values() []OpportunityType { + return []OpportunityType{ + "Net New Business", + "Flat Renewal", + "Expansion", + } +} + +type ParticipantType string + +// Enum values for ParticipantType +const ( + ParticipantTypeReceiver ParticipantType = "RECEIVER" +) + +// Values returns all known values for ParticipantType. 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 (ParticipantType) Values() []ParticipantType { + return []ParticipantType{ + "RECEIVER", + } +} + +type PaymentFrequency string + +// Enum values for PaymentFrequency +const ( + PaymentFrequencyMonthly PaymentFrequency = "Monthly" +) + +// Values returns all known values for PaymentFrequency. 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 (PaymentFrequency) Values() []PaymentFrequency { + return []PaymentFrequency{ + "Monthly", + } +} + +type PrimaryNeedFromAws string + +// Enum values for PrimaryNeedFromAws +const ( + PrimaryNeedFromAwsCoSellArchitecturalValidation PrimaryNeedFromAws = "Co-Sell - Architectural Validation" + PrimaryNeedFromAwsCoSellBusinessPresentation PrimaryNeedFromAws = "Co-Sell - Business Presentation" + PrimaryNeedFromAwsCoSellCompetitiveInformation PrimaryNeedFromAws = "Co-Sell - Competitive Information" + PrimaryNeedFromAwsCoSellPricingAssistance PrimaryNeedFromAws = "Co-Sell - Pricing Assistance" + PrimaryNeedFromAwsCoSellTechnicalConsultation PrimaryNeedFromAws = "Co-Sell - Technical Consultation" + PrimaryNeedFromAwsCoSellTotalCostOfOwnershipEvaluation PrimaryNeedFromAws = "Co-Sell - Total Cost of Ownership Evaluation" + PrimaryNeedFromAwsCoSellDealSupport PrimaryNeedFromAws = "Co-Sell - Deal Support" + PrimaryNeedFromAwsCoSellSupportForPublicTenderRfx PrimaryNeedFromAws = "Co-Sell - Support for Public Tender / RFx" +) + +// Values returns all known values for PrimaryNeedFromAws. 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 (PrimaryNeedFromAws) Values() []PrimaryNeedFromAws { + return []PrimaryNeedFromAws{ + "Co-Sell - Architectural Validation", + "Co-Sell - Business Presentation", + "Co-Sell - Competitive Information", + "Co-Sell - Pricing Assistance", + "Co-Sell - Technical Consultation", + "Co-Sell - Total Cost of Ownership Evaluation", + "Co-Sell - Deal Support", + "Co-Sell - Support for Public Tender / RFx", + } +} + +type ReasonCode string + +// Enum values for ReasonCode +const ( + ReasonCodeInvitationAccessDenied ReasonCode = "InvitationAccessDenied" + ReasonCodeEngagementAccessDenied ReasonCode = "EngagementAccessDenied" + ReasonCodeOpportunityAccessDenied ReasonCode = "OpportunityAccessDenied" + ReasonCodeResourceSnapshotJobAccessDenied ReasonCode = "ResourceSnapshotJobAccessDenied" + ReasonCodeEngagementValidationFailed ReasonCode = "EngagementValidationFailed" + ReasonCodeOpportunitySubmissionFailed ReasonCode = "OpportunitySubmissionFailed" + ReasonCodeEngagementInvitationConflict ReasonCode = "EngagementInvitationConflict" + ReasonCodeInternalError ReasonCode = "InternalError" + ReasonCodeOpportunityValidationFailed ReasonCode = "OpportunityValidationFailed" + ReasonCodeOpportunityConflict ReasonCode = "OpportunityConflict" +) + +// Values returns all known values for ReasonCode. 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 (ReasonCode) Values() []ReasonCode { + return []ReasonCode{ + "InvitationAccessDenied", + "EngagementAccessDenied", + "OpportunityAccessDenied", + "ResourceSnapshotJobAccessDenied", + "EngagementValidationFailed", + "OpportunitySubmissionFailed", + "EngagementInvitationConflict", + "InternalError", + "OpportunityValidationFailed", + "OpportunityConflict", + } +} + +type ReceiverResponsibility string + +// Enum values for ReceiverResponsibility +const ( + ReceiverResponsibilityDistributor ReceiverResponsibility = "Distributor" + ReceiverResponsibilityReseller ReceiverResponsibility = "Reseller" + ReceiverResponsibilityHardwarePartner ReceiverResponsibility = "Hardware Partner" + ReceiverResponsibilityManagedServiceProvider ReceiverResponsibility = "Managed Service Provider" + ReceiverResponsibilitySoftwarePartner ReceiverResponsibility = "Software Partner" + ReceiverResponsibilityServicesPartner ReceiverResponsibility = "Services Partner" + ReceiverResponsibilityTrainingPartner ReceiverResponsibility = "Training Partner" + ReceiverResponsibilityCoSellFacilitator ReceiverResponsibility = "Co-Sell Facilitator" + ReceiverResponsibilityFacilitator ReceiverResponsibility = "Facilitator" +) + +// Values returns all known values for ReceiverResponsibility. 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 (ReceiverResponsibility) Values() []ReceiverResponsibility { + return []ReceiverResponsibility{ + "Distributor", + "Reseller", + "Hardware Partner", + "Managed Service Provider", + "Software Partner", + "Services Partner", + "Training Partner", + "Co-Sell Facilitator", + "Facilitator", + } +} + +type RelatedEntityType string + +// Enum values for RelatedEntityType +const ( + RelatedEntityTypeSolutions RelatedEntityType = "Solutions" + RelatedEntityTypeAwsProducts RelatedEntityType = "AwsProducts" + RelatedEntityTypeAwsMarketplaceOffers RelatedEntityType = "AwsMarketplaceOffers" +) + +// Values returns all known values for RelatedEntityType. 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 (RelatedEntityType) Values() []RelatedEntityType { + return []RelatedEntityType{ + "Solutions", + "AwsProducts", + "AwsMarketplaceOffers", + } +} + +type RevenueModel string + +// Enum values for RevenueModel +const ( + RevenueModelContract RevenueModel = "Contract" + RevenueModelPayAsYouGo RevenueModel = "Pay-as-you-go" + RevenueModelSubscription RevenueModel = "Subscription" +) + +// Values returns all known values for RevenueModel. 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 (RevenueModel) Values() []RevenueModel { + return []RevenueModel{ + "Contract", + "Pay-as-you-go", + "Subscription", + } +} + +type ReviewStatus string + +// Enum values for ReviewStatus +const ( + ReviewStatusPendingSubmission ReviewStatus = "Pending Submission" + ReviewStatusSubmitted ReviewStatus = "Submitted" + ReviewStatusInReview ReviewStatus = "In review" + ReviewStatusApproved ReviewStatus = "Approved" + ReviewStatusRejected ReviewStatus = "Rejected" + ReviewStatusActionRequired ReviewStatus = "Action Required" +) + +// Values returns all known values for ReviewStatus. 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 (ReviewStatus) Values() []ReviewStatus { + return []ReviewStatus{ + "Pending Submission", + "Submitted", + "In review", + "Approved", + "Rejected", + "Action Required", + } +} + +type SalesActivity string + +// Enum values for SalesActivity +const ( + SalesActivityInitializedDiscussionsWithCustomer SalesActivity = "Initialized discussions with customer" + SalesActivityCustomerHasShownInterest SalesActivity = "Customer has shown interest in solution" + SalesActivityConductedPocDemo SalesActivity = "Conducted POC / Demo" + SalesActivityInEvaluationPlanningStage SalesActivity = "In evaluation / planning stage" + SalesActivityAgreedOnSolutionToBusinessProblem SalesActivity = "Agreed on solution to Business Problem" + SalesActivityCompletedActionPlan SalesActivity = "Completed Action Plan" + SalesActivityFinalizedDeploymentNeeds SalesActivity = "Finalized Deployment Need" + SalesActivitySowSigned SalesActivity = "SOW Signed" +) + +// Values returns all known values for SalesActivity. 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 (SalesActivity) Values() []SalesActivity { + return []SalesActivity{ + "Initialized discussions with customer", + "Customer has shown interest in solution", + "Conducted POC / Demo", + "In evaluation / planning stage", + "Agreed on solution to Business Problem", + "Completed Action Plan", + "Finalized Deployment Need", + "SOW Signed", + } +} + +type SalesInvolvementType string + +// Enum values for SalesInvolvementType +const ( + SalesInvolvementTypeForVisibilityOnly SalesInvolvementType = "For Visibility Only" + SalesInvolvementTypeCoSell SalesInvolvementType = "Co-Sell" +) + +// Values returns all known values for SalesInvolvementType. 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 (SalesInvolvementType) Values() []SalesInvolvementType { + return []SalesInvolvementType{ + "For Visibility Only", + "Co-Sell", + } +} + +type SolutionSortName string + +// Enum values for SolutionSortName +const ( + SolutionSortNameIdentifier SolutionSortName = "Identifier" + SolutionSortNameName SolutionSortName = "Name" + SolutionSortNameStatus SolutionSortName = "Status" + SolutionSortNameCategory SolutionSortName = "Category" + SolutionSortNameCreateddate SolutionSortName = "CreatedDate" +) + +// Values returns all known values for SolutionSortName. 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 (SolutionSortName) Values() []SolutionSortName { + return []SolutionSortName{ + "Identifier", + "Name", + "Status", + "Category", + "CreatedDate", + } +} + +type SolutionStatus string + +// Enum values for SolutionStatus +const ( + SolutionStatusActive SolutionStatus = "Active" + SolutionStatusInactive SolutionStatus = "Inactive" + SolutionStatusDraft SolutionStatus = "Draft" +) + +// Values returns all known values for SolutionStatus. 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 (SolutionStatus) Values() []SolutionStatus { + return []SolutionStatus{ + "Active", + "Inactive", + "Draft", + } +} + +type SortOrder string + +// Enum values for SortOrder +const ( + SortOrderAscending SortOrder = "ASCENDING" + SortOrderDescending SortOrder = "DESCENDING" +) + +// Values returns all known values for SortOrder. 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 (SortOrder) Values() []SortOrder { + return []SortOrder{ + "ASCENDING", + "DESCENDING", + } +} + +type Stage string + +// Enum values for Stage +const ( + StageProspect Stage = "Prospect" + StageQualified Stage = "Qualified" + StageTechnicalValidation Stage = "Technical Validation" + StageBusinessValidation Stage = "Business Validation" + StageCommitted Stage = "Committed" + StageLaunched Stage = "Launched" + StageClosedLost Stage = "Closed Lost" +) + +// Values returns all known values for Stage. 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 (Stage) Values() []Stage { + return []Stage{ + "Prospect", + "Qualified", + "Technical Validation", + "Business Validation", + "Committed", + "Launched", + "Closed Lost", + } +} + +type TaskStatus string + +// Enum values for TaskStatus +const ( + TaskStatusInProgress TaskStatus = "IN_PROGRESS" + TaskStatusComplete TaskStatus = "COMPLETE" + TaskStatusFailed TaskStatus = "FAILED" +) + +// Values returns all known values for TaskStatus. 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 (TaskStatus) Values() []TaskStatus { + return []TaskStatus{ + "IN_PROGRESS", + "COMPLETE", + "FAILED", + } +} + +type ValidationExceptionErrorCode string + +// Enum values for ValidationExceptionErrorCode +const ( + ValidationExceptionErrorCodeRequiredFieldMissing ValidationExceptionErrorCode = "REQUIRED_FIELD_MISSING" + ValidationExceptionErrorCodeInvalidEnumValue ValidationExceptionErrorCode = "INVALID_ENUM_VALUE" + ValidationExceptionErrorCodeInvalidStringFormat ValidationExceptionErrorCode = "INVALID_STRING_FORMAT" + ValidationExceptionErrorCodeInvalidValue ValidationExceptionErrorCode = "INVALID_VALUE" + ValidationExceptionErrorCodeTooManyValues ValidationExceptionErrorCode = "TOO_MANY_VALUES" + ValidationExceptionErrorCodeInvalidResourceState ValidationExceptionErrorCode = "INVALID_RESOURCE_STATE" + ValidationExceptionErrorCodeDuplicateKeyValue ValidationExceptionErrorCode = "DUPLICATE_KEY_VALUE" + ValidationExceptionErrorCodeValueOutOfRange ValidationExceptionErrorCode = "VALUE_OUT_OF_RANGE" + ValidationExceptionErrorCodeActionNotPermitted ValidationExceptionErrorCode = "ACTION_NOT_PERMITTED" +) + +// Values returns all known values for ValidationExceptionErrorCode. 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 (ValidationExceptionErrorCode) Values() []ValidationExceptionErrorCode { + return []ValidationExceptionErrorCode{ + "REQUIRED_FIELD_MISSING", + "INVALID_ENUM_VALUE", + "INVALID_STRING_FORMAT", + "INVALID_VALUE", + "TOO_MANY_VALUES", + "INVALID_RESOURCE_STATE", + "DUPLICATE_KEY_VALUE", + "VALUE_OUT_OF_RANGE", + "ACTION_NOT_PERMITTED", + } +} + +type ValidationExceptionReason string + +// Enum values for ValidationExceptionReason +const ( + ValidationExceptionReasonRequestValidationFailed ValidationExceptionReason = "REQUEST_VALIDATION_FAILED" + ValidationExceptionReasonBusinessValidationFailed ValidationExceptionReason = "BUSINESS_VALIDATION_FAILED" +) + +// Values returns all known values for ValidationExceptionReason. 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 (ValidationExceptionReason) Values() []ValidationExceptionReason { + return []ValidationExceptionReason{ + "REQUEST_VALIDATION_FAILED", + "BUSINESS_VALIDATION_FAILED", + } +} + +type Visibility string + +// Enum values for Visibility +const ( + VisibilityFull Visibility = "Full" + VisibilityLimited Visibility = "Limited" +) + +// Values returns all known values for Visibility. 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 (Visibility) Values() []Visibility { + return []Visibility{ + "Full", + "Limited", + } +} diff --git a/service/partnercentralselling/types/errors.go b/service/partnercentralselling/types/errors.go new file mode 100644 index 00000000000..d484663059b --- /dev/null +++ b/service/partnercentralselling/types/errors.go @@ -0,0 +1,227 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + "fmt" + smithy "github.com/aws/smithy-go" +) + +// This error occurs when you don't have permission to perform the requested +// action. +// +// You don’t have access to this action or resource. Review IAM policies or +// contact your AWS administrator for assistance. +type AccessDeniedException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *AccessDeniedException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *AccessDeniedException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "AccessDeniedException" + } + return *e.ErrorCodeOverride +} +func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// This error occurs when the request can’t be processed due to a conflict with +// the target resource's current state, which could result from updating or +// deleting the resource. +// +// Suggested action: Fetch the latest state of the resource, verify the state, and +// retry the request. +type ConflictException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *ConflictException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ConflictException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ConflictException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ConflictException" + } + return *e.ErrorCodeOverride +} +func (e *ConflictException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// This error occurs when the specified resource can’t be found or doesn't exist. +// Resource ID and type might be incorrect. +// +// Suggested action: This is usually a transient error. Retry after the provided +// retry delay or a short interval. If the problem persists, contact AWS support. +type InternalServerException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *InternalServerException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *InternalServerException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "InternalServerException" + } + return *e.ErrorCodeOverride +} +func (e *InternalServerException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } + +// This error occurs when the specified resource can't be found. The resource +// might not exist, or isn't visible with the current credentials. +// +// Suggested action: Verify that the resource ID is correct and the resource is in +// the expected AWS region. Check IAM permissions for accessing the resource. +type ResourceNotFoundException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ResourceNotFoundException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ResourceNotFoundException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ResourceNotFoundException" + } + return *e.ErrorCodeOverride +} +func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// This error occurs when the request would cause a service quota to be exceeded. +// Service quotas represent the maximum allowed use of a specific resource, and +// this error indicates that the request would surpass that limit. +// +// Suggested action: Review the [service quotas] for the specific resource, and reduce the usage +// or request a quota increase through support if necessary. +// +// [service quotas]: https://docs.aws.amazon.com/partner-central/latest/selling-api/quotas.html +type ServiceQuotaExceededException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ServiceQuotaExceededException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ServiceQuotaExceededException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ServiceQuotaExceededException" + } + return *e.ErrorCodeOverride +} +func (e *ServiceQuotaExceededException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// This error occurs when there are too many requests sent. Review the provided +// quotas and adapt your usage to avoid throttling. +// +// This error occurs when there are too many requests sent. Review the provided [quotas] +// and retry after the provided delay. +// +// [quotas]: https://docs.aws.amazon.com/partner-central/latest/selling-api/quotas.html +type ThrottlingException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ThrottlingException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ThrottlingException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ThrottlingException" + } + return *e.ErrorCodeOverride +} +func (e *ThrottlingException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// The input fails to satisfy the constraints specified by the service or business +// validation rules. +// +// Suggested action: Review the error message, including the failed fields and +// reasons, to correct the request payload. +type ValidationException struct { + Message *string + + ErrorCodeOverride *string + + Reason ValidationExceptionReason + ErrorList []ValidationExceptionError + + noSmithyDocumentSerde +} + +func (e *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ValidationException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ValidationException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ValidationException" + } + return *e.ErrorCodeOverride +} +func (e *ValidationException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } diff --git a/service/partnercentralselling/types/types.go b/service/partnercentralselling/types/types.go new file mode 100644 index 00000000000..7e30f182b7e --- /dev/null +++ b/service/partnercentralselling/types/types.go @@ -0,0 +1,1497 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + smithydocument "github.com/aws/smithy-go/document" + "time" +) + +// Specifies the Customer 's account details associated with the Opportunity . +type Account struct { + + // Specifies the end Customer 's company name associated with the Opportunity . + // + // This member is required. + CompanyName *string + + // Specifies the end Customer 's address details associated with the Opportunity . + Address *Address + + // Specifies the Customer Amazon Web Services account ID associated with the + // Opportunity . + AwsAccountId *string + + // Indicates the Customer DUNS number, if available. + Duns *string + + // Specifies the industry the end Customer belongs to that's associated with the + // Opportunity . It refers to the category or sector where the customer's business + // operates. This is a required field. + Industry Industry + + // Specifies the end Customer 's industry associated with the Opportunity , when + // the selected value in the Industry field is Other . + OtherIndustry *string + + // Specifies the end customer's company website URL associated with the + // Opportunity . This value is crucial to map the customer within the Amazon Web + // Services CRM system. This field is required in all cases except when the + // opportunity is related to national security. + WebsiteUrl *string + + noSmithyDocumentSerde +} + +// Contains the account details of the partner who received the Engagement +// Invitation, including the AWS account ID and company name. +type AccountReceiver struct { + + // Indicates the AWS account ID of the partner who received the Engagement + // Invitation. This is a unique identifier for managing engagements with specific + // AWS accounts. + // + // This member is required. + AwsAccountId *string + + // Represents the alias of the partner account receiving the Engagement + // Invitation, making it easier to identify and track the recipient in reports or + // logs. + Alias *string + + noSmithyDocumentSerde +} + +// An object that contains an Account 's subset of fields. +type AccountSummary struct { + + // Specifies the end Customer 's company name associated with the Opportunity . + // + // This member is required. + CompanyName *string + + // Specifies the end Customer 's address details associated with the Opportunity . + Address *AddressSummary + + // Specifies which industry the end Customer belongs to associated with the + // Opportunity . It refers to the category or sector that the customer's business + // operates in. + // + // To submit a value outside the picklist, use Other . + // + // Conditionally mandatory if Other is selected for Industry Vertical in LOVs. + Industry Industry + + // Specifies the end Customer 's industry associated with the Opportunity , when + // the selected value in the Industry field is Other . This field is relevant when + // the customer's industry doesn't fall under the predefined picklist values and + // requires a custom description. + OtherIndustry *string + + // Specifies the end customer's company website URL associated with the Opportunity + // . This value is crucial to map the customer within the Amazon Web Services CRM + // system. + WebsiteUrl *string + + noSmithyDocumentSerde +} + +// Specifies the end Customer 's address details associated with the Opportunity . +type Address struct { + + // Specifies the end Customer 's city associated with the Opportunity . + City *string + + // Specifies the end Customer 's country associated with the Opportunity . + CountryCode CountryCode + + // Specifies the end Customer 's postal code associated with the Opportunity . + PostalCode *string + + // Specifies the end Customer 's state or region associated with the Opportunity . + // + // Valid values: Alabama | Alaska | American Samoa | Arizona | Arkansas | + // California | Colorado | Connecticut | Delaware | Dist. of Columbia | Federated + // States of Micronesia | Florida | Georgia | Guam | Hawaii | Idaho | Illinois | + // Indiana | Iowa | Kansas | Kentucky | Louisiana | Maine | Marshall Islands | + // Maryland | Massachusetts | Michigan | Minnesota | Mississippi | Missouri | + // Montana | Nebraska | Nevada | New Hampshire | New Jersey | New Mexico | New York + // | North Carolina | North Dakota | Northern Mariana Islands | Ohio | Oklahoma | + // Oregon | Palau | Pennsylvania | Puerto Rico | Rhode Island | South Carolina | + // South Dakota | Tennessee | Texas | Utah | Vermont | Virginia | Virgin Islands | + // Washington | West Virginia | Wisconsin | Wyoming | APO/AE | AFO/FPO | FPO, AP + StateOrRegion *string + + // Specifies the end Customer 's street address associated with the Opportunity . + StreetAddress *string + + noSmithyDocumentSerde +} + +// An object that contains an Address object's subset of fields. +type AddressSummary struct { + + // Specifies the end Customer 's city associated with the Opportunity . + City *string + + // Specifies the end Customer 's country associated with the Opportunity . + CountryCode CountryCode + + // Specifies the end Customer 's postal code associated with the Opportunity . + PostalCode *string + + // Specifies the end Customer 's state or region associated with the Opportunity . + // + // Valid values: Alabama | Alaska | American Samoa | Arizona | Arkansas | + // California | Colorado | Connecticut | Delaware | Dist. of Columbia | Federated + // States of Micronesia | Florida | Georgia | Guam | Hawaii | Idaho | Illinois | + // Indiana | Iowa | Kansas | Kentucky | Louisiana | Maine | Marshall Islands | + // Maryland | Massachusetts | Michigan | Minnesota | Mississippi | Missouri | + // Montana | Nebraska | Nevada | New Hampshire | New Jersey | New Mexico | New York + // | North Carolina | North Dakota | Northern Mariana Islands | Ohio | Oklahoma | + // Oregon | Palau | Pennsylvania | Puerto Rico | Rhode Island | South Carolina | + // South Dakota | Tennessee | Texas | Utah | Vermont | Virginia | Virgin Islands | + // Washington | West Virginia | Wisconsin | Wyoming | APO/AE | AFO/FPO | FPO, AP + StateOrRegion *string + + noSmithyDocumentSerde +} + +// Represents the contact details of the individual assigned to manage the +// opportunity within the partner organization. This ensures that there is a clear +// point of contact for the opportunity's progress and updates. +type AssigneeContact struct { + + // Specifies the business title of the assignee managing the opportunity. This + // helps clarify the individual's role and responsibilities within the + // organization. + // + // This member is required. + BusinessTitle *string + + // Provides the email address of the assignee. This email is used for + // communications and notifications related to the opportunity. + // + // This member is required. + Email *string + + // Specifies the first name of the assignee managing the opportunity. + // + // This member is required. + FirstName *string + + // Specifies the last name of the assignee managing the opportunity. + // + // This member is required. + LastName *string + + noSmithyDocumentSerde +} + +// Represents the customer associated with the AWS opportunity. This field +// captures key details about the customer that are necessary for managing the +// opportunity. +type AwsOpportunityCustomer struct { + + // Provides a list of customer contacts involved in the opportunity. These + // contacts may include decision-makers, influencers, and other key stakeholders + // within the customer's organization. + Contacts []Contact + + noSmithyDocumentSerde +} + +// Contains insights provided by AWS for the opportunity, offering recommendations +// and analysis that can help the partner optimize their engagement and strategy. +type AwsOpportunityInsights struct { + + // Represents a score assigned by AWS to indicate the level of engagement and + // potential success for the opportunity. This score helps partners prioritize + // their efforts. + EngagementScore EngagementScore + + // Provides recommendations from AWS on the next best actions to take in order to + // move the opportunity forward and increase the likelihood of success. + NextBestActions *string + + noSmithyDocumentSerde +} + +// Tracks the lifecycle of the AWS opportunity, including stages such as +// qualification, validation, and closure. This field helps partners understand the +// current status and progression of the opportunity. +type AwsOpportunityLifeCycle struct { + + // Indicates the reason why an opportunity was marked as Closed Lost . This helps + // in understanding the context behind the lost opportunity and aids in refining + // future strategies. + ClosedLostReason AwsClosedLostReason + + // Specifies the immediate next steps required to progress the opportunity. These + // steps are based on AWS's guidance and the current stage of the opportunity. + NextSteps *string + + // Provides a historical log of previous next steps that were taken to move the + // opportunity forward. This helps in tracking the decision-making process and + // identifying any delays or obstacles encountered. + NextStepsHistory []ProfileNextStepsHistory + + // Represents the current stage of the opportunity in its lifecycle, such as + // Qualification , Validation , or Closed Won . This helps in understanding the + // opportunity's progress. + Stage AwsOpportunityStage + + // Indicates the expected date by which the opportunity is projected to close. + // This field helps in planning resources and timelines for both the partner and + // AWS. + TargetCloseDate *string + + noSmithyDocumentSerde +} + +// Captures details about the project associated with the opportunity, including +// objectives, scope, and customer requirements. +type AwsOpportunityProject struct { + + // Indicates the expected spending by the customer over the course of the project. + // This value helps partners and AWS estimate the financial impact of the + // opportunity. Use the [AWS Pricing Calculator]to create an estimate of the customer’s total spend. If + // only annual recurring revenue (ARR) is available, distribute it across 12 months + // to provide an average monthly value. + // + // [AWS Pricing Calculator]: https://calculator.aws/#/ + ExpectedCustomerSpend []ExpectedCustomerSpend + + noSmithyDocumentSerde +} + +// Represents other entities related to the AWS opportunity, such as AWS products, +// partner solutions, and marketplace offers. These associations help build a +// complete picture of the solution being sold. +type AwsOpportunityRelatedEntities struct { + + // Specifies the AWS products associated with the opportunity. This field helps + // track the specific products that are part of the proposed solution. + AwsProducts []string + + // Specifies the partner solutions related to the opportunity. These solutions + // represent the partner's offerings that are being positioned as part of the + // overall AWS opportunity. + Solutions []string + + noSmithyDocumentSerde +} + +// Indicates the level of AWS involvement in the opportunity. This field helps +// track AWS's role and participation throughout the engagement, such as providing +// technical support, deal assistance, or sales support. +type AwsSubmission struct { + + // Specifies the type of AWS involvement in the opportunity, such as co-selling, + // deal support, or technical consultation. This helps categorize the nature of + // AWS's participation. + // + // This member is required. + InvolvementType SalesInvolvementType + + // Determines who can view AWS's involvement in the opportunity. Typically, this + // field is set to Full for most cases, but it may be restricted based on special + // program requirements or confidentiality needs. + Visibility Visibility + + noSmithyDocumentSerde +} + +// Represents an Amazon Web Services team member for the engagement. This +// +// structure includes details such as name, email, and business title. +type AwsTeamMember struct { + + // Specifies the Amazon Web Services team member's business title and indicates + // their organizational role. + BusinessTitle AwsMemberBusinessTitle + + // Provides the Amazon Web Services team member's email address. + Email *string + + // Provides the Amazon Web Services team member's first name. + FirstName *string + + // Provides the Amazon Web Services team member's last name. + LastName *string + + noSmithyDocumentSerde +} + +// An object that contains a Customer Partner 's contact details. +type Contact struct { + + // The partner contact's title (job title or role) associated with the Opportunity + // . + BusinessTitle *string + + // The contact's email address associated with the Opportunity . + Email *string + + // The contact's first name associated with the Opportunity . + FirstName *string + + // The contact's last name associated with the Opportunity . + LastName *string + + // The contact's phone number associated with the Opportunity . + Phone *string + + noSmithyDocumentSerde +} + +// An object that contains the customer's Account and Contact . +type Customer struct { + + // An object that contains the customer's account details. + Account *Account + + // Represents the contact details for individuals associated with the customer of + // the Opportunity . This field captures relevant contacts, including + // decision-makers, influencers, and technical stakeholders within the customer + // organization. These contacts are key to progressing the opportunity. + Contacts []Contact + + noSmithyDocumentSerde +} + +// An object that contains a Customer object's subset of fields. +type CustomerSummary struct { + + // An object that contains a customer's account details. + Account *AccountSummary + + noSmithyDocumentSerde +} + +// Contains details about the customer associated with the Engagement Invitation, +// including key company information and industry. +type EngagementCustomer struct { + + // Represents the name of the customer’s company associated with the Engagement + // Invitation. This field is used to identify the customer. + // + // This member is required. + CompanyName *string + + // Indicates the country in which the customer’s company operates. This field is + // useful for understanding regional requirements or compliance needs. + // + // This member is required. + CountryCode CountryCode + + // Specifies the industry to which the customer’s company belongs. This field + // helps categorize the opportunity based on the customer’s business sector. + // + // This member is required. + Industry Industry + + // Provides the website URL of the customer’s company. This field helps partners + // verify the legitimacy and size of the customer organization. + // + // This member is required. + WebsiteUrl *string + + noSmithyDocumentSerde +} + +// Provides a summarized view of the Engagement Invitation, including key details +// like the identifier, status, and sender information. This summary helps partners +// track and manage AWS-originated opportunities. +type EngagementInvitationSummary struct { + + // Specifies the catalog in which the Engagement Invitation resides. This can be + // either the AWS or Sandbox catalog, indicating whether the opportunity is live + // or being tested. + // + // This member is required. + Catalog *string + + // Represents the unique identifier of the Engagement Invitation. This identifier + // is used to track the invitation and to manage responses like acceptance or + // rejection. + // + // This member is required. + Id *string + + // The Amazon Resource Name (ARN) of the Engagement Invitation. The ARN is a + // unique identifier that allows partners to reference the invitation in their + // system and manage its lifecycle. + Arn *string + + // Provides a short title or description of the Engagement Invitation. This title + // helps partners quickly identify and differentiate between multiple engagement + // opportunities. + EngagementTitle *string + + // Indicates the date and time when the Engagement Invitation will expire. After + // this date, the invitation can no longer be accepted, and the opportunity will no + // longer be available for the partner to engage. + ExpirationDate *time.Time + + // Indicates the date when the Engagement Invitation was sent to the partner. This + // provides context for when the opportunity was shared and helps in tracking the + // timeline for engagement. + InvitationDate *time.Time + + // Describes the type of payload associated with the Engagement Invitation, such + // as Opportunity or MarketplaceOffer . This helps partners understand the nature + // of the engagement request from AWS. + PayloadType EngagementInvitationPayloadType + + // Specifies the partner company or individual that received the Engagement + // Invitation. This field is important for tracking who the invitation was sent to + // within the partner organization. + Receiver Receiver + + // Specifies the AWS account ID of the sender who initiated the Engagement + // Invitation. This allows the partner to identify the AWS entity or representative + // responsible for sharing the opportunity. + SenderAwsAccountId *string + + // Indicates the name of the company or AWS division that sent the Engagement + // Invitation. This information is useful for partners to know which part of AWS is + // requesting engagement. + SenderCompanyName *string + + // Represents the current status of the Engagement Invitation, such as Pending , + // Accepted , or Rejected . The status helps track the progress and response to the + // invitation. + Status InvitationStatus + + noSmithyDocumentSerde +} + +// Provides an estimate of the revenue that the partner is expected to generate +// from the opportunity. This information helps partners assess the financial value +// of the project. +type ExpectedCustomerSpend struct { + + // Represents the estimated monthly revenue that the partner expects to earn from + // the opportunity. This helps in forecasting financial returns. + // + // This member is required. + Amount *string + + // Indicates the currency in which the revenue estimate is provided. This helps in + // understanding the financial impact across different markets. + // + // This member is required. + CurrencyCode CurrencyCode + + // Indicates how frequently the customer is expected to spend the projected + // amount. This can include values such as Monthly , Quarterly , or Annually . The + // default value is Monthly , representing recurring monthly spend. + // + // This member is required. + Frequency PaymentFrequency + + // Specifies the name of the partner company that is expected to generate revenue + // from the opportunity. This field helps track the partner’s involvement in the + // opportunity. + // + // This member is required. + TargetCompany *string + + noSmithyDocumentSerde +} + +// Defines a filter to retrieve opportunities based on the last modified date. +// This filter is useful for tracking changes or updates to opportunities over +// time. +type LastModifiedDate struct { + + // Specifies the date after which the opportunities were modified. Use this filter + // to retrieve only those opportunities that were modified after a given timestamp. + AfterLastModifiedDate *time.Time + + // Specifies the date before which the opportunities were modified. Use this + // filter to retrieve only those opportunities that were modified before a given + // timestamp. + BeforeLastModifiedDate *time.Time + + noSmithyDocumentSerde +} + +// An object that contains the Opportunity lifecycle's details. +type LifeCycle struct { + + // Specifies the reason code when an opportunity is marked as Closed Lost. When + // you select an appropriate reason code, you communicate the context for closing + // the Opportunity , and aid in accurate reports and analysis of opportunity + // outcomes. The possible values are: + // + // - Customer Deficiency: The customer lacked necessary resources or + // capabilities. + // + // - Delay/Cancellation of Project: The project was delayed or canceled. + // + // - Legal/Tax/Regulatory: Legal, tax, or regulatory issues prevented progress. + // + // - Lost to Competitor - Google: The opportunity was lost to Google. + // + // - Lost to Competitor - Microsoft: The opportunity was lost to Microsoft. + // + // - Lost to Competitor - SoftLayer: The opportunity was lost to SoftLayer. + // + // - Lost to Competitor - VMWare: The opportunity was lost to VMWare. + // + // - Lost to Competitor - Other: The opportunity was lost to a competitor not + // listed above. + // + // - No Opportunity: There was no opportunity to pursue. + // + // - On Premises Deployment: The customer chose an on-premises solution. + // + // - Partner Gap: The partner lacked necessary resources or capabilities. + // + // - Price: The price was not competitive or acceptable to the customer. + // + // - Security/Compliance: Security or compliance issues prevented progress. + // + // - Technical Limitations: Technical limitations prevented progress. + // + // - Customer Experience: Issues related to the customer's experience impacted + // the decision. + // + // - Other: Any reason not covered by the other values. + // + // - People/Relationship/Governance: Issues related to people, relationships, or + // governance. + // + // - Product/Technology: Issues related to the product or technology. + // + // - Financial/Commercial: Financial or commercial issues impacted the decision. + ClosedLostReason ClosedLostReason + + // Specifies the upcoming actions or tasks for the Opportunity . This field is + // utilized to communicate to Amazon Web Services the next actions required for the + // Opportunity . + NextSteps *string + + // Captures a chronological record of the next steps or actions planned or taken + // for the current opportunity, along with the timestamp. + NextStepsHistory []NextStepsHistory + + // Indicates why an opportuntiy was sent back for further details. Partners must + // take corrective action based on the ReviewComments . + ReviewComments *string + + // Indicates the review status of an opportunity referred by a partner. This + // field is read-only and only applicable for partner referrals. The possible + // values are: + // + // - Pending Submission: Not submitted for validation (editable). + // + // - Submitted: Submitted for validation, and Amazon Web Services hasn't + // reviewed it (read-only). + // + // - In Review: Amazon Web Services is validating (read-only). + // + // - Action Required: Issues that Amazon Web Services highlights need to be + // addressed. Partners should use the UpdateOpportunity API action to update the + // opportunity, and ensure all required changes are made. Only these fields are + // editable when the Lifecycle.ReviewStatus is Action Required : + // + // - Customer.Account.Address.City + // + // - Customer.Account.Address.CountryCode + // + // - Customer.Account.Address.PostalCode + // + // - Customer.Account.Address.StateOrRegion + // + // - Customer.Account.Address.StreetAddress + // + // - Customer.Account.WebsiteUrl + // + // - LifeCycle.TargetCloseDate + // + // - Project.ExpectedMonthlyAWSRevenue.Amount + // + // - Project.ExpectedMonthlyAWSRevenue.CurrencyCode + // + // - Project.CustomerBusinessProblem + // + // - PartnerOpportunityIdentifier + // + // After updates, the opportunity re-enters the validation phase. This process + // repeats until all issues are resolved, and the opportunity's + // Lifecycle.ReviewStatus is set to Approved or Rejected . + // + // - Approved: Validated and converted into the Amazon Web Services seller's + // pipeline (editable). + // + // - Rejected: Disqualified (read-only). + ReviewStatus ReviewStatus + + // Indicates the reason a decision was made during the opportunity review + // process. This field combines the reasons for both disqualified and action + // required statuses, and provide clarity for why an opportunity was disqualified + // or requires further action. + ReviewStatusReason *string + + // Specifies the current stage of the Opportunity 's lifecycle as it maps to + // Amazon Web Services stages from the current stage in the partner CRM. This field + // provides a translated value of the stage, and offers insight into the + // Opportunity 's progression in the sales cycle, according to Amazon Web Services + // definitions. + // + // A lead and a prospect must be further matured to a Qualified opportunity before + // submission. Opportunities that were closed/lost before submission aren't + // suitable for submission. + // + // The descriptions of each sales stage are: + // + // - Prospect: Amazon Web Services identifies the opportunity. It can be active + // (Comes directly from the end customer through a lead) or latent (Your account + // team believes it exists based on research, account plans, sales plays). + // + // - Qualified: Your account team engaged with the prospect/end customer to + // discuss viability and understand requirements. The prospect/end customer agreed + // that the opportunity is real, of interest, and may solve key business/technical + // needs. + // + // - Technical Validation: All parties understand the implementation plan. + // + // - Business Validation: Pricing was proposed, and all parties agree to the + // steps to close. + // + // - Committed: The customer signed the contract, but Amazon Web Services hasn't + // started billing. + // + // - Launched: The workload is complete, and Amazon Web Services has started + // billing. + // + // - Closed Lost: The opportunity is lost, and there are no steps to move + // forward. + Stage Stage + + // Specifies the date when Amazon Web Services expects to start significant + // billing, when the project finishes, and when it moves into production. This + // field informs the Amazon Web Services seller about when the opportunity launches + // and starts to incur Amazon Web Services usage. + // + // Ensure the Target Close Date isn't in the past. + TargetCloseDate *string + + noSmithyDocumentSerde +} + +// An object that contains a LifeCycle object's subset of fields. +type LifeCycleSummary struct { + + // Specifies the reason code when an opportunity is marked as Closed Lost. When + // you select an appropriate reason code, you communicate the context for closing + // the Opportunity , and aid in accurate reports and analysis of opportunity + // outcomes. + ClosedLostReason ClosedLostReason + + // Specifies the upcoming actions or tasks for the Opportunity . This field is + // utilized to communicate to Amazon Web Services the next actions required for the + // Opportunity . + NextSteps *string + + // Indicates why an opportuntiy was sent back for further details. Partners must + // take corrective action based on the ReviewComments . + ReviewComments *string + + // Indicates the review status of a partner referred opportunity. This field is + // read-only and only applicable for partner referrals. Valid values: + // + // - Pending Submission: Not submitted for validation (editable). + // + // - Submitted: Submitted for validation and not yet Amazon Web Services + // reviewed (read-only). + // + // - In Review: Undergoing Amazon Web Services validation (read-only). + // + // - Action Required: Address any issues Amazon Web Services highlights. Use the + // UpdateOpportunity API action to update the opportunity, and ensure you make + // all required changes. Only these fields are editable when the + // Lifecycle.ReviewStatus is Action Required : + // + // - Customer.Account.Address.City + // + // - Customer.Account.Address.CountryCode + // + // - Customer.Account.Address.PostalCode + // + // - Customer.Account.Address.StateOrRegion + // + // - Customer.Account.Address.StreetAddress + // + // - Customer.Account.WebsiteUrl + // + // - LifeCycle.TargetCloseDate + // + // - Project.ExpectedCustomerSpend.Amount + // + // - Project.ExpectedCustomerSpend.CurrencyCode + // + // - Project.CustomerBusinessProblem + // + // - PartnerOpportunityIdentifier + // + // After updates, the opportunity re-enters the validation phase. This process + // repeats until all issues are resolved, and the opportunity's + // Lifecycle.ReviewStatus is set to Approved or Rejected . + // + // - Approved: Validated and converted into the Amazon Web Services seller's + // pipeline (editable). + // + // - Rejected: Disqualified (read-only). + ReviewStatus ReviewStatus + + // Indicates the reason a specific decision was taken during the opportunity + // review process. This field combines the reasons for both disqualified and action + // required statuses, and provides clarity for why an opportunity was disqualified + // or required further action. + ReviewStatusReason *string + + // Specifies the current stage of the Opportunity 's lifecycle as it maps to + // Amazon Web Services stages from the current stage in the partner CRM. This field + // provides a translated value of the stage, and offers insight into the + // Opportunity 's progression in the sales cycle, according to Amazon Web Services + // definitions. + // + // A lead and a prospect must be further matured to a Qualified opportunity before + // submission. Opportunities that were closed/lost before submission aren't + // suitable for submission. + // + // The descriptions of each sales stage are: + // + // - Prospect: Amazon Web Services identifies the opportunity. It can be active + // (Comes directly from the end customer through a lead) or latent (Your account + // team believes it exists based on research, account plans, sales plays). + // + // - Qualified: Your account team engaged with the prospect/end customer to + // discuss viability and understand requirements. The prospect/end customer agreed + // that the opportunity is real, of interest, and may solve key business/technical + // needs. + // + // - Technical Validation: All parties understand the implementation plan. + // + // - Business Validation: Pricing has been proposed, Pricing was proposed, and + // all parties agree to the steps to close. + // + // - Committed: The customer signed the contract, but Amazon Web Services hasn't + // started billing. + // + // - Launched: The workload is complete, and Amazon Web Services has started + // billing. + // + // - Closed Lost: The opportunity is lost, and there are no steps to move + // forward. + Stage Stage + + // Specifies the date when Amazon Web Services expects to start significant + // billing, when the project finishes, and when it moves into production. This + // field informs the Amazon Web Services seller about when the opportunity launches + // and starts to incur Amazon Web Services usage. + // + // Ensure the Target Close Date isn't in the past. + TargetCloseDate *string + + noSmithyDocumentSerde +} + +// An object that contains marketing details for the Opportunity . +type Marketing struct { + + // Indicates if the Opportunity is a marketing development fund (MDF) funded + // activity. + AwsFundingUsed AwsFundingUsed + + // Specifies the Opportunity 's unique marketing campaign name. The Amazon Web + // Services campaign name serves as a reference to specific marketing initiatives, + // promotions, or activities related to the Opportunity . This field captures the + // identifier used to track and categorize the Opportunity within Amazon Web + // Services's marketing campaigns. If you don't have a campaign name, reach out to + // your Amazon Web Services point of contact to obtain one. + CampaignName *string + + // Specifies the Opportunity 's channel that the marketing activity is associated + // with or was contacted through. This field provides information about the + // specific marketing channel that contributed to the generation of the lead or + // contact. + Channels []Channel + + // Indicates if the Opportunity was sourced from an Amazon Web Services marketing + // activity. Use the value Marketing Activity . Use None if it's not associated + // with an Amazon Web Services marketing activity. This field helps Amazon Web + // Services track the return on marketing investments and enables better + // distribution of marketing budgets among partners. + Source MarketingSource + + // Specifies the marketing activity use case or purpose that led to the + // Opportunity 's creation or contact. This field captures the context or marketing + // activity's execution's intention and the direct correlation to the generated + // opportunity or contact. Must be empty when Marketing.AWSFundingUsed = No . + // + // Valid values: AI/ML | Analytics | Application Integration | Blockchain | + // Business Applications | Cloud Financial Management | Compute | Containers | + // Customer Engagement | Databases | Developer Tools | End User Computing | Front + // End Web & Mobile | Game Tech | IoT | Management & Governance | Media Services | + // Migration & Transfer | Networking & Content Delivery | Quantum Technologies | + // Robotics | Satellite | Security | Serverless | Storage | VR & AR + UseCases []string + + noSmithyDocumentSerde +} + +// Specifies payments details. +type MonetaryValue struct { + + // Specifies the payment amount. + // + // This member is required. + Amount *string + + // Specifies the payment currency. + // + // This member is required. + CurrencyCode CurrencyCode + + noSmithyDocumentSerde +} + +// Read-only; shows the last 50 values and change dates for the NextSteps field. +type NextStepsHistory struct { + + // Indicates the step execution time. + // + // This member is required. + Time *time.Time + + // Indicates the step's execution details. + // + // This member is required. + Value *string + + noSmithyDocumentSerde +} + +// Defines sorting options for retrieving Engagement Invitations. Sorting can be +// done based on various criteria like the invitation date or status. +type OpportunityEngagementInvitationSort struct { + + // Specifies the field by which the Engagement Invitations are sorted. Common + // values include InvitationDate and Status . + // + // This member is required. + SortBy OpportunityEngagementInvitationSortName + + // Defines the order in which the Engagement Invitations are sorted. The values + // can be ASC (ascending) or DESC (descending). + // + // This member is required. + SortOrder SortOrder + + noSmithyDocumentSerde +} + +// Represents the data payload of an Engagement Invitation for a specific +// opportunity. This contains detailed information that partners use to evaluate +// the engagement. +type OpportunityInvitationPayload struct { + + // Contains information about the customer related to the opportunity in the + // Engagement Invitation. This data helps partners understand the customer’s + // profile and requirements. + // + // This member is required. + Customer *EngagementCustomer + + // Describes the project details associated with the opportunity, including the + // customer’s needs and the scope of work expected to be performed. + // + // This member is required. + Project *ProjectDetails + + // Outlines the responsibilities or expectations of the receiver in the context of + // the invitation. + // + // This member is required. + ReceiverResponsibilities []ReceiverResponsibility + + // Represents the contact details of the AWS representatives involved in sending + // the Engagement Invitation. These contacts are key stakeholders for the + // opportunity. + SenderContacts []SenderContact + + noSmithyDocumentSerde +} + +// Object that configures response sorting. +type OpportunitySort struct { + + // Field name to sort by. + // + // This member is required. + SortBy OpportunitySortName + + // Sort order. + // + // Default: Descending + // + // This member is required. + SortOrder SortOrder + + noSmithyDocumentSerde +} + +// An object that contains an Opportunity 's subset of fields. +type OpportunitySummary struct { + + // Specifies the catalog associated with the opportunity, either AWS or Sandbox . + // This indicates the environment in which the opportunity is managed. + // + // This member is required. + Catalog *string + + // DateTime when the Opportunity was last created. + CreatedDate *time.Time + + // An object that contains the Opportunity 's customer details. + Customer *CustomerSummary + + // Read-only, system-generated Opportunity unique identifier. + Id *string + + // DateTime when the Opportunity was last modified. + LastModifiedDate *time.Time + + // An object that contains the Opportunity 's lifecycle details. + LifeCycle *LifeCycleSummary + + // Specifies opportunity type as a renewal, new, or expansion. + // + // Opportunity types: + // + // - New Opportunity: Represents a new business opportunity with a potential + // customer that's not previously engaged with your solutions or services. + // + // - Renewal Opportunity: Represents an opportunity to renew an existing + // contract or subscription with a current customer, ensuring continuity of + // service. + // + // - Expansion Opportunity: Represents an opportunity to expand the scope of an + // existing contract or subscription, either by adding new services or increasing + // the volume of existing services for a current customer. + OpportunityType OpportunityType + + // Specifies the Opportunity 's unique identifier in the partner's CRM system. This + // value is essential to track and reconcile because it's included in the outbound + // payload sent back to the partner. It allows partners to link an opportunity to + // their CRM. + PartnerOpportunityIdentifier *string + + // An object that contains the Opportunity 's project details summary. + Project *ProjectSummary + + noSmithyDocumentSerde +} + +// Contains the data payload associated with the Engagement Invitation. This +// payload includes essential details related to the AWS opportunity and is used by +// partners to evaluate whether to accept or reject the engagement. +// +// The following types satisfy this interface: +// +// PayloadMemberOpportunityInvitation +type Payload interface { + isPayload() +} + +// Specifies the details of the opportunity invitation within the Engagement +// Invitation payload. This data helps partners understand the context, scope, and +// expected involvement for the opportunity from AWS. +type PayloadMemberOpportunityInvitation struct { + Value OpportunityInvitationPayload + + noSmithyDocumentSerde +} + +func (*PayloadMemberOpportunityInvitation) isPayload() {} + +// Tracks the history of next steps associated with the opportunity. This field +// captures the actions planned for the future and their timeline. +type ProfileNextStepsHistory struct { + + // Indicates the date and time when a particular next step was recorded or + // planned. This helps in managing the timeline for the opportunity. + // + // This member is required. + Time *time.Time + + // Represents the details of the next step recorded, such as follow-up actions or + // decisions made. This field helps in tracking progress and ensuring alignment + // with project goals. + // + // This member is required. + Value *string + + noSmithyDocumentSerde +} + +// An object that contains the Opportunity 's project details. +type Project struct { + + // Captures additional comments or information for the Opportunity that weren't + // captured in other fields. + AdditionalComments *string + + // Specifies the Amazon Partner Network (APN) program that influenced the + // Opportunity . APN programs refer to specific partner programs or initiatives + // that can impact the Opportunity . + // + // Valid values: APN Immersion Days | APN Solution Space | ATO (Authority to + // Operate) | AWS Marketplace Campaign | IS Immersion Day SFID Program | ISV + // Workload Migration | Migration Acceleration Program | P3 | Partner Launch + // Initiative | Partner Opportunity Acceleration Funded | The Next Smart | VMware + // Cloud on AWS | Well-Architected | Windows | Workspaces/AppStream Accelerator + // Program | WWPS NDPP + ApnPrograms []string + + // Name of the Opportunity 's competitor (if any). Use Other to submit a value not + // in the picklist. + CompetitorName CompetitorName + + // Describes the problem the end customer has, and how the partner is helping. + // Utilize this field to provide a clear and concise narrative that outlines the + // specific business challenge or issue the customer has. Elaborate on how the + // partner's solution or offerings align to resolve the customer's business + // problem. Include relevant information about the partner's value proposition, + // unique selling points, and expertise to tackle the issue. Offer insights on how + // the proposed solution meets the customer's needs and provides value. Use concise + // language and precise descriptions to convey the context and significance of the + // Opportunity . The content in this field helps Amazon Web Services understand the + // nature of the Opportunity and the strategic fit of the partner's solution. + CustomerBusinessProblem *string + + // Specifies the proposed solution focus or type of workload for the Opportunity. + // This field captures the primary use case or objective of the proposed solution, + // and provides context and clarity to the addressed workload. + // + // Valid values: AI Machine Learning and Analytics | Archiving | Big Data: Data + // Warehouse / Data Integration / ETL / Data Lake / BI | Blockchain | Business + // Applications: Mainframe Modernization | Business Applications & Contact Center | + // Business Applications & SAP Production | Centralized Operations Management | + // Cloud Management Tools | Cloud Management Tools & DevOps with Continuous + // Integration & Continuous Delivery (CICD) | Configuration, Compliance & Auditing + // | Connected Services | Containers & Serverless | Content Delivery & Edge + // Services | Database | Edge Computing / End User Computing | Energy | Enterprise + // Governance & Controls | Enterprise Resource Planning | Financial Services | + // Healthcare and Life Sciences | High Performance Computing | Hybrid Application + // Platform | Industrial Software | IOT | Manufacturing, Supply Chain and + // Operations | Media & High performance computing (HPC) | Migration / Database + // Migration | Monitoring, logging and performance | Monitoring & Observability | + // Networking | Outpost | SAP | Security & Compliance | Storage & Backup | Training + // | VMC | VMWare | Web development & DevOps + CustomerUseCase *string + + // Specifies the deployment or consumption model for your solution or service in + // the Opportunity 's context. You can select multiple options. + // + // Options' descriptions from the Delivery Model field are: + // + // - SaaS or PaaS: Your Amazon Web Services based solution deployed as SaaS or + // PaaS in your Amazon Web Services environment. + // + // - BYOL or AMI: Your Amazon Web Services based solution deployed as BYOL or + // AMI in the end customer's Amazon Web Services environment. + // + // - Managed Services: The end customer's Amazon Web Services business + // management (For example: Consulting, design, implementation, billing support, + // cost optimization, technical support). + // + // - Professional Services: Offerings to help enterprise end customers achieve + // specific business outcomes for enterprise cloud adoption (For example: Advisory + // or transformation planning). + // + // - Resell: Amazon Web Services accounts and billing management for your + // customers. + // + // - Other: Delivery model not described above. + DeliveryModels []DeliveryModel + + // Represents the estimated amount that the customer is expected to spend on AWS + // services related to the opportunity. This helps in evaluating the potential + // financial value of the opportunity for AWS. + ExpectedCustomerSpend []ExpectedCustomerSpend + + // Only allowed when CompetitorNames has Other selected. + OtherCompetitorNames *string + + // Specifies the offered solution for the customer's business problem when the + // RelatedEntityIdentifiers.Solutions field value is Other . + OtherSolutionDescription *string + + // Specifies the current opportunity's parent opportunity identifier. + RelatedOpportunityIdentifier *string + + // Specifies the Opportunity 's sales activities conducted with the end customer. + // These activities help drive Amazon Web Services assignment priority. + // + // Valid values: + // + // - Initialized discussions with customer: Initial conversations with the + // customer to understand their needs and introduce your solution. + // + // - Customer has shown interest in solution: After initial discussions, the + // customer is interested in your solution. + // + // - Conducted POC / Demo: You conducted a proof of concept (POC) or + // demonstration of the solution for the customer. + // + // - In evaluation / planning stage: The customer is evaluating the solution and + // planning potential implementation. + // + // - Agreed on solution to Business Problem: Both parties agree on how the + // solution addresses the customer's business problem. + // + // - Completed Action Plan: A detailed action plan is complete and outlines the + // steps for implementation. + // + // - Finalized Deployment Need: Both parties agree with and finalized the + // deployment needs. + // + // - SOW Signed: Both parties signed a statement of work (SOW), and formalize + // the agreement and detail the project scope and deliverables. + SalesActivities []SalesActivity + + // Specifies the Opportunity 's title or name. + Title *string + + noSmithyDocumentSerde +} + +// Contains details about the project associated with the Engagement Invitation, +// including the business problem and expected outcomes. +type ProjectDetails struct { + + // Describes the business problem that the project aims to solve. This information + // is crucial for understanding the project’s goals and objectives. + // + // This member is required. + BusinessProblem *string + + // Contains revenue estimates for the partner related to the project. This field + // provides an idea of the financial potential of the opportunity for the partner. + // + // This member is required. + ExpectedCustomerSpend []ExpectedCustomerSpend + + // Specifies the estimated date of project completion. This field helps track the + // project timeline and manage expectations. + // + // This member is required. + TargetCompletionDate *string + + // Specifies the title of the project. This title helps partners quickly identify + // and understand the focus of the project. + // + // This member is required. + Title *string + + noSmithyDocumentSerde +} + +// An object that contains a Project object's subset of fields. +type ProjectSummary struct { + + // Specifies your solution or service's deployment or consumption model in the + // Opportunity 's context. You can select multiple options. + // + // Options' descriptions from the Delivery Model field are: + // + // - SaaS or PaaS: Your Amazon Web Services based solution deployed as SaaS or + // PaaS in your Amazon Web Services environment. + // + // - BYOL or AMI: Your Amazon Web Services based solution deployed as BYOL or + // AMI in the end customer's Amazon Web Services environment. + // + // - Managed Services: The end customer's Amazon Web Services business + // management (For example: Consulting, design, implementation, billing support, + // cost optimization, technical support). + // + // - Professional Services: Offerings to help enterprise end customers achieve + // specific business outcomes for enterprise cloud adoption (For example: Advisory + // or transformation planning). + // + // - Resell: Amazon Web Services accounts and billing management for your + // customers. + // + // - Other: Delivery model not described above. + DeliveryModels []DeliveryModel + + // Provides a summary of the expected customer spend for the project, offering a + // high-level view of the potential financial impact. + ExpectedCustomerSpend []ExpectedCustomerSpend + + noSmithyDocumentSerde +} + +// Represents the entity that received the Engagement Invitation, including +// account and company details. This field is essential for tracking the partner +// who is being invited to collaborate. +// +// The following types satisfy this interface: +// +// ReceiverMemberAccount +type Receiver interface { + isReceiver() +} + +// Specifies the AWS account of the partner who received the Engagement +// Invitation. This field is used to track the invitation recipient within the AWS +// ecosystem. +type ReceiverMemberAccount struct { + Value AccountReceiver + + noSmithyDocumentSerde +} + +func (*ReceiverMemberAccount) isReceiver() {} + +// This field provides the associations' information for other entities with the +// +// opportunity. These entities include identifiers for AWSProducts , Partner +// Solutions , and AWSMarketplaceOffers . +type RelatedEntityIdentifiers struct { + + // Takes one value per opportunity. Each value is an Amazon Resource Name (ARN), + // in this format: "offers": + // ["arn:aws:aws-marketplace:us-east-1:999999999999:AWSMarketplace/Offer/offer-sampleOffer32"] + // . + // + // Use the [ListEntities] action in the Marketplace Catalog APIs for a list of offers in the + // associated Marketplace seller account. + // + // [ListEntities]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_ListEntities.html + AwsMarketplaceOffers []string + + // Enables the association of specific Amazon Web Services products with the + // Opportunity . Partners can indicate the relevant Amazon Web Services products + // for the Opportunity 's solution and align with the customer's needs. Returns + // multiple values separated by commas. For example, "AWSProducts" : + // ["AmazonRedshift", "AWSAppFabric", "AWSCleanRooms"] . + // + // Use the file with the list of Amazon Web Services products hosted on GitHub: [Amazon Web Services products]. + // + // [Amazon Web Services products]: https://github.com/aws-samples/partner-crm-integration-samples/blob/main/resources/aws_products.json + AwsProducts []string + + // Enables partner solutions or offerings' association with an opportunity. To + // associate a solution, provide the solution's unique identifier, which you can + // obtain with the ListSolutions operation. + // + // If the specific solution identifier is not available, you can use the value + // Other and provide details about the solution in the otherSolutionOffered field. + // However, once the opportunity reaches the Committed stage or beyond, the Other + // value cannot be used, and a valid solution identifier must be provided. + // + // By associating the relevant solutions with the opportunity, you can clearly + // communicate the offerings that are being considered or implemented to address + // the customer's business problem. + Solutions []string + + noSmithyDocumentSerde +} + +// An object that contains the details of the sender-provided contact person for +// the EngagementInvitation . +type SenderContact struct { + + // The sender-provided contact's email address associated with the + // EngagementInvitation . + // + // This member is required. + Email *string + + // The sender-provided contact's title (job title or role) associated with the + // EngagementInvitation . + BusinessTitle *string + + // The sender-provided contact's last name associated with the EngagementInvitation + // . + FirstName *string + + // The sender-provided contact's first name associated with the + // EngagementInvitation . + LastName *string + + // The sender-provided contact's phone number associated with the + // EngagementInvitation . + Phone *string + + noSmithyDocumentSerde +} + +// Specifies a customer's procurement terms details. Required only for partners in +// eligible programs. +type SoftwareRevenue struct { + + // Specifies the customer's intended payment type agreement or procurement method + // to acquire the solution or service outlined in the Opportunity . + DeliveryModel RevenueModel + + // Specifies the Opportunity 's customer engagement start date for the contract's + // effectiveness. + EffectiveDate *string + + // Specifies the expiration date for the contract between the customer and Amazon + // Web Services partner. It signifies the termination date of the agreed-upon + // engagement period between both parties. + ExpirationDate *string + + // Specifies the payment value (amount and currency). + Value *MonetaryValue + + noSmithyDocumentSerde +} + +// Specifies minimal information for the solution offered to solve the customer's +// business problem. +type SolutionBase struct { + + // Specifies the catalog in which the solution is hosted, either AWS or Sandbox . + // This helps partners differentiate between live solutions and those in testing + // environments. + // + // This member is required. + Catalog *string + + // Specifies the solution category, which helps to categorize and organize the + // solutions partners offer. Valid values: Software Product | Consulting Service | + // Hardware Product | Communications Product | Professional Service | Managed + // Service | Value-Added Resale Amazon Web Services Service | Distribution Service + // | Training Service | Merger and Acquisition Advising Service . + // + // This member is required. + Category *string + + // Indicates the solution creation date. This is useful to track and audit. + // + // This member is required. + CreatedDate *time.Time + + // Enables the association of solutions (offerings) to opportunities. + // + // This member is required. + Id *string + + // Specifies the solution name. + // + // This member is required. + Name *string + + // Specifies the solution's current status, which indicates its state in the + // system. Valid values: Active | Inactive | Draft . The status helps partners and + // Amazon Web Services track the solution's lifecycle and availability. Filter for + // Active solutions for association to an opportunity. + // + // This member is required. + Status SolutionStatus + + noSmithyDocumentSerde +} + +// Configures the solutions' response sorting that enables partners to order +// +// solutions based on specified attributes. +type SolutionSort struct { + + // Specifies the attribute to sort by, such as Name , CreatedDate , or Status . + // + // This member is required. + SortBy SolutionSortName + + // Specifies the sorting order, either Ascending or Descending . The default is + // Descending . + // + // This member is required. + SortOrder SortOrder + + noSmithyDocumentSerde +} + +// Indicates an invalid value for a field. +// +// - REQUIRED_FIELD_MISSING: The request is missing a required field. +// +// Fix: Verify your request payload includes all required fields. +// +// - INVALID_ENUM_VALUE: The enum field value isn't an accepted values. +// +// Fix: Check the documentation for the list of valid enum values, and update your +// +// request with a valid value. +// +// - INVALID_STRING_FORMAT: The string format is invalid. +// +// Fix: Confirm that the string is in the expected format (For example: email +// +// address, date). +// +// - INVALID_VALUE: The value isn't valid. +// +// Fix: Confirm that the value meets the expected criteria and is within the +// +// allowable range or set. +// +// - TOO_MANY_VALUES: There are too many values in a field that expects fewer +// entries. +// +// Fix: Reduce the number of values to match the expected limit. +// +// - ACTION_NOT_PERMITTED: The action isn't permitted due to current state or +// permissions. +// +// Fix: Verify that the action is appropriate for the current state, and that you +// +// have the necessary permissions to perform it. +// +// - DUPLICATE_KEY_VALUE: The value in a field duplicates a value that must be +// unique. +// +// Fix: Verify that the value is unique and doesn't duplicate an existing value in +// +// the system. +type ValidationExceptionError struct { + + // Specifies the error code for the invalid field value. + // + // This member is required. + Code ValidationExceptionErrorCode + + // Specifies the detailed error message for the invalid field value. + // + // This member is required. + Message *string + + // Specifies the field name with the invalid value. + FieldName *string + + noSmithyDocumentSerde +} + +type noSmithyDocumentSerde = smithydocument.NoSerde + +// UnknownUnionMember is returned when a union member is returned over the wire, +// but has an unknown tag. +type UnknownUnionMember struct { + Tag string + Value []byte + + noSmithyDocumentSerde +} + +func (*UnknownUnionMember) isPayload() {} +func (*UnknownUnionMember) isReceiver() {} diff --git a/service/partnercentralselling/types/types_exported_test.go b/service/partnercentralselling/types/types_exported_test.go new file mode 100644 index 00000000000..532e5ee2611 --- /dev/null +++ b/service/partnercentralselling/types/types_exported_test.go @@ -0,0 +1,44 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types_test + +import ( + "fmt" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" +) + +func ExamplePayload_outputUsage() { + var union types.Payload + // type switches can be used to check the union value + switch v := union.(type) { + case *types.PayloadMemberOpportunityInvitation: + _ = v.Value // Value is types.OpportunityInvitationPayload + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *types.OpportunityInvitationPayload + +func ExampleReceiver_outputUsage() { + var union types.Receiver + // type switches can be used to check the union value + switch v := union.(type) { + case *types.ReceiverMemberAccount: + _ = v.Value // Value is types.AccountReceiver + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *types.AccountReceiver diff --git a/service/partnercentralselling/validators.go b/service/partnercentralselling/validators.go new file mode 100644 index 00000000000..79d1cf86b2d --- /dev/null +++ b/service/partnercentralselling/validators.go @@ -0,0 +1,953 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package partnercentralselling + +import ( + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/partnercentralselling/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" +) + +type validateOpAssignOpportunity struct { +} + +func (*validateOpAssignOpportunity) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAssignOpportunity) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AssignOpportunityInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAssignOpportunityInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpAssociateOpportunity struct { +} + +func (*validateOpAssociateOpportunity) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAssociateOpportunity) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AssociateOpportunityInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAssociateOpportunityInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateOpportunity struct { +} + +func (*validateOpCreateOpportunity) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateOpportunity) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateOpportunityInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateOpportunityInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDisassociateOpportunity struct { +} + +func (*validateOpDisassociateOpportunity) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDisassociateOpportunity) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DisassociateOpportunityInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDisassociateOpportunityInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpGetAwsOpportunitySummary struct { +} + +func (*validateOpGetAwsOpportunitySummary) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetAwsOpportunitySummary) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetAwsOpportunitySummaryInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetAwsOpportunitySummaryInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpGetEngagementInvitation struct { +} + +func (*validateOpGetEngagementInvitation) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetEngagementInvitation) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetEngagementInvitationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetEngagementInvitationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpGetOpportunity struct { +} + +func (*validateOpGetOpportunity) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetOpportunity) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetOpportunityInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetOpportunityInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListEngagementInvitations struct { +} + +func (*validateOpListEngagementInvitations) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListEngagementInvitations) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListEngagementInvitationsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListEngagementInvitationsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListOpportunities struct { +} + +func (*validateOpListOpportunities) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListOpportunities) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListOpportunitiesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListOpportunitiesInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListSolutions struct { +} + +func (*validateOpListSolutions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListSolutions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListSolutionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListSolutionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpRejectEngagementInvitation struct { +} + +func (*validateOpRejectEngagementInvitation) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpRejectEngagementInvitation) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*RejectEngagementInvitationInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpRejectEngagementInvitationInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpStartEngagementByAcceptingInvitationTask struct { +} + +func (*validateOpStartEngagementByAcceptingInvitationTask) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpStartEngagementByAcceptingInvitationTask) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*StartEngagementByAcceptingInvitationTaskInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpStartEngagementByAcceptingInvitationTaskInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpStartEngagementFromOpportunityTask struct { +} + +func (*validateOpStartEngagementFromOpportunityTask) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpStartEngagementFromOpportunityTask) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*StartEngagementFromOpportunityTaskInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpStartEngagementFromOpportunityTaskInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateOpportunity struct { +} + +func (*validateOpUpdateOpportunity) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateOpportunity) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateOpportunityInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateOpportunityInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +func addOpAssignOpportunityValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAssignOpportunity{}, middleware.After) +} + +func addOpAssociateOpportunityValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAssociateOpportunity{}, middleware.After) +} + +func addOpCreateOpportunityValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateOpportunity{}, middleware.After) +} + +func addOpDisassociateOpportunityValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDisassociateOpportunity{}, middleware.After) +} + +func addOpGetAwsOpportunitySummaryValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetAwsOpportunitySummary{}, middleware.After) +} + +func addOpGetEngagementInvitationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetEngagementInvitation{}, middleware.After) +} + +func addOpGetOpportunityValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetOpportunity{}, middleware.After) +} + +func addOpListEngagementInvitationsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListEngagementInvitations{}, middleware.After) +} + +func addOpListOpportunitiesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListOpportunities{}, middleware.After) +} + +func addOpListSolutionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListSolutions{}, middleware.After) +} + +func addOpRejectEngagementInvitationValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpRejectEngagementInvitation{}, middleware.After) +} + +func addOpStartEngagementByAcceptingInvitationTaskValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpStartEngagementByAcceptingInvitationTask{}, middleware.After) +} + +func addOpStartEngagementFromOpportunityTaskValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpStartEngagementFromOpportunityTask{}, middleware.After) +} + +func addOpUpdateOpportunityValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateOpportunity{}, middleware.After) +} + +func validateAccount(v *types.Account) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Account"} + if v.CompanyName == nil { + invalidParams.Add(smithy.NewErrParamRequired("CompanyName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateAssigneeContact(v *types.AssigneeContact) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssigneeContact"} + if v.Email == nil { + invalidParams.Add(smithy.NewErrParamRequired("Email")) + } + if v.FirstName == nil { + invalidParams.Add(smithy.NewErrParamRequired("FirstName")) + } + if v.LastName == nil { + invalidParams.Add(smithy.NewErrParamRequired("LastName")) + } + if v.BusinessTitle == nil { + invalidParams.Add(smithy.NewErrParamRequired("BusinessTitle")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateAwsSubmission(v *types.AwsSubmission) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AwsSubmission"} + if len(v.InvolvementType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("InvolvementType")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateCustomer(v *types.Customer) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Customer"} + if v.Account != nil { + if err := validateAccount(v.Account); err != nil { + invalidParams.AddNested("Account", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateExpectedCustomerSpend(v *types.ExpectedCustomerSpend) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ExpectedCustomerSpend"} + if v.Amount == nil { + invalidParams.Add(smithy.NewErrParamRequired("Amount")) + } + if len(v.CurrencyCode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("CurrencyCode")) + } + if len(v.Frequency) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Frequency")) + } + if v.TargetCompany == nil { + invalidParams.Add(smithy.NewErrParamRequired("TargetCompany")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateExpectedCustomerSpendList(v []types.ExpectedCustomerSpend) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ExpectedCustomerSpendList"} + for i := range v { + if err := validateExpectedCustomerSpend(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateLifeCycle(v *types.LifeCycle) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "LifeCycle"} + if v.NextStepsHistory != nil { + if err := validateNextStepsHistories(v.NextStepsHistory); err != nil { + invalidParams.AddNested("NextStepsHistory", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateMonetaryValue(v *types.MonetaryValue) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "MonetaryValue"} + if v.Amount == nil { + invalidParams.Add(smithy.NewErrParamRequired("Amount")) + } + if len(v.CurrencyCode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("CurrencyCode")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateNextStepsHistories(v []types.NextStepsHistory) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "NextStepsHistories"} + for i := range v { + if err := validateNextStepsHistory(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateNextStepsHistory(v *types.NextStepsHistory) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "NextStepsHistory"} + if v.Value == nil { + invalidParams.Add(smithy.NewErrParamRequired("Value")) + } + if v.Time == nil { + invalidParams.Add(smithy.NewErrParamRequired("Time")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpportunityEngagementInvitationSort(v *types.OpportunityEngagementInvitationSort) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "OpportunityEngagementInvitationSort"} + if len(v.SortOrder) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("SortOrder")) + } + if len(v.SortBy) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("SortBy")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpportunitySort(v *types.OpportunitySort) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "OpportunitySort"} + if len(v.SortOrder) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("SortOrder")) + } + if len(v.SortBy) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("SortBy")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateProject(v *types.Project) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Project"} + if v.ExpectedCustomerSpend != nil { + if err := validateExpectedCustomerSpendList(v.ExpectedCustomerSpend); err != nil { + invalidParams.AddNested("ExpectedCustomerSpend", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateSoftwareRevenue(v *types.SoftwareRevenue) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SoftwareRevenue"} + if v.Value != nil { + if err := validateMonetaryValue(v.Value); err != nil { + invalidParams.AddNested("Value", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateSolutionSort(v *types.SolutionSort) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SolutionSort"} + if len(v.SortOrder) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("SortOrder")) + } + if len(v.SortBy) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("SortBy")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpAssignOpportunityInput(v *AssignOpportunityInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssignOpportunityInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) + } + if v.Assignee == nil { + invalidParams.Add(smithy.NewErrParamRequired("Assignee")) + } else if v.Assignee != nil { + if err := validateAssigneeContact(v.Assignee); err != nil { + invalidParams.AddNested("Assignee", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpAssociateOpportunityInput(v *AssociateOpportunityInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssociateOpportunityInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.OpportunityIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("OpportunityIdentifier")) + } + if len(v.RelatedEntityType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("RelatedEntityType")) + } + if v.RelatedEntityIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("RelatedEntityIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateOpportunityInput(v *CreateOpportunityInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateOpportunityInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Customer != nil { + if err := validateCustomer(v.Customer); err != nil { + invalidParams.AddNested("Customer", err.(smithy.InvalidParamsError)) + } + } + if v.Project != nil { + if err := validateProject(v.Project); err != nil { + invalidParams.AddNested("Project", err.(smithy.InvalidParamsError)) + } + } + if v.SoftwareRevenue != nil { + if err := validateSoftwareRevenue(v.SoftwareRevenue); err != nil { + invalidParams.AddNested("SoftwareRevenue", err.(smithy.InvalidParamsError)) + } + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if v.LifeCycle != nil { + if err := validateLifeCycle(v.LifeCycle); err != nil { + invalidParams.AddNested("LifeCycle", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDisassociateOpportunityInput(v *DisassociateOpportunityInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DisassociateOpportunityInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.OpportunityIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("OpportunityIdentifier")) + } + if len(v.RelatedEntityType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("RelatedEntityType")) + } + if v.RelatedEntityIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("RelatedEntityIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetAwsOpportunitySummaryInput(v *GetAwsOpportunitySummaryInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetAwsOpportunitySummaryInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.RelatedOpportunityIdentifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("RelatedOpportunityIdentifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetEngagementInvitationInput(v *GetEngagementInvitationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetEngagementInvitationInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetOpportunityInput(v *GetOpportunityInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetOpportunityInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListEngagementInvitationsInput(v *ListEngagementInvitationsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListEngagementInvitationsInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Sort != nil { + if err := validateOpportunityEngagementInvitationSort(v.Sort); err != nil { + invalidParams.AddNested("Sort", err.(smithy.InvalidParamsError)) + } + } + if len(v.ParticipantType) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ParticipantType")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListOpportunitiesInput(v *ListOpportunitiesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListOpportunitiesInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Sort != nil { + if err := validateOpportunitySort(v.Sort); err != nil { + invalidParams.AddNested("Sort", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListSolutionsInput(v *ListSolutionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListSolutionsInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Sort != nil { + if err := validateSolutionSort(v.Sort); err != nil { + invalidParams.AddNested("Sort", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpRejectEngagementInvitationInput(v *RejectEngagementInvitationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RejectEngagementInvitationInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpStartEngagementByAcceptingInvitationTaskInput(v *StartEngagementByAcceptingInvitationTaskInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StartEngagementByAcceptingInvitationTaskInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpStartEngagementFromOpportunityTaskInput(v *StartEngagementFromOpportunityTaskInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StartEngagementFromOpportunityTaskInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.ClientToken == nil { + invalidParams.Add(smithy.NewErrParamRequired("ClientToken")) + } + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) + } + if v.AwsSubmission == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsSubmission")) + } else if v.AwsSubmission != nil { + if err := validateAwsSubmission(v.AwsSubmission); err != nil { + invalidParams.AddNested("AwsSubmission", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateOpportunityInput(v *UpdateOpportunityInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateOpportunityInput"} + if v.Catalog == nil { + invalidParams.Add(smithy.NewErrParamRequired("Catalog")) + } + if v.Customer != nil { + if err := validateCustomer(v.Customer); err != nil { + invalidParams.AddNested("Customer", err.(smithy.InvalidParamsError)) + } + } + if v.Project != nil { + if err := validateProject(v.Project); err != nil { + invalidParams.AddNested("Project", err.(smithy.InvalidParamsError)) + } + } + if v.SoftwareRevenue != nil { + if err := validateSoftwareRevenue(v.SoftwareRevenue); err != nil { + invalidParams.AddNested("SoftwareRevenue", err.(smithy.InvalidParamsError)) + } + } + if v.LastModifiedDate == nil { + invalidParams.Add(smithy.NewErrParamRequired("LastModifiedDate")) + } + if v.Identifier == nil { + invalidParams.Add(smithy.NewErrParamRequired("Identifier")) + } + if v.LifeCycle != nil { + if err := validateLifeCycle(v.LifeCycle); err != nil { + invalidParams.AddNested("LifeCycle", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} diff --git a/service/quicksight/api_op_CreateBrand.go b/service/quicksight/api_op_CreateBrand.go new file mode 100644 index 00000000000..651acb59ee1 --- /dev/null +++ b/service/quicksight/api_op_CreateBrand.go @@ -0,0 +1,174 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/quicksight/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates an Amazon QuickSight brand. +func (c *Client) CreateBrand(ctx context.Context, params *CreateBrandInput, optFns ...func(*Options)) (*CreateBrandOutput, error) { + if params == nil { + params = &CreateBrandInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateBrand", params, optFns, c.addOperationCreateBrandMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateBrandOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateBrandInput struct { + + // The ID of the Amazon Web Services account that owns the brand. + // + // This member is required. + AwsAccountId *string + + // The ID of the Amazon QuickSight brand. + // + // This member is required. + BrandId *string + + // The definition of the brand. + BrandDefinition *types.BrandDefinition + + // A map of the key-value pairs that are assigned to the brand. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateBrandOutput struct { + + // The definition of the brand. + BrandDefinition *types.BrandDefinition + + // The details of the brand. + BrandDetail *types.BrandDetail + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateBrandMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateBrand{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateBrand{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateBrand"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpCreateBrandValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateBrand(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCreateBrand(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateBrand", + } +} diff --git a/service/quicksight/api_op_CreateCustomPermissions.go b/service/quicksight/api_op_CreateCustomPermissions.go new file mode 100644 index 00000000000..95368a4760a --- /dev/null +++ b/service/quicksight/api_op_CreateCustomPermissions.go @@ -0,0 +1,175 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/quicksight/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a custom permissions profile. +func (c *Client) CreateCustomPermissions(ctx context.Context, params *CreateCustomPermissionsInput, optFns ...func(*Options)) (*CreateCustomPermissionsOutput, error) { + if params == nil { + params = &CreateCustomPermissionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateCustomPermissions", params, optFns, c.addOperationCreateCustomPermissionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateCustomPermissionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateCustomPermissionsInput struct { + + // The ID of the Amazon Web Services account that you want to create the custom + // permissions profile in. + // + // This member is required. + AwsAccountId *string + + // The name of the custom permissions profile that you want to create. + // + // This member is required. + CustomPermissionsName *string + + // A set of actions to include in the custom permissions profile. + Capabilities *types.Capabilities + + // The tags to associate with the custom permissions profile. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateCustomPermissionsOutput struct { + + // The Amazon Resource Name (ARN) of the custom permissions profile. + Arn *string + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // The HTTP status of the request. + Status int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateCustomPermissionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateCustomPermissions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateCustomPermissions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "CreateCustomPermissions"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpCreateCustomPermissionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateCustomPermissions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opCreateCustomPermissions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "CreateCustomPermissions", + } +} diff --git a/service/quicksight/api_op_DeleteBrand.go b/service/quicksight/api_op_DeleteBrand.go new file mode 100644 index 00000000000..6dd6f664021 --- /dev/null +++ b/service/quicksight/api_op_DeleteBrand.go @@ -0,0 +1,161 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes an Amazon QuickSight brand. +func (c *Client) DeleteBrand(ctx context.Context, params *DeleteBrandInput, optFns ...func(*Options)) (*DeleteBrandOutput, error) { + if params == nil { + params = &DeleteBrandInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteBrand", params, optFns, c.addOperationDeleteBrandMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteBrandOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteBrandInput struct { + + // The ID of the Amazon Web Services account that owns the brand. + // + // This member is required. + AwsAccountId *string + + // The ID of the Amazon QuickSight brand. + // + // This member is required. + BrandId *string + + noSmithyDocumentSerde +} + +type DeleteBrandOutput struct { + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteBrandMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteBrand{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteBrand{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteBrand"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDeleteBrandValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteBrand(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteBrand(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteBrand", + } +} diff --git a/service/quicksight/api_op_DeleteBrandAssignment.go b/service/quicksight/api_op_DeleteBrandAssignment.go new file mode 100644 index 00000000000..3bb0c593f64 --- /dev/null +++ b/service/quicksight/api_op_DeleteBrandAssignment.go @@ -0,0 +1,156 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes a brand assignment. +func (c *Client) DeleteBrandAssignment(ctx context.Context, params *DeleteBrandAssignmentInput, optFns ...func(*Options)) (*DeleteBrandAssignmentOutput, error) { + if params == nil { + params = &DeleteBrandAssignmentInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteBrandAssignment", params, optFns, c.addOperationDeleteBrandAssignmentMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteBrandAssignmentOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteBrandAssignmentInput struct { + + // The ID of the Amazon Web Services account that owns the brand assignment. + // + // This member is required. + AwsAccountId *string + + noSmithyDocumentSerde +} + +type DeleteBrandAssignmentOutput struct { + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteBrandAssignmentMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteBrandAssignment{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteBrandAssignment{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteBrandAssignment"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDeleteBrandAssignmentValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteBrandAssignment(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteBrandAssignment(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteBrandAssignment", + } +} diff --git a/service/quicksight/api_op_DeleteCustomPermissions.go b/service/quicksight/api_op_DeleteCustomPermissions.go new file mode 100644 index 00000000000..2b6676d4bac --- /dev/null +++ b/service/quicksight/api_op_DeleteCustomPermissions.go @@ -0,0 +1,168 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes a custom permissions profile. +func (c *Client) DeleteCustomPermissions(ctx context.Context, params *DeleteCustomPermissionsInput, optFns ...func(*Options)) (*DeleteCustomPermissionsOutput, error) { + if params == nil { + params = &DeleteCustomPermissionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteCustomPermissions", params, optFns, c.addOperationDeleteCustomPermissionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteCustomPermissionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteCustomPermissionsInput struct { + + // The ID of the Amazon Web Services account that contains the custom permissions + // profile that you want to delete. + // + // This member is required. + AwsAccountId *string + + // The name of the custom permissions profile that you want to delete. + // + // This member is required. + CustomPermissionsName *string + + noSmithyDocumentSerde +} + +type DeleteCustomPermissionsOutput struct { + + // The Amazon Resource Name (ARN) of the custom permissions profile. + Arn *string + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // The HTTP status of the request. + Status int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteCustomPermissionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteCustomPermissions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteCustomPermissions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteCustomPermissions"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDeleteCustomPermissionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteCustomPermissions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteCustomPermissions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteCustomPermissions", + } +} diff --git a/service/quicksight/api_op_DeleteUserCustomPermission.go b/service/quicksight/api_op_DeleteUserCustomPermission.go new file mode 100644 index 00000000000..ab3e73fb8e1 --- /dev/null +++ b/service/quicksight/api_op_DeleteUserCustomPermission.go @@ -0,0 +1,170 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes a custom permissions profile from a user. +func (c *Client) DeleteUserCustomPermission(ctx context.Context, params *DeleteUserCustomPermissionInput, optFns ...func(*Options)) (*DeleteUserCustomPermissionOutput, error) { + if params == nil { + params = &DeleteUserCustomPermissionInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteUserCustomPermission", params, optFns, c.addOperationDeleteUserCustomPermissionMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteUserCustomPermissionOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteUserCustomPermissionInput struct { + + // The ID of the Amazon Web Services account that contains the custom permission + // configuration that you want to delete. + // + // This member is required. + AwsAccountId *string + + // The namespace that the user belongs to. + // + // This member is required. + Namespace *string + + // The username of the user that you want to remove custom permissions from. + // + // This member is required. + UserName *string + + noSmithyDocumentSerde +} + +type DeleteUserCustomPermissionOutput struct { + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // The HTTP status of the request. + Status int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteUserCustomPermissionMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteUserCustomPermission{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteUserCustomPermission{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DeleteUserCustomPermission"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDeleteUserCustomPermissionValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteUserCustomPermission(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDeleteUserCustomPermission(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DeleteUserCustomPermission", + } +} diff --git a/service/quicksight/api_op_DescribeBrand.go b/service/quicksight/api_op_DescribeBrand.go new file mode 100644 index 00000000000..7c53dd21661 --- /dev/null +++ b/service/quicksight/api_op_DescribeBrand.go @@ -0,0 +1,171 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/quicksight/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes a brand. +func (c *Client) DescribeBrand(ctx context.Context, params *DescribeBrandInput, optFns ...func(*Options)) (*DescribeBrandOutput, error) { + if params == nil { + params = &DescribeBrandInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeBrand", params, optFns, c.addOperationDescribeBrandMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeBrandOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeBrandInput struct { + + // The ID of the Amazon Web Services account that owns the brand. + // + // This member is required. + AwsAccountId *string + + // The ID of the Amazon QuickSight brand. + // + // This member is required. + BrandId *string + + // The ID of the specific version. The default value is the latest version. + VersionId *string + + noSmithyDocumentSerde +} + +type DescribeBrandOutput struct { + + // The definition of the brand. + BrandDefinition *types.BrandDefinition + + // The details of the brand. + BrandDetail *types.BrandDetail + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeBrandMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeBrand{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeBrand{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeBrand"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDescribeBrandValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeBrand(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeBrand(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeBrand", + } +} diff --git a/service/quicksight/api_op_DescribeBrandAssignment.go b/service/quicksight/api_op_DescribeBrandAssignment.go new file mode 100644 index 00000000000..3a5b1366f49 --- /dev/null +++ b/service/quicksight/api_op_DescribeBrandAssignment.go @@ -0,0 +1,159 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes a brand assignment. +func (c *Client) DescribeBrandAssignment(ctx context.Context, params *DescribeBrandAssignmentInput, optFns ...func(*Options)) (*DescribeBrandAssignmentOutput, error) { + if params == nil { + params = &DescribeBrandAssignmentInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeBrandAssignment", params, optFns, c.addOperationDescribeBrandAssignmentMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeBrandAssignmentOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeBrandAssignmentInput struct { + + // The ID of the Amazon Web Services account that owns the brand assignment. + // + // This member is required. + AwsAccountId *string + + noSmithyDocumentSerde +} + +type DescribeBrandAssignmentOutput struct { + + // The Amazon Resource Name (ARN) of the brand. + BrandArn *string + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeBrandAssignmentMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeBrandAssignment{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeBrandAssignment{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeBrandAssignment"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDescribeBrandAssignmentValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeBrandAssignment(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeBrandAssignment(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeBrandAssignment", + } +} diff --git a/service/quicksight/api_op_DescribeBrandPublishedVersion.go b/service/quicksight/api_op_DescribeBrandPublishedVersion.go new file mode 100644 index 00000000000..41796d7e743 --- /dev/null +++ b/service/quicksight/api_op_DescribeBrandPublishedVersion.go @@ -0,0 +1,168 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/quicksight/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes the published version of the brand. +func (c *Client) DescribeBrandPublishedVersion(ctx context.Context, params *DescribeBrandPublishedVersionInput, optFns ...func(*Options)) (*DescribeBrandPublishedVersionOutput, error) { + if params == nil { + params = &DescribeBrandPublishedVersionInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeBrandPublishedVersion", params, optFns, c.addOperationDescribeBrandPublishedVersionMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeBrandPublishedVersionOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeBrandPublishedVersionInput struct { + + // The ID of the Amazon Web Services account that owns the brand. + // + // This member is required. + AwsAccountId *string + + // The ID of the Amazon QuickSight brand. + // + // This member is required. + BrandId *string + + noSmithyDocumentSerde +} + +type DescribeBrandPublishedVersionOutput struct { + + // The definition of the brand. + BrandDefinition *types.BrandDefinition + + // The details of the brand. + BrandDetail *types.BrandDetail + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeBrandPublishedVersionMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeBrandPublishedVersion{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeBrandPublishedVersion{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeBrandPublishedVersion"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDescribeBrandPublishedVersionValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeBrandPublishedVersion(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeBrandPublishedVersion(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeBrandPublishedVersion", + } +} diff --git a/service/quicksight/api_op_DescribeCustomPermissions.go b/service/quicksight/api_op_DescribeCustomPermissions.go new file mode 100644 index 00000000000..438727bcad7 --- /dev/null +++ b/service/quicksight/api_op_DescribeCustomPermissions.go @@ -0,0 +1,169 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/quicksight/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes a custom permissions profile. +func (c *Client) DescribeCustomPermissions(ctx context.Context, params *DescribeCustomPermissionsInput, optFns ...func(*Options)) (*DescribeCustomPermissionsOutput, error) { + if params == nil { + params = &DescribeCustomPermissionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeCustomPermissions", params, optFns, c.addOperationDescribeCustomPermissionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeCustomPermissionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeCustomPermissionsInput struct { + + // The ID of the Amazon Web Services account that contains the custom permissions + // profile that you want described. + // + // This member is required. + AwsAccountId *string + + // The name of the custom permissions profile to describe. + // + // This member is required. + CustomPermissionsName *string + + noSmithyDocumentSerde +} + +type DescribeCustomPermissionsOutput struct { + + // The custom permissions profile. + CustomPermissions *types.CustomPermissions + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // The HTTP status of the request. + Status int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeCustomPermissionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeCustomPermissions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeCustomPermissions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeCustomPermissions"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpDescribeCustomPermissionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeCustomPermissions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opDescribeCustomPermissions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "DescribeCustomPermissions", + } +} diff --git a/service/quicksight/api_op_ListBrands.go b/service/quicksight/api_op_ListBrands.go new file mode 100644 index 00000000000..4f2544dced0 --- /dev/null +++ b/service/quicksight/api_op_ListBrands.go @@ -0,0 +1,260 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/quicksight/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all brands in an Amazon QuickSight account. +func (c *Client) ListBrands(ctx context.Context, params *ListBrandsInput, optFns ...func(*Options)) (*ListBrandsOutput, error) { + if params == nil { + params = &ListBrandsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListBrands", params, optFns, c.addOperationListBrandsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListBrandsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListBrandsInput struct { + + // The ID of the Amazon Web Services account that owns the brands that you want to + // list. + // + // This member is required. + AwsAccountId *string + + // The maximum number of results to be returned in a single request. + MaxResults *int32 + + // The token for the next set of results, or null if there are no more results. + NextToken *string + + noSmithyDocumentSerde +} + +type ListBrandsOutput struct { + + // A list of all brands in your Amazon Web Services account. This structure + // provides basic information about each brand. + Brands []types.BrandSummary + + // The token for the next set of results, or null if there are no more results. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListBrandsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListBrands{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListBrands{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListBrands"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListBrandsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListBrands(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListBrandsPaginatorOptions is the paginator options for ListBrands +type ListBrandsPaginatorOptions struct { + // The maximum number of results to be returned in a single request. + 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 +} + +// ListBrandsPaginator is a paginator for ListBrands +type ListBrandsPaginator struct { + options ListBrandsPaginatorOptions + client ListBrandsAPIClient + params *ListBrandsInput + nextToken *string + firstPage bool +} + +// NewListBrandsPaginator returns a new ListBrandsPaginator +func NewListBrandsPaginator(client ListBrandsAPIClient, params *ListBrandsInput, optFns ...func(*ListBrandsPaginatorOptions)) *ListBrandsPaginator { + if params == nil { + params = &ListBrandsInput{} + } + + options := ListBrandsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListBrandsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListBrandsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListBrands page. +func (p *ListBrandsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListBrandsOutput, 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 + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListBrands(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 +} + +// ListBrandsAPIClient is a client that implements the ListBrands operation. +type ListBrandsAPIClient interface { + ListBrands(context.Context, *ListBrandsInput, ...func(*Options)) (*ListBrandsOutput, error) +} + +var _ ListBrandsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListBrands(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListBrands", + } +} diff --git a/service/quicksight/api_op_ListCustomPermissions.go b/service/quicksight/api_op_ListCustomPermissions.go new file mode 100644 index 00000000000..312ae9632ae --- /dev/null +++ b/service/quicksight/api_op_ListCustomPermissions.go @@ -0,0 +1,267 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/quicksight/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns a list of all the custom permissions profiles. +func (c *Client) ListCustomPermissions(ctx context.Context, params *ListCustomPermissionsInput, optFns ...func(*Options)) (*ListCustomPermissionsOutput, error) { + if params == nil { + params = &ListCustomPermissionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListCustomPermissions", params, optFns, c.addOperationListCustomPermissionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListCustomPermissionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListCustomPermissionsInput struct { + + // The ID of the Amazon Web Services account that contains the custom permissions + // profiles that you want to list. + // + // This member is required. + AwsAccountId *string + + // The maximum number of results to return. + MaxResults *int32 + + // The token for the next set of results, or null if there are no more results. + NextToken *string + + noSmithyDocumentSerde +} + +type ListCustomPermissionsOutput struct { + + // A list of custom permissions profiles. + CustomPermissionsList []types.CustomPermissions + + // The token for the next set of results, or null if there are no more results. + NextToken *string + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // The HTTP status of the request. + Status int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListCustomPermissionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpListCustomPermissions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListCustomPermissions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ListCustomPermissions"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpListCustomPermissionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListCustomPermissions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +// ListCustomPermissionsPaginatorOptions is the paginator options for +// ListCustomPermissions +type ListCustomPermissionsPaginatorOptions struct { + // The maximum number of results to return. + 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 +} + +// ListCustomPermissionsPaginator is a paginator for ListCustomPermissions +type ListCustomPermissionsPaginator struct { + options ListCustomPermissionsPaginatorOptions + client ListCustomPermissionsAPIClient + params *ListCustomPermissionsInput + nextToken *string + firstPage bool +} + +// NewListCustomPermissionsPaginator returns a new ListCustomPermissionsPaginator +func NewListCustomPermissionsPaginator(client ListCustomPermissionsAPIClient, params *ListCustomPermissionsInput, optFns ...func(*ListCustomPermissionsPaginatorOptions)) *ListCustomPermissionsPaginator { + if params == nil { + params = &ListCustomPermissionsInput{} + } + + options := ListCustomPermissionsPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListCustomPermissionsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListCustomPermissionsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListCustomPermissions page. +func (p *ListCustomPermissionsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListCustomPermissionsOutput, 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 + + optFns = append([]func(*Options){ + addIsPaginatorUserAgent, + }, optFns...) + result, err := p.client.ListCustomPermissions(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 +} + +// ListCustomPermissionsAPIClient is a client that implements the +// ListCustomPermissions operation. +type ListCustomPermissionsAPIClient interface { + ListCustomPermissions(context.Context, *ListCustomPermissionsInput, ...func(*Options)) (*ListCustomPermissionsOutput, error) +} + +var _ ListCustomPermissionsAPIClient = (*Client)(nil) + +func newServiceMetadataMiddleware_opListCustomPermissions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ListCustomPermissions", + } +} diff --git a/service/quicksight/api_op_UpdateBrand.go b/service/quicksight/api_op_UpdateBrand.go new file mode 100644 index 00000000000..85cbd91d4ed --- /dev/null +++ b/service/quicksight/api_op_UpdateBrand.go @@ -0,0 +1,171 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/quicksight/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates a brand. +func (c *Client) UpdateBrand(ctx context.Context, params *UpdateBrandInput, optFns ...func(*Options)) (*UpdateBrandOutput, error) { + if params == nil { + params = &UpdateBrandInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateBrand", params, optFns, c.addOperationUpdateBrandMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateBrandOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateBrandInput struct { + + // The ID of the Amazon Web Services account that owns the brand. + // + // This member is required. + AwsAccountId *string + + // The ID of the Amazon QuickSight brand. + // + // This member is required. + BrandId *string + + // The definition of the brand. + BrandDefinition *types.BrandDefinition + + noSmithyDocumentSerde +} + +type UpdateBrandOutput struct { + + // The definition of the brand. + BrandDefinition *types.BrandDefinition + + // The details of the brand. + BrandDetail *types.BrandDetail + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateBrandMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateBrand{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateBrand{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateBrand"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdateBrandValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateBrand(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateBrand(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateBrand", + } +} diff --git a/service/quicksight/api_op_UpdateBrandAssignment.go b/service/quicksight/api_op_UpdateBrandAssignment.go new file mode 100644 index 00000000000..bb7aaad5e14 --- /dev/null +++ b/service/quicksight/api_op_UpdateBrandAssignment.go @@ -0,0 +1,164 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates a brand assignment. +func (c *Client) UpdateBrandAssignment(ctx context.Context, params *UpdateBrandAssignmentInput, optFns ...func(*Options)) (*UpdateBrandAssignmentOutput, error) { + if params == nil { + params = &UpdateBrandAssignmentInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateBrandAssignment", params, optFns, c.addOperationUpdateBrandAssignmentMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateBrandAssignmentOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateBrandAssignmentInput struct { + + // The ID of the Amazon Web Services account that owns the brand assignment. + // + // This member is required. + AwsAccountId *string + + // The Amazon Resource Name (ARN) of the brand. + // + // This member is required. + BrandArn *string + + noSmithyDocumentSerde +} + +type UpdateBrandAssignmentOutput struct { + + // The Amazon Resource Name (ARN) of the brand. + BrandArn *string + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateBrandAssignmentMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateBrandAssignment{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateBrandAssignment{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateBrandAssignment"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdateBrandAssignmentValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateBrandAssignment(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateBrandAssignment(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateBrandAssignment", + } +} diff --git a/service/quicksight/api_op_UpdateBrandPublishedVersion.go b/service/quicksight/api_op_UpdateBrandPublishedVersion.go new file mode 100644 index 00000000000..9e78f15e224 --- /dev/null +++ b/service/quicksight/api_op_UpdateBrandPublishedVersion.go @@ -0,0 +1,169 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates the published version of a brand. +func (c *Client) UpdateBrandPublishedVersion(ctx context.Context, params *UpdateBrandPublishedVersionInput, optFns ...func(*Options)) (*UpdateBrandPublishedVersionOutput, error) { + if params == nil { + params = &UpdateBrandPublishedVersionInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateBrandPublishedVersion", params, optFns, c.addOperationUpdateBrandPublishedVersionMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateBrandPublishedVersionOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateBrandPublishedVersionInput struct { + + // The ID of the Amazon Web Services account that owns the brand. + // + // This member is required. + AwsAccountId *string + + // The ID of the Amazon QuickSight brand. + // + // This member is required. + BrandId *string + + // The ID of the published version. + // + // This member is required. + VersionId *string + + noSmithyDocumentSerde +} + +type UpdateBrandPublishedVersionOutput struct { + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // The ID of the published version. + VersionId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateBrandPublishedVersionMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateBrandPublishedVersion{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateBrandPublishedVersion{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateBrandPublishedVersion"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdateBrandPublishedVersionValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateBrandPublishedVersion(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateBrandPublishedVersion(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateBrandPublishedVersion", + } +} diff --git a/service/quicksight/api_op_UpdateCustomPermissions.go b/service/quicksight/api_op_UpdateCustomPermissions.go new file mode 100644 index 00000000000..f6f9c19e9ea --- /dev/null +++ b/service/quicksight/api_op_UpdateCustomPermissions.go @@ -0,0 +1,172 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/quicksight/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates a custom permissions profile. +func (c *Client) UpdateCustomPermissions(ctx context.Context, params *UpdateCustomPermissionsInput, optFns ...func(*Options)) (*UpdateCustomPermissionsOutput, error) { + if params == nil { + params = &UpdateCustomPermissionsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateCustomPermissions", params, optFns, c.addOperationUpdateCustomPermissionsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateCustomPermissionsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateCustomPermissionsInput struct { + + // The ID of the Amazon Web Services account that contains the custom permissions + // profile that you want to update. + // + // This member is required. + AwsAccountId *string + + // The name of the custom permissions profile that you want to update. + // + // This member is required. + CustomPermissionsName *string + + // A set of actions to include in the custom permissions profile. + Capabilities *types.Capabilities + + noSmithyDocumentSerde +} + +type UpdateCustomPermissionsOutput struct { + + // The Amazon Resource Name (ARN) of the custom permissions profile. + Arn *string + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // The HTTP status of the request. + Status int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateCustomPermissionsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateCustomPermissions{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateCustomPermissions{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateCustomPermissions"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdateCustomPermissionsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateCustomPermissions(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateCustomPermissions(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateCustomPermissions", + } +} diff --git a/service/quicksight/api_op_UpdateUserCustomPermission.go b/service/quicksight/api_op_UpdateUserCustomPermission.go new file mode 100644 index 00000000000..21c57ebc294 --- /dev/null +++ b/service/quicksight/api_op_UpdateUserCustomPermission.go @@ -0,0 +1,175 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package quicksight + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates a custom permissions profile for a user. +func (c *Client) UpdateUserCustomPermission(ctx context.Context, params *UpdateUserCustomPermissionInput, optFns ...func(*Options)) (*UpdateUserCustomPermissionOutput, error) { + if params == nil { + params = &UpdateUserCustomPermissionInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateUserCustomPermission", params, optFns, c.addOperationUpdateUserCustomPermissionMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateUserCustomPermissionOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateUserCustomPermissionInput struct { + + // The ID of the Amazon Web Services account that contains the custom permission + // configuration that you want to update. + // + // This member is required. + AwsAccountId *string + + // The name of the custom permissions that you want to update. + // + // This member is required. + CustomPermissionsName *string + + // The namespace that the user belongs to. + // + // This member is required. + Namespace *string + + // The username of the user that you want to update custom permissions for. + // + // This member is required. + UserName *string + + noSmithyDocumentSerde +} + +type UpdateUserCustomPermissionOutput struct { + + // The Amazon Web Services request ID for this operation. + RequestId *string + + // The HTTP status of the request. + Status int32 + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateUserCustomPermissionMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateUserCustomPermission{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateUserCustomPermission{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "UpdateUserCustomPermission"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpUpdateUserCustomPermissionValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateUserCustomPermission(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateUserCustomPermission(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "UpdateUserCustomPermission", + } +} diff --git a/service/quicksight/deserializers.go b/service/quicksight/deserializers.go index 324d29d2351..dc6a5222289 100644 --- a/service/quicksight/deserializers.go +++ b/service/quicksight/deserializers.go @@ -1296,14 +1296,14 @@ func awsRestjson1_deserializeOpDocumentCreateAnalysisOutput(v **CreateAnalysisOu return nil } -type awsRestjson1_deserializeOpCreateDashboard struct { +type awsRestjson1_deserializeOpCreateBrand struct { } -func (*awsRestjson1_deserializeOpCreateDashboard) ID() string { +func (*awsRestjson1_deserializeOpCreateBrand) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateDashboard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateBrand) 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) @@ -1321,16 +1321,11 @@ func (m *awsRestjson1_deserializeOpCreateDashboard) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateDashboard(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateBrand(response, &metadata) } - output := &CreateDashboardOutput{} + output := &CreateBrandOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateDashboardOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -1349,7 +1344,7 @@ func (m *awsRestjson1_deserializeOpCreateDashboard) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateDashboardOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateBrandOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1363,7 +1358,7 @@ func (m *awsRestjson1_deserializeOpCreateDashboard) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateDashboard(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateBrand(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)} @@ -1404,30 +1399,24 @@ func awsRestjson1_deserializeOpErrorCreateDashboard(response *smithyhttp.Respons } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1438,16 +1427,7 @@ func awsRestjson1_deserializeOpErrorCreateDashboard(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpHttpBindingsCreateDashboardOutput(v *CreateDashboardOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentCreateDashboardOutput(v **CreateDashboardOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateBrandOutput(v **CreateBrandOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1460,40 +1440,23 @@ func awsRestjson1_deserializeOpDocumentCreateDashboardOutput(v **CreateDashboard return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateDashboardOutput + var sv *CreateBrandOutput if *v == nil { - sv = &CreateDashboardOutput{} + sv = &CreateBrandOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "CreationStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) - } - sv.CreationStatus = types.ResourceStatus(jtv) + case "BrandDefinition": + if err := awsRestjson1_deserializeDocumentBrandDefinition(&sv.BrandDefinition, value); err != nil { + return err } - case "DashboardId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.DashboardId = ptr.String(jtv) + case "BrandDetail": + if err := awsRestjson1_deserializeDocumentBrandDetail(&sv.BrandDetail, value); err != nil { + return err } case "RequestId": @@ -1505,15 +1468,6 @@ func awsRestjson1_deserializeOpDocumentCreateDashboardOutput(v **CreateDashboard sv.RequestId = ptr.String(jtv) } - case "VersionArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.VersionArn = ptr.String(jtv) - } - default: _, _ = key, value @@ -1523,14 +1477,14 @@ func awsRestjson1_deserializeOpDocumentCreateDashboardOutput(v **CreateDashboard return nil } -type awsRestjson1_deserializeOpCreateDataSet struct { +type awsRestjson1_deserializeOpCreateCustomPermissions struct { } -func (*awsRestjson1_deserializeOpCreateDataSet) ID() string { +func (*awsRestjson1_deserializeOpCreateCustomPermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateDataSet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateCustomPermissions) 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) @@ -1548,16 +1502,11 @@ func (m *awsRestjson1_deserializeOpCreateDataSet) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateDataSet(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateCustomPermissions(response, &metadata) } - output := &CreateDataSetOutput{} + output := &CreateCustomPermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateDataSetOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -1576,7 +1525,7 @@ func (m *awsRestjson1_deserializeOpCreateDataSet) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateDataSetOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateCustomPermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1590,7 +1539,7 @@ func (m *awsRestjson1_deserializeOpCreateDataSet) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateDataSet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateCustomPermissions(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)} @@ -1646,18 +1595,21 @@ func awsRestjson1_deserializeOpErrorCreateDataSet(response *smithyhttp.Response, case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1668,16 +1620,7 @@ func awsRestjson1_deserializeOpErrorCreateDataSet(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsCreateDataSetOutput(v *CreateDataSetOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentCreateDataSetOutput(v **CreateDataSetOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateCustomPermissionsOutput(v **CreateCustomPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1690,9 +1633,9 @@ func awsRestjson1_deserializeOpDocumentCreateDataSetOutput(v **CreateDataSetOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateDataSetOutput + var sv *CreateCustomPermissionsOutput if *v == nil { - sv = &CreateDataSetOutput{} + sv = &CreateCustomPermissionsOutput{} } else { sv = *v } @@ -1708,40 +1651,26 @@ func awsRestjson1_deserializeOpDocumentCreateDataSetOutput(v **CreateDataSetOutp sv.Arn = ptr.String(jtv) } - case "DataSetId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) - } - sv.DataSetId = ptr.String(jtv) - } - - case "IngestionArn": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.IngestionArn = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } - case "IngestionId": + case "Status": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) } - sv.IngestionId = ptr.String(jtv) - } - - case "RequestId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + i64, err := jtv.Int64() + if err != nil { + return err } - sv.RequestId = ptr.String(jtv) + sv.Status = int32(i64) } default: @@ -1753,14 +1682,14 @@ func awsRestjson1_deserializeOpDocumentCreateDataSetOutput(v **CreateDataSetOutp return nil } -type awsRestjson1_deserializeOpCreateDataSource struct { +type awsRestjson1_deserializeOpCreateDashboard struct { } -func (*awsRestjson1_deserializeOpCreateDataSource) ID() string { +func (*awsRestjson1_deserializeOpCreateDashboard) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateDashboard) 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) @@ -1778,12 +1707,12 @@ func (m *awsRestjson1_deserializeOpCreateDataSource) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateDataSource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateDashboard(response, &metadata) } - output := &CreateDataSourceOutput{} + output := &CreateDashboardOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateDataSourceOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateDashboardOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -1806,7 +1735,7 @@ func (m *awsRestjson1_deserializeOpCreateDataSource) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateDashboardOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1820,7 +1749,7 @@ func (m *awsRestjson1_deserializeOpCreateDataSource) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateDashboard(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)} @@ -1861,15 +1790,9 @@ func awsRestjson1_deserializeOpErrorCreateDataSource(response *smithyhttp.Respon } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("CustomerManagedKeyUnavailableException", errorCode): - return awsRestjson1_deserializeErrorCustomerManagedKeyUnavailableException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -1888,6 +1811,9 @@ func awsRestjson1_deserializeOpErrorCreateDataSource(response *smithyhttp.Respon case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1898,7 +1824,7 @@ func awsRestjson1_deserializeOpErrorCreateDataSource(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpHttpBindingsCreateDataSourceOutput(v *CreateDataSourceOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateDashboardOutput(v *CreateDashboardOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -1907,7 +1833,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateDataSourceOutput(v *CreateDataS return nil } -func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateDashboardOutput(v **CreateDashboardOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1920,9 +1846,9 @@ func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSour return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateDataSourceOutput + var sv *CreateDashboardOutput if *v == nil { - sv = &CreateDataSourceOutput{} + sv = &CreateDashboardOutput{} } else { sv = *v } @@ -1947,13 +1873,13 @@ func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSour sv.CreationStatus = types.ResourceStatus(jtv) } - case "DataSourceId": + case "DashboardId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.DataSourceId = ptr.String(jtv) + sv.DashboardId = ptr.String(jtv) } case "RequestId": @@ -1965,6 +1891,15 @@ func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSour sv.RequestId = ptr.String(jtv) } + case "VersionArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.VersionArn = ptr.String(jtv) + } + default: _, _ = key, value @@ -1974,14 +1909,14 @@ func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSour return nil } -type awsRestjson1_deserializeOpCreateFolder struct { +type awsRestjson1_deserializeOpCreateDataSet struct { } -func (*awsRestjson1_deserializeOpCreateFolder) ID() string { +func (*awsRestjson1_deserializeOpCreateDataSet) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateFolder) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateDataSet) 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) @@ -1999,12 +1934,12 @@ func (m *awsRestjson1_deserializeOpCreateFolder) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateFolder(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateDataSet(response, &metadata) } - output := &CreateFolderOutput{} + output := &CreateDataSetOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateFolderOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateDataSetOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -2027,7 +1962,7 @@ func (m *awsRestjson1_deserializeOpCreateFolder) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateFolderOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateDataSetOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2041,7 +1976,7 @@ func (m *awsRestjson1_deserializeOpCreateFolder) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateFolder(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateDataSet(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)} @@ -2119,7 +2054,7 @@ func awsRestjson1_deserializeOpErrorCreateFolder(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsCreateFolderOutput(v *CreateFolderOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateDataSetOutput(v *CreateDataSetOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -2128,7 +2063,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateFolderOutput(v *CreateFolderOut return nil } -func awsRestjson1_deserializeOpDocumentCreateFolderOutput(v **CreateFolderOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateDataSetOutput(v **CreateDataSetOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2141,9 +2076,9 @@ func awsRestjson1_deserializeOpDocumentCreateFolderOutput(v **CreateFolderOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateFolderOutput + var sv *CreateDataSetOutput if *v == nil { - sv = &CreateFolderOutput{} + sv = &CreateDataSetOutput{} } else { sv = *v } @@ -2159,13 +2094,31 @@ func awsRestjson1_deserializeOpDocumentCreateFolderOutput(v **CreateFolderOutput sv.Arn = ptr.String(jtv) } - case "FolderId": + case "DataSetId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) } - sv.FolderId = ptr.String(jtv) + sv.DataSetId = ptr.String(jtv) + } + + case "IngestionArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.IngestionArn = ptr.String(jtv) + } + + case "IngestionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) + } + sv.IngestionId = ptr.String(jtv) } case "RequestId": @@ -2186,14 +2139,14 @@ func awsRestjson1_deserializeOpDocumentCreateFolderOutput(v **CreateFolderOutput return nil } -type awsRestjson1_deserializeOpCreateFolderMembership struct { +type awsRestjson1_deserializeOpCreateDataSource struct { } -func (*awsRestjson1_deserializeOpCreateFolderMembership) ID() string { +func (*awsRestjson1_deserializeOpCreateDataSource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateFolderMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateDataSource) 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) @@ -2211,11 +2164,16 @@ func (m *awsRestjson1_deserializeOpCreateFolderMembership) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateFolderMembership(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateDataSource(response, &metadata) } - output := &CreateFolderMembershipOutput{} + output := &CreateDataSourceOutput{} out.Result = output + err = awsRestjson1_deserializeOpHttpBindingsCreateDataSourceOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -2234,7 +2192,7 @@ func (m *awsRestjson1_deserializeOpCreateFolderMembership) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateFolderMembershipOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2248,7 +2206,7 @@ func (m *awsRestjson1_deserializeOpCreateFolderMembership) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateFolderMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateDataSource(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)} @@ -2292,6 +2250,12 @@ func awsRestjson1_deserializeOpErrorCreateFolderMembership(response *smithyhttp. case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("CustomerManagedKeyUnavailableException", errorCode): + return awsRestjson1_deserializeErrorCustomerManagedKeyUnavailableException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -2310,9 +2274,6 @@ func awsRestjson1_deserializeOpErrorCreateFolderMembership(response *smithyhttp. case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2323,7 +2284,16 @@ func awsRestjson1_deserializeOpErrorCreateFolderMembership(response *smithyhttp. } } -func awsRestjson1_deserializeOpDocumentCreateFolderMembershipOutput(v **CreateFolderMembershipOutput, value interface{}) error { +func awsRestjson1_deserializeOpHttpBindingsCreateDataSourceOutput(v *CreateDataSourceOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentCreateDataSourceOutput(v **CreateDataSourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2336,40 +2306,49 @@ func awsRestjson1_deserializeOpDocumentCreateFolderMembershipOutput(v **CreateFo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateFolderMembershipOutput + var sv *CreateDataSourceOutput if *v == nil { - sv = &CreateFolderMembershipOutput{} + sv = &CreateDataSourceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "FolderMember": - if err := awsRestjson1_deserializeDocumentFolderMember(&sv.FolderMember, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "RequestId": + case "CreationStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.CreationStatus = types.ResourceStatus(jtv) } - case "Status": + case "DataSourceId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) + return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.DataSourceId = ptr.String(jtv) + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Status = int32(i64) + sv.RequestId = ptr.String(jtv) } default: @@ -2381,14 +2360,14 @@ func awsRestjson1_deserializeOpDocumentCreateFolderMembershipOutput(v **CreateFo return nil } -type awsRestjson1_deserializeOpCreateGroup struct { +type awsRestjson1_deserializeOpCreateFolder struct { } -func (*awsRestjson1_deserializeOpCreateGroup) ID() string { +func (*awsRestjson1_deserializeOpCreateFolder) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateFolder) 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) @@ -2406,12 +2385,12 @@ func (m *awsRestjson1_deserializeOpCreateGroup) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateGroup(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateFolder(response, &metadata) } - output := &CreateGroupOutput{} + output := &CreateFolderOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateGroupOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateFolderOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -2434,7 +2413,7 @@ func (m *awsRestjson1_deserializeOpCreateGroup) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateGroupOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateFolderOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2448,7 +2427,7 @@ func (m *awsRestjson1_deserializeOpCreateGroup) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateFolder(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)} @@ -2492,6 +2471,9 @@ func awsRestjson1_deserializeOpErrorCreateGroup(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -2501,21 +2483,18 @@ func awsRestjson1_deserializeOpErrorCreateGroup(response *smithyhttp.Response, m case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2526,7 +2505,7 @@ func awsRestjson1_deserializeOpErrorCreateGroup(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpHttpBindingsCreateGroupOutput(v *CreateGroupOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateFolderOutput(v *CreateFolderOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -2535,7 +2514,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateGroupOutput(v *CreateGroupOutpu return nil } -func awsRestjson1_deserializeOpDocumentCreateGroupOutput(v **CreateGroupOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateFolderOutput(v **CreateFolderOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2548,18 +2527,31 @@ func awsRestjson1_deserializeOpDocumentCreateGroupOutput(v **CreateGroupOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateGroupOutput + var sv *CreateFolderOutput if *v == nil { - sv = &CreateGroupOutput{} + sv = &CreateFolderOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Group": - if err := awsRestjson1_deserializeDocumentGroup(&sv.Group, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "FolderId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RestrictiveResourceId to be of type string, got %T instead", value) + } + sv.FolderId = ptr.String(jtv) } case "RequestId": @@ -2580,14 +2572,14 @@ func awsRestjson1_deserializeOpDocumentCreateGroupOutput(v **CreateGroupOutput, return nil } -type awsRestjson1_deserializeOpCreateGroupMembership struct { +type awsRestjson1_deserializeOpCreateFolderMembership struct { } -func (*awsRestjson1_deserializeOpCreateGroupMembership) ID() string { +func (*awsRestjson1_deserializeOpCreateFolderMembership) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateGroupMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateFolderMembership) 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) @@ -2605,16 +2597,11 @@ func (m *awsRestjson1_deserializeOpCreateGroupMembership) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateGroupMembership(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateFolderMembership(response, &metadata) } - output := &CreateGroupMembershipOutput{} + output := &CreateFolderMembershipOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateGroupMembershipOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -2633,7 +2620,7 @@ func (m *awsRestjson1_deserializeOpCreateGroupMembership) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateGroupMembershipOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateFolderMembershipOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2647,7 +2634,7 @@ func (m *awsRestjson1_deserializeOpCreateGroupMembership) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateGroupMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateFolderMembership(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)} @@ -2697,18 +2684,21 @@ func awsRestjson1_deserializeOpErrorCreateGroupMembership(response *smithyhttp.R case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -2719,16 +2709,7 @@ func awsRestjson1_deserializeOpErrorCreateGroupMembership(response *smithyhttp.R } } -func awsRestjson1_deserializeOpHttpBindingsCreateGroupMembershipOutput(v *CreateGroupMembershipOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentCreateGroupMembershipOutput(v **CreateGroupMembershipOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateFolderMembershipOutput(v **CreateFolderMembershipOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2741,17 +2722,17 @@ func awsRestjson1_deserializeOpDocumentCreateGroupMembershipOutput(v **CreateGro return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateGroupMembershipOutput + var sv *CreateFolderMembershipOutput if *v == nil { - sv = &CreateGroupMembershipOutput{} + sv = &CreateFolderMembershipOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupMember": - if err := awsRestjson1_deserializeDocumentGroupMember(&sv.GroupMember, value); err != nil { + case "FolderMember": + if err := awsRestjson1_deserializeDocumentFolderMember(&sv.FolderMember, value); err != nil { return err } @@ -2764,6 +2745,19 @@ func awsRestjson1_deserializeOpDocumentCreateGroupMembershipOutput(v **CreateGro sv.RequestId = ptr.String(jtv) } + case "Status": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) + } + default: _, _ = key, value @@ -2773,14 +2767,14 @@ func awsRestjson1_deserializeOpDocumentCreateGroupMembershipOutput(v **CreateGro return nil } -type awsRestjson1_deserializeOpCreateIAMPolicyAssignment struct { +type awsRestjson1_deserializeOpCreateGroup struct { } -func (*awsRestjson1_deserializeOpCreateIAMPolicyAssignment) ID() string { +func (*awsRestjson1_deserializeOpCreateGroup) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateIAMPolicyAssignment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateGroup) 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) @@ -2798,12 +2792,12 @@ func (m *awsRestjson1_deserializeOpCreateIAMPolicyAssignment) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateIAMPolicyAssignment(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateGroup(response, &metadata) } - output := &CreateIAMPolicyAssignmentOutput{} + output := &CreateGroupOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateIAMPolicyAssignmentOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateGroupOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -2826,7 +2820,7 @@ func (m *awsRestjson1_deserializeOpCreateIAMPolicyAssignment) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateIAMPolicyAssignmentOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2840,7 +2834,7 @@ func (m *awsRestjson1_deserializeOpCreateIAMPolicyAssignment) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateIAMPolicyAssignment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateGroup(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)} @@ -2884,21 +2878,27 @@ func awsRestjson1_deserializeOpErrorCreateIAMPolicyAssignment(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConcurrentUpdatingException", errorCode): - return awsRestjson1_deserializeErrorConcurrentUpdatingException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -2912,7 +2912,7 @@ func awsRestjson1_deserializeOpErrorCreateIAMPolicyAssignment(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsCreateIAMPolicyAssignmentOutput(v *CreateIAMPolicyAssignmentOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateGroupOutput(v *CreateGroupOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -2921,7 +2921,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateIAMPolicyAssignmentOutput(v *Cr return nil } -func awsRestjson1_deserializeOpDocumentCreateIAMPolicyAssignmentOutput(v **CreateIAMPolicyAssignmentOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateGroupOutput(v **CreateGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2934,56 +2934,20 @@ func awsRestjson1_deserializeOpDocumentCreateIAMPolicyAssignmentOutput(v **Creat return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateIAMPolicyAssignmentOutput + var sv *CreateGroupOutput if *v == nil { - sv = &CreateIAMPolicyAssignmentOutput{} + sv = &CreateGroupOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AssignmentId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.AssignmentId = ptr.String(jtv) - } - - case "AssignmentName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IAMPolicyAssignmentName to be of type string, got %T instead", value) - } - sv.AssignmentName = ptr.String(jtv) - } - - case "AssignmentStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AssignmentStatus to be of type string, got %T instead", value) - } - sv.AssignmentStatus = types.AssignmentStatus(jtv) - } - - case "Identities": - if err := awsRestjson1_deserializeDocumentIdentityMap(&sv.Identities, value); err != nil { + case "Group": + if err := awsRestjson1_deserializeDocumentGroup(&sv.Group, value); err != nil { return err } - case "PolicyArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.PolicyArn = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -3002,14 +2966,14 @@ func awsRestjson1_deserializeOpDocumentCreateIAMPolicyAssignmentOutput(v **Creat return nil } -type awsRestjson1_deserializeOpCreateIngestion struct { +type awsRestjson1_deserializeOpCreateGroupMembership struct { } -func (*awsRestjson1_deserializeOpCreateIngestion) ID() string { +func (*awsRestjson1_deserializeOpCreateGroupMembership) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateIngestion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateGroupMembership) 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) @@ -3027,12 +2991,12 @@ func (m *awsRestjson1_deserializeOpCreateIngestion) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateIngestion(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateGroupMembership(response, &metadata) } - output := &CreateIngestionOutput{} + output := &CreateGroupMembershipOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateIngestionOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateGroupMembershipOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -3055,7 +3019,7 @@ func (m *awsRestjson1_deserializeOpCreateIngestion) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateIngestionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateGroupMembershipOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3069,7 +3033,7 @@ func (m *awsRestjson1_deserializeOpCreateIngestion) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateIngestion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateGroupMembership(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)} @@ -3119,15 +3083,15 @@ func awsRestjson1_deserializeOpErrorCreateIngestion(response *smithyhttp.Respons case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -3141,7 +3105,7 @@ func awsRestjson1_deserializeOpErrorCreateIngestion(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpHttpBindingsCreateIngestionOutput(v *CreateIngestionOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateGroupMembershipOutput(v *CreateGroupMembershipOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -3150,7 +3114,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateIngestionOutput(v *CreateIngest return nil } -func awsRestjson1_deserializeOpDocumentCreateIngestionOutput(v **CreateIngestionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateGroupMembershipOutput(v **CreateGroupMembershipOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3163,40 +3127,18 @@ func awsRestjson1_deserializeOpDocumentCreateIngestionOutput(v **CreateIngestion return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateIngestionOutput + var sv *CreateGroupMembershipOutput if *v == nil { - sv = &CreateIngestionOutput{} + sv = &CreateGroupMembershipOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "IngestionId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IngestionId to be of type string, got %T instead", value) - } - sv.IngestionId = ptr.String(jtv) - } - - case "IngestionStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IngestionStatus to be of type string, got %T instead", value) - } - sv.IngestionStatus = types.IngestionStatus(jtv) + case "GroupMember": + if err := awsRestjson1_deserializeDocumentGroupMember(&sv.GroupMember, value); err != nil { + return err } case "RequestId": @@ -3217,14 +3159,14 @@ func awsRestjson1_deserializeOpDocumentCreateIngestionOutput(v **CreateIngestion return nil } -type awsRestjson1_deserializeOpCreateNamespace struct { +type awsRestjson1_deserializeOpCreateIAMPolicyAssignment struct { } -func (*awsRestjson1_deserializeOpCreateNamespace) ID() string { +func (*awsRestjson1_deserializeOpCreateIAMPolicyAssignment) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateNamespace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateIAMPolicyAssignment) 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) @@ -3242,12 +3184,12 @@ func (m *awsRestjson1_deserializeOpCreateNamespace) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateNamespace(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateIAMPolicyAssignment(response, &metadata) } - output := &CreateNamespaceOutput{} + output := &CreateIAMPolicyAssignmentOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateNamespaceOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateIAMPolicyAssignmentOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -3270,7 +3212,7 @@ func (m *awsRestjson1_deserializeOpCreateNamespace) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateNamespaceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateIAMPolicyAssignmentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3284,7 +3226,7 @@ func (m *awsRestjson1_deserializeOpCreateNamespace) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateNamespace(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateIAMPolicyAssignment(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)} @@ -3328,8 +3270,8 @@ func awsRestjson1_deserializeOpErrorCreateNamespace(response *smithyhttp.Respons case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("ConcurrentUpdatingException", errorCode): + return awsRestjson1_deserializeErrorConcurrentUpdatingException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -3337,21 +3279,12 @@ func awsRestjson1_deserializeOpErrorCreateNamespace(response *smithyhttp.Respons case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -3365,7 +3298,7 @@ func awsRestjson1_deserializeOpErrorCreateNamespace(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpHttpBindingsCreateNamespaceOutput(v *CreateNamespaceOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateIAMPolicyAssignmentOutput(v *CreateIAMPolicyAssignmentOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -3374,7 +3307,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateNamespaceOutput(v *CreateNamesp return nil } -func awsRestjson1_deserializeOpDocumentCreateNamespaceOutput(v **CreateNamespaceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateIAMPolicyAssignmentOutput(v **CreateIAMPolicyAssignmentOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3387,58 +3320,54 @@ func awsRestjson1_deserializeOpDocumentCreateNamespaceOutput(v **CreateNamespace return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateNamespaceOutput + var sv *CreateIAMPolicyAssignmentOutput if *v == nil { - sv = &CreateNamespaceOutput{} + sv = &CreateIAMPolicyAssignmentOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": + case "AssignmentId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.AssignmentId = ptr.String(jtv) } - case "CapacityRegion": + case "AssignmentName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected IAMPolicyAssignmentName to be of type string, got %T instead", value) } - sv.CapacityRegion = ptr.String(jtv) + sv.AssignmentName = ptr.String(jtv) } - case "CreationStatus": + case "AssignmentStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NamespaceStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected AssignmentStatus to be of type string, got %T instead", value) } - sv.CreationStatus = types.NamespaceStatus(jtv) + sv.AssignmentStatus = types.AssignmentStatus(jtv) } - case "IdentityStore": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IdentityStore to be of type string, got %T instead", value) - } - sv.IdentityStore = types.IdentityStore(jtv) + case "Identities": + if err := awsRestjson1_deserializeDocumentIdentityMap(&sv.Identities, value); err != nil { + return err } - case "Name": + case "PolicyArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Namespace to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.Name = ptr.String(jtv) + sv.PolicyArn = ptr.String(jtv) } case "RequestId": @@ -3459,14 +3388,14 @@ func awsRestjson1_deserializeOpDocumentCreateNamespaceOutput(v **CreateNamespace return nil } -type awsRestjson1_deserializeOpCreateRefreshSchedule struct { +type awsRestjson1_deserializeOpCreateIngestion struct { } -func (*awsRestjson1_deserializeOpCreateRefreshSchedule) ID() string { +func (*awsRestjson1_deserializeOpCreateIngestion) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateRefreshSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateIngestion) 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) @@ -3484,12 +3413,12 @@ func (m *awsRestjson1_deserializeOpCreateRefreshSchedule) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateRefreshSchedule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateIngestion(response, &metadata) } - output := &CreateRefreshScheduleOutput{} + output := &CreateIngestionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateRefreshScheduleOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateIngestionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -3512,7 +3441,7 @@ func (m *awsRestjson1_deserializeOpCreateRefreshSchedule) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateRefreshScheduleOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateIngestionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3526,7 +3455,7 @@ func (m *awsRestjson1_deserializeOpCreateRefreshSchedule) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateRefreshSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateIngestion(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)} @@ -3579,9 +3508,6 @@ func awsRestjson1_deserializeOpErrorCreateRefreshSchedule(response *smithyhttp.R case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) @@ -3601,7 +3527,7 @@ func awsRestjson1_deserializeOpErrorCreateRefreshSchedule(response *smithyhttp.R } } -func awsRestjson1_deserializeOpHttpBindingsCreateRefreshScheduleOutput(v *CreateRefreshScheduleOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateIngestionOutput(v *CreateIngestionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -3610,7 +3536,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateRefreshScheduleOutput(v *Create return nil } -func awsRestjson1_deserializeOpDocumentCreateRefreshScheduleOutput(v **CreateRefreshScheduleOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateIngestionOutput(v **CreateIngestionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3623,9 +3549,9 @@ func awsRestjson1_deserializeOpDocumentCreateRefreshScheduleOutput(v **CreateRef return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateRefreshScheduleOutput + var sv *CreateIngestionOutput if *v == nil { - sv = &CreateRefreshScheduleOutput{} + sv = &CreateIngestionOutput{} } else { sv = *v } @@ -3641,22 +3567,31 @@ func awsRestjson1_deserializeOpDocumentCreateRefreshScheduleOutput(v **CreateRef sv.Arn = ptr.String(jtv) } - case "RequestId": + case "IngestionId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected IngestionId to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.IngestionId = ptr.String(jtv) } - case "ScheduleId": + case "IngestionStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IngestionStatus to be of type string, got %T instead", value) + } + sv.IngestionStatus = types.IngestionStatus(jtv) + } + + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.ScheduleId = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } default: @@ -3668,14 +3603,14 @@ func awsRestjson1_deserializeOpDocumentCreateRefreshScheduleOutput(v **CreateRef return nil } -type awsRestjson1_deserializeOpCreateRoleMembership struct { +type awsRestjson1_deserializeOpCreateNamespace struct { } -func (*awsRestjson1_deserializeOpCreateRoleMembership) ID() string { +func (*awsRestjson1_deserializeOpCreateNamespace) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateRoleMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateNamespace) 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) @@ -3693,12 +3628,12 @@ func (m *awsRestjson1_deserializeOpCreateRoleMembership) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateRoleMembership(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateNamespace(response, &metadata) } - output := &CreateRoleMembershipOutput{} + output := &CreateNamespaceOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateRoleMembershipOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateNamespaceOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -3721,7 +3656,7 @@ func (m *awsRestjson1_deserializeOpCreateRoleMembership) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateRoleMembershipOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateNamespaceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3735,7 +3670,7 @@ func (m *awsRestjson1_deserializeOpCreateRoleMembership) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateRoleMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateNamespace(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)} @@ -3779,15 +3714,24 @@ func awsRestjson1_deserializeOpErrorCreateRoleMembership(response *smithyhttp.Re case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -3807,7 +3751,7 @@ func awsRestjson1_deserializeOpErrorCreateRoleMembership(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpHttpBindingsCreateRoleMembershipOutput(v *CreateRoleMembershipOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateNamespaceOutput(v *CreateNamespaceOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -3816,7 +3760,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateRoleMembershipOutput(v *CreateR return nil } -func awsRestjson1_deserializeOpDocumentCreateRoleMembershipOutput(v **CreateRoleMembershipOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateNamespaceOutput(v **CreateNamespaceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3829,15 +3773,60 @@ func awsRestjson1_deserializeOpDocumentCreateRoleMembershipOutput(v **CreateRole return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateRoleMembershipOutput + var sv *CreateNamespaceOutput if *v == nil { - sv = &CreateRoleMembershipOutput{} + sv = &CreateNamespaceOutput{} } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "CapacityRegion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.CapacityRegion = ptr.String(jtv) + } + + case "CreationStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NamespaceStatus to be of type string, got %T instead", value) + } + sv.CreationStatus = types.NamespaceStatus(jtv) + } + + case "IdentityStore": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IdentityStore to be of type string, got %T instead", value) + } + sv.IdentityStore = types.IdentityStore(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Namespace to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -3856,14 +3845,14 @@ func awsRestjson1_deserializeOpDocumentCreateRoleMembershipOutput(v **CreateRole return nil } -type awsRestjson1_deserializeOpCreateTemplate struct { +type awsRestjson1_deserializeOpCreateRefreshSchedule struct { } -func (*awsRestjson1_deserializeOpCreateTemplate) ID() string { +func (*awsRestjson1_deserializeOpCreateRefreshSchedule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateRefreshSchedule) 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) @@ -3881,12 +3870,12 @@ func (m *awsRestjson1_deserializeOpCreateTemplate) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateTemplate(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateRefreshSchedule(response, &metadata) } - output := &CreateTemplateOutput{} + output := &CreateRefreshScheduleOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateTemplateOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateRefreshScheduleOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -3909,7 +3898,7 @@ func (m *awsRestjson1_deserializeOpCreateTemplate) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateTemplateOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateRefreshScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -3923,7 +3912,7 @@ func (m *awsRestjson1_deserializeOpCreateTemplate) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateRefreshSchedule(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)} @@ -3967,9 +3956,6 @@ func awsRestjson1_deserializeOpErrorCreateTemplate(response *smithyhttp.Response case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -3979,6 +3965,9 @@ func awsRestjson1_deserializeOpErrorCreateTemplate(response *smithyhttp.Response case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) @@ -3988,9 +3977,6 @@ func awsRestjson1_deserializeOpErrorCreateTemplate(response *smithyhttp.Response case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4001,7 +3987,7 @@ func awsRestjson1_deserializeOpErrorCreateTemplate(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsCreateTemplateOutput(v *CreateTemplateOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateRefreshScheduleOutput(v *CreateRefreshScheduleOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -4010,7 +3996,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateTemplateOutput(v *CreateTemplat return nil } -func awsRestjson1_deserializeOpDocumentCreateTemplateOutput(v **CreateTemplateOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateRefreshScheduleOutput(v **CreateRefreshScheduleOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4023,9 +4009,9 @@ func awsRestjson1_deserializeOpDocumentCreateTemplateOutput(v **CreateTemplateOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateTemplateOutput + var sv *CreateRefreshScheduleOutput if *v == nil { - sv = &CreateTemplateOutput{} + sv = &CreateRefreshScheduleOutput{} } else { sv = *v } @@ -4041,15 +4027,6 @@ func awsRestjson1_deserializeOpDocumentCreateTemplateOutput(v **CreateTemplateOu sv.Arn = ptr.String(jtv) } - case "CreationStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) - } - sv.CreationStatus = types.ResourceStatus(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -4059,22 +4036,13 @@ func awsRestjson1_deserializeOpDocumentCreateTemplateOutput(v **CreateTemplateOu sv.RequestId = ptr.String(jtv) } - case "TemplateId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.TemplateId = ptr.String(jtv) - } - - case "VersionArn": + case "ScheduleId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.VersionArn = ptr.String(jtv) + sv.ScheduleId = ptr.String(jtv) } default: @@ -4086,14 +4054,14 @@ func awsRestjson1_deserializeOpDocumentCreateTemplateOutput(v **CreateTemplateOu return nil } -type awsRestjson1_deserializeOpCreateTemplateAlias struct { +type awsRestjson1_deserializeOpCreateRoleMembership struct { } -func (*awsRestjson1_deserializeOpCreateTemplateAlias) ID() string { +func (*awsRestjson1_deserializeOpCreateRoleMembership) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateTemplateAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateRoleMembership) 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) @@ -4111,12 +4079,12 @@ func (m *awsRestjson1_deserializeOpCreateTemplateAlias) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateTemplateAlias(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateRoleMembership(response, &metadata) } - output := &CreateTemplateAliasOutput{} + output := &CreateRoleMembershipOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateTemplateAliasOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateRoleMembershipOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -4139,7 +4107,7 @@ func (m *awsRestjson1_deserializeOpCreateTemplateAlias) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateTemplateAliasOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateRoleMembershipOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4153,7 +4121,7 @@ func (m *awsRestjson1_deserializeOpCreateTemplateAlias) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateTemplateAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateRoleMembership(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)} @@ -4194,27 +4162,27 @@ func awsRestjson1_deserializeOpErrorCreateTemplateAlias(response *smithyhttp.Res } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4225,7 +4193,7 @@ func awsRestjson1_deserializeOpErrorCreateTemplateAlias(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpHttpBindingsCreateTemplateAliasOutput(v *CreateTemplateAliasOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateRoleMembershipOutput(v *CreateRoleMembershipOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -4234,7 +4202,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateTemplateAliasOutput(v *CreateTe return nil } -func awsRestjson1_deserializeOpDocumentCreateTemplateAliasOutput(v **CreateTemplateAliasOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateRoleMembershipOutput(v **CreateRoleMembershipOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4247,9 +4215,9 @@ func awsRestjson1_deserializeOpDocumentCreateTemplateAliasOutput(v **CreateTempl return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateTemplateAliasOutput + var sv *CreateRoleMembershipOutput if *v == nil { - sv = &CreateTemplateAliasOutput{} + sv = &CreateRoleMembershipOutput{} } else { sv = *v } @@ -4265,11 +4233,6 @@ func awsRestjson1_deserializeOpDocumentCreateTemplateAliasOutput(v **CreateTempl sv.RequestId = ptr.String(jtv) } - case "TemplateAlias": - if err := awsRestjson1_deserializeDocumentTemplateAlias(&sv.TemplateAlias, value); err != nil { - return err - } - default: _, _ = key, value @@ -4279,14 +4242,14 @@ func awsRestjson1_deserializeOpDocumentCreateTemplateAliasOutput(v **CreateTempl return nil } -type awsRestjson1_deserializeOpCreateTheme struct { +type awsRestjson1_deserializeOpCreateTemplate struct { } -func (*awsRestjson1_deserializeOpCreateTheme) ID() string { +func (*awsRestjson1_deserializeOpCreateTemplate) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateTheme) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateTemplate) 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) @@ -4304,12 +4267,12 @@ func (m *awsRestjson1_deserializeOpCreateTheme) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateTheme(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateTemplate(response, &metadata) } - output := &CreateThemeOutput{} + output := &CreateTemplateOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateThemeOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateTemplateOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -4332,7 +4295,7 @@ func (m *awsRestjson1_deserializeOpCreateTheme) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateThemeOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateTemplateOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4346,7 +4309,7 @@ func (m *awsRestjson1_deserializeOpCreateTheme) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateTheme(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateTemplate(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)} @@ -4390,6 +4353,9 @@ func awsRestjson1_deserializeOpErrorCreateTheme(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -4421,7 +4387,7 @@ func awsRestjson1_deserializeOpErrorCreateTheme(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpHttpBindingsCreateThemeOutput(v *CreateThemeOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateTemplateOutput(v *CreateTemplateOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -4430,7 +4396,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateThemeOutput(v *CreateThemeOutpu return nil } -func awsRestjson1_deserializeOpDocumentCreateThemeOutput(v **CreateThemeOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateTemplateOutput(v **CreateTemplateOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4443,9 +4409,9 @@ func awsRestjson1_deserializeOpDocumentCreateThemeOutput(v **CreateThemeOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateThemeOutput + var sv *CreateTemplateOutput if *v == nil { - sv = &CreateThemeOutput{} + sv = &CreateTemplateOutput{} } else { sv = *v } @@ -4479,13 +4445,13 @@ func awsRestjson1_deserializeOpDocumentCreateThemeOutput(v **CreateThemeOutput, sv.RequestId = ptr.String(jtv) } - case "ThemeId": + case "TemplateId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.ThemeId = ptr.String(jtv) + sv.TemplateId = ptr.String(jtv) } case "VersionArn": @@ -4506,14 +4472,14 @@ func awsRestjson1_deserializeOpDocumentCreateThemeOutput(v **CreateThemeOutput, return nil } -type awsRestjson1_deserializeOpCreateThemeAlias struct { +type awsRestjson1_deserializeOpCreateTemplateAlias struct { } -func (*awsRestjson1_deserializeOpCreateThemeAlias) ID() string { +func (*awsRestjson1_deserializeOpCreateTemplateAlias) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateThemeAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateTemplateAlias) 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) @@ -4531,12 +4497,12 @@ func (m *awsRestjson1_deserializeOpCreateThemeAlias) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateThemeAlias(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateTemplateAlias(response, &metadata) } - output := &CreateThemeAliasOutput{} + output := &CreateTemplateAliasOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateThemeAliasOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateTemplateAliasOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -4559,7 +4525,7 @@ func (m *awsRestjson1_deserializeOpCreateThemeAlias) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateThemeAliasOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateTemplateAliasOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4573,7 +4539,7 @@ func (m *awsRestjson1_deserializeOpCreateThemeAlias) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateThemeAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateTemplateAlias(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)} @@ -4620,9 +4586,6 @@ func awsRestjson1_deserializeOpErrorCreateThemeAlias(response *smithyhttp.Respon case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) @@ -4648,7 +4611,7 @@ func awsRestjson1_deserializeOpErrorCreateThemeAlias(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpHttpBindingsCreateThemeAliasOutput(v *CreateThemeAliasOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateTemplateAliasOutput(v *CreateTemplateAliasOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -4657,7 +4620,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateThemeAliasOutput(v *CreateTheme return nil } -func awsRestjson1_deserializeOpDocumentCreateThemeAliasOutput(v **CreateThemeAliasOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateTemplateAliasOutput(v **CreateTemplateAliasOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4670,9 +4633,9 @@ func awsRestjson1_deserializeOpDocumentCreateThemeAliasOutput(v **CreateThemeAli return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateThemeAliasOutput + var sv *CreateTemplateAliasOutput if *v == nil { - sv = &CreateThemeAliasOutput{} + sv = &CreateTemplateAliasOutput{} } else { sv = *v } @@ -4688,8 +4651,8 @@ func awsRestjson1_deserializeOpDocumentCreateThemeAliasOutput(v **CreateThemeAli sv.RequestId = ptr.String(jtv) } - case "ThemeAlias": - if err := awsRestjson1_deserializeDocumentThemeAlias(&sv.ThemeAlias, value); err != nil { + case "TemplateAlias": + if err := awsRestjson1_deserializeDocumentTemplateAlias(&sv.TemplateAlias, value); err != nil { return err } @@ -4702,14 +4665,14 @@ func awsRestjson1_deserializeOpDocumentCreateThemeAliasOutput(v **CreateThemeAli return nil } -type awsRestjson1_deserializeOpCreateTopic struct { +type awsRestjson1_deserializeOpCreateTheme struct { } -func (*awsRestjson1_deserializeOpCreateTopic) ID() string { +func (*awsRestjson1_deserializeOpCreateTheme) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateTopic) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateTheme) 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) @@ -4727,12 +4690,12 @@ func (m *awsRestjson1_deserializeOpCreateTopic) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateTopic(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateTheme(response, &metadata) } - output := &CreateTopicOutput{} + output := &CreateThemeOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateTopicOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateThemeOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -4755,7 +4718,7 @@ func (m *awsRestjson1_deserializeOpCreateTopic) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateTopicOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateThemeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4769,7 +4732,7 @@ func (m *awsRestjson1_deserializeOpCreateTopic) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateTopic(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateTheme(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)} @@ -4813,9 +4776,6 @@ func awsRestjson1_deserializeOpErrorCreateTopic(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -4834,6 +4794,9 @@ func awsRestjson1_deserializeOpErrorCreateTopic(response *smithyhttp.Response, m case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -4844,7 +4807,7 @@ func awsRestjson1_deserializeOpErrorCreateTopic(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpHttpBindingsCreateTopicOutput(v *CreateTopicOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateThemeOutput(v *CreateThemeOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -4853,7 +4816,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateTopicOutput(v *CreateTopicOutpu return nil } -func awsRestjson1_deserializeOpDocumentCreateTopicOutput(v **CreateTopicOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateThemeOutput(v **CreateThemeOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4866,9 +4829,9 @@ func awsRestjson1_deserializeOpDocumentCreateTopicOutput(v **CreateTopicOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateTopicOutput + var sv *CreateThemeOutput if *v == nil { - sv = &CreateTopicOutput{} + sv = &CreateThemeOutput{} } else { sv = *v } @@ -4884,13 +4847,13 @@ func awsRestjson1_deserializeOpDocumentCreateTopicOutput(v **CreateTopicOutput, sv.Arn = ptr.String(jtv) } - case "RefreshArn": + case "CreationStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) } - sv.RefreshArn = ptr.String(jtv) + sv.CreationStatus = types.ResourceStatus(jtv) } case "RequestId": @@ -4902,13 +4865,22 @@ func awsRestjson1_deserializeOpDocumentCreateTopicOutput(v **CreateTopicOutput, sv.RequestId = ptr.String(jtv) } - case "TopicId": + case "ThemeId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.TopicId = ptr.String(jtv) + sv.ThemeId = ptr.String(jtv) + } + + case "VersionArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.VersionArn = ptr.String(jtv) } default: @@ -4920,14 +4892,14 @@ func awsRestjson1_deserializeOpDocumentCreateTopicOutput(v **CreateTopicOutput, return nil } -type awsRestjson1_deserializeOpCreateTopicRefreshSchedule struct { +type awsRestjson1_deserializeOpCreateThemeAlias struct { } -func (*awsRestjson1_deserializeOpCreateTopicRefreshSchedule) ID() string { +func (*awsRestjson1_deserializeOpCreateThemeAlias) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateTopicRefreshSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateThemeAlias) 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) @@ -4945,12 +4917,12 @@ func (m *awsRestjson1_deserializeOpCreateTopicRefreshSchedule) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateTopicRefreshSchedule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateThemeAlias(response, &metadata) } - output := &CreateTopicRefreshScheduleOutput{} + output := &CreateThemeAliasOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateTopicRefreshScheduleOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateThemeAliasOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -4973,7 +4945,7 @@ func (m *awsRestjson1_deserializeOpCreateTopicRefreshSchedule) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateTopicRefreshScheduleOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateThemeAliasOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -4987,7 +4959,7 @@ func (m *awsRestjson1_deserializeOpCreateTopicRefreshSchedule) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateTopicRefreshSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateThemeAlias(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)} @@ -5028,9 +5000,6 @@ func awsRestjson1_deserializeOpErrorCreateTopicRefreshSchedule(response *smithyh } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) @@ -5052,6 +5021,9 @@ func awsRestjson1_deserializeOpErrorCreateTopicRefreshSchedule(response *smithyh case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5062,7 +5034,7 @@ func awsRestjson1_deserializeOpErrorCreateTopicRefreshSchedule(response *smithyh } } -func awsRestjson1_deserializeOpHttpBindingsCreateTopicRefreshScheduleOutput(v *CreateTopicRefreshScheduleOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateThemeAliasOutput(v *CreateThemeAliasOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -5071,7 +5043,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateTopicRefreshScheduleOutput(v *C return nil } -func awsRestjson1_deserializeOpDocumentCreateTopicRefreshScheduleOutput(v **CreateTopicRefreshScheduleOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateThemeAliasOutput(v **CreateThemeAliasOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5084,24 +5056,15 @@ func awsRestjson1_deserializeOpDocumentCreateTopicRefreshScheduleOutput(v **Crea return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateTopicRefreshScheduleOutput + var sv *CreateThemeAliasOutput if *v == nil { - sv = &CreateTopicRefreshScheduleOutput{} + sv = &CreateThemeAliasOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DatasetArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.DatasetArn = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -5111,22 +5074,9 @@ func awsRestjson1_deserializeOpDocumentCreateTopicRefreshScheduleOutput(v **Crea sv.RequestId = ptr.String(jtv) } - case "TopicArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.TopicArn = ptr.String(jtv) - } - - case "TopicId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) - } - sv.TopicId = ptr.String(jtv) + case "ThemeAlias": + if err := awsRestjson1_deserializeDocumentThemeAlias(&sv.ThemeAlias, value); err != nil { + return err } default: @@ -5138,14 +5088,14 @@ func awsRestjson1_deserializeOpDocumentCreateTopicRefreshScheduleOutput(v **Crea return nil } -type awsRestjson1_deserializeOpCreateVPCConnection struct { +type awsRestjson1_deserializeOpCreateTopic struct { } -func (*awsRestjson1_deserializeOpCreateVPCConnection) ID() string { +func (*awsRestjson1_deserializeOpCreateTopic) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpCreateVPCConnection) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateTopic) 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) @@ -5163,12 +5113,12 @@ func (m *awsRestjson1_deserializeOpCreateVPCConnection) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorCreateVPCConnection(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateTopic(response, &metadata) } - output := &CreateVPCConnectionOutput{} + output := &CreateTopicOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsCreateVPCConnectionOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateTopicOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -5191,7 +5141,7 @@ func (m *awsRestjson1_deserializeOpCreateVPCConnection) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentCreateVPCConnectionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateTopicOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5205,7 +5155,7 @@ func (m *awsRestjson1_deserializeOpCreateVPCConnection) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorCreateVPCConnection(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateTopic(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)} @@ -5264,12 +5214,12 @@ func awsRestjson1_deserializeOpErrorCreateVPCConnection(response *smithyhttp.Res case strings.EqualFold("ResourceExistsException", errorCode): return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5280,7 +5230,7 @@ func awsRestjson1_deserializeOpErrorCreateVPCConnection(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpHttpBindingsCreateVPCConnectionOutput(v *CreateVPCConnectionOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateTopicOutput(v *CreateTopicOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -5289,7 +5239,7 @@ func awsRestjson1_deserializeOpHttpBindingsCreateVPCConnectionOutput(v *CreateVP return nil } -func awsRestjson1_deserializeOpDocumentCreateVPCConnectionOutput(v **CreateVPCConnectionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateTopicOutput(v **CreateTopicOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5302,9 +5252,9 @@ func awsRestjson1_deserializeOpDocumentCreateVPCConnectionOutput(v **CreateVPCCo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *CreateVPCConnectionOutput + var sv *CreateTopicOutput if *v == nil { - sv = &CreateVPCConnectionOutput{} + sv = &CreateTopicOutput{} } else { sv = *v } @@ -5320,22 +5270,13 @@ func awsRestjson1_deserializeOpDocumentCreateVPCConnectionOutput(v **CreateVPCCo sv.Arn = ptr.String(jtv) } - case "AvailabilityStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected VPCConnectionAvailabilityStatus to be of type string, got %T instead", value) - } - sv.AvailabilityStatus = types.VPCConnectionAvailabilityStatus(jtv) - } - - case "CreationStatus": + case "RefreshArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected VPCConnectionResourceStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.CreationStatus = types.VPCConnectionResourceStatus(jtv) + sv.RefreshArn = ptr.String(jtv) } case "RequestId": @@ -5347,13 +5288,13 @@ func awsRestjson1_deserializeOpDocumentCreateVPCConnectionOutput(v **CreateVPCCo sv.RequestId = ptr.String(jtv) } - case "VPCConnectionId": + case "TopicId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected VPCConnectionResourceIdRestricted to be of type string, got %T instead", value) + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) } - sv.VPCConnectionId = ptr.String(jtv) + sv.TopicId = ptr.String(jtv) } default: @@ -5365,14 +5306,14 @@ func awsRestjson1_deserializeOpDocumentCreateVPCConnectionOutput(v **CreateVPCCo return nil } -type awsRestjson1_deserializeOpDeleteAccountCustomization struct { +type awsRestjson1_deserializeOpCreateTopicRefreshSchedule struct { } -func (*awsRestjson1_deserializeOpDeleteAccountCustomization) ID() string { +func (*awsRestjson1_deserializeOpCreateTopicRefreshSchedule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteAccountCustomization) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateTopicRefreshSchedule) 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) @@ -5390,12 +5331,12 @@ func (m *awsRestjson1_deserializeOpDeleteAccountCustomization) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteAccountCustomization(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateTopicRefreshSchedule(response, &metadata) } - output := &DeleteAccountCustomizationOutput{} + output := &CreateTopicRefreshScheduleOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteAccountCustomizationOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateTopicRefreshScheduleOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -5418,7 +5359,7 @@ func (m *awsRestjson1_deserializeOpDeleteAccountCustomization) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteAccountCustomizationOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateTopicRefreshScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5432,7 +5373,7 @@ func (m *awsRestjson1_deserializeOpDeleteAccountCustomization) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteAccountCustomization(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateTopicRefreshSchedule(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)} @@ -5488,15 +5429,12 @@ func awsRestjson1_deserializeOpErrorDeleteAccountCustomization(response *smithyh case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -5510,7 +5448,7 @@ func awsRestjson1_deserializeOpErrorDeleteAccountCustomization(response *smithyh } } -func awsRestjson1_deserializeOpHttpBindingsDeleteAccountCustomizationOutput(v *DeleteAccountCustomizationOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateTopicRefreshScheduleOutput(v *CreateTopicRefreshScheduleOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -5519,7 +5457,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteAccountCustomizationOutput(v *D return nil } -func awsRestjson1_deserializeOpDocumentDeleteAccountCustomizationOutput(v **DeleteAccountCustomizationOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateTopicRefreshScheduleOutput(v **CreateTopicRefreshScheduleOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5532,15 +5470,24 @@ func awsRestjson1_deserializeOpDocumentDeleteAccountCustomizationOutput(v **Dele return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteAccountCustomizationOutput + var sv *CreateTopicRefreshScheduleOutput if *v == nil { - sv = &DeleteAccountCustomizationOutput{} + sv = &CreateTopicRefreshScheduleOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "DatasetArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.DatasetArn = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -5550,6 +5497,24 @@ func awsRestjson1_deserializeOpDocumentDeleteAccountCustomizationOutput(v **Dele sv.RequestId = ptr.String(jtv) } + case "TopicArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.TopicArn = ptr.String(jtv) + } + + case "TopicId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + } + sv.TopicId = ptr.String(jtv) + } + default: _, _ = key, value @@ -5559,14 +5524,14 @@ func awsRestjson1_deserializeOpDocumentDeleteAccountCustomizationOutput(v **Dele return nil } -type awsRestjson1_deserializeOpDeleteAccountSubscription struct { +type awsRestjson1_deserializeOpCreateVPCConnection struct { } -func (*awsRestjson1_deserializeOpDeleteAccountSubscription) ID() string { +func (*awsRestjson1_deserializeOpCreateVPCConnection) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteAccountSubscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateVPCConnection) 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) @@ -5584,12 +5549,12 @@ func (m *awsRestjson1_deserializeOpDeleteAccountSubscription) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteAccountSubscription(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateVPCConnection(response, &metadata) } - output := &DeleteAccountSubscriptionOutput{} + output := &CreateVPCConnectionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteAccountSubscriptionOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsCreateVPCConnectionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -5612,7 +5577,7 @@ func (m *awsRestjson1_deserializeOpDeleteAccountSubscription) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteAccountSubscriptionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateVPCConnectionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5626,7 +5591,7 @@ func (m *awsRestjson1_deserializeOpDeleteAccountSubscription) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteAccountSubscription(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateVPCConnection(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)} @@ -5670,24 +5635,27 @@ func awsRestjson1_deserializeOpErrorDeleteAccountSubscription(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5698,7 +5666,7 @@ func awsRestjson1_deserializeOpErrorDeleteAccountSubscription(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsDeleteAccountSubscriptionOutput(v *DeleteAccountSubscriptionOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsCreateVPCConnectionOutput(v *CreateVPCConnectionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -5707,7 +5675,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteAccountSubscriptionOutput(v *De return nil } -func awsRestjson1_deserializeOpDocumentDeleteAccountSubscriptionOutput(v **DeleteAccountSubscriptionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateVPCConnectionOutput(v **CreateVPCConnectionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5720,15 +5688,42 @@ func awsRestjson1_deserializeOpDocumentDeleteAccountSubscriptionOutput(v **Delet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteAccountSubscriptionOutput + var sv *CreateVPCConnectionOutput if *v == nil { - sv = &DeleteAccountSubscriptionOutput{} + sv = &CreateVPCConnectionOutput{} } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "AvailabilityStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VPCConnectionAvailabilityStatus to be of type string, got %T instead", value) + } + sv.AvailabilityStatus = types.VPCConnectionAvailabilityStatus(jtv) + } + + case "CreationStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VPCConnectionResourceStatus to be of type string, got %T instead", value) + } + sv.CreationStatus = types.VPCConnectionResourceStatus(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -5738,6 +5733,15 @@ func awsRestjson1_deserializeOpDocumentDeleteAccountSubscriptionOutput(v **Delet sv.RequestId = ptr.String(jtv) } + case "VPCConnectionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VPCConnectionResourceIdRestricted to be of type string, got %T instead", value) + } + sv.VPCConnectionId = ptr.String(jtv) + } + default: _, _ = key, value @@ -5747,14 +5751,14 @@ func awsRestjson1_deserializeOpDocumentDeleteAccountSubscriptionOutput(v **Delet return nil } -type awsRestjson1_deserializeOpDeleteAnalysis struct { +type awsRestjson1_deserializeOpDeleteAccountCustomization struct { } -func (*awsRestjson1_deserializeOpDeleteAnalysis) ID() string { +func (*awsRestjson1_deserializeOpDeleteAccountCustomization) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteAnalysis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteAccountCustomization) 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) @@ -5772,12 +5776,12 @@ func (m *awsRestjson1_deserializeOpDeleteAnalysis) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteAnalysis(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteAccountCustomization(response, &metadata) } - output := &DeleteAnalysisOutput{} + output := &DeleteAccountCustomizationOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteAnalysisOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteAccountCustomizationOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -5800,7 +5804,7 @@ func (m *awsRestjson1_deserializeOpDeleteAnalysis) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteAnalysisOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteAccountCustomizationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -5814,7 +5818,7 @@ func (m *awsRestjson1_deserializeOpDeleteAnalysis) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteAnalysis(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteAccountCustomization(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)} @@ -5855,6 +5859,9 @@ func awsRestjson1_deserializeOpErrorDeleteAnalysis(response *smithyhttp.Response } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) @@ -5864,15 +5871,21 @@ func awsRestjson1_deserializeOpErrorDeleteAnalysis(response *smithyhttp.Response case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -5883,7 +5896,7 @@ func awsRestjson1_deserializeOpErrorDeleteAnalysis(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsDeleteAnalysisOutput(v *DeleteAnalysisOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteAccountCustomizationOutput(v *DeleteAccountCustomizationOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -5892,7 +5905,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteAnalysisOutput(v *DeleteAnalysi return nil } -func awsRestjson1_deserializeOpDocumentDeleteAnalysisOutput(v **DeleteAnalysisOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteAccountCustomizationOutput(v **DeleteAccountCustomizationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -5905,49 +5918,15 @@ func awsRestjson1_deserializeOpDocumentDeleteAnalysisOutput(v **DeleteAnalysisOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteAnalysisOutput + var sv *DeleteAccountCustomizationOutput if *v == nil { - sv = &DeleteAnalysisOutput{} + sv = &DeleteAccountCustomizationOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AnalysisId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.AnalysisId = ptr.String(jtv) - } - - case "Arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "DeletionTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.DeletionTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) - - } - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -5966,14 +5945,14 @@ func awsRestjson1_deserializeOpDocumentDeleteAnalysisOutput(v **DeleteAnalysisOu return nil } -type awsRestjson1_deserializeOpDeleteDashboard struct { +type awsRestjson1_deserializeOpDeleteAccountSubscription struct { } -func (*awsRestjson1_deserializeOpDeleteDashboard) ID() string { +func (*awsRestjson1_deserializeOpDeleteAccountSubscription) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteDashboard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteAccountSubscription) 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) @@ -5991,12 +5970,12 @@ func (m *awsRestjson1_deserializeOpDeleteDashboard) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteDashboard(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteAccountSubscription(response, &metadata) } - output := &DeleteDashboardOutput{} + output := &DeleteAccountSubscriptionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteDashboardOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteAccountSubscriptionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -6019,7 +5998,7 @@ func (m *awsRestjson1_deserializeOpDeleteDashboard) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteDashboardOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteAccountSubscriptionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6033,7 +6012,7 @@ func (m *awsRestjson1_deserializeOpDeleteDashboard) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteDashboard(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteAccountSubscription(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)} @@ -6074,8 +6053,8 @@ func awsRestjson1_deserializeOpErrorDeleteDashboard(response *smithyhttp.Respons } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -6083,15 +6062,18 @@ func awsRestjson1_deserializeOpErrorDeleteDashboard(response *smithyhttp.Respons case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6102,7 +6084,7 @@ func awsRestjson1_deserializeOpErrorDeleteDashboard(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpHttpBindingsDeleteDashboardOutput(v *DeleteDashboardOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteAccountSubscriptionOutput(v *DeleteAccountSubscriptionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -6111,7 +6093,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteDashboardOutput(v *DeleteDashbo return nil } -func awsRestjson1_deserializeOpDocumentDeleteDashboardOutput(v **DeleteDashboardOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteAccountSubscriptionOutput(v **DeleteAccountSubscriptionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6124,33 +6106,15 @@ func awsRestjson1_deserializeOpDocumentDeleteDashboardOutput(v **DeleteDashboard return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteDashboardOutput + var sv *DeleteAccountSubscriptionOutput if *v == nil { - sv = &DeleteDashboardOutput{} + sv = &DeleteAccountSubscriptionOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "DashboardId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.DashboardId = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -6169,14 +6133,14 @@ func awsRestjson1_deserializeOpDocumentDeleteDashboardOutput(v **DeleteDashboard return nil } -type awsRestjson1_deserializeOpDeleteDataSet struct { +type awsRestjson1_deserializeOpDeleteAnalysis struct { } -func (*awsRestjson1_deserializeOpDeleteDataSet) ID() string { +func (*awsRestjson1_deserializeOpDeleteAnalysis) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteDataSet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteAnalysis) 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) @@ -6194,12 +6158,12 @@ func (m *awsRestjson1_deserializeOpDeleteDataSet) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataSet(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteAnalysis(response, &metadata) } - output := &DeleteDataSetOutput{} + output := &DeleteAnalysisOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteDataSetOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteAnalysisOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -6222,7 +6186,7 @@ func (m *awsRestjson1_deserializeOpDeleteDataSet) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteDataSetOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteAnalysisOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6236,7 +6200,7 @@ func (m *awsRestjson1_deserializeOpDeleteDataSet) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteDataSet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteAnalysis(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)} @@ -6277,8 +6241,8 @@ func awsRestjson1_deserializeOpErrorDeleteDataSet(response *smithyhttp.Response, } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -6292,6 +6256,9 @@ func awsRestjson1_deserializeOpErrorDeleteDataSet(response *smithyhttp.Response, case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6302,7 +6269,7 @@ func awsRestjson1_deserializeOpErrorDeleteDataSet(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsDeleteDataSetOutput(v *DeleteDataSetOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteAnalysisOutput(v *DeleteAnalysisOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -6311,7 +6278,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteDataSetOutput(v *DeleteDataSetO return nil } -func awsRestjson1_deserializeOpDocumentDeleteDataSetOutput(v **DeleteDataSetOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteAnalysisOutput(v **DeleteAnalysisOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6324,15 +6291,24 @@ func awsRestjson1_deserializeOpDocumentDeleteDataSetOutput(v **DeleteDataSetOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteDataSetOutput + var sv *DeleteAnalysisOutput if *v == nil { - sv = &DeleteDataSetOutput{} + sv = &DeleteAnalysisOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "AnalysisId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.AnalysisId = ptr.String(jtv) + } + case "Arn": if value != nil { jtv, ok := value.(string) @@ -6342,13 +6318,20 @@ func awsRestjson1_deserializeOpDocumentDeleteDataSetOutput(v **DeleteDataSetOutp sv.Arn = ptr.String(jtv) } - case "DataSetId": + case "DeletionTime": if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.DeletionTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + } - sv.DataSetId = ptr.String(jtv) } case "RequestId": @@ -6369,14 +6352,14 @@ func awsRestjson1_deserializeOpDocumentDeleteDataSetOutput(v **DeleteDataSetOutp return nil } -type awsRestjson1_deserializeOpDeleteDataSetRefreshProperties struct { +type awsRestjson1_deserializeOpDeleteBrand struct { } -func (*awsRestjson1_deserializeOpDeleteDataSetRefreshProperties) ID() string { +func (*awsRestjson1_deserializeOpDeleteBrand) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteDataSetRefreshProperties) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteBrand) 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) @@ -6394,16 +6377,11 @@ func (m *awsRestjson1_deserializeOpDeleteDataSetRefreshProperties) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataSetRefreshProperties(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteBrand(response, &metadata) } - output := &DeleteDataSetRefreshPropertiesOutput{} + output := &DeleteBrandOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteDataSetRefreshPropertiesOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -6422,7 +6400,7 @@ func (m *awsRestjson1_deserializeOpDeleteDataSetRefreshProperties) HandleDeseria return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteDataSetRefreshPropertiesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteBrandOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6436,7 +6414,7 @@ func (m *awsRestjson1_deserializeOpDeleteDataSetRefreshProperties) HandleDeseria return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteDataSetRefreshProperties(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteBrand(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)} @@ -6483,14 +6461,11 @@ func awsRestjson1_deserializeOpErrorDeleteDataSetRefreshProperties(response *smi case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -6508,16 +6483,7 @@ func awsRestjson1_deserializeOpErrorDeleteDataSetRefreshProperties(response *smi } } -func awsRestjson1_deserializeOpHttpBindingsDeleteDataSetRefreshPropertiesOutput(v *DeleteDataSetRefreshPropertiesOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentDeleteDataSetRefreshPropertiesOutput(v **DeleteDataSetRefreshPropertiesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteBrandOutput(v **DeleteBrandOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6530,9 +6496,9 @@ func awsRestjson1_deserializeOpDocumentDeleteDataSetRefreshPropertiesOutput(v ** return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteDataSetRefreshPropertiesOutput + var sv *DeleteBrandOutput if *v == nil { - sv = &DeleteDataSetRefreshPropertiesOutput{} + sv = &DeleteBrandOutput{} } else { sv = *v } @@ -6557,14 +6523,14 @@ func awsRestjson1_deserializeOpDocumentDeleteDataSetRefreshPropertiesOutput(v ** return nil } -type awsRestjson1_deserializeOpDeleteDataSource struct { +type awsRestjson1_deserializeOpDeleteBrandAssignment struct { } -func (*awsRestjson1_deserializeOpDeleteDataSource) ID() string { +func (*awsRestjson1_deserializeOpDeleteBrandAssignment) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteBrandAssignment) 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) @@ -6582,16 +6548,11 @@ func (m *awsRestjson1_deserializeOpDeleteDataSource) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataSource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteBrandAssignment(response, &metadata) } - output := &DeleteDataSourceOutput{} + output := &DeleteBrandAssignmentOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteDataSourceOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -6610,7 +6571,7 @@ func (m *awsRestjson1_deserializeOpDeleteDataSource) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteDataSourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteBrandAssignmentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6624,7 +6585,7 @@ func (m *awsRestjson1_deserializeOpDeleteDataSource) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteBrandAssignment(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)} @@ -6668,11 +6629,14 @@ func awsRestjson1_deserializeOpErrorDeleteDataSource(response *smithyhttp.Respon case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -6690,16 +6654,7 @@ func awsRestjson1_deserializeOpErrorDeleteDataSource(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpHttpBindingsDeleteDataSourceOutput(v *DeleteDataSourceOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentDeleteDataSourceOutput(v **DeleteDataSourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteBrandAssignmentOutput(v **DeleteBrandAssignmentOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6712,33 +6667,15 @@ func awsRestjson1_deserializeOpDocumentDeleteDataSourceOutput(v **DeleteDataSour return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteDataSourceOutput + var sv *DeleteBrandAssignmentOutput if *v == nil { - sv = &DeleteDataSourceOutput{} + sv = &DeleteBrandAssignmentOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "DataSourceId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) - } - sv.DataSourceId = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -6757,14 +6694,14 @@ func awsRestjson1_deserializeOpDocumentDeleteDataSourceOutput(v **DeleteDataSour return nil } -type awsRestjson1_deserializeOpDeleteFolder struct { +type awsRestjson1_deserializeOpDeleteCustomPermissions struct { } -func (*awsRestjson1_deserializeOpDeleteFolder) ID() string { +func (*awsRestjson1_deserializeOpDeleteCustomPermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteFolder) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteCustomPermissions) 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) @@ -6782,16 +6719,11 @@ func (m *awsRestjson1_deserializeOpDeleteFolder) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteFolder(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteCustomPermissions(response, &metadata) } - output := &DeleteFolderOutput{} + output := &DeleteCustomPermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteFolderOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -6810,7 +6742,7 @@ func (m *awsRestjson1_deserializeOpDeleteFolder) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteFolderOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteCustomPermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -6824,7 +6756,7 @@ func (m *awsRestjson1_deserializeOpDeleteFolder) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteFolder(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteCustomPermissions(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)} @@ -6880,15 +6812,18 @@ func awsRestjson1_deserializeOpErrorDeleteFolder(response *smithyhttp.Response, case strings.EqualFold("PreconditionNotMetException", errorCode): return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -6899,16 +6834,7 @@ func awsRestjson1_deserializeOpErrorDeleteFolder(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsDeleteFolderOutput(v *DeleteFolderOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentDeleteFolderOutput(v **DeleteFolderOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteCustomPermissionsOutput(v **DeleteCustomPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -6921,9 +6847,9 @@ func awsRestjson1_deserializeOpDocumentDeleteFolderOutput(v **DeleteFolderOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteFolderOutput + var sv *DeleteCustomPermissionsOutput if *v == nil { - sv = &DeleteFolderOutput{} + sv = &DeleteCustomPermissionsOutput{} } else { sv = *v } @@ -6939,22 +6865,26 @@ func awsRestjson1_deserializeOpDocumentDeleteFolderOutput(v **DeleteFolderOutput sv.Arn = ptr.String(jtv) } - case "FolderId": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.FolderId = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } - case "RequestId": + case "Status": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) } default: @@ -6966,14 +6896,14 @@ func awsRestjson1_deserializeOpDocumentDeleteFolderOutput(v **DeleteFolderOutput return nil } -type awsRestjson1_deserializeOpDeleteFolderMembership struct { +type awsRestjson1_deserializeOpDeleteDashboard struct { } -func (*awsRestjson1_deserializeOpDeleteFolderMembership) ID() string { +func (*awsRestjson1_deserializeOpDeleteDashboard) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteFolderMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteDashboard) 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) @@ -6991,11 +6921,16 @@ func (m *awsRestjson1_deserializeOpDeleteFolderMembership) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteFolderMembership(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteDashboard(response, &metadata) } - output := &DeleteFolderMembershipOutput{} + output := &DeleteDashboardOutput{} out.Result = output + err = awsRestjson1_deserializeOpHttpBindingsDeleteDashboardOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -7014,7 +6949,7 @@ func (m *awsRestjson1_deserializeOpDeleteFolderMembership) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteFolderMembershipOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteDashboardOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7028,7 +6963,7 @@ func (m *awsRestjson1_deserializeOpDeleteFolderMembership) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteFolderMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteDashboard(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)} @@ -7069,8 +7004,8 @@ func awsRestjson1_deserializeOpErrorDeleteFolderMembership(response *smithyhttp. } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -7097,7 +7032,16 @@ func awsRestjson1_deserializeOpErrorDeleteFolderMembership(response *smithyhttp. } } -func awsRestjson1_deserializeOpDocumentDeleteFolderMembershipOutput(v **DeleteFolderMembershipOutput, value interface{}) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteDashboardOutput(v *DeleteDashboardOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDeleteDashboardOutput(v **DeleteDashboardOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -7110,35 +7054,40 @@ func awsRestjson1_deserializeOpDocumentDeleteFolderMembershipOutput(v **DeleteFo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteFolderMembershipOutput + var sv *DeleteDashboardOutput if *v == nil { - sv = &DeleteFolderMembershipOutput{} + sv = &DeleteDashboardOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "RequestId": + 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) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "Status": + case "DashboardId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - i64, err := jtv.Int64() - if err != nil { - return err + sv.DashboardId = ptr.String(jtv) + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Status = int32(i64) + sv.RequestId = ptr.String(jtv) } default: @@ -7150,14 +7099,14 @@ func awsRestjson1_deserializeOpDocumentDeleteFolderMembershipOutput(v **DeleteFo return nil } -type awsRestjson1_deserializeOpDeleteGroup struct { +type awsRestjson1_deserializeOpDeleteDataSet struct { } -func (*awsRestjson1_deserializeOpDeleteGroup) ID() string { +func (*awsRestjson1_deserializeOpDeleteDataSet) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteDataSet) 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) @@ -7175,12 +7124,12 @@ func (m *awsRestjson1_deserializeOpDeleteGroup) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteGroup(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataSet(response, &metadata) } - output := &DeleteGroupOutput{} + output := &DeleteDataSetOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteGroupOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteDataSetOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -7203,7 +7152,7 @@ func (m *awsRestjson1_deserializeOpDeleteGroup) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteGroupOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteDataSetOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7217,7 +7166,7 @@ func (m *awsRestjson1_deserializeOpDeleteGroup) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteDataSet(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)} @@ -7267,15 +7216,9 @@ func awsRestjson1_deserializeOpErrorDeleteGroup(response *smithyhttp.Response, m case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -7289,7 +7232,7 @@ func awsRestjson1_deserializeOpErrorDeleteGroup(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpHttpBindingsDeleteGroupOutput(v *DeleteGroupOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteDataSetOutput(v *DeleteDataSetOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -7298,7 +7241,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteGroupOutput(v *DeleteGroupOutpu return nil } -func awsRestjson1_deserializeOpDocumentDeleteGroupOutput(v **DeleteGroupOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteDataSetOutput(v **DeleteDataSetOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -7311,15 +7254,33 @@ func awsRestjson1_deserializeOpDocumentDeleteGroupOutput(v **DeleteGroupOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteGroupOutput + var sv *DeleteDataSetOutput if *v == nil { - sv = &DeleteGroupOutput{} + sv = &DeleteDataSetOutput{} } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "DataSetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) + } + sv.DataSetId = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -7338,14 +7299,14 @@ func awsRestjson1_deserializeOpDocumentDeleteGroupOutput(v **DeleteGroupOutput, return nil } -type awsRestjson1_deserializeOpDeleteGroupMembership struct { +type awsRestjson1_deserializeOpDeleteDataSetRefreshProperties struct { } -func (*awsRestjson1_deserializeOpDeleteGroupMembership) ID() string { +func (*awsRestjson1_deserializeOpDeleteDataSetRefreshProperties) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteGroupMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteDataSetRefreshProperties) 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) @@ -7363,12 +7324,12 @@ func (m *awsRestjson1_deserializeOpDeleteGroupMembership) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteGroupMembership(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataSetRefreshProperties(response, &metadata) } - output := &DeleteGroupMembershipOutput{} + output := &DeleteDataSetRefreshPropertiesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteGroupMembershipOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteDataSetRefreshPropertiesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -7391,7 +7352,7 @@ func (m *awsRestjson1_deserializeOpDeleteGroupMembership) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteGroupMembershipOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteDataSetRefreshPropertiesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7405,7 +7366,7 @@ func (m *awsRestjson1_deserializeOpDeleteGroupMembership) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteGroupMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteDataSetRefreshProperties(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)} @@ -7449,21 +7410,21 @@ func awsRestjson1_deserializeOpErrorDeleteGroupMembership(response *smithyhttp.R case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -7477,7 +7438,7 @@ func awsRestjson1_deserializeOpErrorDeleteGroupMembership(response *smithyhttp.R } } -func awsRestjson1_deserializeOpHttpBindingsDeleteGroupMembershipOutput(v *DeleteGroupMembershipOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteDataSetRefreshPropertiesOutput(v *DeleteDataSetRefreshPropertiesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -7486,7 +7447,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteGroupMembershipOutput(v *Delete return nil } -func awsRestjson1_deserializeOpDocumentDeleteGroupMembershipOutput(v **DeleteGroupMembershipOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteDataSetRefreshPropertiesOutput(v **DeleteDataSetRefreshPropertiesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -7499,9 +7460,9 @@ func awsRestjson1_deserializeOpDocumentDeleteGroupMembershipOutput(v **DeleteGro return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteGroupMembershipOutput + var sv *DeleteDataSetRefreshPropertiesOutput if *v == nil { - sv = &DeleteGroupMembershipOutput{} + sv = &DeleteDataSetRefreshPropertiesOutput{} } else { sv = *v } @@ -7526,14 +7487,14 @@ func awsRestjson1_deserializeOpDocumentDeleteGroupMembershipOutput(v **DeleteGro return nil } -type awsRestjson1_deserializeOpDeleteIAMPolicyAssignment struct { +type awsRestjson1_deserializeOpDeleteDataSource struct { } -func (*awsRestjson1_deserializeOpDeleteIAMPolicyAssignment) ID() string { +func (*awsRestjson1_deserializeOpDeleteDataSource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteIAMPolicyAssignment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteDataSource) 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) @@ -7551,12 +7512,12 @@ func (m *awsRestjson1_deserializeOpDeleteIAMPolicyAssignment) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteIAMPolicyAssignment(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataSource(response, &metadata) } - output := &DeleteIAMPolicyAssignmentOutput{} + output := &DeleteDataSourceOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteIAMPolicyAssignmentOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteDataSourceOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -7579,7 +7540,7 @@ func (m *awsRestjson1_deserializeOpDeleteIAMPolicyAssignment) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteIAMPolicyAssignmentOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteDataSourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7593,7 +7554,7 @@ func (m *awsRestjson1_deserializeOpDeleteIAMPolicyAssignment) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteIAMPolicyAssignment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteDataSource(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)} @@ -7637,18 +7598,12 @@ func awsRestjson1_deserializeOpErrorDeleteIAMPolicyAssignment(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConcurrentUpdatingException", errorCode): - return awsRestjson1_deserializeErrorConcurrentUpdatingException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -7665,7 +7620,7 @@ func awsRestjson1_deserializeOpErrorDeleteIAMPolicyAssignment(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsDeleteIAMPolicyAssignmentOutput(v *DeleteIAMPolicyAssignmentOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteDataSourceOutput(v *DeleteDataSourceOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -7674,7 +7629,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteIAMPolicyAssignmentOutput(v *De return nil } -func awsRestjson1_deserializeOpDocumentDeleteIAMPolicyAssignmentOutput(v **DeleteIAMPolicyAssignmentOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteDataSourceOutput(v **DeleteDataSourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -7687,22 +7642,31 @@ func awsRestjson1_deserializeOpDocumentDeleteIAMPolicyAssignmentOutput(v **Delet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteIAMPolicyAssignmentOutput + var sv *DeleteDataSourceOutput if *v == nil { - sv = &DeleteIAMPolicyAssignmentOutput{} + sv = &DeleteDataSourceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AssignmentName": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected IAMPolicyAssignmentName to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.AssignmentName = ptr.String(jtv) + sv.Arn = ptr.String(jtv) + } + + case "DataSourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) + } + sv.DataSourceId = ptr.String(jtv) } case "RequestId": @@ -7723,14 +7687,14 @@ func awsRestjson1_deserializeOpDocumentDeleteIAMPolicyAssignmentOutput(v **Delet return nil } -type awsRestjson1_deserializeOpDeleteIdentityPropagationConfig struct { +type awsRestjson1_deserializeOpDeleteFolder struct { } -func (*awsRestjson1_deserializeOpDeleteIdentityPropagationConfig) ID() string { +func (*awsRestjson1_deserializeOpDeleteFolder) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteIdentityPropagationConfig) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteFolder) 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) @@ -7748,12 +7712,12 @@ func (m *awsRestjson1_deserializeOpDeleteIdentityPropagationConfig) HandleDeseri } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteIdentityPropagationConfig(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteFolder(response, &metadata) } - output := &DeleteIdentityPropagationConfigOutput{} + output := &DeleteFolderOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteIdentityPropagationConfigOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteFolderOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -7776,7 +7740,7 @@ func (m *awsRestjson1_deserializeOpDeleteIdentityPropagationConfig) HandleDeseri return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteIdentityPropagationConfigOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteFolderOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7790,7 +7754,7 @@ func (m *awsRestjson1_deserializeOpDeleteIdentityPropagationConfig) HandleDeseri return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteIdentityPropagationConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteFolder(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)} @@ -7834,18 +7798,27 @@ func awsRestjson1_deserializeOpErrorDeleteIdentityPropagationConfig(response *sm case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -7856,7 +7829,7 @@ func awsRestjson1_deserializeOpErrorDeleteIdentityPropagationConfig(response *sm } } -func awsRestjson1_deserializeOpHttpBindingsDeleteIdentityPropagationConfigOutput(v *DeleteIdentityPropagationConfigOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteFolderOutput(v *DeleteFolderOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -7865,7 +7838,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteIdentityPropagationConfigOutput return nil } -func awsRestjson1_deserializeOpDocumentDeleteIdentityPropagationConfigOutput(v **DeleteIdentityPropagationConfigOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteFolderOutput(v **DeleteFolderOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -7878,15 +7851,33 @@ func awsRestjson1_deserializeOpDocumentDeleteIdentityPropagationConfigOutput(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteIdentityPropagationConfigOutput + var sv *DeleteFolderOutput if *v == nil { - sv = &DeleteIdentityPropagationConfigOutput{} + sv = &DeleteFolderOutput{} } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "FolderId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RestrictiveResourceId to be of type string, got %T instead", value) + } + sv.FolderId = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -7905,14 +7896,14 @@ func awsRestjson1_deserializeOpDocumentDeleteIdentityPropagationConfigOutput(v * return nil } -type awsRestjson1_deserializeOpDeleteNamespace struct { +type awsRestjson1_deserializeOpDeleteFolderMembership struct { } -func (*awsRestjson1_deserializeOpDeleteNamespace) ID() string { +func (*awsRestjson1_deserializeOpDeleteFolderMembership) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteNamespace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteFolderMembership) 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) @@ -7930,16 +7921,11 @@ func (m *awsRestjson1_deserializeOpDeleteNamespace) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteNamespace(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteFolderMembership(response, &metadata) } - output := &DeleteNamespaceOutput{} + output := &DeleteFolderMembershipOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteNamespaceOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -7958,7 +7944,7 @@ func (m *awsRestjson1_deserializeOpDeleteNamespace) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteNamespaceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteFolderMembershipOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -7972,7 +7958,7 @@ func (m *awsRestjson1_deserializeOpDeleteNamespace) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteNamespace(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteFolderMembership(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)} @@ -8022,18 +8008,15 @@ func awsRestjson1_deserializeOpErrorDeleteNamespace(response *smithyhttp.Respons case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8044,16 +8027,7 @@ func awsRestjson1_deserializeOpErrorDeleteNamespace(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpHttpBindingsDeleteNamespaceOutput(v *DeleteNamespaceOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentDeleteNamespaceOutput(v **DeleteNamespaceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteFolderMembershipOutput(v **DeleteFolderMembershipOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -8066,9 +8040,9 @@ func awsRestjson1_deserializeOpDocumentDeleteNamespaceOutput(v **DeleteNamespace return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteNamespaceOutput + var sv *DeleteFolderMembershipOutput if *v == nil { - sv = &DeleteNamespaceOutput{} + sv = &DeleteFolderMembershipOutput{} } else { sv = *v } @@ -8084,6 +8058,19 @@ func awsRestjson1_deserializeOpDocumentDeleteNamespaceOutput(v **DeleteNamespace sv.RequestId = ptr.String(jtv) } + case "Status": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) + } + default: _, _ = key, value @@ -8093,14 +8080,14 @@ func awsRestjson1_deserializeOpDocumentDeleteNamespaceOutput(v **DeleteNamespace return nil } -type awsRestjson1_deserializeOpDeleteRefreshSchedule struct { +type awsRestjson1_deserializeOpDeleteGroup struct { } -func (*awsRestjson1_deserializeOpDeleteRefreshSchedule) ID() string { +func (*awsRestjson1_deserializeOpDeleteGroup) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteRefreshSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteGroup) 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) @@ -8118,12 +8105,12 @@ func (m *awsRestjson1_deserializeOpDeleteRefreshSchedule) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteRefreshSchedule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteGroup(response, &metadata) } - output := &DeleteRefreshScheduleOutput{} + output := &DeleteGroupOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteRefreshScheduleOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteGroupOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -8146,7 +8133,7 @@ func (m *awsRestjson1_deserializeOpDeleteRefreshSchedule) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteRefreshScheduleOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8160,7 +8147,7 @@ func (m *awsRestjson1_deserializeOpDeleteRefreshSchedule) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteRefreshSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteGroup(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)} @@ -8210,12 +8197,15 @@ func awsRestjson1_deserializeOpErrorDeleteRefreshSchedule(response *smithyhttp.R case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -8229,7 +8219,7 @@ func awsRestjson1_deserializeOpErrorDeleteRefreshSchedule(response *smithyhttp.R } } -func awsRestjson1_deserializeOpHttpBindingsDeleteRefreshScheduleOutput(v *DeleteRefreshScheduleOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteGroupOutput(v *DeleteGroupOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -8238,7 +8228,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteRefreshScheduleOutput(v *Delete return nil } -func awsRestjson1_deserializeOpDocumentDeleteRefreshScheduleOutput(v **DeleteRefreshScheduleOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteGroupOutput(v **DeleteGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -8251,24 +8241,15 @@ func awsRestjson1_deserializeOpDocumentDeleteRefreshScheduleOutput(v **DeleteRef return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteRefreshScheduleOutput + var sv *DeleteGroupOutput if *v == nil { - sv = &DeleteRefreshScheduleOutput{} + sv = &DeleteGroupOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -8278,15 +8259,6 @@ func awsRestjson1_deserializeOpDocumentDeleteRefreshScheduleOutput(v **DeleteRef sv.RequestId = ptr.String(jtv) } - case "ScheduleId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.ScheduleId = ptr.String(jtv) - } - default: _, _ = key, value @@ -8296,14 +8268,14 @@ func awsRestjson1_deserializeOpDocumentDeleteRefreshScheduleOutput(v **DeleteRef return nil } -type awsRestjson1_deserializeOpDeleteRoleCustomPermission struct { +type awsRestjson1_deserializeOpDeleteGroupMembership struct { } -func (*awsRestjson1_deserializeOpDeleteRoleCustomPermission) ID() string { +func (*awsRestjson1_deserializeOpDeleteGroupMembership) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteRoleCustomPermission) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteGroupMembership) 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) @@ -8321,11 +8293,16 @@ func (m *awsRestjson1_deserializeOpDeleteRoleCustomPermission) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoleCustomPermission(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteGroupMembership(response, &metadata) } - output := &DeleteRoleCustomPermissionOutput{} + output := &DeleteGroupMembershipOutput{} out.Result = output + err = awsRestjson1_deserializeOpHttpBindingsDeleteGroupMembershipOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -8344,7 +8321,7 @@ func (m *awsRestjson1_deserializeOpDeleteRoleCustomPermission) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteRoleCustomPermissionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteGroupMembershipOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8358,7 +8335,7 @@ func (m *awsRestjson1_deserializeOpDeleteRoleCustomPermission) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteRoleCustomPermission(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteGroupMembership(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)} @@ -8430,7 +8407,16 @@ func awsRestjson1_deserializeOpErrorDeleteRoleCustomPermission(response *smithyh } } -func awsRestjson1_deserializeOpDocumentDeleteRoleCustomPermissionOutput(v **DeleteRoleCustomPermissionOutput, value interface{}) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteGroupMembershipOutput(v *DeleteGroupMembershipOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDeleteGroupMembershipOutput(v **DeleteGroupMembershipOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -8443,9 +8429,9 @@ func awsRestjson1_deserializeOpDocumentDeleteRoleCustomPermissionOutput(v **Dele return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteRoleCustomPermissionOutput + var sv *DeleteGroupMembershipOutput if *v == nil { - sv = &DeleteRoleCustomPermissionOutput{} + sv = &DeleteGroupMembershipOutput{} } else { sv = *v } @@ -8461,19 +8447,6 @@ func awsRestjson1_deserializeOpDocumentDeleteRoleCustomPermissionOutput(v **Dele sv.RequestId = ptr.String(jtv) } - case "Status": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Status = int32(i64) - } - default: _, _ = key, value @@ -8483,14 +8456,14 @@ func awsRestjson1_deserializeOpDocumentDeleteRoleCustomPermissionOutput(v **Dele return nil } -type awsRestjson1_deserializeOpDeleteRoleMembership struct { +type awsRestjson1_deserializeOpDeleteIAMPolicyAssignment struct { } -func (*awsRestjson1_deserializeOpDeleteRoleMembership) ID() string { +func (*awsRestjson1_deserializeOpDeleteIAMPolicyAssignment) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteRoleMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteIAMPolicyAssignment) 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) @@ -8508,12 +8481,12 @@ func (m *awsRestjson1_deserializeOpDeleteRoleMembership) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoleMembership(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteIAMPolicyAssignment(response, &metadata) } - output := &DeleteRoleMembershipOutput{} + output := &DeleteIAMPolicyAssignmentOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteRoleMembershipOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteIAMPolicyAssignmentOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -8536,7 +8509,7 @@ func (m *awsRestjson1_deserializeOpDeleteRoleMembership) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteRoleMembershipOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteIAMPolicyAssignmentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8550,7 +8523,7 @@ func (m *awsRestjson1_deserializeOpDeleteRoleMembership) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteRoleMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteIAMPolicyAssignment(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)} @@ -8594,21 +8567,21 @@ func awsRestjson1_deserializeOpErrorDeleteRoleMembership(response *smithyhttp.Re case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConcurrentUpdatingException", errorCode): + return awsRestjson1_deserializeErrorConcurrentUpdatingException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -8622,7 +8595,7 @@ func awsRestjson1_deserializeOpErrorDeleteRoleMembership(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpHttpBindingsDeleteRoleMembershipOutput(v *DeleteRoleMembershipOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteIAMPolicyAssignmentOutput(v *DeleteIAMPolicyAssignmentOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -8631,7 +8604,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteRoleMembershipOutput(v *DeleteR return nil } -func awsRestjson1_deserializeOpDocumentDeleteRoleMembershipOutput(v **DeleteRoleMembershipOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteIAMPolicyAssignmentOutput(v **DeleteIAMPolicyAssignmentOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -8644,15 +8617,24 @@ func awsRestjson1_deserializeOpDocumentDeleteRoleMembershipOutput(v **DeleteRole return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteRoleMembershipOutput + var sv *DeleteIAMPolicyAssignmentOutput if *v == nil { - sv = &DeleteRoleMembershipOutput{} + sv = &DeleteIAMPolicyAssignmentOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "AssignmentName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IAMPolicyAssignmentName to be of type string, got %T instead", value) + } + sv.AssignmentName = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -8671,14 +8653,14 @@ func awsRestjson1_deserializeOpDocumentDeleteRoleMembershipOutput(v **DeleteRole return nil } -type awsRestjson1_deserializeOpDeleteTemplate struct { +type awsRestjson1_deserializeOpDeleteIdentityPropagationConfig struct { } -func (*awsRestjson1_deserializeOpDeleteTemplate) ID() string { +func (*awsRestjson1_deserializeOpDeleteIdentityPropagationConfig) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteIdentityPropagationConfig) 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) @@ -8696,12 +8678,12 @@ func (m *awsRestjson1_deserializeOpDeleteTemplate) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteTemplate(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteIdentityPropagationConfig(response, &metadata) } - output := &DeleteTemplateOutput{} + output := &DeleteIdentityPropagationConfigOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteTemplateOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteIdentityPropagationConfigOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -8724,7 +8706,7 @@ func (m *awsRestjson1_deserializeOpDeleteTemplate) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteTemplateOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteIdentityPropagationConfigOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8738,7 +8720,7 @@ func (m *awsRestjson1_deserializeOpDeleteTemplate) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteIdentityPropagationConfig(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)} @@ -8779,8 +8761,8 @@ func awsRestjson1_deserializeOpErrorDeleteTemplate(response *smithyhttp.Response } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -8788,18 +8770,12 @@ func awsRestjson1_deserializeOpErrorDeleteTemplate(response *smithyhttp.Response case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -8810,7 +8786,7 @@ func awsRestjson1_deserializeOpErrorDeleteTemplate(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsDeleteTemplateOutput(v *DeleteTemplateOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteIdentityPropagationConfigOutput(v *DeleteIdentityPropagationConfigOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -8819,7 +8795,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteTemplateOutput(v *DeleteTemplat return nil } -func awsRestjson1_deserializeOpDocumentDeleteTemplateOutput(v **DeleteTemplateOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteIdentityPropagationConfigOutput(v **DeleteIdentityPropagationConfigOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -8832,24 +8808,15 @@ func awsRestjson1_deserializeOpDocumentDeleteTemplateOutput(v **DeleteTemplateOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteTemplateOutput + var sv *DeleteIdentityPropagationConfigOutput if *v == nil { - sv = &DeleteTemplateOutput{} + sv = &DeleteIdentityPropagationConfigOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -8859,15 +8826,6 @@ func awsRestjson1_deserializeOpDocumentDeleteTemplateOutput(v **DeleteTemplateOu sv.RequestId = ptr.String(jtv) } - case "TemplateId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.TemplateId = ptr.String(jtv) - } - default: _, _ = key, value @@ -8877,14 +8835,14 @@ func awsRestjson1_deserializeOpDocumentDeleteTemplateOutput(v **DeleteTemplateOu return nil } -type awsRestjson1_deserializeOpDeleteTemplateAlias struct { +type awsRestjson1_deserializeOpDeleteNamespace struct { } -func (*awsRestjson1_deserializeOpDeleteTemplateAlias) ID() string { +func (*awsRestjson1_deserializeOpDeleteNamespace) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteTemplateAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteNamespace) 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) @@ -8902,12 +8860,12 @@ func (m *awsRestjson1_deserializeOpDeleteTemplateAlias) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteTemplateAlias(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteNamespace(response, &metadata) } - output := &DeleteTemplateAliasOutput{} + output := &DeleteNamespaceOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteTemplateAliasOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteNamespaceOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -8930,7 +8888,7 @@ func (m *awsRestjson1_deserializeOpDeleteTemplateAlias) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteTemplateAliasOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteNamespaceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -8944,7 +8902,7 @@ func (m *awsRestjson1_deserializeOpDeleteTemplateAlias) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteTemplateAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteNamespace(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)} @@ -8985,21 +8943,27 @@ func awsRestjson1_deserializeOpErrorDeleteTemplateAlias(response *smithyhttp.Res } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9010,7 +8974,7 @@ func awsRestjson1_deserializeOpErrorDeleteTemplateAlias(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpHttpBindingsDeleteTemplateAliasOutput(v *DeleteTemplateAliasOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteNamespaceOutput(v *DeleteNamespaceOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -9019,7 +8983,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteTemplateAliasOutput(v *DeleteTe return nil } -func awsRestjson1_deserializeOpDocumentDeleteTemplateAliasOutput(v **DeleteTemplateAliasOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteNamespaceOutput(v **DeleteNamespaceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9032,33 +8996,15 @@ func awsRestjson1_deserializeOpDocumentDeleteTemplateAliasOutput(v **DeleteTempl return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteTemplateAliasOutput + var sv *DeleteNamespaceOutput if *v == nil { - sv = &DeleteTemplateAliasOutput{} + sv = &DeleteNamespaceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AliasName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AliasName to be of type string, got %T instead", value) - } - sv.AliasName = ptr.String(jtv) - } - - case "Arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -9068,15 +9014,6 @@ func awsRestjson1_deserializeOpDocumentDeleteTemplateAliasOutput(v **DeleteTempl sv.RequestId = ptr.String(jtv) } - case "TemplateId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.TemplateId = ptr.String(jtv) - } - default: _, _ = key, value @@ -9086,14 +9023,14 @@ func awsRestjson1_deserializeOpDocumentDeleteTemplateAliasOutput(v **DeleteTempl return nil } -type awsRestjson1_deserializeOpDeleteTheme struct { +type awsRestjson1_deserializeOpDeleteRefreshSchedule struct { } -func (*awsRestjson1_deserializeOpDeleteTheme) ID() string { +func (*awsRestjson1_deserializeOpDeleteRefreshSchedule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteTheme) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteRefreshSchedule) 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) @@ -9111,12 +9048,12 @@ func (m *awsRestjson1_deserializeOpDeleteTheme) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteTheme(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteRefreshSchedule(response, &metadata) } - output := &DeleteThemeOutput{} + output := &DeleteRefreshScheduleOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteThemeOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteRefreshScheduleOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -9139,7 +9076,7 @@ func (m *awsRestjson1_deserializeOpDeleteTheme) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteThemeOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteRefreshScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9153,7 +9090,7 @@ func (m *awsRestjson1_deserializeOpDeleteTheme) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteTheme(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteRefreshSchedule(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)} @@ -9197,24 +9134,21 @@ func awsRestjson1_deserializeOpErrorDeleteTheme(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9225,7 +9159,7 @@ func awsRestjson1_deserializeOpErrorDeleteTheme(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpHttpBindingsDeleteThemeOutput(v *DeleteThemeOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteRefreshScheduleOutput(v *DeleteRefreshScheduleOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -9234,7 +9168,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteThemeOutput(v *DeleteThemeOutpu return nil } -func awsRestjson1_deserializeOpDocumentDeleteThemeOutput(v **DeleteThemeOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteRefreshScheduleOutput(v **DeleteRefreshScheduleOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9247,9 +9181,9 @@ func awsRestjson1_deserializeOpDocumentDeleteThemeOutput(v **DeleteThemeOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteThemeOutput + var sv *DeleteRefreshScheduleOutput if *v == nil { - sv = &DeleteThemeOutput{} + sv = &DeleteRefreshScheduleOutput{} } else { sv = *v } @@ -9274,13 +9208,13 @@ func awsRestjson1_deserializeOpDocumentDeleteThemeOutput(v **DeleteThemeOutput, sv.RequestId = ptr.String(jtv) } - case "ThemeId": + case "ScheduleId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.ThemeId = ptr.String(jtv) + sv.ScheduleId = ptr.String(jtv) } default: @@ -9292,14 +9226,14 @@ func awsRestjson1_deserializeOpDocumentDeleteThemeOutput(v **DeleteThemeOutput, return nil } -type awsRestjson1_deserializeOpDeleteThemeAlias struct { +type awsRestjson1_deserializeOpDeleteRoleCustomPermission struct { } -func (*awsRestjson1_deserializeOpDeleteThemeAlias) ID() string { +func (*awsRestjson1_deserializeOpDeleteRoleCustomPermission) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteThemeAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteRoleCustomPermission) 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) @@ -9317,16 +9251,11 @@ func (m *awsRestjson1_deserializeOpDeleteThemeAlias) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteThemeAlias(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoleCustomPermission(response, &metadata) } - output := &DeleteThemeAliasOutput{} + output := &DeleteRoleCustomPermissionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteThemeAliasOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -9345,7 +9274,7 @@ func (m *awsRestjson1_deserializeOpDeleteThemeAlias) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteThemeAliasOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteRoleCustomPermissionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9359,7 +9288,7 @@ func (m *awsRestjson1_deserializeOpDeleteThemeAlias) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteThemeAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteRoleCustomPermission(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)} @@ -9400,8 +9329,8 @@ func awsRestjson1_deserializeOpErrorDeleteThemeAlias(response *smithyhttp.Respon } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -9409,15 +9338,18 @@ func awsRestjson1_deserializeOpErrorDeleteThemeAlias(response *smithyhttp.Respon case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9428,16 +9360,7 @@ func awsRestjson1_deserializeOpErrorDeleteThemeAlias(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpHttpBindingsDeleteThemeAliasOutput(v *DeleteThemeAliasOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentDeleteThemeAliasOutput(v **DeleteThemeAliasOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteRoleCustomPermissionOutput(v **DeleteRoleCustomPermissionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9450,33 +9373,15 @@ func awsRestjson1_deserializeOpDocumentDeleteThemeAliasOutput(v **DeleteThemeAli return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteThemeAliasOutput + var sv *DeleteRoleCustomPermissionOutput if *v == nil { - sv = &DeleteThemeAliasOutput{} + sv = &DeleteRoleCustomPermissionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AliasName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AliasName to be of type string, got %T instead", value) - } - sv.AliasName = ptr.String(jtv) - } - - case "Arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -9486,13 +9391,17 @@ func awsRestjson1_deserializeOpDocumentDeleteThemeAliasOutput(v **DeleteThemeAli sv.RequestId = ptr.String(jtv) } - case "ThemeId": + case "Status": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) } - sv.ThemeId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) } default: @@ -9504,14 +9413,14 @@ func awsRestjson1_deserializeOpDocumentDeleteThemeAliasOutput(v **DeleteThemeAli return nil } -type awsRestjson1_deserializeOpDeleteTopic struct { +type awsRestjson1_deserializeOpDeleteRoleMembership struct { } -func (*awsRestjson1_deserializeOpDeleteTopic) ID() string { +func (*awsRestjson1_deserializeOpDeleteRoleMembership) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteTopic) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteRoleMembership) 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) @@ -9529,12 +9438,12 @@ func (m *awsRestjson1_deserializeOpDeleteTopic) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteTopic(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoleMembership(response, &metadata) } - output := &DeleteTopicOutput{} + output := &DeleteRoleMembershipOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteTopicOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteRoleMembershipOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -9557,7 +9466,7 @@ func (m *awsRestjson1_deserializeOpDeleteTopic) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteTopicOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteRoleMembershipOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9571,7 +9480,7 @@ func (m *awsRestjson1_deserializeOpDeleteTopic) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteTopic(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteRoleMembership(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)} @@ -9615,18 +9524,21 @@ func awsRestjson1_deserializeOpErrorDeleteTopic(response *smithyhttp.Response, m case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -9640,7 +9552,7 @@ func awsRestjson1_deserializeOpErrorDeleteTopic(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpHttpBindingsDeleteTopicOutput(v *DeleteTopicOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteRoleMembershipOutput(v *DeleteRoleMembershipOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -9649,7 +9561,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteTopicOutput(v *DeleteTopicOutpu return nil } -func awsRestjson1_deserializeOpDocumentDeleteTopicOutput(v **DeleteTopicOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteRoleMembershipOutput(v **DeleteRoleMembershipOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9662,24 +9574,15 @@ func awsRestjson1_deserializeOpDocumentDeleteTopicOutput(v **DeleteTopicOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteTopicOutput + var sv *DeleteRoleMembershipOutput if *v == nil { - sv = &DeleteTopicOutput{} + sv = &DeleteRoleMembershipOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -9689,15 +9592,6 @@ func awsRestjson1_deserializeOpDocumentDeleteTopicOutput(v **DeleteTopicOutput, sv.RequestId = ptr.String(jtv) } - case "TopicId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) - } - sv.TopicId = ptr.String(jtv) - } - default: _, _ = key, value @@ -9707,14 +9601,14 @@ func awsRestjson1_deserializeOpDocumentDeleteTopicOutput(v **DeleteTopicOutput, return nil } -type awsRestjson1_deserializeOpDeleteTopicRefreshSchedule struct { +type awsRestjson1_deserializeOpDeleteTemplate struct { } -func (*awsRestjson1_deserializeOpDeleteTopicRefreshSchedule) ID() string { +func (*awsRestjson1_deserializeOpDeleteTemplate) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteTopicRefreshSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteTemplate) 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) @@ -9732,12 +9626,12 @@ func (m *awsRestjson1_deserializeOpDeleteTopicRefreshSchedule) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteTopicRefreshSchedule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteTemplate(response, &metadata) } - output := &DeleteTopicRefreshScheduleOutput{} + output := &DeleteTemplateOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteTopicRefreshScheduleOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteTemplateOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -9760,7 +9654,7 @@ func (m *awsRestjson1_deserializeOpDeleteTopicRefreshSchedule) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteTopicRefreshScheduleOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteTemplateOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9774,7 +9668,7 @@ func (m *awsRestjson1_deserializeOpDeleteTopicRefreshSchedule) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteTopicRefreshSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteTemplate(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)} @@ -9815,9 +9709,6 @@ func awsRestjson1_deserializeOpErrorDeleteTopicRefreshSchedule(response *smithyh } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) @@ -9830,15 +9721,15 @@ func awsRestjson1_deserializeOpErrorDeleteTopicRefreshSchedule(response *smithyh case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -9849,7 +9740,7 @@ func awsRestjson1_deserializeOpErrorDeleteTopicRefreshSchedule(response *smithyh } } -func awsRestjson1_deserializeOpHttpBindingsDeleteTopicRefreshScheduleOutput(v *DeleteTopicRefreshScheduleOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteTemplateOutput(v *DeleteTemplateOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -9858,7 +9749,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteTopicRefreshScheduleOutput(v *D return nil } -func awsRestjson1_deserializeOpDocumentDeleteTopicRefreshScheduleOutput(v **DeleteTopicRefreshScheduleOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteTemplateOutput(v **DeleteTemplateOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -9871,22 +9762,22 @@ func awsRestjson1_deserializeOpDocumentDeleteTopicRefreshScheduleOutput(v **Dele return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteTopicRefreshScheduleOutput + var sv *DeleteTemplateOutput if *v == nil { - sv = &DeleteTopicRefreshScheduleOutput{} + sv = &DeleteTemplateOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DatasetArn": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.DatasetArn = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } case "RequestId": @@ -9898,22 +9789,13 @@ func awsRestjson1_deserializeOpDocumentDeleteTopicRefreshScheduleOutput(v **Dele sv.RequestId = ptr.String(jtv) } - case "TopicArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.TopicArn = ptr.String(jtv) - } - - case "TopicId": + case "TemplateId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.TopicId = ptr.String(jtv) + sv.TemplateId = ptr.String(jtv) } default: @@ -9925,14 +9807,14 @@ func awsRestjson1_deserializeOpDocumentDeleteTopicRefreshScheduleOutput(v **Dele return nil } -type awsRestjson1_deserializeOpDeleteUser struct { +type awsRestjson1_deserializeOpDeleteTemplateAlias struct { } -func (*awsRestjson1_deserializeOpDeleteUser) ID() string { +func (*awsRestjson1_deserializeOpDeleteTemplateAlias) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteTemplateAlias) 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) @@ -9950,12 +9832,12 @@ func (m *awsRestjson1_deserializeOpDeleteUser) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteUser(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteTemplateAlias(response, &metadata) } - output := &DeleteUserOutput{} + output := &DeleteTemplateAliasOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteUserOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteTemplateAliasOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -9978,7 +9860,7 @@ func (m *awsRestjson1_deserializeOpDeleteUser) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteUserOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteTemplateAliasOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -9992,7 +9874,7 @@ func (m *awsRestjson1_deserializeOpDeleteUser) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteTemplateAlias(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)} @@ -10033,27 +9915,21 @@ func awsRestjson1_deserializeOpErrorDeleteUser(response *smithyhttp.Response, me } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10064,7 +9940,7 @@ func awsRestjson1_deserializeOpErrorDeleteUser(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpHttpBindingsDeleteUserOutput(v *DeleteUserOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteTemplateAliasOutput(v *DeleteTemplateAliasOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -10073,7 +9949,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteUserOutput(v *DeleteUserOutput, return nil } -func awsRestjson1_deserializeOpDocumentDeleteUserOutput(v **DeleteUserOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteTemplateAliasOutput(v **DeleteTemplateAliasOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10086,15 +9962,33 @@ func awsRestjson1_deserializeOpDocumentDeleteUserOutput(v **DeleteUserOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteUserOutput + var sv *DeleteTemplateAliasOutput if *v == nil { - sv = &DeleteUserOutput{} + sv = &DeleteTemplateAliasOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "AliasName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AliasName to be of type string, got %T instead", value) + } + sv.AliasName = ptr.String(jtv) + } + + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -10104,6 +9998,15 @@ func awsRestjson1_deserializeOpDocumentDeleteUserOutput(v **DeleteUserOutput, va sv.RequestId = ptr.String(jtv) } + case "TemplateId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.TemplateId = ptr.String(jtv) + } + default: _, _ = key, value @@ -10113,14 +10016,14 @@ func awsRestjson1_deserializeOpDocumentDeleteUserOutput(v **DeleteUserOutput, va return nil } -type awsRestjson1_deserializeOpDeleteUserByPrincipalId struct { +type awsRestjson1_deserializeOpDeleteTheme struct { } -func (*awsRestjson1_deserializeOpDeleteUserByPrincipalId) ID() string { +func (*awsRestjson1_deserializeOpDeleteTheme) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteUserByPrincipalId) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteTheme) 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) @@ -10138,12 +10041,12 @@ func (m *awsRestjson1_deserializeOpDeleteUserByPrincipalId) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteUserByPrincipalId(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteTheme(response, &metadata) } - output := &DeleteUserByPrincipalIdOutput{} + output := &DeleteThemeOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteUserByPrincipalIdOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteThemeOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -10166,7 +10069,7 @@ func (m *awsRestjson1_deserializeOpDeleteUserByPrincipalId) HandleDeserialize(ct return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteUserByPrincipalIdOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteThemeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10180,7 +10083,7 @@ func (m *awsRestjson1_deserializeOpDeleteUserByPrincipalId) HandleDeserialize(ct return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteUserByPrincipalId(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteTheme(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)} @@ -10224,24 +10127,24 @@ func awsRestjson1_deserializeOpErrorDeleteUserByPrincipalId(response *smithyhttp case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -10252,7 +10155,7 @@ func awsRestjson1_deserializeOpErrorDeleteUserByPrincipalId(response *smithyhttp } } -func awsRestjson1_deserializeOpHttpBindingsDeleteUserByPrincipalIdOutput(v *DeleteUserByPrincipalIdOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteThemeOutput(v *DeleteThemeOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -10261,7 +10164,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteUserByPrincipalIdOutput(v *Dele return nil } -func awsRestjson1_deserializeOpDocumentDeleteUserByPrincipalIdOutput(v **DeleteUserByPrincipalIdOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteThemeOutput(v **DeleteThemeOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10274,15 +10177,24 @@ func awsRestjson1_deserializeOpDocumentDeleteUserByPrincipalIdOutput(v **DeleteU return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteUserByPrincipalIdOutput + var sv *DeleteThemeOutput if *v == nil { - sv = &DeleteUserByPrincipalIdOutput{} + sv = &DeleteThemeOutput{} } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -10292,6 +10204,15 @@ func awsRestjson1_deserializeOpDocumentDeleteUserByPrincipalIdOutput(v **DeleteU sv.RequestId = ptr.String(jtv) } + case "ThemeId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.ThemeId = ptr.String(jtv) + } + default: _, _ = key, value @@ -10301,14 +10222,14 @@ func awsRestjson1_deserializeOpDocumentDeleteUserByPrincipalIdOutput(v **DeleteU return nil } -type awsRestjson1_deserializeOpDeleteVPCConnection struct { +type awsRestjson1_deserializeOpDeleteThemeAlias struct { } -func (*awsRestjson1_deserializeOpDeleteVPCConnection) ID() string { +func (*awsRestjson1_deserializeOpDeleteThemeAlias) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteVPCConnection) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteThemeAlias) 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) @@ -10326,12 +10247,12 @@ func (m *awsRestjson1_deserializeOpDeleteVPCConnection) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteVPCConnection(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteThemeAlias(response, &metadata) } - output := &DeleteVPCConnectionOutput{} + output := &DeleteThemeAliasOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDeleteVPCConnectionOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteThemeAliasOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -10354,7 +10275,7 @@ func (m *awsRestjson1_deserializeOpDeleteVPCConnection) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteVPCConnectionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteThemeAliasOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10368,7 +10289,7 @@ func (m *awsRestjson1_deserializeOpDeleteVPCConnection) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteVPCConnection(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteThemeAlias(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)} @@ -10409,9 +10330,6 @@ func awsRestjson1_deserializeOpErrorDeleteVPCConnection(response *smithyhttp.Res } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) @@ -10440,7 +10358,7 @@ func awsRestjson1_deserializeOpErrorDeleteVPCConnection(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpHttpBindingsDeleteVPCConnectionOutput(v *DeleteVPCConnectionOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteThemeAliasOutput(v *DeleteThemeAliasOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -10449,7 +10367,7 @@ func awsRestjson1_deserializeOpHttpBindingsDeleteVPCConnectionOutput(v *DeleteVP return nil } -func awsRestjson1_deserializeOpDocumentDeleteVPCConnectionOutput(v **DeleteVPCConnectionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteThemeAliasOutput(v **DeleteThemeAliasOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10462,40 +10380,31 @@ func awsRestjson1_deserializeOpDocumentDeleteVPCConnectionOutput(v **DeleteVPCCo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteVPCConnectionOutput + var sv *DeleteThemeAliasOutput if *v == nil { - sv = &DeleteVPCConnectionOutput{} + sv = &DeleteThemeAliasOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "AvailabilityStatus": + case "AliasName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected VPCConnectionAvailabilityStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected AliasName to be of type string, got %T instead", value) } - sv.AvailabilityStatus = types.VPCConnectionAvailabilityStatus(jtv) + sv.AliasName = ptr.String(jtv) } - case "DeletionStatus": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected VPCConnectionResourceStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.DeletionStatus = types.VPCConnectionResourceStatus(jtv) + sv.Arn = ptr.String(jtv) } case "RequestId": @@ -10507,13 +10416,13 @@ func awsRestjson1_deserializeOpDocumentDeleteVPCConnectionOutput(v **DeleteVPCCo sv.RequestId = ptr.String(jtv) } - case "VPCConnectionId": + case "ThemeId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected VPCConnectionResourceIdUnrestricted to be of type string, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.VPCConnectionId = ptr.String(jtv) + sv.ThemeId = ptr.String(jtv) } default: @@ -10525,14 +10434,14 @@ func awsRestjson1_deserializeOpDocumentDeleteVPCConnectionOutput(v **DeleteVPCCo return nil } -type awsRestjson1_deserializeOpDescribeAccountCustomization struct { +type awsRestjson1_deserializeOpDeleteTopic struct { } -func (*awsRestjson1_deserializeOpDescribeAccountCustomization) ID() string { +func (*awsRestjson1_deserializeOpDeleteTopic) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeAccountCustomization) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteTopic) 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) @@ -10550,12 +10459,12 @@ func (m *awsRestjson1_deserializeOpDescribeAccountCustomization) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeAccountCustomization(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteTopic(response, &metadata) } - output := &DescribeAccountCustomizationOutput{} + output := &DeleteTopicOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeAccountCustomizationOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteTopicOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -10578,7 +10487,7 @@ func (m *awsRestjson1_deserializeOpDescribeAccountCustomization) HandleDeseriali return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeAccountCustomizationOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteTopicOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10592,7 +10501,7 @@ func (m *awsRestjson1_deserializeOpDescribeAccountCustomization) HandleDeseriali return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeAccountCustomization(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteTopic(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)} @@ -10636,6 +10545,9 @@ func awsRestjson1_deserializeOpErrorDescribeAccountCustomization(response *smith case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -10645,9 +10557,6 @@ func awsRestjson1_deserializeOpErrorDescribeAccountCustomization(response *smith case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -10661,7 +10570,7 @@ func awsRestjson1_deserializeOpErrorDescribeAccountCustomization(response *smith } } -func awsRestjson1_deserializeOpHttpBindingsDescribeAccountCustomizationOutput(v *DescribeAccountCustomizationOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteTopicOutput(v *DeleteTopicOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -10670,7 +10579,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeAccountCustomizationOutput(v return nil } -func awsRestjson1_deserializeOpDocumentDescribeAccountCustomizationOutput(v **DescribeAccountCustomizationOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteTopicOutput(v **DeleteTopicOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10683,20 +10592,15 @@ func awsRestjson1_deserializeOpDocumentDescribeAccountCustomizationOutput(v **De return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeAccountCustomizationOutput + var sv *DeleteTopicOutput if *v == nil { - sv = &DescribeAccountCustomizationOutput{} + sv = &DeleteTopicOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AccountCustomization": - if err := awsRestjson1_deserializeDocumentAccountCustomization(&sv.AccountCustomization, value); err != nil { - return err - } - case "Arn": if value != nil { jtv, ok := value.(string) @@ -10706,31 +10610,22 @@ func awsRestjson1_deserializeOpDocumentDescribeAccountCustomizationOutput(v **De sv.Arn = ptr.String(jtv) } - case "AwsAccountId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) - } - sv.AwsAccountId = ptr.String(jtv) - } - - case "Namespace": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Namespace to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Namespace = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } - case "RequestId": + case "TopicId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.TopicId = ptr.String(jtv) } default: @@ -10742,14 +10637,14 @@ func awsRestjson1_deserializeOpDocumentDescribeAccountCustomizationOutput(v **De return nil } -type awsRestjson1_deserializeOpDescribeAccountSettings struct { +type awsRestjson1_deserializeOpDeleteTopicRefreshSchedule struct { } -func (*awsRestjson1_deserializeOpDescribeAccountSettings) ID() string { +func (*awsRestjson1_deserializeOpDeleteTopicRefreshSchedule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeAccountSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteTopicRefreshSchedule) 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) @@ -10767,12 +10662,12 @@ func (m *awsRestjson1_deserializeOpDescribeAccountSettings) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeAccountSettings(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteTopicRefreshSchedule(response, &metadata) } - output := &DescribeAccountSettingsOutput{} + output := &DeleteTopicRefreshScheduleOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeAccountSettingsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteTopicRefreshScheduleOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -10795,7 +10690,7 @@ func (m *awsRestjson1_deserializeOpDescribeAccountSettings) HandleDeserialize(ct return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeAccountSettingsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteTopicRefreshScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10809,7 +10704,7 @@ func (m *awsRestjson1_deserializeOpDescribeAccountSettings) HandleDeserialize(ct return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeAccountSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteTopicRefreshSchedule(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)} @@ -10853,18 +10748,24 @@ func awsRestjson1_deserializeOpErrorDescribeAccountSettings(response *smithyhttp case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -10878,7 +10779,7 @@ func awsRestjson1_deserializeOpErrorDescribeAccountSettings(response *smithyhttp } } -func awsRestjson1_deserializeOpHttpBindingsDescribeAccountSettingsOutput(v *DescribeAccountSettingsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteTopicRefreshScheduleOutput(v *DeleteTopicRefreshScheduleOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -10887,7 +10788,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeAccountSettingsOutput(v *Desc return nil } -func awsRestjson1_deserializeOpDocumentDescribeAccountSettingsOutput(v **DescribeAccountSettingsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteTopicRefreshScheduleOutput(v **DeleteTopicRefreshScheduleOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -10900,18 +10801,22 @@ func awsRestjson1_deserializeOpDocumentDescribeAccountSettingsOutput(v **Describ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeAccountSettingsOutput + var sv *DeleteTopicRefreshScheduleOutput if *v == nil { - sv = &DescribeAccountSettingsOutput{} + sv = &DeleteTopicRefreshScheduleOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AccountSettings": - if err := awsRestjson1_deserializeDocumentAccountSettings(&sv.AccountSettings, value); err != nil { - return err + case "DatasetArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.DatasetArn = ptr.String(jtv) } case "RequestId": @@ -10923,6 +10828,24 @@ func awsRestjson1_deserializeOpDocumentDescribeAccountSettingsOutput(v **Describ sv.RequestId = ptr.String(jtv) } + case "TopicArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.TopicArn = ptr.String(jtv) + } + + case "TopicId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + } + sv.TopicId = ptr.String(jtv) + } + default: _, _ = key, value @@ -10932,14 +10855,14 @@ func awsRestjson1_deserializeOpDocumentDescribeAccountSettingsOutput(v **Describ return nil } -type awsRestjson1_deserializeOpDescribeAccountSubscription struct { +type awsRestjson1_deserializeOpDeleteUser struct { } -func (*awsRestjson1_deserializeOpDescribeAccountSubscription) ID() string { +func (*awsRestjson1_deserializeOpDeleteUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeAccountSubscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteUser) 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) @@ -10957,12 +10880,12 @@ func (m *awsRestjson1_deserializeOpDescribeAccountSubscription) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeAccountSubscription(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteUser(response, &metadata) } - output := &DescribeAccountSubscriptionOutput{} + output := &DeleteUserOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeAccountSubscriptionOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteUserOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -10985,7 +10908,7 @@ func (m *awsRestjson1_deserializeOpDescribeAccountSubscription) HandleDeserializ return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeAccountSubscriptionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -10999,7 +10922,7 @@ func (m *awsRestjson1_deserializeOpDescribeAccountSubscription) HandleDeserializ return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeAccountSubscription(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteUser(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)} @@ -11049,6 +10972,9 @@ func awsRestjson1_deserializeOpErrorDescribeAccountSubscription(response *smithy case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -11068,7 +10994,7 @@ func awsRestjson1_deserializeOpErrorDescribeAccountSubscription(response *smithy } } -func awsRestjson1_deserializeOpHttpBindingsDescribeAccountSubscriptionOutput(v *DescribeAccountSubscriptionOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteUserOutput(v *DeleteUserOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -11077,7 +11003,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeAccountSubscriptionOutput(v * return nil } -func awsRestjson1_deserializeOpDocumentDescribeAccountSubscriptionOutput(v **DescribeAccountSubscriptionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteUserOutput(v **DeleteUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11090,20 +11016,15 @@ func awsRestjson1_deserializeOpDocumentDescribeAccountSubscriptionOutput(v **Des return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeAccountSubscriptionOutput + var sv *DeleteUserOutput if *v == nil { - sv = &DescribeAccountSubscriptionOutput{} + sv = &DeleteUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AccountInfo": - if err := awsRestjson1_deserializeDocumentAccountInfo(&sv.AccountInfo, value); err != nil { - return err - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -11122,14 +11043,14 @@ func awsRestjson1_deserializeOpDocumentDescribeAccountSubscriptionOutput(v **Des return nil } -type awsRestjson1_deserializeOpDescribeAnalysis struct { +type awsRestjson1_deserializeOpDeleteUserByPrincipalId struct { } -func (*awsRestjson1_deserializeOpDescribeAnalysis) ID() string { +func (*awsRestjson1_deserializeOpDeleteUserByPrincipalId) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeAnalysis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteUserByPrincipalId) 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) @@ -11147,12 +11068,12 @@ func (m *awsRestjson1_deserializeOpDescribeAnalysis) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeAnalysis(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteUserByPrincipalId(response, &metadata) } - output := &DescribeAnalysisOutput{} + output := &DeleteUserByPrincipalIdOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteUserByPrincipalIdOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -11175,7 +11096,7 @@ func (m *awsRestjson1_deserializeOpDescribeAnalysis) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeAnalysisOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteUserByPrincipalIdOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11189,7 +11110,7 @@ func (m *awsRestjson1_deserializeOpDescribeAnalysis) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeAnalysis(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteUserByPrincipalId(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)} @@ -11239,15 +11160,18 @@ func awsRestjson1_deserializeOpErrorDescribeAnalysis(response *smithyhttp.Respon case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11258,7 +11182,7 @@ func awsRestjson1_deserializeOpErrorDescribeAnalysis(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisOutput(v *DescribeAnalysisOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteUserByPrincipalIdOutput(v *DeleteUserByPrincipalIdOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -11267,7 +11191,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisOutput(v *DescribeAna return nil } -func awsRestjson1_deserializeOpDocumentDescribeAnalysisOutput(v **DescribeAnalysisOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteUserByPrincipalIdOutput(v **DeleteUserByPrincipalIdOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11280,20 +11204,15 @@ func awsRestjson1_deserializeOpDocumentDescribeAnalysisOutput(v **DescribeAnalys return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeAnalysisOutput + var sv *DeleteUserByPrincipalIdOutput if *v == nil { - sv = &DescribeAnalysisOutput{} + sv = &DeleteUserByPrincipalIdOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Analysis": - if err := awsRestjson1_deserializeDocumentAnalysis(&sv.Analysis, value); err != nil { - return err - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -11312,14 +11231,14 @@ func awsRestjson1_deserializeOpDocumentDescribeAnalysisOutput(v **DescribeAnalys return nil } -type awsRestjson1_deserializeOpDescribeAnalysisDefinition struct { +type awsRestjson1_deserializeOpDeleteUserCustomPermission struct { } -func (*awsRestjson1_deserializeOpDescribeAnalysisDefinition) ID() string { +func (*awsRestjson1_deserializeOpDeleteUserCustomPermission) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeAnalysisDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteUserCustomPermission) 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) @@ -11337,12 +11256,12 @@ func (m *awsRestjson1_deserializeOpDescribeAnalysisDefinition) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeAnalysisDefinition(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteUserCustomPermission(response, &metadata) } - output := &DescribeAnalysisDefinitionOutput{} + output := &DeleteUserCustomPermissionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisDefinitionOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteUserCustomPermissionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -11365,7 +11284,7 @@ func (m *awsRestjson1_deserializeOpDescribeAnalysisDefinition) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeAnalysisDefinitionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteUserCustomPermissionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11379,7 +11298,7 @@ func (m *awsRestjson1_deserializeOpDescribeAnalysisDefinition) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeAnalysisDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteUserCustomPermission(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)} @@ -11432,18 +11351,18 @@ func awsRestjson1_deserializeOpErrorDescribeAnalysisDefinition(response *smithyh case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11454,7 +11373,7 @@ func awsRestjson1_deserializeOpErrorDescribeAnalysisDefinition(response *smithyh } } -func awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisDefinitionOutput(v *DescribeAnalysisDefinitionOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteUserCustomPermissionOutput(v *DeleteUserCustomPermissionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -11463,7 +11382,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisDefinitionOutput(v *D return nil } -func awsRestjson1_deserializeOpDocumentDescribeAnalysisDefinitionOutput(v **DescribeAnalysisDefinitionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteUserCustomPermissionOutput(v **DeleteUserCustomPermissionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11476,43 +11395,15 @@ func awsRestjson1_deserializeOpDocumentDescribeAnalysisDefinitionOutput(v **Desc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeAnalysisDefinitionOutput + var sv *DeleteUserCustomPermissionOutput if *v == nil { - sv = &DescribeAnalysisDefinitionOutput{} + sv = &DeleteUserCustomPermissionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AnalysisId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.AnalysisId = ptr.String(jtv) - } - - case "Definition": - if err := awsRestjson1_deserializeDocumentAnalysisDefinition(&sv.Definition, value); err != nil { - return err - } - - case "Errors": - if err := awsRestjson1_deserializeDocumentAnalysisErrorList(&sv.Errors, value); err != nil { - return err - } - - case "Name": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AnalysisName to be of type string, got %T instead", value) - } - sv.Name = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -11522,24 +11413,6 @@ func awsRestjson1_deserializeOpDocumentDescribeAnalysisDefinitionOutput(v **Desc sv.RequestId = ptr.String(jtv) } - case "ResourceStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) - } - sv.ResourceStatus = types.ResourceStatus(jtv) - } - - case "ThemeArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.ThemeArn = ptr.String(jtv) - } - default: _, _ = key, value @@ -11549,14 +11422,14 @@ func awsRestjson1_deserializeOpDocumentDescribeAnalysisDefinitionOutput(v **Desc return nil } -type awsRestjson1_deserializeOpDescribeAnalysisPermissions struct { +type awsRestjson1_deserializeOpDeleteVPCConnection struct { } -func (*awsRestjson1_deserializeOpDescribeAnalysisPermissions) ID() string { +func (*awsRestjson1_deserializeOpDeleteVPCConnection) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeAnalysisPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteVPCConnection) 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) @@ -11574,12 +11447,12 @@ func (m *awsRestjson1_deserializeOpDescribeAnalysisPermissions) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeAnalysisPermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteVPCConnection(response, &metadata) } - output := &DescribeAnalysisPermissionsOutput{} + output := &DeleteVPCConnectionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisPermissionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDeleteVPCConnectionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -11602,7 +11475,7 @@ func (m *awsRestjson1_deserializeOpDescribeAnalysisPermissions) HandleDeserializ return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeAnalysisPermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteVPCConnectionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11616,7 +11489,7 @@ func (m *awsRestjson1_deserializeOpDescribeAnalysisPermissions) HandleDeserializ return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeAnalysisPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteVPCConnection(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)} @@ -11657,6 +11530,12 @@ func awsRestjson1_deserializeOpErrorDescribeAnalysisPermissions(response *smithy } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -11682,7 +11561,7 @@ func awsRestjson1_deserializeOpErrorDescribeAnalysisPermissions(response *smithy } } -func awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisPermissionsOutput(v *DescribeAnalysisPermissionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDeleteVPCConnectionOutput(v *DeleteVPCConnectionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -11691,7 +11570,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisPermissionsOutput(v * return nil } -func awsRestjson1_deserializeOpDocumentDescribeAnalysisPermissionsOutput(v **DescribeAnalysisPermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteVPCConnectionOutput(v **DeleteVPCConnectionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11704,36 +11583,40 @@ func awsRestjson1_deserializeOpDocumentDescribeAnalysisPermissionsOutput(v **Des return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeAnalysisPermissionsOutput + var sv *DeleteVPCConnectionOutput if *v == nil { - sv = &DescribeAnalysisPermissionsOutput{} + sv = &DeleteVPCConnectionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AnalysisArn": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.AnalysisArn = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "AnalysisId": + case "AvailabilityStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected VPCConnectionAvailabilityStatus to be of type string, got %T instead", value) } - sv.AnalysisId = ptr.String(jtv) + sv.AvailabilityStatus = types.VPCConnectionAvailabilityStatus(jtv) } - case "Permissions": - if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { - return err + case "DeletionStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VPCConnectionResourceStatus to be of type string, got %T instead", value) + } + sv.DeletionStatus = types.VPCConnectionResourceStatus(jtv) } case "RequestId": @@ -11745,6 +11628,15 @@ func awsRestjson1_deserializeOpDocumentDescribeAnalysisPermissionsOutput(v **Des sv.RequestId = ptr.String(jtv) } + case "VPCConnectionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected VPCConnectionResourceIdUnrestricted to be of type string, got %T instead", value) + } + sv.VPCConnectionId = ptr.String(jtv) + } + default: _, _ = key, value @@ -11754,14 +11646,14 @@ func awsRestjson1_deserializeOpDocumentDescribeAnalysisPermissionsOutput(v **Des return nil } -type awsRestjson1_deserializeOpDescribeAssetBundleExportJob struct { +type awsRestjson1_deserializeOpDescribeAccountCustomization struct { } -func (*awsRestjson1_deserializeOpDescribeAssetBundleExportJob) ID() string { +func (*awsRestjson1_deserializeOpDescribeAccountCustomization) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeAssetBundleExportJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeAccountCustomization) 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) @@ -11779,12 +11671,12 @@ func (m *awsRestjson1_deserializeOpDescribeAssetBundleExportJob) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeAssetBundleExportJob(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeAccountCustomization(response, &metadata) } - output := &DescribeAssetBundleExportJobOutput{} + output := &DescribeAccountCustomizationOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleExportJobOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeAccountCustomizationOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -11807,7 +11699,7 @@ func (m *awsRestjson1_deserializeOpDescribeAssetBundleExportJob) HandleDeseriali return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeAssetBundleExportJobOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeAccountCustomizationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -11821,7 +11713,7 @@ func (m *awsRestjson1_deserializeOpDescribeAssetBundleExportJob) HandleDeseriali return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeAssetBundleExportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeAccountCustomization(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)} @@ -11862,15 +11754,24 @@ func awsRestjson1_deserializeOpErrorDescribeAssetBundleExportJob(response *smith } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -11881,7 +11782,7 @@ func awsRestjson1_deserializeOpErrorDescribeAssetBundleExportJob(response *smith } } -func awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleExportJobOutput(v *DescribeAssetBundleExportJobOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeAccountCustomizationOutput(v *DescribeAccountCustomizationOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -11890,7 +11791,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleExportJobOutput(v return nil } -func awsRestjson1_deserializeOpDocumentDescribeAssetBundleExportJobOutput(v **DescribeAssetBundleExportJobOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeAccountCustomizationOutput(v **DescribeAccountCustomizationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -11903,15 +11804,20 @@ func awsRestjson1_deserializeOpDocumentDescribeAssetBundleExportJobOutput(v **De return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeAssetBundleExportJobOutput + var sv *DescribeAccountCustomizationOutput if *v == nil { - sv = &DescribeAssetBundleExportJobOutput{} + sv = &DescribeAccountCustomizationOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "AccountCustomization": + if err := awsRestjson1_deserializeDocumentAccountCustomization(&sv.AccountCustomization, value); err != nil { + return err + } + case "Arn": if value != nil { jtv, ok := value.(string) @@ -11921,15 +11827,6 @@ func awsRestjson1_deserializeOpDocumentDescribeAssetBundleExportJobOutput(v **De sv.Arn = ptr.String(jtv) } - case "AssetBundleExportJobId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.AssetBundleExportJobId = ptr.String(jtv) - } - case "AwsAccountId": if value != nil { jtv, ok := value.(string) @@ -11939,128 +11836,24 @@ func awsRestjson1_deserializeOpDocumentDescribeAssetBundleExportJobOutput(v **De sv.AwsAccountId = ptr.String(jtv) } - case "CloudFormationOverridePropertyConfiguration": - if err := awsRestjson1_deserializeDocumentAssetBundleCloudFormationOverridePropertyConfiguration(&sv.CloudFormationOverridePropertyConfiguration, value); err != nil { - return err - } - - case "CreatedTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) - - } - } - - case "DownloadUrl": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SensitiveS3Uri to be of type string, got %T instead", value) - } - sv.DownloadUrl = ptr.String(jtv) - } - - case "Errors": - if err := awsRestjson1_deserializeDocumentAssetBundleExportJobErrorList(&sv.Errors, value); err != nil { - return err - } - - case "ExportFormat": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AssetBundleExportFormat to be of type string, got %T instead", value) - } - sv.ExportFormat = types.AssetBundleExportFormat(jtv) - } - - case "IncludeAllDependencies": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IncludeAllDependencies = jtv - } - - case "IncludeFolderMembers": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IncludeFolderMembers to be of type string, got %T instead", value) - } - sv.IncludeFolderMembers = types.IncludeFolderMembers(jtv) - } - - case "IncludeFolderMemberships": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IncludeFolderMemberships = jtv - } - - case "IncludePermissions": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IncludePermissions = jtv - } - - case "IncludeTags": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.IncludeTags = jtv - } - - case "JobStatus": + case "Namespace": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected AssetBundleExportJobStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected Namespace to be of type string, got %T instead", value) } - sv.JobStatus = types.AssetBundleExportJobStatus(jtv) + sv.Namespace = ptr.String(jtv) } case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } - case "ResourceArns": - if err := awsRestjson1_deserializeDocumentAssetBundleResourceArns(&sv.ResourceArns, value); err != nil { - return err - } - - case "ValidationStrategy": - if err := awsRestjson1_deserializeDocumentAssetBundleExportJobValidationStrategy(&sv.ValidationStrategy, value); err != nil { - return err - } - - case "Warnings": - if err := awsRestjson1_deserializeDocumentAssetBundleExportJobWarningList(&sv.Warnings, value); err != nil { - return err - } - default: _, _ = key, value @@ -12070,14 +11863,14 @@ func awsRestjson1_deserializeOpDocumentDescribeAssetBundleExportJobOutput(v **De return nil } -type awsRestjson1_deserializeOpDescribeAssetBundleImportJob struct { +type awsRestjson1_deserializeOpDescribeAccountSettings struct { } -func (*awsRestjson1_deserializeOpDescribeAssetBundleImportJob) ID() string { +func (*awsRestjson1_deserializeOpDescribeAccountSettings) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeAssetBundleImportJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeAccountSettings) 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) @@ -12095,12 +11888,12 @@ func (m *awsRestjson1_deserializeOpDescribeAssetBundleImportJob) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeAssetBundleImportJob(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeAccountSettings(response, &metadata) } - output := &DescribeAssetBundleImportJobOutput{} + output := &DescribeAccountSettingsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleImportJobOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeAccountSettingsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -12123,7 +11916,7 @@ func (m *awsRestjson1_deserializeOpDescribeAssetBundleImportJob) HandleDeseriali return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeAssetBundleImportJobOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeAccountSettingsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12137,7 +11930,7 @@ func (m *awsRestjson1_deserializeOpDescribeAssetBundleImportJob) HandleDeseriali return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeAssetBundleImportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeAccountSettings(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)} @@ -12178,15 +11971,24 @@ func awsRestjson1_deserializeOpErrorDescribeAssetBundleImportJob(response *smith } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12197,7 +11999,7 @@ func awsRestjson1_deserializeOpErrorDescribeAssetBundleImportJob(response *smith } } -func awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleImportJobOutput(v *DescribeAssetBundleImportJobOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeAccountSettingsOutput(v *DescribeAccountSettingsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -12206,7 +12008,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleImportJobOutput(v return nil } -func awsRestjson1_deserializeOpDocumentDescribeAssetBundleImportJobOutput(v **DescribeAssetBundleImportJobOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeAccountSettingsOutput(v **DescribeAccountSettingsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12219,103 +12021,17 @@ func awsRestjson1_deserializeOpDocumentDescribeAssetBundleImportJobOutput(v **De return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeAssetBundleImportJobOutput + var sv *DescribeAccountSettingsOutput if *v == nil { - sv = &DescribeAssetBundleImportJobOutput{} + sv = &DescribeAccountSettingsOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "AssetBundleImportJobId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.AssetBundleImportJobId = ptr.String(jtv) - } - - case "AssetBundleImportSource": - if err := awsRestjson1_deserializeDocumentAssetBundleImportSourceDescription(&sv.AssetBundleImportSource, value); err != nil { - return err - } - - case "AwsAccountId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) - } - sv.AwsAccountId = ptr.String(jtv) - } - - case "CreatedTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) - - } - } - - case "Errors": - if err := awsRestjson1_deserializeDocumentAssetBundleImportJobErrorList(&sv.Errors, value); err != nil { - return err - } - - case "FailureAction": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AssetBundleImportFailureAction to be of type string, got %T instead", value) - } - sv.FailureAction = types.AssetBundleImportFailureAction(jtv) - } - - case "JobStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AssetBundleImportJobStatus to be of type string, got %T instead", value) - } - sv.JobStatus = types.AssetBundleImportJobStatus(jtv) - } - - case "OverrideParameters": - if err := awsRestjson1_deserializeDocumentAssetBundleImportJobOverrideParameters(&sv.OverrideParameters, value); err != nil { - return err - } - - case "OverridePermissions": - if err := awsRestjson1_deserializeDocumentAssetBundleImportJobOverridePermissions(&sv.OverridePermissions, value); err != nil { - return err - } - - case "OverrideTags": - if err := awsRestjson1_deserializeDocumentAssetBundleImportJobOverrideTags(&sv.OverrideTags, value); err != nil { - return err - } - - case "OverrideValidationStrategy": - if err := awsRestjson1_deserializeDocumentAssetBundleImportJobOverrideValidationStrategy(&sv.OverrideValidationStrategy, value); err != nil { + case "AccountSettings": + if err := awsRestjson1_deserializeDocumentAccountSettings(&sv.AccountSettings, value); err != nil { return err } @@ -12323,21 +12039,11 @@ func awsRestjson1_deserializeOpDocumentDescribeAssetBundleImportJobOutput(v **De if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } - case "RollbackErrors": - if err := awsRestjson1_deserializeDocumentAssetBundleImportJobErrorList(&sv.RollbackErrors, value); err != nil { - return err - } - - case "Warnings": - if err := awsRestjson1_deserializeDocumentAssetBundleImportJobWarningList(&sv.Warnings, value); err != nil { - return err - } - default: _, _ = key, value @@ -12347,14 +12053,14 @@ func awsRestjson1_deserializeOpDocumentDescribeAssetBundleImportJobOutput(v **De return nil } -type awsRestjson1_deserializeOpDescribeDashboard struct { +type awsRestjson1_deserializeOpDescribeAccountSubscription struct { } -func (*awsRestjson1_deserializeOpDescribeDashboard) ID() string { +func (*awsRestjson1_deserializeOpDescribeAccountSubscription) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDashboard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeAccountSubscription) 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) @@ -12372,12 +12078,12 @@ func (m *awsRestjson1_deserializeOpDescribeDashboard) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboard(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeAccountSubscription(response, &metadata) } - output := &DescribeDashboardOutput{} + output := &DescribeAccountSubscriptionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeDashboardOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeAccountSubscriptionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -12400,7 +12106,7 @@ func (m *awsRestjson1_deserializeOpDescribeDashboard) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDashboardOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeAccountSubscriptionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12414,7 +12120,7 @@ func (m *awsRestjson1_deserializeOpDescribeDashboard) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDashboard(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeAccountSubscription(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)} @@ -12467,12 +12173,12 @@ func awsRestjson1_deserializeOpErrorDescribeDashboard(response *smithyhttp.Respo case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -12483,7 +12189,7 @@ func awsRestjson1_deserializeOpErrorDescribeDashboard(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardOutput(v *DescribeDashboardOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeAccountSubscriptionOutput(v *DescribeAccountSubscriptionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -12492,7 +12198,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardOutput(v *DescribeDa return nil } -func awsRestjson1_deserializeOpDocumentDescribeDashboardOutput(v **DescribeDashboardOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeAccountSubscriptionOutput(v **DescribeAccountSubscriptionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12505,17 +12211,17 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardOutput(v **DescribeDashb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDashboardOutput + var sv *DescribeAccountSubscriptionOutput if *v == nil { - sv = &DescribeDashboardOutput{} + sv = &DescribeAccountSubscriptionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Dashboard": - if err := awsRestjson1_deserializeDocumentDashboard(&sv.Dashboard, value); err != nil { + case "AccountInfo": + if err := awsRestjson1_deserializeDocumentAccountInfo(&sv.AccountInfo, value); err != nil { return err } @@ -12537,14 +12243,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardOutput(v **DescribeDashb return nil } -type awsRestjson1_deserializeOpDescribeDashboardDefinition struct { +type awsRestjson1_deserializeOpDescribeAnalysis struct { } -func (*awsRestjson1_deserializeOpDescribeDashboardDefinition) ID() string { +func (*awsRestjson1_deserializeOpDescribeAnalysis) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDashboardDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeAnalysis) 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) @@ -12562,12 +12268,12 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardDefinition) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboardDefinition(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeAnalysis(response, &metadata) } - output := &DescribeDashboardDefinitionOutput{} + output := &DescribeAnalysisOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeDashboardDefinitionOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -12590,7 +12296,7 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardDefinition) HandleDeserializ return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDashboardDefinitionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeAnalysisOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12604,7 +12310,7 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardDefinition) HandleDeserializ return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDashboardDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeAnalysis(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)} @@ -12648,18 +12354,12 @@ func awsRestjson1_deserializeOpErrorDescribeDashboardDefinition(response *smithy case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -12679,7 +12379,7 @@ func awsRestjson1_deserializeOpErrorDescribeDashboardDefinition(response *smithy } } -func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardDefinitionOutput(v *DescribeDashboardDefinitionOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisOutput(v *DescribeAnalysisOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -12688,7 +12388,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardDefinitionOutput(v * return nil } -func awsRestjson1_deserializeOpDocumentDescribeDashboardDefinitionOutput(v **DescribeDashboardDefinitionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeAnalysisOutput(v **DescribeAnalysisOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12701,48 +12401,20 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardDefinitionOutput(v **Des return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDashboardDefinitionOutput + var sv *DescribeAnalysisOutput if *v == nil { - sv = &DescribeDashboardDefinitionOutput{} + sv = &DescribeAnalysisOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DashboardId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.DashboardId = ptr.String(jtv) - } - - case "DashboardPublishOptions": - if err := awsRestjson1_deserializeDocumentDashboardPublishOptions(&sv.DashboardPublishOptions, value); err != nil { - return err - } - - case "Definition": - if err := awsRestjson1_deserializeDocumentDashboardVersionDefinition(&sv.Definition, value); err != nil { - return err - } - - case "Errors": - if err := awsRestjson1_deserializeDocumentDashboardErrorList(&sv.Errors, value); err != nil { + case "Analysis": + if err := awsRestjson1_deserializeDocumentAnalysis(&sv.Analysis, value); err != nil { return err } - case "Name": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DashboardName to be of type string, got %T instead", value) - } - sv.Name = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -12752,24 +12424,6 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardDefinitionOutput(v **Des sv.RequestId = ptr.String(jtv) } - case "ResourceStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) - } - sv.ResourceStatus = types.ResourceStatus(jtv) - } - - case "ThemeArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.ThemeArn = ptr.String(jtv) - } - default: _, _ = key, value @@ -12779,14 +12433,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardDefinitionOutput(v **Des return nil } -type awsRestjson1_deserializeOpDescribeDashboardPermissions struct { +type awsRestjson1_deserializeOpDescribeAnalysisDefinition struct { } -func (*awsRestjson1_deserializeOpDescribeDashboardPermissions) ID() string { +func (*awsRestjson1_deserializeOpDescribeAnalysisDefinition) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDashboardPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeAnalysisDefinition) 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) @@ -12804,12 +12458,12 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardPermissions) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboardPermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeAnalysisDefinition(response, &metadata) } - output := &DescribeDashboardPermissionsOutput{} + output := &DescribeAnalysisDefinitionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeDashboardPermissionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisDefinitionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -12832,7 +12486,7 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardPermissions) HandleDeseriali return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDashboardPermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeAnalysisDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -12846,7 +12500,7 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardPermissions) HandleDeseriali return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDashboardPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeAnalysisDefinition(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)} @@ -12887,12 +12541,21 @@ func awsRestjson1_deserializeOpErrorDescribeDashboardPermissions(response *smith } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -12912,7 +12575,7 @@ func awsRestjson1_deserializeOpErrorDescribeDashboardPermissions(response *smith } } -func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardPermissionsOutput(v *DescribeDashboardPermissionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisDefinitionOutput(v *DescribeAnalysisDefinitionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -12921,7 +12584,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardPermissionsOutput(v return nil } -func awsRestjson1_deserializeOpDocumentDescribeDashboardPermissionsOutput(v **DescribeDashboardPermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeAnalysisDefinitionOutput(v **DescribeAnalysisDefinitionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -12934,36 +12597,259 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardPermissionsOutput(v **De return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDashboardPermissionsOutput + var sv *DescribeAnalysisDefinitionOutput if *v == nil { - sv = &DescribeDashboardPermissionsOutput{} + sv = &DescribeAnalysisDefinitionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DashboardArn": + case "AnalysisId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.AnalysisId = ptr.String(jtv) + } + + case "Definition": + if err := awsRestjson1_deserializeDocumentAnalysisDefinition(&sv.Definition, value); err != nil { + return err + } + + case "Errors": + if err := awsRestjson1_deserializeDocumentAnalysisErrorList(&sv.Errors, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AnalysisName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + case "ResourceStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) + } + sv.ResourceStatus = types.ResourceStatus(jtv) + } + + case "ThemeArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.DashboardArn = ptr.String(jtv) + sv.ThemeArn = ptr.String(jtv) } - case "DashboardId": + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeAnalysisPermissions struct { +} + +func (*awsRestjson1_deserializeOpDescribeAnalysisPermissions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeAnalysisPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeAnalysisPermissions(response, &metadata) + } + output := &DescribeAnalysisPermissionsOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisPermissionsOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeAnalysisPermissionsOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeAnalysisPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeAnalysisPermissionsOutput(v *DescribeAnalysisPermissionsOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeAnalysisPermissionsOutput(v **DescribeAnalysisPermissionsOutput, 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 *DescribeAnalysisPermissionsOutput + if *v == nil { + sv = &DescribeAnalysisPermissionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AnalysisArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.DashboardId = ptr.String(jtv) + sv.AnalysisArn = ptr.String(jtv) } - case "LinkSharingConfiguration": - if err := awsRestjson1_deserializeDocumentLinkSharingConfiguration(&sv.LinkSharingConfiguration, value); err != nil { - return err + case "AnalysisId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.AnalysisId = ptr.String(jtv) } case "Permissions": @@ -12989,14 +12875,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardPermissionsOutput(v **De return nil } -type awsRestjson1_deserializeOpDescribeDashboardSnapshotJob struct { +type awsRestjson1_deserializeOpDescribeAssetBundleExportJob struct { } -func (*awsRestjson1_deserializeOpDescribeDashboardSnapshotJob) ID() string { +func (*awsRestjson1_deserializeOpDescribeAssetBundleExportJob) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeAssetBundleExportJob) 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) @@ -13014,11 +12900,16 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJob) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJob(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeAssetBundleExportJob(response, &metadata) } - output := &DescribeDashboardSnapshotJobOutput{} + output := &DescribeAssetBundleExportJobOutput{} out.Result = output + err = awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleExportJobOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -13037,7 +12928,7 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJob) HandleDeseriali return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeAssetBundleExportJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13051,7 +12942,7 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJob) HandleDeseriali return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeAssetBundleExportJob(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)} @@ -13092,12 +12983,6 @@ func awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJob(response *smith } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -13117,7 +13002,16 @@ func awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJob(response *smith } } -func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobOutput(v **DescribeDashboardSnapshotJobOutput, value interface{}) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleExportJobOutput(v *DescribeAssetBundleExportJobOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeAssetBundleExportJobOutput(v **DescribeAssetBundleExportJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13130,9 +13024,9 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobOutput(v **De return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDashboardSnapshotJobOutput + var sv *DescribeAssetBundleExportJobOutput if *v == nil { - sv = &DescribeDashboardSnapshotJobOutput{} + sv = &DescribeAssetBundleExportJobOutput{} } else { sv = *v } @@ -13148,6 +13042,15 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobOutput(v **De sv.Arn = ptr.String(jtv) } + case "AssetBundleExportJobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.AssetBundleExportJobId = ptr.String(jtv) + } + case "AwsAccountId": if value != nil { jtv, ok := value.(string) @@ -13157,6 +13060,11 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobOutput(v **De sv.AwsAccountId = ptr.String(jtv) } + case "CloudFormationOverridePropertyConfiguration": + if err := awsRestjson1_deserializeDocumentAssetBundleCloudFormationOverridePropertyConfiguration(&sv.CloudFormationOverridePropertyConfiguration, value); err != nil { + return err + } + case "CreatedTime": if value != nil { switch jtv := value.(type) { @@ -13173,78 +13081,104 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobOutput(v **De } } - case "DashboardId": + case "DownloadUrl": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected SensitiveS3Uri to be of type string, got %T instead", value) } - sv.DashboardId = ptr.String(jtv) + sv.DownloadUrl = ptr.String(jtv) } - case "JobStatus": + case "Errors": + if err := awsRestjson1_deserializeDocumentAssetBundleExportJobErrorList(&sv.Errors, value); err != nil { + return err + } + + case "ExportFormat": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SnapshotJobStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected AssetBundleExportFormat to be of type string, got %T instead", value) } - sv.JobStatus = types.SnapshotJobStatus(jtv) + sv.ExportFormat = types.AssetBundleExportFormat(jtv) } - case "LastUpdatedTime": + case "IncludeAllDependencies": if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.LastUpdatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IncludeAllDependencies = jtv + } - default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + case "IncludeFolderMembers": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IncludeFolderMembers to be of type string, got %T instead", value) + } + sv.IncludeFolderMembers = types.IncludeFolderMembers(jtv) + } + case "IncludeFolderMemberships": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } + sv.IncludeFolderMemberships = jtv } - case "RequestId": + case "IncludePermissions": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.IncludePermissions = jtv } - case "SnapshotConfiguration": - if err := awsRestjson1_deserializeDocumentSnapshotConfiguration(&sv.SnapshotConfiguration, value); err != nil { - return err + case "IncludeTags": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IncludeTags = jtv } - case "SnapshotJobId": + case "JobStatus": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected AssetBundleExportJobStatus to be of type string, got %T instead", value) } - sv.SnapshotJobId = ptr.String(jtv) + sv.JobStatus = types.AssetBundleExportJobStatus(jtv) } - case "Status": + case "RequestId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = int32(i64) + sv.RequestId = ptr.String(jtv) } - case "UserConfiguration": - if err := awsRestjson1_deserializeDocumentSnapshotUserConfigurationRedacted(&sv.UserConfiguration, value); err != nil { + case "ResourceArns": + if err := awsRestjson1_deserializeDocumentAssetBundleResourceArns(&sv.ResourceArns, value); err != nil { + return err + } + + case "ValidationStrategy": + if err := awsRestjson1_deserializeDocumentAssetBundleExportJobValidationStrategy(&sv.ValidationStrategy, value); err != nil { + return err + } + + case "Warnings": + if err := awsRestjson1_deserializeDocumentAssetBundleExportJobWarningList(&sv.Warnings, value); err != nil { return err } @@ -13257,14 +13191,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobOutput(v **De return nil } -type awsRestjson1_deserializeOpDescribeDashboardSnapshotJobResult struct { +type awsRestjson1_deserializeOpDescribeAssetBundleImportJob struct { } -func (*awsRestjson1_deserializeOpDescribeDashboardSnapshotJobResult) ID() string { +func (*awsRestjson1_deserializeOpDescribeAssetBundleImportJob) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJobResult) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeAssetBundleImportJob) 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) @@ -13282,12 +13216,12 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJobResult) HandleDes } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJobResult(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeAssetBundleImportJob(response, &metadata) } - output := &DescribeDashboardSnapshotJobResultOutput{} + output := &DescribeAssetBundleImportJobOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeDashboardSnapshotJobResultOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleImportJobOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -13310,7 +13244,7 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJobResult) HandleDes return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobResultOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeAssetBundleImportJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13324,7 +13258,3153 @@ func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJobResult) HandleDes return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJobResult(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeAssetBundleImportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeAssetBundleImportJobOutput(v *DescribeAssetBundleImportJobOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeAssetBundleImportJobOutput(v **DescribeAssetBundleImportJobOutput, 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 *DescribeAssetBundleImportJobOutput + if *v == nil { + sv = &DescribeAssetBundleImportJobOutput{} + } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "AssetBundleImportJobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.AssetBundleImportJobId = ptr.String(jtv) + } + + case "AssetBundleImportSource": + if err := awsRestjson1_deserializeDocumentAssetBundleImportSourceDescription(&sv.AssetBundleImportSource, value); err != nil { + return err + } + + case "AwsAccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) + } + sv.AwsAccountId = ptr.String(jtv) + } + + case "CreatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Errors": + if err := awsRestjson1_deserializeDocumentAssetBundleImportJobErrorList(&sv.Errors, value); err != nil { + return err + } + + case "FailureAction": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssetBundleImportFailureAction to be of type string, got %T instead", value) + } + sv.FailureAction = types.AssetBundleImportFailureAction(jtv) + } + + case "JobStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AssetBundleImportJobStatus to be of type string, got %T instead", value) + } + sv.JobStatus = types.AssetBundleImportJobStatus(jtv) + } + + case "OverrideParameters": + if err := awsRestjson1_deserializeDocumentAssetBundleImportJobOverrideParameters(&sv.OverrideParameters, value); err != nil { + return err + } + + case "OverridePermissions": + if err := awsRestjson1_deserializeDocumentAssetBundleImportJobOverridePermissions(&sv.OverridePermissions, value); err != nil { + return err + } + + case "OverrideTags": + if err := awsRestjson1_deserializeDocumentAssetBundleImportJobOverrideTags(&sv.OverrideTags, value); err != nil { + return err + } + + case "OverrideValidationStrategy": + if err := awsRestjson1_deserializeDocumentAssetBundleImportJobOverrideValidationStrategy(&sv.OverrideValidationStrategy, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + case "RollbackErrors": + if err := awsRestjson1_deserializeDocumentAssetBundleImportJobErrorList(&sv.RollbackErrors, value); err != nil { + return err + } + + case "Warnings": + if err := awsRestjson1_deserializeDocumentAssetBundleImportJobWarningList(&sv.Warnings, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeBrand struct { +} + +func (*awsRestjson1_deserializeOpDescribeBrand) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeBrand) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeBrand(response, &metadata) + } + output := &DescribeBrandOutput{} + 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_deserializeOpDocumentDescribeBrandOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeBrand(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeBrandOutput(v **DescribeBrandOutput, 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 *DescribeBrandOutput + if *v == nil { + sv = &DescribeBrandOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BrandDefinition": + if err := awsRestjson1_deserializeDocumentBrandDefinition(&sv.BrandDefinition, value); err != nil { + return err + } + + case "BrandDetail": + if err := awsRestjson1_deserializeDocumentBrandDetail(&sv.BrandDetail, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeBrandAssignment struct { +} + +func (*awsRestjson1_deserializeOpDescribeBrandAssignment) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeBrandAssignment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeBrandAssignment(response, &metadata) + } + output := &DescribeBrandAssignmentOutput{} + 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_deserializeOpDocumentDescribeBrandAssignmentOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeBrandAssignment(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeBrandAssignmentOutput(v **DescribeBrandAssignmentOutput, 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 *DescribeBrandAssignmentOutput + if *v == nil { + sv = &DescribeBrandAssignmentOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BrandArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.BrandArn = ptr.String(jtv) + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeBrandPublishedVersion struct { +} + +func (*awsRestjson1_deserializeOpDescribeBrandPublishedVersion) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeBrandPublishedVersion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeBrandPublishedVersion(response, &metadata) + } + output := &DescribeBrandPublishedVersionOutput{} + 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_deserializeOpDocumentDescribeBrandPublishedVersionOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeBrandPublishedVersion(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + 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("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeBrandPublishedVersionOutput(v **DescribeBrandPublishedVersionOutput, 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 *DescribeBrandPublishedVersionOutput + if *v == nil { + sv = &DescribeBrandPublishedVersionOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BrandDefinition": + if err := awsRestjson1_deserializeDocumentBrandDefinition(&sv.BrandDefinition, value); err != nil { + return err + } + + case "BrandDetail": + if err := awsRestjson1_deserializeDocumentBrandDetail(&sv.BrandDetail, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeCustomPermissions struct { +} + +func (*awsRestjson1_deserializeOpDescribeCustomPermissions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeCustomPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeCustomPermissions(response, &metadata) + } + output := &DescribeCustomPermissionsOutput{} + 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_deserializeOpDocumentDescribeCustomPermissionsOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeCustomPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeCustomPermissionsOutput(v **DescribeCustomPermissionsOutput, 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 *DescribeCustomPermissionsOutput + if *v == nil { + sv = &DescribeCustomPermissionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CustomPermissions": + if err := awsRestjson1_deserializeDocumentCustomPermissions(&sv.CustomPermissions, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDashboard struct { +} + +func (*awsRestjson1_deserializeOpDescribeDashboard) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDashboard) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboard(response, &metadata) + } + output := &DescribeDashboardOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeDashboardOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeDashboardOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDashboard(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardOutput(v *DescribeDashboardOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeDashboardOutput(v **DescribeDashboardOutput, 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 *DescribeDashboardOutput + if *v == nil { + sv = &DescribeDashboardOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Dashboard": + if err := awsRestjson1_deserializeDocumentDashboard(&sv.Dashboard, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDashboardDefinition struct { +} + +func (*awsRestjson1_deserializeOpDescribeDashboardDefinition) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDashboardDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboardDefinition(response, &metadata) + } + output := &DescribeDashboardDefinitionOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeDashboardDefinitionOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeDashboardDefinitionOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDashboardDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + 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("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardDefinitionOutput(v *DescribeDashboardDefinitionOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeDashboardDefinitionOutput(v **DescribeDashboardDefinitionOutput, 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 *DescribeDashboardDefinitionOutput + if *v == nil { + sv = &DescribeDashboardDefinitionOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DashboardId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.DashboardId = ptr.String(jtv) + } + + case "DashboardPublishOptions": + if err := awsRestjson1_deserializeDocumentDashboardPublishOptions(&sv.DashboardPublishOptions, value); err != nil { + return err + } + + case "Definition": + if err := awsRestjson1_deserializeDocumentDashboardVersionDefinition(&sv.Definition, value); err != nil { + return err + } + + case "Errors": + if err := awsRestjson1_deserializeDocumentDashboardErrorList(&sv.Errors, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DashboardName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + case "ResourceStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) + } + sv.ResourceStatus = types.ResourceStatus(jtv) + } + + case "ThemeArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.ThemeArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDashboardPermissions struct { +} + +func (*awsRestjson1_deserializeOpDescribeDashboardPermissions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDashboardPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboardPermissions(response, &metadata) + } + output := &DescribeDashboardPermissionsOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeDashboardPermissionsOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeDashboardPermissionsOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDashboardPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardPermissionsOutput(v *DescribeDashboardPermissionsOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeDashboardPermissionsOutput(v **DescribeDashboardPermissionsOutput, 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 *DescribeDashboardPermissionsOutput + if *v == nil { + sv = &DescribeDashboardPermissionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DashboardArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.DashboardArn = ptr.String(jtv) + } + + case "DashboardId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.DashboardId = ptr.String(jtv) + } + + case "LinkSharingConfiguration": + if err := awsRestjson1_deserializeDocumentLinkSharingConfiguration(&sv.LinkSharingConfiguration, value); err != nil { + return err + } + + case "Permissions": + if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDashboardSnapshotJob struct { +} + +func (*awsRestjson1_deserializeOpDescribeDashboardSnapshotJob) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJob(response, &metadata) + } + output := &DescribeDashboardSnapshotJobOutput{} + 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_deserializeOpDocumentDescribeDashboardSnapshotJobOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobOutput(v **DescribeDashboardSnapshotJobOutput, 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 *DescribeDashboardSnapshotJobOutput + if *v == nil { + sv = &DescribeDashboardSnapshotJobOutput{} + } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "AwsAccountId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) + } + sv.AwsAccountId = ptr.String(jtv) + } + + case "CreatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "DashboardId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.DashboardId = ptr.String(jtv) + } + + case "JobStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SnapshotJobStatus to be of type string, got %T instead", value) + } + sv.JobStatus = types.SnapshotJobStatus(jtv) + } + + case "LastUpdatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + case "SnapshotConfiguration": + if err := awsRestjson1_deserializeDocumentSnapshotConfiguration(&sv.SnapshotConfiguration, value); err != nil { + return err + } + + case "SnapshotJobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.SnapshotJobId = ptr.String(jtv) + } + + case "Status": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) + } + + case "UserConfiguration": + if err := awsRestjson1_deserializeDocumentSnapshotUserConfigurationRedacted(&sv.UserConfiguration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDashboardSnapshotJobResult struct { +} + +func (*awsRestjson1_deserializeOpDescribeDashboardSnapshotJobResult) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDashboardSnapshotJobResult) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJobResult(response, &metadata) + } + output := &DescribeDashboardSnapshotJobResultOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeDashboardSnapshotJobResultOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeDashboardSnapshotJobResultOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJobResult(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardSnapshotJobResultOutput(v *DescribeDashboardSnapshotJobResultOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobResultOutput(v **DescribeDashboardSnapshotJobResultOutput, 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 *DescribeDashboardSnapshotJobResultOutput + if *v == nil { + sv = &DescribeDashboardSnapshotJobResultOutput{} + } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "CreatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "ErrorInfo": + if err := awsRestjson1_deserializeDocumentSnapshotJobErrorInfo(&sv.ErrorInfo, value); err != nil { + return err + } + + case "JobStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SnapshotJobStatus to be of type string, got %T instead", value) + } + sv.JobStatus = types.SnapshotJobStatus(jtv) + } + + case "LastUpdatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + case "Result": + if err := awsRestjson1_deserializeDocumentSnapshotJobResult(&sv.Result, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDataSet struct { +} + +func (*awsRestjson1_deserializeOpDescribeDataSet) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDataSet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSet(response, &metadata) + } + output := &DescribeDataSetOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSetOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeDataSetOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDataSet(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeDataSetOutput(v *DescribeDataSetOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeDataSetOutput(v **DescribeDataSetOutput, 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 *DescribeDataSetOutput + if *v == nil { + sv = &DescribeDataSetOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataSet": + if err := awsRestjson1_deserializeDocumentDataSet(&sv.DataSet, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDataSetPermissions struct { +} + +func (*awsRestjson1_deserializeOpDescribeDataSetPermissions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDataSetPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSetPermissions(response, &metadata) + } + output := &DescribeDataSetPermissionsOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSetPermissionsOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeDataSetPermissionsOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDataSetPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeDataSetPermissionsOutput(v *DescribeDataSetPermissionsOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeDataSetPermissionsOutput(v **DescribeDataSetPermissionsOutput, 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 *DescribeDataSetPermissionsOutput + if *v == nil { + sv = &DescribeDataSetPermissionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataSetArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.DataSetArn = ptr.String(jtv) + } + + case "DataSetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) + } + sv.DataSetId = ptr.String(jtv) + } + + case "Permissions": + if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDataSetRefreshProperties struct { +} + +func (*awsRestjson1_deserializeOpDescribeDataSetRefreshProperties) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDataSetRefreshProperties) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSetRefreshProperties(response, &metadata) + } + output := &DescribeDataSetRefreshPropertiesOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSetRefreshPropertiesOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeDataSetRefreshPropertiesOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDataSetRefreshProperties(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeDataSetRefreshPropertiesOutput(v *DescribeDataSetRefreshPropertiesOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeDataSetRefreshPropertiesOutput(v **DescribeDataSetRefreshPropertiesOutput, 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 *DescribeDataSetRefreshPropertiesOutput + if *v == nil { + sv = &DescribeDataSetRefreshPropertiesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataSetRefreshProperties": + if err := awsRestjson1_deserializeDocumentDataSetRefreshProperties(&sv.DataSetRefreshProperties, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDataSource struct { +} + +func (*awsRestjson1_deserializeOpDescribeDataSource) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSource(response, &metadata) + } + output := &DescribeDataSourceOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSourceOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeDataSourceOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeDataSourceOutput(v *DescribeDataSourceOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeDataSourceOutput(v **DescribeDataSourceOutput, 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 *DescribeDataSourceOutput + if *v == nil { + sv = &DescribeDataSourceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataSource": + if err := awsRestjson1_deserializeDocumentDataSource(&sv.DataSource, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeDataSourcePermissions struct { +} + +func (*awsRestjson1_deserializeOpDescribeDataSourcePermissions) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDataSourcePermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSourcePermissions(response, &metadata) + } + output := &DescribeDataSourcePermissionsOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSourcePermissionsOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeDataSourcePermissionsOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeDataSourcePermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsDescribeDataSourcePermissionsOutput(v *DescribeDataSourcePermissionsOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeDataSourcePermissionsOutput(v **DescribeDataSourcePermissionsOutput, 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 *DescribeDataSourcePermissionsOutput + if *v == nil { + sv = &DescribeDataSourcePermissionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DataSourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.DataSourceArn = ptr.String(jtv) + } + + case "DataSourceId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) + } + sv.DataSourceId = ptr.String(jtv) + } + + case "Permissions": + if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpDescribeFolder struct { +} + +func (*awsRestjson1_deserializeOpDescribeFolder) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeFolder) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorDescribeFolder(response, &metadata) + } + output := &DescribeFolderOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsDescribeFolderOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentDescribeFolderOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorDescribeFolder(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)} @@ -13374,9 +16454,6 @@ func awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJobResult(response case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -13396,7 +16473,7 @@ func awsRestjson1_deserializeOpErrorDescribeDashboardSnapshotJobResult(response } } -func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardSnapshotJobResultOutput(v *DescribeDashboardSnapshotJobResultOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeFolderOutput(v *DescribeFolderOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -13405,7 +16482,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeDashboardSnapshotJobResultOut return nil } -func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobResultOutput(v **DescribeDashboardSnapshotJobResultOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeFolderOutput(v **DescribeFolderOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13418,84 +16495,29 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobResultOutput( return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDashboardSnapshotJobResultOutput + var sv *DescribeFolderOutput if *v == nil { - sv = &DescribeDashboardSnapshotJobResultOutput{} + sv = &DescribeFolderOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "CreatedTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.CreatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) - - } - } - - case "ErrorInfo": - if err := awsRestjson1_deserializeDocumentSnapshotJobErrorInfo(&sv.ErrorInfo, value); err != nil { + case "Folder": + if err := awsRestjson1_deserializeDocumentFolder(&sv.Folder, value); err != nil { return err } - case "JobStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected SnapshotJobStatus to be of type string, got %T instead", value) - } - sv.JobStatus = types.SnapshotJobStatus(jtv) - } - - case "LastUpdatedTime": - if value != nil { - switch jtv := value.(type) { - case json.Number: - f64, err := jtv.Float64() - if err != nil { - return err - } - sv.LastUpdatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) - - default: - return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) - - } - } - case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } - case "Result": - if err := awsRestjson1_deserializeDocumentSnapshotJobResult(&sv.Result, value); err != nil { - return err - } - default: _, _ = key, value @@ -13505,14 +16527,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDashboardSnapshotJobResultOutput( return nil } -type awsRestjson1_deserializeOpDescribeDataSet struct { +type awsRestjson1_deserializeOpDescribeFolderPermissions struct { } -func (*awsRestjson1_deserializeOpDescribeDataSet) ID() string { +func (*awsRestjson1_deserializeOpDescribeFolderPermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDataSet) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeFolderPermissions) 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) @@ -13530,12 +16552,12 @@ func (m *awsRestjson1_deserializeOpDescribeDataSet) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSet(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeFolderPermissions(response, &metadata) } - output := &DescribeDataSetOutput{} + output := &DescribeFolderPermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSetOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeFolderPermissionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -13558,7 +16580,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSet) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDataSetOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeFolderPermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13572,7 +16594,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSet) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDataSet(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeFolderPermissions(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)} @@ -13619,6 +16641,9 @@ func awsRestjson1_deserializeOpErrorDescribeDataSet(response *smithyhttp.Respons case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) @@ -13628,6 +16653,9 @@ func awsRestjson1_deserializeOpErrorDescribeDataSet(response *smithyhttp.Respons case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -13638,7 +16666,7 @@ func awsRestjson1_deserializeOpErrorDescribeDataSet(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpHttpBindingsDescribeDataSetOutput(v *DescribeDataSetOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeFolderPermissionsOutput(v *DescribeFolderPermissionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -13647,7 +16675,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeDataSetOutput(v *DescribeData return nil } -func awsRestjson1_deserializeOpDocumentDescribeDataSetOutput(v **DescribeDataSetOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeFolderPermissionsOutput(v **DescribeFolderPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13660,17 +16688,44 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSetOutput(v **DescribeDataSet return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDataSetOutput + var sv *DescribeFolderPermissionsOutput if *v == nil { - sv = &DescribeDataSetOutput{} + sv = &DescribeFolderPermissionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSet": - if err := awsRestjson1_deserializeDocumentDataSet(&sv.DataSet, value); err != nil { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "FolderId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RestrictiveResourceId to be of type string, got %T instead", value) + } + sv.FolderId = ptr.String(jtv) + } + + 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 "Permissions": + if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { return err } @@ -13692,14 +16747,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSetOutput(v **DescribeDataSet return nil } -type awsRestjson1_deserializeOpDescribeDataSetPermissions struct { +type awsRestjson1_deserializeOpDescribeFolderResolvedPermissions struct { } -func (*awsRestjson1_deserializeOpDescribeDataSetPermissions) ID() string { +func (*awsRestjson1_deserializeOpDescribeFolderResolvedPermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDataSetPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeFolderResolvedPermissions) 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) @@ -13717,12 +16772,12 @@ func (m *awsRestjson1_deserializeOpDescribeDataSetPermissions) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSetPermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeFolderResolvedPermissions(response, &metadata) } - output := &DescribeDataSetPermissionsOutput{} + output := &DescribeFolderResolvedPermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSetPermissionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeFolderResolvedPermissionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -13745,7 +16800,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSetPermissions) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDataSetPermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeFolderResolvedPermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13759,7 +16814,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSetPermissions) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDataSetPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeFolderResolvedPermissions(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)} @@ -13806,6 +16861,9 @@ func awsRestjson1_deserializeOpErrorDescribeDataSetPermissions(response *smithyh case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) @@ -13815,6 +16873,9 @@ func awsRestjson1_deserializeOpErrorDescribeDataSetPermissions(response *smithyh case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -13825,7 +16886,7 @@ func awsRestjson1_deserializeOpErrorDescribeDataSetPermissions(response *smithyh } } -func awsRestjson1_deserializeOpHttpBindingsDescribeDataSetPermissionsOutput(v *DescribeDataSetPermissionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeFolderResolvedPermissionsOutput(v *DescribeFolderResolvedPermissionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -13834,7 +16895,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeDataSetPermissionsOutput(v *D return nil } -func awsRestjson1_deserializeOpDocumentDescribeDataSetPermissionsOutput(v **DescribeDataSetPermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeFolderResolvedPermissionsOutput(v **DescribeFolderResolvedPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -13847,31 +16908,40 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSetPermissionsOutput(v **Desc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDataSetPermissionsOutput + var sv *DescribeFolderResolvedPermissionsOutput if *v == nil { - sv = &DescribeDataSetPermissionsOutput{} + sv = &DescribeFolderResolvedPermissionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSetArn": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.DataSetArn = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "DataSetId": + case "FolderId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected RestrictiveResourceId to be of type string, got %T instead", value) } - sv.DataSetId = ptr.String(jtv) + sv.FolderId = ptr.String(jtv) + } + + 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 "Permissions": @@ -13897,14 +16967,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSetPermissionsOutput(v **Desc return nil } -type awsRestjson1_deserializeOpDescribeDataSetRefreshProperties struct { +type awsRestjson1_deserializeOpDescribeGroup struct { } -func (*awsRestjson1_deserializeOpDescribeDataSetRefreshProperties) ID() string { +func (*awsRestjson1_deserializeOpDescribeGroup) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDataSetRefreshProperties) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeGroup) 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) @@ -13922,12 +16992,12 @@ func (m *awsRestjson1_deserializeOpDescribeDataSetRefreshProperties) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSetRefreshProperties(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeGroup(response, &metadata) } - output := &DescribeDataSetRefreshPropertiesOutput{} + output := &DescribeGroupOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSetRefreshPropertiesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeGroupOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -13950,7 +17020,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSetRefreshProperties) HandleDeser return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDataSetRefreshPropertiesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -13964,7 +17034,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSetRefreshProperties) HandleDeser return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDataSetRefreshProperties(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeGroup(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)} @@ -14014,15 +17084,15 @@ func awsRestjson1_deserializeOpErrorDescribeDataSetRefreshProperties(response *s case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -14036,7 +17106,7 @@ func awsRestjson1_deserializeOpErrorDescribeDataSetRefreshProperties(response *s } } -func awsRestjson1_deserializeOpHttpBindingsDescribeDataSetRefreshPropertiesOutput(v *DescribeDataSetRefreshPropertiesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeGroupOutput(v *DescribeGroupOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -14045,7 +17115,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeDataSetRefreshPropertiesOutpu return nil } -func awsRestjson1_deserializeOpDocumentDescribeDataSetRefreshPropertiesOutput(v **DescribeDataSetRefreshPropertiesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeGroupOutput(v **DescribeGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14058,17 +17128,17 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSetRefreshPropertiesOutput(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDataSetRefreshPropertiesOutput + var sv *DescribeGroupOutput if *v == nil { - sv = &DescribeDataSetRefreshPropertiesOutput{} + sv = &DescribeGroupOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSetRefreshProperties": - if err := awsRestjson1_deserializeDocumentDataSetRefreshProperties(&sv.DataSetRefreshProperties, value); err != nil { + case "Group": + if err := awsRestjson1_deserializeDocumentGroup(&sv.Group, value); err != nil { return err } @@ -14090,14 +17160,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSetRefreshPropertiesOutput(v return nil } -type awsRestjson1_deserializeOpDescribeDataSource struct { +type awsRestjson1_deserializeOpDescribeGroupMembership struct { } -func (*awsRestjson1_deserializeOpDescribeDataSource) ID() string { +func (*awsRestjson1_deserializeOpDescribeGroupMembership) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDataSource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeGroupMembership) 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) @@ -14115,12 +17185,12 @@ func (m *awsRestjson1_deserializeOpDescribeDataSource) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeGroupMembership(response, &metadata) } - output := &DescribeDataSourceOutput{} + output := &DescribeGroupMembershipOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSourceOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeGroupMembershipOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -14143,7 +17213,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSource) HandleDeserialize(ctx con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDataSourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeGroupMembershipOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14157,7 +17227,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSource) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDataSource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeGroupMembership(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)} @@ -14207,9 +17277,15 @@ func awsRestjson1_deserializeOpErrorDescribeDataSource(response *smithyhttp.Resp case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -14223,7 +17299,7 @@ func awsRestjson1_deserializeOpErrorDescribeDataSource(response *smithyhttp.Resp } } -func awsRestjson1_deserializeOpHttpBindingsDescribeDataSourceOutput(v *DescribeDataSourceOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeGroupMembershipOutput(v *DescribeGroupMembershipOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -14232,7 +17308,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeDataSourceOutput(v *DescribeD return nil } -func awsRestjson1_deserializeOpDocumentDescribeDataSourceOutput(v **DescribeDataSourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeGroupMembershipOutput(v **DescribeGroupMembershipOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14245,17 +17321,17 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSourceOutput(v **DescribeData return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDataSourceOutput + var sv *DescribeGroupMembershipOutput if *v == nil { - sv = &DescribeDataSourceOutput{} + sv = &DescribeGroupMembershipOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSource": - if err := awsRestjson1_deserializeDocumentDataSource(&sv.DataSource, value); err != nil { + case "GroupMember": + if err := awsRestjson1_deserializeDocumentGroupMember(&sv.GroupMember, value); err != nil { return err } @@ -14277,14 +17353,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSourceOutput(v **DescribeData return nil } -type awsRestjson1_deserializeOpDescribeDataSourcePermissions struct { +type awsRestjson1_deserializeOpDescribeIAMPolicyAssignment struct { } -func (*awsRestjson1_deserializeOpDescribeDataSourcePermissions) ID() string { +func (*awsRestjson1_deserializeOpDescribeIAMPolicyAssignment) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeDataSourcePermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeIAMPolicyAssignment) 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) @@ -14302,12 +17378,12 @@ func (m *awsRestjson1_deserializeOpDescribeDataSourcePermissions) HandleDeserial } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeDataSourcePermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeIAMPolicyAssignment(response, &metadata) } - output := &DescribeDataSourcePermissionsOutput{} + output := &DescribeIAMPolicyAssignmentOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeDataSourcePermissionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeIAMPolicyAssignmentOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -14330,7 +17406,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSourcePermissions) HandleDeserial return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeDataSourcePermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeIAMPolicyAssignmentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14344,7 +17420,7 @@ func (m *awsRestjson1_deserializeOpDescribeDataSourcePermissions) HandleDeserial return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeDataSourcePermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeIAMPolicyAssignment(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)} @@ -14391,6 +17467,9 @@ func awsRestjson1_deserializeOpErrorDescribeDataSourcePermissions(response *smit case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) @@ -14410,7 +17489,7 @@ func awsRestjson1_deserializeOpErrorDescribeDataSourcePermissions(response *smit } } -func awsRestjson1_deserializeOpHttpBindingsDescribeDataSourcePermissionsOutput(v *DescribeDataSourcePermissionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeIAMPolicyAssignmentOutput(v *DescribeIAMPolicyAssignmentOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -14419,7 +17498,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeDataSourcePermissionsOutput(v return nil } -func awsRestjson1_deserializeOpDocumentDescribeDataSourcePermissionsOutput(v **DescribeDataSourcePermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeIAMPolicyAssignmentOutput(v **DescribeIAMPolicyAssignmentOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14432,35 +17511,17 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSourcePermissionsOutput(v **D return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeDataSourcePermissionsOutput + var sv *DescribeIAMPolicyAssignmentOutput if *v == nil { - sv = &DescribeDataSourcePermissionsOutput{} + sv = &DescribeIAMPolicyAssignmentOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSourceArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.DataSourceArn = ptr.String(jtv) - } - - case "DataSourceId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceId to be of type string, got %T instead", value) - } - sv.DataSourceId = ptr.String(jtv) - } - - case "Permissions": - if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { + case "IAMPolicyAssignment": + if err := awsRestjson1_deserializeDocumentIAMPolicyAssignment(&sv.IAMPolicyAssignment, value); err != nil { return err } @@ -14482,14 +17543,14 @@ func awsRestjson1_deserializeOpDocumentDescribeDataSourcePermissionsOutput(v **D return nil } -type awsRestjson1_deserializeOpDescribeFolder struct { +type awsRestjson1_deserializeOpDescribeIngestion struct { } -func (*awsRestjson1_deserializeOpDescribeFolder) ID() string { +func (*awsRestjson1_deserializeOpDescribeIngestion) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeFolder) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeIngestion) 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) @@ -14507,12 +17568,12 @@ func (m *awsRestjson1_deserializeOpDescribeFolder) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeFolder(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeIngestion(response, &metadata) } - output := &DescribeFolderOutput{} + output := &DescribeIngestionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeFolderOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeIngestionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -14535,7 +17596,7 @@ func (m *awsRestjson1_deserializeOpDescribeFolder) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeFolderOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeIngestionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14549,7 +17610,7 @@ func (m *awsRestjson1_deserializeOpDescribeFolder) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeFolder(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeIngestion(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)} @@ -14599,15 +17660,15 @@ func awsRestjson1_deserializeOpErrorDescribeFolder(response *smithyhttp.Response case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -14618,7 +17679,7 @@ func awsRestjson1_deserializeOpErrorDescribeFolder(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsDescribeFolderOutput(v *DescribeFolderOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeIngestionOutput(v *DescribeIngestionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -14627,7 +17688,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeFolderOutput(v *DescribeFolde return nil } -func awsRestjson1_deserializeOpDocumentDescribeFolderOutput(v **DescribeFolderOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeIngestionOutput(v **DescribeIngestionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14640,17 +17701,17 @@ func awsRestjson1_deserializeOpDocumentDescribeFolderOutput(v **DescribeFolderOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeFolderOutput + var sv *DescribeIngestionOutput if *v == nil { - sv = &DescribeFolderOutput{} + sv = &DescribeIngestionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Folder": - if err := awsRestjson1_deserializeDocumentFolder(&sv.Folder, value); err != nil { + case "Ingestion": + if err := awsRestjson1_deserializeDocumentIngestion(&sv.Ingestion, value); err != nil { return err } @@ -14672,14 +17733,14 @@ func awsRestjson1_deserializeOpDocumentDescribeFolderOutput(v **DescribeFolderOu return nil } -type awsRestjson1_deserializeOpDescribeFolderPermissions struct { +type awsRestjson1_deserializeOpDescribeIpRestriction struct { } -func (*awsRestjson1_deserializeOpDescribeFolderPermissions) ID() string { +func (*awsRestjson1_deserializeOpDescribeIpRestriction) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeFolderPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeIpRestriction) 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) @@ -14697,12 +17758,12 @@ func (m *awsRestjson1_deserializeOpDescribeFolderPermissions) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeFolderPermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeIpRestriction(response, &metadata) } - output := &DescribeFolderPermissionsOutput{} + output := &DescribeIpRestrictionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeFolderPermissionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeIpRestrictionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -14725,7 +17786,7 @@ func (m *awsRestjson1_deserializeOpDescribeFolderPermissions) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeFolderPermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeIpRestrictionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14739,7 +17800,7 @@ func (m *awsRestjson1_deserializeOpDescribeFolderPermissions) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeFolderPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeIpRestriction(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)} @@ -14786,9 +17847,6 @@ func awsRestjson1_deserializeOpErrorDescribeFolderPermissions(response *smithyht case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) @@ -14798,9 +17856,6 @@ func awsRestjson1_deserializeOpErrorDescribeFolderPermissions(response *smithyht case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -14811,7 +17866,7 @@ func awsRestjson1_deserializeOpErrorDescribeFolderPermissions(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsDescribeFolderPermissionsOutput(v *DescribeFolderPermissionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeIpRestrictionOutput(v *DescribeIpRestrictionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -14820,7 +17875,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeFolderPermissionsOutput(v *De return nil } -func awsRestjson1_deserializeOpDocumentDescribeFolderPermissionsOutput(v **DescribeFolderPermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeIpRestrictionOutput(v **DescribeIpRestrictionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -14833,44 +17888,35 @@ func awsRestjson1_deserializeOpDocumentDescribeFolderPermissionsOutput(v **Descr return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeFolderPermissionsOutput + var sv *DescribeIpRestrictionOutput if *v == nil { - sv = &DescribeFolderPermissionsOutput{} + sv = &DescribeIpRestrictionOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "FolderId": + case "AwsAccountId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected RestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) } - sv.FolderId = ptr.String(jtv) + sv.AwsAccountId = ptr.String(jtv) } - case "NextToken": + case "Enabled": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(bool) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value) } - sv.NextToken = ptr.String(jtv) + sv.Enabled = ptr.Bool(jtv) } - case "Permissions": - if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { + case "IpRestrictionRuleMap": + if err := awsRestjson1_deserializeDocumentIpRestrictionRuleMap(&sv.IpRestrictionRuleMap, value); err != nil { return err } @@ -14883,6 +17929,16 @@ func awsRestjson1_deserializeOpDocumentDescribeFolderPermissionsOutput(v **Descr sv.RequestId = ptr.String(jtv) } + case "VpcEndpointIdRestrictionRuleMap": + if err := awsRestjson1_deserializeDocumentVpcEndpointIdRestrictionRuleMap(&sv.VpcEndpointIdRestrictionRuleMap, value); err != nil { + return err + } + + case "VpcIdRestrictionRuleMap": + if err := awsRestjson1_deserializeDocumentVpcIdRestrictionRuleMap(&sv.VpcIdRestrictionRuleMap, value); err != nil { + return err + } + default: _, _ = key, value @@ -14892,14 +17948,14 @@ func awsRestjson1_deserializeOpDocumentDescribeFolderPermissionsOutput(v **Descr return nil } -type awsRestjson1_deserializeOpDescribeFolderResolvedPermissions struct { +type awsRestjson1_deserializeOpDescribeKeyRegistration struct { } -func (*awsRestjson1_deserializeOpDescribeFolderResolvedPermissions) ID() string { +func (*awsRestjson1_deserializeOpDescribeKeyRegistration) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeFolderResolvedPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeKeyRegistration) 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) @@ -14917,16 +17973,11 @@ func (m *awsRestjson1_deserializeOpDescribeFolderResolvedPermissions) HandleDese } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeFolderResolvedPermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeKeyRegistration(response, &metadata) } - output := &DescribeFolderResolvedPermissionsOutput{} + output := &DescribeKeyRegistrationOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeFolderResolvedPermissionsOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -14945,7 +17996,7 @@ func (m *awsRestjson1_deserializeOpDescribeFolderResolvedPermissions) HandleDese return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeFolderResolvedPermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeKeyRegistrationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -14959,7 +18010,7 @@ func (m *awsRestjson1_deserializeOpDescribeFolderResolvedPermissions) HandleDese return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeFolderResolvedPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeKeyRegistration(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)} @@ -15006,21 +18057,12 @@ func awsRestjson1_deserializeOpErrorDescribeFolderResolvedPermissions(response * case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -15031,16 +18073,7 @@ func awsRestjson1_deserializeOpErrorDescribeFolderResolvedPermissions(response * } } -func awsRestjson1_deserializeOpHttpBindingsDescribeFolderResolvedPermissionsOutput(v *DescribeFolderResolvedPermissionsOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentDescribeFolderResolvedPermissionsOutput(v **DescribeFolderResolvedPermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeKeyRegistrationOutput(v **DescribeKeyRegistrationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15053,54 +18086,49 @@ func awsRestjson1_deserializeOpDocumentDescribeFolderResolvedPermissionsOutput(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeFolderResolvedPermissionsOutput + var sv *DescribeKeyRegistrationOutput if *v == nil { - sv = &DescribeFolderResolvedPermissionsOutput{} + sv = &DescribeKeyRegistrationOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": + case "AwsAccountId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.AwsAccountId = ptr.String(jtv) } - case "FolderId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected RestrictiveResourceId to be of type string, got %T instead", value) - } - sv.FolderId = ptr.String(jtv) + case "KeyRegistration": + if err := awsRestjson1_deserializeDocumentKeyRegistration(&sv.KeyRegistration, value); err != nil { + return err } - case "NextToken": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.NextToken = ptr.String(jtv) - } - - case "Permissions": - if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { - return err + sv.RequestId = ptr.String(jtv) } - case "RequestId": + case "Status": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) } default: @@ -15112,14 +18140,14 @@ func awsRestjson1_deserializeOpDocumentDescribeFolderResolvedPermissionsOutput(v return nil } -type awsRestjson1_deserializeOpDescribeGroup struct { +type awsRestjson1_deserializeOpDescribeNamespace struct { } -func (*awsRestjson1_deserializeOpDescribeGroup) ID() string { +func (*awsRestjson1_deserializeOpDescribeNamespace) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeNamespace) 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) @@ -15137,12 +18165,12 @@ func (m *awsRestjson1_deserializeOpDescribeGroup) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeGroup(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeNamespace(response, &metadata) } - output := &DescribeGroupOutput{} + output := &DescribeNamespaceOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeGroupOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeNamespaceOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -15165,7 +18193,7 @@ func (m *awsRestjson1_deserializeOpDescribeGroup) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeGroupOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeNamespaceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15179,7 +18207,7 @@ func (m *awsRestjson1_deserializeOpDescribeGroup) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeNamespace(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)} @@ -15229,9 +18257,6 @@ func awsRestjson1_deserializeOpErrorDescribeGroup(response *smithyhttp.Response, case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -15251,7 +18276,7 @@ func awsRestjson1_deserializeOpErrorDescribeGroup(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsDescribeGroupOutput(v *DescribeGroupOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeNamespaceOutput(v *DescribeNamespaceOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -15260,7 +18285,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeGroupOutput(v *DescribeGroupO return nil } -func awsRestjson1_deserializeOpDocumentDescribeGroupOutput(v **DescribeGroupOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeNamespaceOutput(v **DescribeNamespaceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15273,17 +18298,17 @@ func awsRestjson1_deserializeOpDocumentDescribeGroupOutput(v **DescribeGroupOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeGroupOutput + var sv *DescribeNamespaceOutput if *v == nil { - sv = &DescribeGroupOutput{} + sv = &DescribeNamespaceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Group": - if err := awsRestjson1_deserializeDocumentGroup(&sv.Group, value); err != nil { + case "Namespace": + if err := awsRestjson1_deserializeDocumentNamespaceInfoV2(&sv.Namespace, value); err != nil { return err } @@ -15305,14 +18330,14 @@ func awsRestjson1_deserializeOpDocumentDescribeGroupOutput(v **DescribeGroupOutp return nil } -type awsRestjson1_deserializeOpDescribeGroupMembership struct { +type awsRestjson1_deserializeOpDescribeQPersonalizationConfiguration struct { } -func (*awsRestjson1_deserializeOpDescribeGroupMembership) ID() string { +func (*awsRestjson1_deserializeOpDescribeQPersonalizationConfiguration) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeGroupMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeQPersonalizationConfiguration) 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) @@ -15330,12 +18355,12 @@ func (m *awsRestjson1_deserializeOpDescribeGroupMembership) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeGroupMembership(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeQPersonalizationConfiguration(response, &metadata) } - output := &DescribeGroupMembershipOutput{} + output := &DescribeQPersonalizationConfigurationOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeGroupMembershipOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeQPersonalizationConfigurationOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -15358,7 +18383,7 @@ func (m *awsRestjson1_deserializeOpDescribeGroupMembership) HandleDeserialize(ct return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeGroupMembershipOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeQPersonalizationConfigurationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15372,7 +18397,7 @@ func (m *awsRestjson1_deserializeOpDescribeGroupMembership) HandleDeserialize(ct return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeGroupMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeQPersonalizationConfiguration(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)} @@ -15416,21 +18441,18 @@ func awsRestjson1_deserializeOpErrorDescribeGroupMembership(response *smithyhttp case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -15444,7 +18466,7 @@ func awsRestjson1_deserializeOpErrorDescribeGroupMembership(response *smithyhttp } } -func awsRestjson1_deserializeOpHttpBindingsDescribeGroupMembershipOutput(v *DescribeGroupMembershipOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeQPersonalizationConfigurationOutput(v *DescribeQPersonalizationConfigurationOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -15453,7 +18475,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeGroupMembershipOutput(v *Desc return nil } -func awsRestjson1_deserializeOpDocumentDescribeGroupMembershipOutput(v **DescribeGroupMembershipOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeQPersonalizationConfigurationOutput(v **DescribeQPersonalizationConfigurationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15466,18 +18488,22 @@ func awsRestjson1_deserializeOpDocumentDescribeGroupMembershipOutput(v **Describ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeGroupMembershipOutput + var sv *DescribeQPersonalizationConfigurationOutput if *v == nil { - sv = &DescribeGroupMembershipOutput{} + sv = &DescribeQPersonalizationConfigurationOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupMember": - if err := awsRestjson1_deserializeDocumentGroupMember(&sv.GroupMember, value); err != nil { - return err + case "PersonalizationMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PersonalizationMode to be of type string, got %T instead", value) + } + sv.PersonalizationMode = types.PersonalizationMode(jtv) } case "RequestId": @@ -15498,14 +18524,14 @@ func awsRestjson1_deserializeOpDocumentDescribeGroupMembershipOutput(v **Describ return nil } -type awsRestjson1_deserializeOpDescribeIAMPolicyAssignment struct { +type awsRestjson1_deserializeOpDescribeRefreshSchedule struct { } -func (*awsRestjson1_deserializeOpDescribeIAMPolicyAssignment) ID() string { +func (*awsRestjson1_deserializeOpDescribeRefreshSchedule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeIAMPolicyAssignment) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeRefreshSchedule) 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) @@ -15523,12 +18549,12 @@ func (m *awsRestjson1_deserializeOpDescribeIAMPolicyAssignment) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeIAMPolicyAssignment(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeRefreshSchedule(response, &metadata) } - output := &DescribeIAMPolicyAssignmentOutput{} + output := &DescribeRefreshScheduleOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeIAMPolicyAssignmentOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeRefreshScheduleOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -15551,7 +18577,7 @@ func (m *awsRestjson1_deserializeOpDescribeIAMPolicyAssignment) HandleDeserializ return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeIAMPolicyAssignmentOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeRefreshScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15565,7 +18591,7 @@ func (m *awsRestjson1_deserializeOpDescribeIAMPolicyAssignment) HandleDeserializ return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeIAMPolicyAssignment(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeRefreshSchedule(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)} @@ -15612,12 +18638,12 @@ func awsRestjson1_deserializeOpErrorDescribeIAMPolicyAssignment(response *smithy case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -15634,7 +18660,7 @@ func awsRestjson1_deserializeOpErrorDescribeIAMPolicyAssignment(response *smithy } } -func awsRestjson1_deserializeOpHttpBindingsDescribeIAMPolicyAssignmentOutput(v *DescribeIAMPolicyAssignmentOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeRefreshScheduleOutput(v *DescribeRefreshScheduleOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -15643,7 +18669,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeIAMPolicyAssignmentOutput(v * return nil } -func awsRestjson1_deserializeOpDocumentDescribeIAMPolicyAssignmentOutput(v **DescribeIAMPolicyAssignmentOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeRefreshScheduleOutput(v **DescribeRefreshScheduleOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15656,17 +18682,26 @@ func awsRestjson1_deserializeOpDocumentDescribeIAMPolicyAssignmentOutput(v **Des return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeIAMPolicyAssignmentOutput + var sv *DescribeRefreshScheduleOutput if *v == nil { - sv = &DescribeIAMPolicyAssignmentOutput{} + sv = &DescribeRefreshScheduleOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "IAMPolicyAssignment": - if err := awsRestjson1_deserializeDocumentIAMPolicyAssignment(&sv.IAMPolicyAssignment, value); err != nil { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "RefreshSchedule": + if err := awsRestjson1_deserializeDocumentRefreshSchedule(&sv.RefreshSchedule, value); err != nil { return err } @@ -15688,14 +18723,14 @@ func awsRestjson1_deserializeOpDocumentDescribeIAMPolicyAssignmentOutput(v **Des return nil } -type awsRestjson1_deserializeOpDescribeIngestion struct { +type awsRestjson1_deserializeOpDescribeRoleCustomPermission struct { } -func (*awsRestjson1_deserializeOpDescribeIngestion) ID() string { +func (*awsRestjson1_deserializeOpDescribeRoleCustomPermission) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeIngestion) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeRoleCustomPermission) 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) @@ -15713,16 +18748,11 @@ func (m *awsRestjson1_deserializeOpDescribeIngestion) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeIngestion(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeRoleCustomPermission(response, &metadata) } - output := &DescribeIngestionOutput{} + output := &DescribeRoleCustomPermissionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeIngestionOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -15741,7 +18771,7 @@ func (m *awsRestjson1_deserializeOpDescribeIngestion) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeIngestionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeRoleCustomPermissionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15755,7 +18785,7 @@ func (m *awsRestjson1_deserializeOpDescribeIngestion) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeIngestion(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeRoleCustomPermission(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)} @@ -15805,12 +18835,15 @@ func awsRestjson1_deserializeOpErrorDescribeIngestion(response *smithyhttp.Respo case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -15824,16 +18857,7 @@ func awsRestjson1_deserializeOpErrorDescribeIngestion(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpHttpBindingsDescribeIngestionOutput(v *DescribeIngestionOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentDescribeIngestionOutput(v **DescribeIngestionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeRoleCustomPermissionOutput(v **DescribeRoleCustomPermissionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -15846,18 +18870,22 @@ func awsRestjson1_deserializeOpDocumentDescribeIngestionOutput(v **DescribeInges return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeIngestionOutput + var sv *DescribeRoleCustomPermissionOutput if *v == nil { - sv = &DescribeIngestionOutput{} + sv = &DescribeRoleCustomPermissionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Ingestion": - if err := awsRestjson1_deserializeDocumentIngestion(&sv.Ingestion, value); err != nil { - return err + case "CustomPermissionsName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoleName to be of type string, got %T instead", value) + } + sv.CustomPermissionsName = ptr.String(jtv) } case "RequestId": @@ -15869,6 +18897,19 @@ func awsRestjson1_deserializeOpDocumentDescribeIngestionOutput(v **DescribeInges sv.RequestId = ptr.String(jtv) } + case "Status": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) + } + default: _, _ = key, value @@ -15878,14 +18919,14 @@ func awsRestjson1_deserializeOpDocumentDescribeIngestionOutput(v **DescribeInges return nil } -type awsRestjson1_deserializeOpDescribeIpRestriction struct { +type awsRestjson1_deserializeOpDescribeTemplate struct { } -func (*awsRestjson1_deserializeOpDescribeIpRestriction) ID() string { +func (*awsRestjson1_deserializeOpDescribeTemplate) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeIpRestriction) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeTemplate) 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) @@ -15903,12 +18944,12 @@ func (m *awsRestjson1_deserializeOpDescribeIpRestriction) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeIpRestriction(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeTemplate(response, &metadata) } - output := &DescribeIpRestrictionOutput{} + output := &DescribeTemplateOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeIpRestrictionOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeTemplateOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -15931,7 +18972,7 @@ func (m *awsRestjson1_deserializeOpDescribeIpRestriction) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeIpRestrictionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeTemplateOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -15945,7 +18986,7 @@ func (m *awsRestjson1_deserializeOpDescribeIpRestriction) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeIpRestriction(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeTemplate(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)} @@ -15989,18 +19030,27 @@ func awsRestjson1_deserializeOpErrorDescribeIpRestriction(response *smithyhttp.R case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -16011,7 +19061,7 @@ func awsRestjson1_deserializeOpErrorDescribeIpRestriction(response *smithyhttp.R } } -func awsRestjson1_deserializeOpHttpBindingsDescribeIpRestrictionOutput(v *DescribeIpRestrictionOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeTemplateOutput(v *DescribeTemplateOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -16020,7 +19070,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeIpRestrictionOutput(v *Descri return nil } -func awsRestjson1_deserializeOpDocumentDescribeIpRestrictionOutput(v **DescribeIpRestrictionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeTemplateOutput(v **DescribeTemplateOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16033,38 +19083,15 @@ func awsRestjson1_deserializeOpDocumentDescribeIpRestrictionOutput(v **DescribeI return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeIpRestrictionOutput + var sv *DescribeTemplateOutput if *v == nil { - sv = &DescribeIpRestrictionOutput{} + sv = &DescribeTemplateOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AwsAccountId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) - } - sv.AwsAccountId = ptr.String(jtv) - } - - case "Enabled": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value) - } - sv.Enabled = ptr.Bool(jtv) - } - - case "IpRestrictionRuleMap": - if err := awsRestjson1_deserializeDocumentIpRestrictionRuleMap(&sv.IpRestrictionRuleMap, value); err != nil { - return err - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -16074,13 +19101,8 @@ func awsRestjson1_deserializeOpDocumentDescribeIpRestrictionOutput(v **DescribeI sv.RequestId = ptr.String(jtv) } - case "VpcEndpointIdRestrictionRuleMap": - if err := awsRestjson1_deserializeDocumentVpcEndpointIdRestrictionRuleMap(&sv.VpcEndpointIdRestrictionRuleMap, value); err != nil { - return err - } - - case "VpcIdRestrictionRuleMap": - if err := awsRestjson1_deserializeDocumentVpcIdRestrictionRuleMap(&sv.VpcIdRestrictionRuleMap, value); err != nil { + case "Template": + if err := awsRestjson1_deserializeDocumentTemplate(&sv.Template, value); err != nil { return err } @@ -16093,14 +19115,14 @@ func awsRestjson1_deserializeOpDocumentDescribeIpRestrictionOutput(v **DescribeI return nil } -type awsRestjson1_deserializeOpDescribeKeyRegistration struct { +type awsRestjson1_deserializeOpDescribeTemplateAlias struct { } -func (*awsRestjson1_deserializeOpDescribeKeyRegistration) ID() string { +func (*awsRestjson1_deserializeOpDescribeTemplateAlias) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeKeyRegistration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeTemplateAlias) 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) @@ -16118,11 +19140,16 @@ func (m *awsRestjson1_deserializeOpDescribeKeyRegistration) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeKeyRegistration(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeTemplateAlias(response, &metadata) } - output := &DescribeKeyRegistrationOutput{} + output := &DescribeTemplateAliasOutput{} out.Result = output + err = awsRestjson1_deserializeOpHttpBindingsDescribeTemplateAliasOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -16141,7 +19168,7 @@ func (m *awsRestjson1_deserializeOpDescribeKeyRegistration) HandleDeserialize(ct return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeKeyRegistrationOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeTemplateAliasOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16155,7 +19182,7 @@ func (m *awsRestjson1_deserializeOpDescribeKeyRegistration) HandleDeserialize(ct return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeKeyRegistration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeTemplateAlias(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)} @@ -16196,18 +19223,18 @@ func awsRestjson1_deserializeOpErrorDescribeKeyRegistration(response *smithyhttp } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -16218,7 +19245,16 @@ func awsRestjson1_deserializeOpErrorDescribeKeyRegistration(response *smithyhttp } } -func awsRestjson1_deserializeOpDocumentDescribeKeyRegistrationOutput(v **DescribeKeyRegistrationOutput, value interface{}) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeTemplateAliasOutput(v *DescribeTemplateAliasOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeTemplateAliasOutput(v **DescribeTemplateAliasOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16231,49 +19267,27 @@ func awsRestjson1_deserializeOpDocumentDescribeKeyRegistrationOutput(v **Describ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeKeyRegistrationOutput + var sv *DescribeTemplateAliasOutput if *v == nil { - sv = &DescribeKeyRegistrationOutput{} + sv = &DescribeTemplateAliasOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AwsAccountId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) - } - sv.AwsAccountId = ptr.String(jtv) - } - - case "KeyRegistration": - if err := awsRestjson1_deserializeDocumentKeyRegistration(&sv.KeyRegistration, value); err != nil { - return err - } - case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } - case "Status": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Status = int32(i64) + case "TemplateAlias": + if err := awsRestjson1_deserializeDocumentTemplateAlias(&sv.TemplateAlias, value); err != nil { + return err } default: @@ -16285,14 +19299,14 @@ func awsRestjson1_deserializeOpDocumentDescribeKeyRegistrationOutput(v **Describ return nil } -type awsRestjson1_deserializeOpDescribeNamespace struct { +type awsRestjson1_deserializeOpDescribeTemplateDefinition struct { } -func (*awsRestjson1_deserializeOpDescribeNamespace) ID() string { +func (*awsRestjson1_deserializeOpDescribeTemplateDefinition) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeNamespace) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeTemplateDefinition) 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) @@ -16310,12 +19324,12 @@ func (m *awsRestjson1_deserializeOpDescribeNamespace) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeNamespace(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeTemplateDefinition(response, &metadata) } - output := &DescribeNamespaceOutput{} + output := &DescribeTemplateDefinitionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeNamespaceOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeTemplateDefinitionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -16338,7 +19352,7 @@ func (m *awsRestjson1_deserializeOpDescribeNamespace) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeNamespaceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeTemplateDefinitionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16352,7 +19366,7 @@ func (m *awsRestjson1_deserializeOpDescribeNamespace) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeNamespace(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeTemplateDefinition(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)} @@ -16396,21 +19410,27 @@ func awsRestjson1_deserializeOpErrorDescribeNamespace(response *smithyhttp.Respo case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -16421,7 +19441,7 @@ func awsRestjson1_deserializeOpErrorDescribeNamespace(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpHttpBindingsDescribeNamespaceOutput(v *DescribeNamespaceOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeTemplateDefinitionOutput(v *DescribeTemplateDefinitionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -16430,7 +19450,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeNamespaceOutput(v *DescribeNa return nil } -func awsRestjson1_deserializeOpDocumentDescribeNamespaceOutput(v **DescribeNamespaceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeTemplateDefinitionOutput(v **DescribeTemplateDefinitionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16443,20 +19463,34 @@ func awsRestjson1_deserializeOpDocumentDescribeNamespaceOutput(v **DescribeNames return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeNamespaceOutput + var sv *DescribeTemplateDefinitionOutput if *v == nil { - sv = &DescribeNamespaceOutput{} + sv = &DescribeTemplateDefinitionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Namespace": - if err := awsRestjson1_deserializeDocumentNamespaceInfoV2(&sv.Namespace, value); err != nil { + case "Definition": + if err := awsRestjson1_deserializeDocumentTemplateVersionDefinition(&sv.Definition, value); err != nil { + return err + } + + case "Errors": + if err := awsRestjson1_deserializeDocumentTemplateErrorList(&sv.Errors, value); err != nil { return err } + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TemplateName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -16466,6 +19500,33 @@ func awsRestjson1_deserializeOpDocumentDescribeNamespaceOutput(v **DescribeNames sv.RequestId = ptr.String(jtv) } + case "ResourceStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) + } + sv.ResourceStatus = types.ResourceStatus(jtv) + } + + case "TemplateId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.TemplateId = ptr.String(jtv) + } + + case "ThemeArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.ThemeArn = ptr.String(jtv) + } + default: _, _ = key, value @@ -16475,14 +19536,14 @@ func awsRestjson1_deserializeOpDocumentDescribeNamespaceOutput(v **DescribeNames return nil } -type awsRestjson1_deserializeOpDescribeQPersonalizationConfiguration struct { +type awsRestjson1_deserializeOpDescribeTemplatePermissions struct { } -func (*awsRestjson1_deserializeOpDescribeQPersonalizationConfiguration) ID() string { +func (*awsRestjson1_deserializeOpDescribeTemplatePermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeQPersonalizationConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeTemplatePermissions) 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) @@ -16500,12 +19561,12 @@ func (m *awsRestjson1_deserializeOpDescribeQPersonalizationConfiguration) Handle } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeQPersonalizationConfiguration(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeTemplatePermissions(response, &metadata) } - output := &DescribeQPersonalizationConfigurationOutput{} + output := &DescribeTemplatePermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeQPersonalizationConfigurationOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeTemplatePermissionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -16528,7 +19589,7 @@ func (m *awsRestjson1_deserializeOpDescribeQPersonalizationConfiguration) Handle return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeQPersonalizationConfigurationOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeTemplatePermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16542,7 +19603,7 @@ func (m *awsRestjson1_deserializeOpDescribeQPersonalizationConfiguration) Handle return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeQPersonalizationConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeTemplatePermissions(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)} @@ -16583,9 +19644,6 @@ func awsRestjson1_deserializeOpErrorDescribeQPersonalizationConfiguration(respon } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) @@ -16601,6 +19659,9 @@ func awsRestjson1_deserializeOpErrorDescribeQPersonalizationConfiguration(respon case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -16611,7 +19672,7 @@ func awsRestjson1_deserializeOpErrorDescribeQPersonalizationConfiguration(respon } } -func awsRestjson1_deserializeOpHttpBindingsDescribeQPersonalizationConfigurationOutput(v *DescribeQPersonalizationConfigurationOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeTemplatePermissionsOutput(v *DescribeTemplatePermissionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -16620,7 +19681,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeQPersonalizationConfiguration return nil } -func awsRestjson1_deserializeOpDocumentDescribeQPersonalizationConfigurationOutput(v **DescribeQPersonalizationConfigurationOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeTemplatePermissionsOutput(v **DescribeTemplatePermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16633,31 +19694,45 @@ func awsRestjson1_deserializeOpDocumentDescribeQPersonalizationConfigurationOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeQPersonalizationConfigurationOutput + var sv *DescribeTemplatePermissionsOutput if *v == nil { - sv = &DescribeQPersonalizationConfigurationOutput{} + sv = &DescribeTemplatePermissionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "PersonalizationMode": + case "Permissions": + if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { + return err + } + + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PersonalizationMode to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.PersonalizationMode = types.PersonalizationMode(jtv) + sv.RequestId = ptr.String(jtv) } - case "RequestId": + case "TemplateArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.TemplateArn = ptr.String(jtv) + } + + case "TemplateId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.TemplateId = ptr.String(jtv) } default: @@ -16669,14 +19744,14 @@ func awsRestjson1_deserializeOpDocumentDescribeQPersonalizationConfigurationOutp return nil } -type awsRestjson1_deserializeOpDescribeRefreshSchedule struct { +type awsRestjson1_deserializeOpDescribeTheme struct { } -func (*awsRestjson1_deserializeOpDescribeRefreshSchedule) ID() string { +func (*awsRestjson1_deserializeOpDescribeTheme) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeRefreshSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeTheme) 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) @@ -16694,12 +19769,12 @@ func (m *awsRestjson1_deserializeOpDescribeRefreshSchedule) HandleDeserialize(ct } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeRefreshSchedule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeTheme(response, &metadata) } - output := &DescribeRefreshScheduleOutput{} + output := &DescribeThemeOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeRefreshScheduleOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeThemeOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -16722,7 +19797,7 @@ func (m *awsRestjson1_deserializeOpDescribeRefreshSchedule) HandleDeserialize(ct return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeRefreshScheduleOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeThemeOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16736,7 +19811,7 @@ func (m *awsRestjson1_deserializeOpDescribeRefreshSchedule) HandleDeserialize(ct return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeRefreshSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeTheme(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)} @@ -16786,8 +19861,8 @@ func awsRestjson1_deserializeOpErrorDescribeRefreshSchedule(response *smithyhttp case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -16795,6 +19870,9 @@ func awsRestjson1_deserializeOpErrorDescribeRefreshSchedule(response *smithyhttp case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -16805,7 +19883,7 @@ func awsRestjson1_deserializeOpErrorDescribeRefreshSchedule(response *smithyhttp } } -func awsRestjson1_deserializeOpHttpBindingsDescribeRefreshScheduleOutput(v *DescribeRefreshScheduleOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeThemeOutput(v *DescribeThemeOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -16814,7 +19892,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeRefreshScheduleOutput(v *Desc return nil } -func awsRestjson1_deserializeOpDocumentDescribeRefreshScheduleOutput(v **DescribeRefreshScheduleOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeThemeOutput(v **DescribeThemeOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -16827,29 +19905,15 @@ func awsRestjson1_deserializeOpDocumentDescribeRefreshScheduleOutput(v **Describ return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeRefreshScheduleOutput + var sv *DescribeThemeOutput if *v == nil { - sv = &DescribeRefreshScheduleOutput{} + sv = &DescribeThemeOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "RefreshSchedule": - if err := awsRestjson1_deserializeDocumentRefreshSchedule(&sv.RefreshSchedule, value); err != nil { - return err - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -16859,6 +19923,11 @@ func awsRestjson1_deserializeOpDocumentDescribeRefreshScheduleOutput(v **Describ sv.RequestId = ptr.String(jtv) } + case "Theme": + if err := awsRestjson1_deserializeDocumentTheme(&sv.Theme, value); err != nil { + return err + } + default: _, _ = key, value @@ -16868,14 +19937,14 @@ func awsRestjson1_deserializeOpDocumentDescribeRefreshScheduleOutput(v **Describ return nil } -type awsRestjson1_deserializeOpDescribeRoleCustomPermission struct { +type awsRestjson1_deserializeOpDescribeThemeAlias struct { } -func (*awsRestjson1_deserializeOpDescribeRoleCustomPermission) ID() string { +func (*awsRestjson1_deserializeOpDescribeThemeAlias) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeRoleCustomPermission) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeThemeAlias) 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) @@ -16893,11 +19962,16 @@ func (m *awsRestjson1_deserializeOpDescribeRoleCustomPermission) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeRoleCustomPermission(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeThemeAlias(response, &metadata) } - output := &DescribeRoleCustomPermissionOutput{} + output := &DescribeThemeAliasOutput{} out.Result = output + err = awsRestjson1_deserializeOpHttpBindingsDescribeThemeAliasOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -16916,7 +19990,7 @@ func (m *awsRestjson1_deserializeOpDescribeRoleCustomPermission) HandleDeseriali return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeRoleCustomPermissionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeThemeAliasOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -16930,7 +20004,7 @@ func (m *awsRestjson1_deserializeOpDescribeRoleCustomPermission) HandleDeseriali return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeRoleCustomPermission(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeThemeAlias(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)} @@ -16971,8 +20045,8 @@ func awsRestjson1_deserializeOpErrorDescribeRoleCustomPermission(response *smith } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -16980,18 +20054,15 @@ func awsRestjson1_deserializeOpErrorDescribeRoleCustomPermission(response *smith case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -17002,7 +20073,16 @@ func awsRestjson1_deserializeOpErrorDescribeRoleCustomPermission(response *smith } } -func awsRestjson1_deserializeOpDocumentDescribeRoleCustomPermissionOutput(v **DescribeRoleCustomPermissionOutput, value interface{}) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeThemeAliasOutput(v *DescribeThemeAliasOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentDescribeThemeAliasOutput(v **DescribeThemeAliasOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17015,24 +20095,15 @@ func awsRestjson1_deserializeOpDocumentDescribeRoleCustomPermissionOutput(v **De return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeRoleCustomPermissionOutput + var sv *DescribeThemeAliasOutput if *v == nil { - sv = &DescribeRoleCustomPermissionOutput{} + sv = &DescribeThemeAliasOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "CustomPermissionsName": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected RoleName to be of type string, got %T instead", value) - } - sv.CustomPermissionsName = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -17042,17 +20113,9 @@ func awsRestjson1_deserializeOpDocumentDescribeRoleCustomPermissionOutput(v **De sv.RequestId = ptr.String(jtv) } - case "Status": - if value != nil { - jtv, ok := value.(json.Number) - if !ok { - return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err - } - sv.Status = int32(i64) + case "ThemeAlias": + if err := awsRestjson1_deserializeDocumentThemeAlias(&sv.ThemeAlias, value); err != nil { + return err } default: @@ -17064,14 +20127,14 @@ func awsRestjson1_deserializeOpDocumentDescribeRoleCustomPermissionOutput(v **De return nil } -type awsRestjson1_deserializeOpDescribeTemplate struct { +type awsRestjson1_deserializeOpDescribeThemePermissions struct { } -func (*awsRestjson1_deserializeOpDescribeTemplate) ID() string { +func (*awsRestjson1_deserializeOpDescribeThemePermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeTemplate) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeThemePermissions) 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) @@ -17089,12 +20152,12 @@ func (m *awsRestjson1_deserializeOpDescribeTemplate) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeTemplate(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeThemePermissions(response, &metadata) } - output := &DescribeTemplateOutput{} + output := &DescribeThemePermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeTemplateOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeThemePermissionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -17117,7 +20180,7 @@ func (m *awsRestjson1_deserializeOpDescribeTemplate) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeTemplateOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeThemePermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17131,7 +20194,7 @@ func (m *awsRestjson1_deserializeOpDescribeTemplate) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeTemplate(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeThemePermissions(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)} @@ -17175,18 +20238,12 @@ func awsRestjson1_deserializeOpErrorDescribeTemplate(response *smithyhttp.Respon case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -17206,7 +20263,7 @@ func awsRestjson1_deserializeOpErrorDescribeTemplate(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpHttpBindingsDescribeTemplateOutput(v *DescribeTemplateOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeThemePermissionsOutput(v *DescribeThemePermissionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -17215,7 +20272,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeTemplateOutput(v *DescribeTem return nil } -func awsRestjson1_deserializeOpDocumentDescribeTemplateOutput(v **DescribeTemplateOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeThemePermissionsOutput(v **DescribeThemePermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17228,15 +20285,20 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplateOutput(v **DescribeTempla return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeTemplateOutput + var sv *DescribeThemePermissionsOutput if *v == nil { - sv = &DescribeTemplateOutput{} + sv = &DescribeThemePermissionsOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "Permissions": + if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { + return err + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -17246,9 +20308,22 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplateOutput(v **DescribeTempla sv.RequestId = ptr.String(jtv) } - case "Template": - if err := awsRestjson1_deserializeDocumentTemplate(&sv.Template, value); err != nil { - return err + case "ThemeArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.ThemeArn = ptr.String(jtv) + } + + case "ThemeId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.ThemeId = ptr.String(jtv) } default: @@ -17260,14 +20335,14 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplateOutput(v **DescribeTempla return nil } -type awsRestjson1_deserializeOpDescribeTemplateAlias struct { +type awsRestjson1_deserializeOpDescribeTopic struct { } -func (*awsRestjson1_deserializeOpDescribeTemplateAlias) ID() string { +func (*awsRestjson1_deserializeOpDescribeTopic) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeTemplateAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeTopic) 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) @@ -17285,12 +20360,12 @@ func (m *awsRestjson1_deserializeOpDescribeTemplateAlias) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeTemplateAlias(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeTopic(response, &metadata) } - output := &DescribeTemplateAliasOutput{} + output := &DescribeTopicOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeTemplateAliasOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeTopicOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -17313,7 +20388,7 @@ func (m *awsRestjson1_deserializeOpDescribeTemplateAlias) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeTemplateAliasOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeTopicOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17327,7 +20402,7 @@ func (m *awsRestjson1_deserializeOpDescribeTemplateAlias) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeTemplateAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeTopic(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)} @@ -17368,18 +20443,21 @@ func awsRestjson1_deserializeOpErrorDescribeTemplateAlias(response *smithyhttp.R } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -17390,7 +20468,7 @@ func awsRestjson1_deserializeOpErrorDescribeTemplateAlias(response *smithyhttp.R } } -func awsRestjson1_deserializeOpHttpBindingsDescribeTemplateAliasOutput(v *DescribeTemplateAliasOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeTopicOutput(v *DescribeTopicOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -17399,7 +20477,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeTemplateAliasOutput(v *Descri return nil } -func awsRestjson1_deserializeOpDocumentDescribeTemplateAliasOutput(v **DescribeTemplateAliasOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeTopicOutput(v **DescribeTopicOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17412,15 +20490,24 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplateAliasOutput(v **DescribeT return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeTemplateAliasOutput + var sv *DescribeTopicOutput if *v == nil { - sv = &DescribeTemplateAliasOutput{} + sv = &DescribeTopicOutput{} } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -17430,11 +20517,20 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplateAliasOutput(v **DescribeT sv.RequestId = ptr.String(jtv) } - case "TemplateAlias": - if err := awsRestjson1_deserializeDocumentTemplateAlias(&sv.TemplateAlias, value); err != nil { + case "Topic": + if err := awsRestjson1_deserializeDocumentTopicDetails(&sv.Topic, value); err != nil { return err } + case "TopicId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + } + sv.TopicId = ptr.String(jtv) + } + default: _, _ = key, value @@ -17444,14 +20540,14 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplateAliasOutput(v **DescribeT return nil } -type awsRestjson1_deserializeOpDescribeTemplateDefinition struct { +type awsRestjson1_deserializeOpDescribeTopicPermissions struct { } -func (*awsRestjson1_deserializeOpDescribeTemplateDefinition) ID() string { +func (*awsRestjson1_deserializeOpDescribeTopicPermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeTemplateDefinition) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeTopicPermissions) 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) @@ -17469,12 +20565,12 @@ func (m *awsRestjson1_deserializeOpDescribeTemplateDefinition) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeTemplateDefinition(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeTopicPermissions(response, &metadata) } - output := &DescribeTemplateDefinitionOutput{} + output := &DescribeTopicPermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeTemplateDefinitionOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeTopicPermissionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -17497,7 +20593,7 @@ func (m *awsRestjson1_deserializeOpDescribeTemplateDefinition) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeTemplateDefinitionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeTopicPermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17511,7 +20607,7 @@ func (m *awsRestjson1_deserializeOpDescribeTemplateDefinition) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeTemplateDefinition(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeTopicPermissions(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)} @@ -17555,27 +20651,18 @@ func awsRestjson1_deserializeOpErrorDescribeTemplateDefinition(response *smithyh case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -17586,7 +20673,7 @@ func awsRestjson1_deserializeOpErrorDescribeTemplateDefinition(response *smithyh } } -func awsRestjson1_deserializeOpHttpBindingsDescribeTemplateDefinitionOutput(v *DescribeTemplateDefinitionOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeTopicPermissionsOutput(v *DescribeTopicPermissionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -17595,7 +20682,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeTemplateDefinitionOutput(v *D return nil } -func awsRestjson1_deserializeOpDocumentDescribeTemplateDefinitionOutput(v **DescribeTemplateDefinitionOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeTopicPermissionsOutput(v **DescribeTopicPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17608,34 +20695,20 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplateDefinitionOutput(v **Desc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeTemplateDefinitionOutput + var sv *DescribeTopicPermissionsOutput if *v == nil { - sv = &DescribeTemplateDefinitionOutput{} + sv = &DescribeTopicPermissionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Definition": - if err := awsRestjson1_deserializeDocumentTemplateVersionDefinition(&sv.Definition, value); err != nil { - return err - } - - case "Errors": - if err := awsRestjson1_deserializeDocumentTemplateErrorList(&sv.Errors, value); err != nil { + case "Permissions": + if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { return err } - case "Name": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TemplateName to be of type string, got %T instead", value) - } - sv.Name = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -17645,31 +20718,22 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplateDefinitionOutput(v **Desc sv.RequestId = ptr.String(jtv) } - case "ResourceStatus": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) - } - sv.ResourceStatus = types.ResourceStatus(jtv) - } - - case "TemplateId": + case "TopicArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.TemplateId = ptr.String(jtv) + sv.TopicArn = ptr.String(jtv) } - case "ThemeArn": + case "TopicId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) } - sv.ThemeArn = ptr.String(jtv) + sv.TopicId = ptr.String(jtv) } default: @@ -17681,14 +20745,14 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplateDefinitionOutput(v **Desc return nil } -type awsRestjson1_deserializeOpDescribeTemplatePermissions struct { +type awsRestjson1_deserializeOpDescribeTopicRefresh struct { } -func (*awsRestjson1_deserializeOpDescribeTemplatePermissions) ID() string { +func (*awsRestjson1_deserializeOpDescribeTopicRefresh) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeTemplatePermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeTopicRefresh) 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) @@ -17706,12 +20770,12 @@ func (m *awsRestjson1_deserializeOpDescribeTemplatePermissions) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeTemplatePermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeTopicRefresh(response, &metadata) } - output := &DescribeTemplatePermissionsOutput{} + output := &DescribeTopicRefreshOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeTemplatePermissionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -17734,7 +20798,7 @@ func (m *awsRestjson1_deserializeOpDescribeTemplatePermissions) HandleDeserializ return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeTemplatePermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeTopicRefreshOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17748,7 +20812,7 @@ func (m *awsRestjson1_deserializeOpDescribeTemplatePermissions) HandleDeserializ return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeTemplatePermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeTopicRefresh(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)} @@ -17789,8 +20853,8 @@ func awsRestjson1_deserializeOpErrorDescribeTemplatePermissions(response *smithy } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -17804,9 +20868,6 @@ func awsRestjson1_deserializeOpErrorDescribeTemplatePermissions(response *smithy case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -17817,7 +20878,7 @@ func awsRestjson1_deserializeOpErrorDescribeTemplatePermissions(response *smithy } } -func awsRestjson1_deserializeOpHttpBindingsDescribeTemplatePermissionsOutput(v *DescribeTemplatePermissionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshOutput(v *DescribeTopicRefreshOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -17826,7 +20887,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeTemplatePermissionsOutput(v * return nil } -func awsRestjson1_deserializeOpDocumentDescribeTemplatePermissionsOutput(v **DescribeTemplatePermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeTopicRefreshOutput(v **DescribeTopicRefreshOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -17839,17 +20900,17 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplatePermissionsOutput(v **Des return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeTemplatePermissionsOutput + var sv *DescribeTopicRefreshOutput if *v == nil { - sv = &DescribeTemplatePermissionsOutput{} + sv = &DescribeTopicRefreshOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Permissions": - if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { + case "RefreshDetails": + if err := awsRestjson1_deserializeDocumentTopicRefreshDetails(&sv.RefreshDetails, value); err != nil { return err } @@ -17862,24 +20923,6 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplatePermissionsOutput(v **Des sv.RequestId = ptr.String(jtv) } - case "TemplateArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.TemplateArn = ptr.String(jtv) - } - - case "TemplateId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.TemplateId = ptr.String(jtv) - } - default: _, _ = key, value @@ -17889,14 +20932,14 @@ func awsRestjson1_deserializeOpDocumentDescribeTemplatePermissionsOutput(v **Des return nil } -type awsRestjson1_deserializeOpDescribeTheme struct { +type awsRestjson1_deserializeOpDescribeTopicRefreshSchedule struct { } -func (*awsRestjson1_deserializeOpDescribeTheme) ID() string { +func (*awsRestjson1_deserializeOpDescribeTopicRefreshSchedule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeTheme) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeTopicRefreshSchedule) 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) @@ -17914,12 +20957,12 @@ func (m *awsRestjson1_deserializeOpDescribeTheme) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeTheme(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeTopicRefreshSchedule(response, &metadata) } - output := &DescribeThemeOutput{} + output := &DescribeTopicRefreshScheduleOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeThemeOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshScheduleOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -17942,7 +20985,7 @@ func (m *awsRestjson1_deserializeOpDescribeTheme) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeThemeOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeTopicRefreshScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -17956,7 +20999,7 @@ func (m *awsRestjson1_deserializeOpDescribeTheme) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeTheme(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeTopicRefreshSchedule(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)} @@ -18000,12 +21043,18 @@ func awsRestjson1_deserializeOpErrorDescribeTheme(response *smithyhttp.Response, case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) @@ -18015,9 +21064,6 @@ func awsRestjson1_deserializeOpErrorDescribeTheme(response *smithyhttp.Response, case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -18028,7 +21074,7 @@ func awsRestjson1_deserializeOpErrorDescribeTheme(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsDescribeThemeOutput(v *DescribeThemeOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshScheduleOutput(v *DescribeTopicRefreshScheduleOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -18037,7 +21083,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeThemeOutput(v *DescribeThemeO return nil } -func awsRestjson1_deserializeOpDocumentDescribeThemeOutput(v **DescribeThemeOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeTopicRefreshScheduleOutput(v **DescribeTopicRefreshScheduleOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18050,15 +21096,29 @@ func awsRestjson1_deserializeOpDocumentDescribeThemeOutput(v **DescribeThemeOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeThemeOutput + var sv *DescribeTopicRefreshScheduleOutput if *v == nil { - sv = &DescribeThemeOutput{} + sv = &DescribeTopicRefreshScheduleOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "DatasetArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.DatasetArn = ptr.String(jtv) + } + + case "RefreshSchedule": + if err := awsRestjson1_deserializeDocumentTopicRefreshSchedule(&sv.RefreshSchedule, value); err != nil { + return err + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -18068,9 +21128,22 @@ func awsRestjson1_deserializeOpDocumentDescribeThemeOutput(v **DescribeThemeOutp sv.RequestId = ptr.String(jtv) } - case "Theme": - if err := awsRestjson1_deserializeDocumentTheme(&sv.Theme, value); err != nil { - return err + case "TopicArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.TopicArn = ptr.String(jtv) + } + + case "TopicId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + } + sv.TopicId = ptr.String(jtv) } default: @@ -18082,14 +21155,14 @@ func awsRestjson1_deserializeOpDocumentDescribeThemeOutput(v **DescribeThemeOutp return nil } -type awsRestjson1_deserializeOpDescribeThemeAlias struct { +type awsRestjson1_deserializeOpDescribeUser struct { } -func (*awsRestjson1_deserializeOpDescribeThemeAlias) ID() string { +func (*awsRestjson1_deserializeOpDescribeUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeThemeAlias) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeUser) 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) @@ -18107,12 +21180,12 @@ func (m *awsRestjson1_deserializeOpDescribeThemeAlias) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeThemeAlias(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeUser(response, &metadata) } - output := &DescribeThemeAliasOutput{} + output := &DescribeUserOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeThemeAliasOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsDescribeUserOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -18135,7 +21208,7 @@ func (m *awsRestjson1_deserializeOpDescribeThemeAlias) HandleDeserialize(ctx con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeThemeAliasOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18149,7 +21222,7 @@ func (m *awsRestjson1_deserializeOpDescribeThemeAlias) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeThemeAlias(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeUser(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)} @@ -18190,8 +21263,8 @@ func awsRestjson1_deserializeOpErrorDescribeThemeAlias(response *smithyhttp.Resp } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -18199,15 +21272,18 @@ func awsRestjson1_deserializeOpErrorDescribeThemeAlias(response *smithyhttp.Resp case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -18218,7 +21294,7 @@ func awsRestjson1_deserializeOpErrorDescribeThemeAlias(response *smithyhttp.Resp } } -func awsRestjson1_deserializeOpHttpBindingsDescribeThemeAliasOutput(v *DescribeThemeAliasOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsDescribeUserOutput(v *DescribeUserOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -18227,7 +21303,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeThemeAliasOutput(v *DescribeT return nil } -func awsRestjson1_deserializeOpDocumentDescribeThemeAliasOutput(v **DescribeThemeAliasOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeUserOutput(v **DescribeUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18240,9 +21316,9 @@ func awsRestjson1_deserializeOpDocumentDescribeThemeAliasOutput(v **DescribeThem return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeThemeAliasOutput + var sv *DescribeUserOutput if *v == nil { - sv = &DescribeThemeAliasOutput{} + sv = &DescribeUserOutput{} } else { sv = *v } @@ -18258,8 +21334,8 @@ func awsRestjson1_deserializeOpDocumentDescribeThemeAliasOutput(v **DescribeThem sv.RequestId = ptr.String(jtv) } - case "ThemeAlias": - if err := awsRestjson1_deserializeDocumentThemeAlias(&sv.ThemeAlias, value); err != nil { + case "User": + if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil { return err } @@ -18272,14 +21348,14 @@ func awsRestjson1_deserializeOpDocumentDescribeThemeAliasOutput(v **DescribeThem return nil } -type awsRestjson1_deserializeOpDescribeThemePermissions struct { +type awsRestjson1_deserializeOpDescribeVPCConnection struct { } -func (*awsRestjson1_deserializeOpDescribeThemePermissions) ID() string { +func (*awsRestjson1_deserializeOpDescribeVPCConnection) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeThemePermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDescribeVPCConnection) 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) @@ -18297,16 +21373,11 @@ func (m *awsRestjson1_deserializeOpDescribeThemePermissions) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeThemePermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDescribeVPCConnection(response, &metadata) } - output := &DescribeThemePermissionsOutput{} + output := &DescribeVPCConnectionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeThemePermissionsOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -18325,7 +21396,7 @@ func (m *awsRestjson1_deserializeOpDescribeThemePermissions) HandleDeserialize(c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeThemePermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDescribeVPCConnectionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18339,7 +21410,7 @@ func (m *awsRestjson1_deserializeOpDescribeThemePermissions) HandleDeserialize(c return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeThemePermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDescribeVPCConnection(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)} @@ -18408,16 +21479,7 @@ func awsRestjson1_deserializeOpErrorDescribeThemePermissions(response *smithyhtt } } -func awsRestjson1_deserializeOpHttpBindingsDescribeThemePermissionsOutput(v *DescribeThemePermissionsOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentDescribeThemePermissionsOutput(v **DescribeThemePermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDescribeVPCConnectionOutput(v **DescribeVPCConnectionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18430,20 +21492,15 @@ func awsRestjson1_deserializeOpDocumentDescribeThemePermissionsOutput(v **Descri return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeThemePermissionsOutput + var sv *DescribeVPCConnectionOutput if *v == nil { - sv = &DescribeThemePermissionsOutput{} + sv = &DescribeVPCConnectionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Permissions": - if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { - return err - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -18453,22 +21510,22 @@ func awsRestjson1_deserializeOpDocumentDescribeThemePermissionsOutput(v **Descri sv.RequestId = ptr.String(jtv) } - case "ThemeArn": + case "Status": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) } - sv.ThemeArn = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) } - case "ThemeId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.ThemeId = ptr.String(jtv) + case "VPCConnection": + if err := awsRestjson1_deserializeDocumentVPCConnection(&sv.VPCConnection, value); err != nil { + return err } default: @@ -18480,14 +21537,14 @@ func awsRestjson1_deserializeOpDocumentDescribeThemePermissionsOutput(v **Descri return nil } -type awsRestjson1_deserializeOpDescribeTopic struct { +type awsRestjson1_deserializeOpGenerateEmbedUrlForAnonymousUser struct { } -func (*awsRestjson1_deserializeOpDescribeTopic) ID() string { +func (*awsRestjson1_deserializeOpGenerateEmbedUrlForAnonymousUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeTopic) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForAnonymousUser) 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) @@ -18505,12 +21562,12 @@ func (m *awsRestjson1_deserializeOpDescribeTopic) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeTopic(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGenerateEmbedUrlForAnonymousUser(response, &metadata) } - output := &DescribeTopicOutput{} + output := &GenerateEmbedUrlForAnonymousUserOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeTopicOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -18533,7 +21590,7 @@ func (m *awsRestjson1_deserializeOpDescribeTopic) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeTopicOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForAnonymousUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18547,7 +21604,7 @@ func (m *awsRestjson1_deserializeOpDescribeTopic) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeTopic(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGenerateEmbedUrlForAnonymousUser(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)} @@ -18600,9 +21657,18 @@ func awsRestjson1_deserializeOpErrorDescribeTopic(response *smithyhttp.Response, case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("SessionLifetimeInMinutesInvalidException", errorCode): + return awsRestjson1_deserializeErrorSessionLifetimeInMinutesInvalidException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedPricingPlanException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedPricingPlanException(response, errorBody) + + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -18613,7 +21679,7 @@ func awsRestjson1_deserializeOpErrorDescribeTopic(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsDescribeTopicOutput(v *DescribeTopicOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserOutput(v *GenerateEmbedUrlForAnonymousUserOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -18622,7 +21688,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeTopicOutput(v *DescribeTopicO return nil } -func awsRestjson1_deserializeOpDocumentDescribeTopicOutput(v **DescribeTopicOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForAnonymousUserOutput(v **GenerateEmbedUrlForAnonymousUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18635,45 +21701,40 @@ func awsRestjson1_deserializeOpDocumentDescribeTopicOutput(v **DescribeTopicOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeTopicOutput + var sv *GenerateEmbedUrlForAnonymousUserOutput if *v == nil { - sv = &DescribeTopicOutput{} + sv = &GenerateEmbedUrlForAnonymousUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Arn": + case "AnonymousUserArn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.AnonymousUserArn = ptr.String(jtv) } - case "RequestId": + case "EmbedUrl": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected EmbeddingUrl to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) - } - - case "Topic": - if err := awsRestjson1_deserializeDocumentTopicDetails(&sv.Topic, value); err != nil { - return err + sv.EmbedUrl = ptr.String(jtv) } - case "TopicId": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.TopicId = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } default: @@ -18685,14 +21746,14 @@ func awsRestjson1_deserializeOpDocumentDescribeTopicOutput(v **DescribeTopicOutp return nil } -type awsRestjson1_deserializeOpDescribeTopicPermissions struct { +type awsRestjson1_deserializeOpGenerateEmbedUrlForRegisteredUser struct { } -func (*awsRestjson1_deserializeOpDescribeTopicPermissions) ID() string { +func (*awsRestjson1_deserializeOpGenerateEmbedUrlForRegisteredUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeTopicPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForRegisteredUser) 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) @@ -18710,12 +21771,12 @@ func (m *awsRestjson1_deserializeOpDescribeTopicPermissions) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeTopicPermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGenerateEmbedUrlForRegisteredUser(response, &metadata) } - output := &DescribeTopicPermissionsOutput{} + output := &GenerateEmbedUrlForRegisteredUserOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeTopicPermissionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsGenerateEmbedUrlForRegisteredUserOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -18738,7 +21799,7 @@ func (m *awsRestjson1_deserializeOpDescribeTopicPermissions) HandleDeserialize(c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeTopicPermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForRegisteredUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18752,7 +21813,7 @@ func (m *awsRestjson1_deserializeOpDescribeTopicPermissions) HandleDeserialize(c return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeTopicPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGenerateEmbedUrlForRegisteredUser(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)} @@ -18802,12 +21863,24 @@ func awsRestjson1_deserializeOpErrorDescribeTopicPermissions(response *smithyhtt case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("QuickSightUserNotFoundException", errorCode): + return awsRestjson1_deserializeErrorQuickSightUserNotFoundException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("SessionLifetimeInMinutesInvalidException", errorCode): + return awsRestjson1_deserializeErrorSessionLifetimeInMinutesInvalidException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedPricingPlanException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedPricingPlanException(response, errorBody) + + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -18818,7 +21891,7 @@ func awsRestjson1_deserializeOpErrorDescribeTopicPermissions(response *smithyhtt } } -func awsRestjson1_deserializeOpHttpBindingsDescribeTopicPermissionsOutput(v *DescribeTopicPermissionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsGenerateEmbedUrlForRegisteredUserOutput(v *GenerateEmbedUrlForRegisteredUserOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -18827,7 +21900,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeTopicPermissionsOutput(v *Des return nil } -func awsRestjson1_deserializeOpDocumentDescribeTopicPermissionsOutput(v **DescribeTopicPermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForRegisteredUserOutput(v **GenerateEmbedUrlForRegisteredUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -18840,45 +21913,31 @@ func awsRestjson1_deserializeOpDocumentDescribeTopicPermissionsOutput(v **Descri return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeTopicPermissionsOutput + var sv *GenerateEmbedUrlForRegisteredUserOutput if *v == nil { - sv = &DescribeTopicPermissionsOutput{} + sv = &GenerateEmbedUrlForRegisteredUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Permissions": - if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { - return err - } - - case "RequestId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) - } - sv.RequestId = ptr.String(jtv) - } - - case "TopicArn": + case "EmbedUrl": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected EmbeddingUrl to be of type string, got %T instead", value) } - sv.TopicArn = ptr.String(jtv) + sv.EmbedUrl = ptr.String(jtv) } - case "TopicId": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.TopicId = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } default: @@ -18890,14 +21949,14 @@ func awsRestjson1_deserializeOpDocumentDescribeTopicPermissionsOutput(v **Descri return nil } -type awsRestjson1_deserializeOpDescribeTopicRefresh struct { +type awsRestjson1_deserializeOpGetDashboardEmbedUrl struct { } -func (*awsRestjson1_deserializeOpDescribeTopicRefresh) ID() string { +func (*awsRestjson1_deserializeOpGetDashboardEmbedUrl) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeTopicRefresh) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetDashboardEmbedUrl) 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) @@ -18915,12 +21974,12 @@ func (m *awsRestjson1_deserializeOpDescribeTopicRefresh) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeTopicRefresh(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetDashboardEmbedUrl(response, &metadata) } - output := &DescribeTopicRefreshOutput{} + output := &GetDashboardEmbedUrlOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsGetDashboardEmbedUrlOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -18943,7 +22002,7 @@ func (m *awsRestjson1_deserializeOpDescribeTopicRefresh) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeTopicRefreshOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetDashboardEmbedUrlOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -18957,7 +22016,7 @@ func (m *awsRestjson1_deserializeOpDescribeTopicRefresh) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeTopicRefresh(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetDashboardEmbedUrl(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)} @@ -19001,18 +22060,39 @@ func awsRestjson1_deserializeOpErrorDescribeTopicRefresh(response *smithyhttp.Re case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("DomainNotWhitelistedException", errorCode): + return awsRestjson1_deserializeErrorDomainNotWhitelistedException(response, errorBody) + + case strings.EqualFold("IdentityTypeNotSupportedException", errorCode): + return awsRestjson1_deserializeErrorIdentityTypeNotSupportedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("QuickSightUserNotFoundException", errorCode): + return awsRestjson1_deserializeErrorQuickSightUserNotFoundException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("SessionLifetimeInMinutesInvalidException", errorCode): + return awsRestjson1_deserializeErrorSessionLifetimeInMinutesInvalidException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedPricingPlanException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedPricingPlanException(response, errorBody) + + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -19023,7 +22103,7 @@ func awsRestjson1_deserializeOpErrorDescribeTopicRefresh(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshOutput(v *DescribeTopicRefreshOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsGetDashboardEmbedUrlOutput(v *GetDashboardEmbedUrlOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -19032,7 +22112,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshOutput(v *Describ return nil } -func awsRestjson1_deserializeOpDocumentDescribeTopicRefreshOutput(v **DescribeTopicRefreshOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetDashboardEmbedUrlOutput(v **GetDashboardEmbedUrlOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19045,18 +22125,22 @@ func awsRestjson1_deserializeOpDocumentDescribeTopicRefreshOutput(v **DescribeTo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeTopicRefreshOutput + var sv *GetDashboardEmbedUrlOutput if *v == nil { - sv = &DescribeTopicRefreshOutput{} + sv = &GetDashboardEmbedUrlOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "RefreshDetails": - if err := awsRestjson1_deserializeDocumentTopicRefreshDetails(&sv.RefreshDetails, value); err != nil { - return err + case "EmbedUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EmbeddingUrl to be of type string, got %T instead", value) + } + sv.EmbedUrl = ptr.String(jtv) } case "RequestId": @@ -19077,14 +22161,14 @@ func awsRestjson1_deserializeOpDocumentDescribeTopicRefreshOutput(v **DescribeTo return nil } -type awsRestjson1_deserializeOpDescribeTopicRefreshSchedule struct { +type awsRestjson1_deserializeOpGetSessionEmbedUrl struct { } -func (*awsRestjson1_deserializeOpDescribeTopicRefreshSchedule) ID() string { +func (*awsRestjson1_deserializeOpGetSessionEmbedUrl) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeTopicRefreshSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetSessionEmbedUrl) 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) @@ -19102,12 +22186,12 @@ func (m *awsRestjson1_deserializeOpDescribeTopicRefreshSchedule) HandleDeseriali } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeTopicRefreshSchedule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetSessionEmbedUrl(response, &metadata) } - output := &DescribeTopicRefreshScheduleOutput{} + output := &GetSessionEmbedUrlOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshScheduleOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsGetSessionEmbedUrlOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -19130,7 +22214,7 @@ func (m *awsRestjson1_deserializeOpDescribeTopicRefreshSchedule) HandleDeseriali return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeTopicRefreshScheduleOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetSessionEmbedUrlOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19144,7 +22228,7 @@ func (m *awsRestjson1_deserializeOpDescribeTopicRefreshSchedule) HandleDeseriali return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeTopicRefreshSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetSessionEmbedUrl(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)} @@ -19188,17 +22272,14 @@ func awsRestjson1_deserializeOpErrorDescribeTopicRefreshSchedule(response *smith case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("QuickSightUserNotFoundException", errorCode): + return awsRestjson1_deserializeErrorQuickSightUserNotFoundException(response, errorBody) case strings.EqualFold("ResourceExistsException", errorCode): return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) @@ -19206,9 +22287,15 @@ func awsRestjson1_deserializeOpErrorDescribeTopicRefreshSchedule(response *smith case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("SessionLifetimeInMinutesInvalidException", errorCode): + return awsRestjson1_deserializeErrorSessionLifetimeInMinutesInvalidException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -19219,7 +22306,7 @@ func awsRestjson1_deserializeOpErrorDescribeTopicRefreshSchedule(response *smith } } -func awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshScheduleOutput(v *DescribeTopicRefreshScheduleOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsGetSessionEmbedUrlOutput(v *GetSessionEmbedUrlOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -19228,7 +22315,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeTopicRefreshScheduleOutput(v return nil } -func awsRestjson1_deserializeOpDocumentDescribeTopicRefreshScheduleOutput(v **DescribeTopicRefreshScheduleOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetSessionEmbedUrlOutput(v **GetSessionEmbedUrlOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19241,27 +22328,22 @@ func awsRestjson1_deserializeOpDocumentDescribeTopicRefreshScheduleOutput(v **De return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeTopicRefreshScheduleOutput + var sv *GetSessionEmbedUrlOutput if *v == nil { - sv = &DescribeTopicRefreshScheduleOutput{} + sv = &GetSessionEmbedUrlOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DatasetArn": + case "EmbedUrl": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected EmbeddingUrl to be of type string, got %T instead", value) } - sv.DatasetArn = ptr.String(jtv) - } - - case "RefreshSchedule": - if err := awsRestjson1_deserializeDocumentTopicRefreshSchedule(&sv.RefreshSchedule, value); err != nil { - return err + sv.EmbedUrl = ptr.String(jtv) } case "RequestId": @@ -19273,24 +22355,6 @@ func awsRestjson1_deserializeOpDocumentDescribeTopicRefreshScheduleOutput(v **De sv.RequestId = ptr.String(jtv) } - case "TopicArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.TopicArn = ptr.String(jtv) - } - - case "TopicId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) - } - sv.TopicId = ptr.String(jtv) - } - default: _, _ = key, value @@ -19300,14 +22364,14 @@ func awsRestjson1_deserializeOpDocumentDescribeTopicRefreshScheduleOutput(v **De return nil } -type awsRestjson1_deserializeOpDescribeUser struct { +type awsRestjson1_deserializeOpListAnalyses struct { } -func (*awsRestjson1_deserializeOpDescribeUser) ID() string { +func (*awsRestjson1_deserializeOpListAnalyses) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListAnalyses) 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) @@ -19325,12 +22389,12 @@ func (m *awsRestjson1_deserializeOpDescribeUser) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeUser(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListAnalyses(response, &metadata) } - output := &DescribeUserOutput{} + output := &ListAnalysesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsDescribeUserOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListAnalysesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -19353,7 +22417,7 @@ func (m *awsRestjson1_deserializeOpDescribeUser) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeUserOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListAnalysesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19367,7 +22431,7 @@ func (m *awsRestjson1_deserializeOpDescribeUser) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListAnalyses(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)} @@ -19408,27 +22472,18 @@ func awsRestjson1_deserializeOpErrorDescribeUser(response *smithyhttp.Response, } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -19439,7 +22494,7 @@ func awsRestjson1_deserializeOpErrorDescribeUser(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsDescribeUserOutput(v *DescribeUserOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListAnalysesOutput(v *ListAnalysesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -19448,7 +22503,7 @@ func awsRestjson1_deserializeOpHttpBindingsDescribeUserOutput(v *DescribeUserOut return nil } -func awsRestjson1_deserializeOpDocumentDescribeUserOutput(v **DescribeUserOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListAnalysesOutput(v **ListAnalysesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19461,27 +22516,36 @@ func awsRestjson1_deserializeOpDocumentDescribeUserOutput(v **DescribeUserOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeUserOutput + var sv *ListAnalysesOutput if *v == nil { - sv = &DescribeUserOutput{} + sv = &ListAnalysesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "RequestId": + case "AnalysisSummaryList": + if err := awsRestjson1_deserializeDocumentAnalysisSummaryList(&sv.AnalysisSummaryList, value); err != nil { + return err + } + + 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.RequestId = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } - case "User": - if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil { - return err + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) } default: @@ -19493,14 +22557,14 @@ func awsRestjson1_deserializeOpDocumentDescribeUserOutput(v **DescribeUserOutput return nil } -type awsRestjson1_deserializeOpDescribeVPCConnection struct { +type awsRestjson1_deserializeOpListAssetBundleExportJobs struct { } -func (*awsRestjson1_deserializeOpDescribeVPCConnection) ID() string { +func (*awsRestjson1_deserializeOpListAssetBundleExportJobs) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDescribeVPCConnection) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListAssetBundleExportJobs) 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) @@ -19518,11 +22582,16 @@ func (m *awsRestjson1_deserializeOpDescribeVPCConnection) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDescribeVPCConnection(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListAssetBundleExportJobs(response, &metadata) } - output := &DescribeVPCConnectionOutput{} + output := &ListAssetBundleExportJobsOutput{} out.Result = output + err = awsRestjson1_deserializeOpHttpBindingsListAssetBundleExportJobsOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -19541,7 +22610,7 @@ func (m *awsRestjson1_deserializeOpDescribeVPCConnection) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDescribeVPCConnectionOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListAssetBundleExportJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19555,7 +22624,7 @@ func (m *awsRestjson1_deserializeOpDescribeVPCConnection) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorDescribeVPCConnection(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListAssetBundleExportJobs(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)} @@ -19599,11 +22668,8 @@ func awsRestjson1_deserializeOpErrorDescribeVPCConnection(response *smithyhttp.R case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -19624,7 +22690,16 @@ func awsRestjson1_deserializeOpErrorDescribeVPCConnection(response *smithyhttp.R } } -func awsRestjson1_deserializeOpDocumentDescribeVPCConnectionOutput(v **DescribeVPCConnectionOutput, value interface{}) error { +func awsRestjson1_deserializeOpHttpBindingsListAssetBundleExportJobsOutput(v *ListAssetBundleExportJobsOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentListAssetBundleExportJobsOutput(v **ListAssetBundleExportJobsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19637,40 +22712,36 @@ func awsRestjson1_deserializeOpDocumentDescribeVPCConnectionOutput(v **DescribeV return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DescribeVPCConnectionOutput + var sv *ListAssetBundleExportJobsOutput if *v == nil { - sv = &DescribeVPCConnectionOutput{} + sv = &ListAssetBundleExportJobsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "RequestId": + case "AssetBundleExportJobSummaryList": + if err := awsRestjson1_deserializeDocumentAssetBundleExportJobSummaryList(&sv.AssetBundleExportJobSummaryList, value); err != nil { + return err + } + + 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.RequestId = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } - case "Status": + case "RequestId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } - sv.Status = int32(i64) - } - - case "VPCConnection": - if err := awsRestjson1_deserializeDocumentVPCConnection(&sv.VPCConnection, value); err != nil { - return err + sv.RequestId = ptr.String(jtv) } default: @@ -19682,14 +22753,14 @@ func awsRestjson1_deserializeOpDocumentDescribeVPCConnectionOutput(v **DescribeV return nil } -type awsRestjson1_deserializeOpGenerateEmbedUrlForAnonymousUser struct { +type awsRestjson1_deserializeOpListAssetBundleImportJobs struct { } -func (*awsRestjson1_deserializeOpGenerateEmbedUrlForAnonymousUser) ID() string { +func (*awsRestjson1_deserializeOpListAssetBundleImportJobs) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForAnonymousUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListAssetBundleImportJobs) 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) @@ -19707,12 +22778,12 @@ func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForAnonymousUser) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGenerateEmbedUrlForAnonymousUser(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListAssetBundleImportJobs(response, &metadata) } - output := &GenerateEmbedUrlForAnonymousUserOutput{} + output := &ListAssetBundleImportJobsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListAssetBundleImportJobsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -19735,7 +22806,7 @@ func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForAnonymousUser) HandleDeser return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForAnonymousUserOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListAssetBundleImportJobsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19749,7 +22820,7 @@ func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForAnonymousUser) HandleDeser return out, metadata, err } -func awsRestjson1_deserializeOpErrorGenerateEmbedUrlForAnonymousUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListAssetBundleImportJobs(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)} @@ -19793,24 +22864,15 @@ func awsRestjson1_deserializeOpErrorGenerateEmbedUrlForAnonymousUser(response *s case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("SessionLifetimeInMinutesInvalidException", errorCode): - return awsRestjson1_deserializeErrorSessionLifetimeInMinutesInvalidException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedPricingPlanException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedPricingPlanException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) @@ -19824,7 +22886,7 @@ func awsRestjson1_deserializeOpErrorGenerateEmbedUrlForAnonymousUser(response *s } } -func awsRestjson1_deserializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserOutput(v *GenerateEmbedUrlForAnonymousUserOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListAssetBundleImportJobsOutput(v *ListAssetBundleImportJobsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -19833,7 +22895,7 @@ func awsRestjson1_deserializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserOutpu return nil } -func awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForAnonymousUserOutput(v **GenerateEmbedUrlForAnonymousUserOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListAssetBundleImportJobsOutput(v **ListAssetBundleImportJobsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -19846,38 +22908,34 @@ func awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForAnonymousUserOutput(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GenerateEmbedUrlForAnonymousUserOutput + var sv *ListAssetBundleImportJobsOutput if *v == nil { - sv = &GenerateEmbedUrlForAnonymousUserOutput{} + sv = &ListAssetBundleImportJobsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AnonymousUserArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.AnonymousUserArn = ptr.String(jtv) + case "AssetBundleImportJobSummaryList": + if err := awsRestjson1_deserializeDocumentAssetBundleImportJobSummaryList(&sv.AssetBundleImportJobSummaryList, value); err != nil { + return err } - case "EmbedUrl": + case "NextToken": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EmbeddingUrl to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.EmbedUrl = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } @@ -19891,14 +22949,14 @@ func awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForAnonymousUserOutput(v return nil } -type awsRestjson1_deserializeOpGenerateEmbedUrlForRegisteredUser struct { +type awsRestjson1_deserializeOpListBrands struct { } -func (*awsRestjson1_deserializeOpGenerateEmbedUrlForRegisteredUser) ID() string { +func (*awsRestjson1_deserializeOpListBrands) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForRegisteredUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListBrands) 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) @@ -19916,16 +22974,11 @@ func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForRegisteredUser) HandleDese } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGenerateEmbedUrlForRegisteredUser(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListBrands(response, &metadata) } - output := &GenerateEmbedUrlForRegisteredUserOutput{} + output := &ListBrandsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsGenerateEmbedUrlForRegisteredUserOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -19944,7 +22997,7 @@ func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForRegisteredUser) HandleDese return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForRegisteredUserOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListBrandsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -19958,7 +23011,7 @@ func (m *awsRestjson1_deserializeOpGenerateEmbedUrlForRegisteredUser) HandleDese return out, metadata, err } -func awsRestjson1_deserializeOpErrorGenerateEmbedUrlForRegisteredUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListBrands(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)} @@ -20002,30 +23055,15 @@ func awsRestjson1_deserializeOpErrorGenerateEmbedUrlForRegisteredUser(response * case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - - case strings.EqualFold("QuickSightUserNotFoundException", errorCode): - return awsRestjson1_deserializeErrorQuickSightUserNotFoundException(response, errorBody) - - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("SessionLifetimeInMinutesInvalidException", errorCode): - return awsRestjson1_deserializeErrorSessionLifetimeInMinutesInvalidException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedPricingPlanException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedPricingPlanException(response, errorBody) - - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -20036,16 +23074,7 @@ func awsRestjson1_deserializeOpErrorGenerateEmbedUrlForRegisteredUser(response * } } -func awsRestjson1_deserializeOpHttpBindingsGenerateEmbedUrlForRegisteredUserOutput(v *GenerateEmbedUrlForRegisteredUserOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForRegisteredUserOutput(v **GenerateEmbedUrlForRegisteredUserOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListBrandsOutput(v **ListBrandsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20058,31 +23087,27 @@ func awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForRegisteredUserOutput(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GenerateEmbedUrlForRegisteredUserOutput + var sv *ListBrandsOutput if *v == nil { - sv = &GenerateEmbedUrlForRegisteredUserOutput{} + sv = &ListBrandsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "EmbedUrl": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected EmbeddingUrl to be of type string, got %T instead", value) - } - sv.EmbedUrl = ptr.String(jtv) + case "Brands": + if err := awsRestjson1_deserializeDocumentBrandSummaryList(&sv.Brands, value); err != nil { + return err } - case "RequestId": + 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.RequestId = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } default: @@ -20094,14 +23119,14 @@ func awsRestjson1_deserializeOpDocumentGenerateEmbedUrlForRegisteredUserOutput(v return nil } -type awsRestjson1_deserializeOpGetDashboardEmbedUrl struct { +type awsRestjson1_deserializeOpListCustomPermissions struct { } -func (*awsRestjson1_deserializeOpGetDashboardEmbedUrl) ID() string { +func (*awsRestjson1_deserializeOpListCustomPermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetDashboardEmbedUrl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListCustomPermissions) 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) @@ -20119,12 +23144,12 @@ func (m *awsRestjson1_deserializeOpGetDashboardEmbedUrl) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetDashboardEmbedUrl(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListCustomPermissions(response, &metadata) } - output := &GetDashboardEmbedUrlOutput{} + output := &ListCustomPermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsGetDashboardEmbedUrlOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListCustomPermissionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -20147,7 +23172,7 @@ func (m *awsRestjson1_deserializeOpGetDashboardEmbedUrl) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetDashboardEmbedUrlOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListCustomPermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20161,7 +23186,7 @@ func (m *awsRestjson1_deserializeOpGetDashboardEmbedUrl) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetDashboardEmbedUrl(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListCustomPermissions(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)} @@ -20205,39 +23230,24 @@ func awsRestjson1_deserializeOpErrorGetDashboardEmbedUrl(response *smithyhttp.Re case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("DomainNotWhitelistedException", errorCode): - return awsRestjson1_deserializeErrorDomainNotWhitelistedException(response, errorBody) - - case strings.EqualFold("IdentityTypeNotSupportedException", errorCode): - return awsRestjson1_deserializeErrorIdentityTypeNotSupportedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("QuickSightUserNotFoundException", errorCode): - return awsRestjson1_deserializeErrorQuickSightUserNotFoundException(response, errorBody) - - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("SessionLifetimeInMinutesInvalidException", errorCode): - return awsRestjson1_deserializeErrorSessionLifetimeInMinutesInvalidException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedPricingPlanException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedPricingPlanException(response, errorBody) - - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -20248,7 +23258,7 @@ func awsRestjson1_deserializeOpErrorGetDashboardEmbedUrl(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpHttpBindingsGetDashboardEmbedUrlOutput(v *GetDashboardEmbedUrlOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListCustomPermissionsOutput(v *ListCustomPermissionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -20257,7 +23267,7 @@ func awsRestjson1_deserializeOpHttpBindingsGetDashboardEmbedUrlOutput(v *GetDash return nil } -func awsRestjson1_deserializeOpDocumentGetDashboardEmbedUrlOutput(v **GetDashboardEmbedUrlOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListCustomPermissionsOutput(v **ListCustomPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20270,22 +23280,27 @@ func awsRestjson1_deserializeOpDocumentGetDashboardEmbedUrlOutput(v **GetDashboa return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetDashboardEmbedUrlOutput + var sv *ListCustomPermissionsOutput if *v == nil { - sv = &GetDashboardEmbedUrlOutput{} + sv = &ListCustomPermissionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "EmbedUrl": + case "CustomPermissionsList": + if err := awsRestjson1_deserializeDocumentCustomPermissionsList(&sv.CustomPermissionsList, value); err != nil { + return err + } + + case "NextToken": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EmbeddingUrl to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.EmbedUrl = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } case "RequestId": @@ -20306,14 +23321,14 @@ func awsRestjson1_deserializeOpDocumentGetDashboardEmbedUrlOutput(v **GetDashboa return nil } -type awsRestjson1_deserializeOpGetSessionEmbedUrl struct { +type awsRestjson1_deserializeOpListDashboards struct { } -func (*awsRestjson1_deserializeOpGetSessionEmbedUrl) ID() string { +func (*awsRestjson1_deserializeOpListDashboards) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetSessionEmbedUrl) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDashboards) 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) @@ -20331,12 +23346,12 @@ func (m *awsRestjson1_deserializeOpGetSessionEmbedUrl) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetSessionEmbedUrl(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDashboards(response, &metadata) } - output := &GetSessionEmbedUrlOutput{} + output := &ListDashboardsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsGetSessionEmbedUrlOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListDashboardsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -20359,7 +23374,7 @@ func (m *awsRestjson1_deserializeOpGetSessionEmbedUrl) HandleDeserialize(ctx con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetSessionEmbedUrlOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDashboardsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20373,7 +23388,7 @@ func (m *awsRestjson1_deserializeOpGetSessionEmbedUrl) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetSessionEmbedUrl(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDashboards(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)} @@ -20414,26 +23429,11 @@ func awsRestjson1_deserializeOpErrorGetSessionEmbedUrl(response *smithyhttp.Resp } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - - case strings.EqualFold("QuickSightUserNotFoundException", errorCode): - return awsRestjson1_deserializeErrorQuickSightUserNotFoundException(response, errorBody) - - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) - - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - - case strings.EqualFold("SessionLifetimeInMinutesInvalidException", errorCode): - return awsRestjson1_deserializeErrorSessionLifetimeInMinutesInvalidException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -20451,7 +23451,7 @@ func awsRestjson1_deserializeOpErrorGetSessionEmbedUrl(response *smithyhttp.Resp } } -func awsRestjson1_deserializeOpHttpBindingsGetSessionEmbedUrlOutput(v *GetSessionEmbedUrlOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListDashboardsOutput(v *ListDashboardsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -20460,7 +23460,7 @@ func awsRestjson1_deserializeOpHttpBindingsGetSessionEmbedUrlOutput(v *GetSessio return nil } -func awsRestjson1_deserializeOpDocumentGetSessionEmbedUrlOutput(v **GetSessionEmbedUrlOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDashboardsOutput(v **ListDashboardsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20473,22 +23473,27 @@ func awsRestjson1_deserializeOpDocumentGetSessionEmbedUrlOutput(v **GetSessionEm return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetSessionEmbedUrlOutput + var sv *ListDashboardsOutput if *v == nil { - sv = &GetSessionEmbedUrlOutput{} + sv = &ListDashboardsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "EmbedUrl": + case "DashboardSummaryList": + if err := awsRestjson1_deserializeDocumentDashboardSummaryList(&sv.DashboardSummaryList, value); err != nil { + return err + } + + case "NextToken": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected EmbeddingUrl to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.EmbedUrl = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } case "RequestId": @@ -20509,14 +23514,14 @@ func awsRestjson1_deserializeOpDocumentGetSessionEmbedUrlOutput(v **GetSessionEm return nil } -type awsRestjson1_deserializeOpListAnalyses struct { +type awsRestjson1_deserializeOpListDashboardVersions struct { } -func (*awsRestjson1_deserializeOpListAnalyses) ID() string { +func (*awsRestjson1_deserializeOpListDashboardVersions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListAnalyses) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDashboardVersions) 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) @@ -20534,12 +23539,12 @@ func (m *awsRestjson1_deserializeOpListAnalyses) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListAnalyses(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDashboardVersions(response, &metadata) } - output := &ListAnalysesOutput{} + output := &ListDashboardVersionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListAnalysesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListDashboardVersionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -20562,7 +23567,7 @@ func (m *awsRestjson1_deserializeOpListAnalyses) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListAnalysesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDashboardVersionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20576,7 +23581,7 @@ func (m *awsRestjson1_deserializeOpListAnalyses) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorListAnalyses(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDashboardVersions(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)} @@ -20623,6 +23628,12 @@ func awsRestjson1_deserializeOpErrorListAnalyses(response *smithyhttp.Response, case strings.EqualFold("InvalidNextTokenException", errorCode): return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -20639,7 +23650,7 @@ func awsRestjson1_deserializeOpErrorListAnalyses(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsListAnalysesOutput(v *ListAnalysesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListDashboardVersionsOutput(v *ListDashboardVersionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -20648,7 +23659,7 @@ func awsRestjson1_deserializeOpHttpBindingsListAnalysesOutput(v *ListAnalysesOut return nil } -func awsRestjson1_deserializeOpDocumentListAnalysesOutput(v **ListAnalysesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDashboardVersionsOutput(v **ListDashboardVersionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20661,17 +23672,17 @@ func awsRestjson1_deserializeOpDocumentListAnalysesOutput(v **ListAnalysesOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListAnalysesOutput + var sv *ListDashboardVersionsOutput if *v == nil { - sv = &ListAnalysesOutput{} + sv = &ListDashboardVersionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AnalysisSummaryList": - if err := awsRestjson1_deserializeDocumentAnalysisSummaryList(&sv.AnalysisSummaryList, value); err != nil { + case "DashboardVersionSummaryList": + if err := awsRestjson1_deserializeDocumentDashboardVersionSummaryList(&sv.DashboardVersionSummaryList, value); err != nil { return err } @@ -20702,14 +23713,14 @@ func awsRestjson1_deserializeOpDocumentListAnalysesOutput(v **ListAnalysesOutput return nil } -type awsRestjson1_deserializeOpListAssetBundleExportJobs struct { +type awsRestjson1_deserializeOpListDataSets struct { } -func (*awsRestjson1_deserializeOpListAssetBundleExportJobs) ID() string { +func (*awsRestjson1_deserializeOpListDataSets) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListAssetBundleExportJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDataSets) 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) @@ -20727,12 +23738,12 @@ func (m *awsRestjson1_deserializeOpListAssetBundleExportJobs) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListAssetBundleExportJobs(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDataSets(response, &metadata) } - output := &ListAssetBundleExportJobsOutput{} + output := &ListDataSetsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListAssetBundleExportJobsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListDataSetsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -20755,7 +23766,7 @@ func (m *awsRestjson1_deserializeOpListAssetBundleExportJobs) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListAssetBundleExportJobsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDataSetsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20769,7 +23780,7 @@ func (m *awsRestjson1_deserializeOpListAssetBundleExportJobs) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorListAssetBundleExportJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDataSets(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)} @@ -20813,18 +23824,18 @@ func awsRestjson1_deserializeOpErrorListAssetBundleExportJobs(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -20835,7 +23846,7 @@ func awsRestjson1_deserializeOpErrorListAssetBundleExportJobs(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsListAssetBundleExportJobsOutput(v *ListAssetBundleExportJobsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListDataSetsOutput(v *ListDataSetsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -20844,7 +23855,7 @@ func awsRestjson1_deserializeOpHttpBindingsListAssetBundleExportJobsOutput(v *Li return nil } -func awsRestjson1_deserializeOpDocumentListAssetBundleExportJobsOutput(v **ListAssetBundleExportJobsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDataSetsOutput(v **ListDataSetsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -20857,17 +23868,17 @@ func awsRestjson1_deserializeOpDocumentListAssetBundleExportJobsOutput(v **ListA return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListAssetBundleExportJobsOutput + var sv *ListDataSetsOutput if *v == nil { - sv = &ListAssetBundleExportJobsOutput{} + sv = &ListDataSetsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AssetBundleExportJobSummaryList": - if err := awsRestjson1_deserializeDocumentAssetBundleExportJobSummaryList(&sv.AssetBundleExportJobSummaryList, value); err != nil { + case "DataSetSummaries": + if err := awsRestjson1_deserializeDocumentDataSetSummaryList(&sv.DataSetSummaries, value); err != nil { return err } @@ -20884,7 +23895,7 @@ func awsRestjson1_deserializeOpDocumentListAssetBundleExportJobsOutput(v **ListA if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } @@ -20898,14 +23909,14 @@ func awsRestjson1_deserializeOpDocumentListAssetBundleExportJobsOutput(v **ListA return nil } -type awsRestjson1_deserializeOpListAssetBundleImportJobs struct { +type awsRestjson1_deserializeOpListDataSources struct { } -func (*awsRestjson1_deserializeOpListAssetBundleImportJobs) ID() string { +func (*awsRestjson1_deserializeOpListDataSources) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListAssetBundleImportJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDataSources) 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) @@ -20923,12 +23934,12 @@ func (m *awsRestjson1_deserializeOpListAssetBundleImportJobs) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListAssetBundleImportJobs(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListDataSources(response, &metadata) } - output := &ListAssetBundleImportJobsOutput{} + output := &ListDataSourcesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListAssetBundleImportJobsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListDataSourcesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -20951,7 +23962,7 @@ func (m *awsRestjson1_deserializeOpListAssetBundleImportJobs) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListAssetBundleImportJobsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListDataSourcesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -20965,7 +23976,7 @@ func (m *awsRestjson1_deserializeOpListAssetBundleImportJobs) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorListAssetBundleImportJobs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListDataSources(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)} @@ -21009,18 +24020,18 @@ func awsRestjson1_deserializeOpErrorListAssetBundleImportJobs(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -21031,7 +24042,7 @@ func awsRestjson1_deserializeOpErrorListAssetBundleImportJobs(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsListAssetBundleImportJobsOutput(v *ListAssetBundleImportJobsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListDataSourcesOutput(v *ListDataSourcesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -21040,7 +24051,7 @@ func awsRestjson1_deserializeOpHttpBindingsListAssetBundleImportJobsOutput(v *Li return nil } -func awsRestjson1_deserializeOpDocumentListAssetBundleImportJobsOutput(v **ListAssetBundleImportJobsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListDataSourcesOutput(v **ListDataSourcesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21053,17 +24064,17 @@ func awsRestjson1_deserializeOpDocumentListAssetBundleImportJobsOutput(v **ListA return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListAssetBundleImportJobsOutput + var sv *ListDataSourcesOutput if *v == nil { - sv = &ListAssetBundleImportJobsOutput{} + sv = &ListDataSourcesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AssetBundleImportJobSummaryList": - if err := awsRestjson1_deserializeDocumentAssetBundleImportJobSummaryList(&sv.AssetBundleImportJobSummaryList, value); err != nil { + case "DataSources": + if err := awsRestjson1_deserializeDocumentDataSourceList(&sv.DataSources, value); err != nil { return err } @@ -21080,7 +24091,7 @@ func awsRestjson1_deserializeOpDocumentListAssetBundleImportJobsOutput(v **ListA if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } @@ -21094,14 +24105,14 @@ func awsRestjson1_deserializeOpDocumentListAssetBundleImportJobsOutput(v **ListA return nil } -type awsRestjson1_deserializeOpListDashboards struct { +type awsRestjson1_deserializeOpListFolderMembers struct { } -func (*awsRestjson1_deserializeOpListDashboards) ID() string { +func (*awsRestjson1_deserializeOpListFolderMembers) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDashboards) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListFolderMembers) 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) @@ -21119,12 +24130,12 @@ func (m *awsRestjson1_deserializeOpListDashboards) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDashboards(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListFolderMembers(response, &metadata) } - output := &ListDashboardsOutput{} + output := &ListFolderMembersOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListDashboardsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListFolderMembersOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -21147,7 +24158,7 @@ func (m *awsRestjson1_deserializeOpListDashboards) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDashboardsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListFolderMembersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21161,7 +24172,7 @@ func (m *awsRestjson1_deserializeOpListDashboards) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDashboards(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListFolderMembers(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)} @@ -21202,12 +24213,21 @@ func awsRestjson1_deserializeOpErrorListDashboards(response *smithyhttp.Response } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidNextTokenException", errorCode): return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -21224,7 +24244,7 @@ func awsRestjson1_deserializeOpErrorListDashboards(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsListDashboardsOutput(v *ListDashboardsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListFolderMembersOutput(v *ListFolderMembersOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -21233,7 +24253,7 @@ func awsRestjson1_deserializeOpHttpBindingsListDashboardsOutput(v *ListDashboard return nil } -func awsRestjson1_deserializeOpDocumentListDashboardsOutput(v **ListDashboardsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListFolderMembersOutput(v **ListFolderMembersOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21246,17 +24266,17 @@ func awsRestjson1_deserializeOpDocumentListDashboardsOutput(v **ListDashboardsOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDashboardsOutput + var sv *ListFolderMembersOutput if *v == nil { - sv = &ListDashboardsOutput{} + sv = &ListFolderMembersOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DashboardSummaryList": - if err := awsRestjson1_deserializeDocumentDashboardSummaryList(&sv.DashboardSummaryList, value); err != nil { + case "FolderMemberList": + if err := awsRestjson1_deserializeDocumentFolderMemberList(&sv.FolderMemberList, value); err != nil { return err } @@ -21287,14 +24307,14 @@ func awsRestjson1_deserializeOpDocumentListDashboardsOutput(v **ListDashboardsOu return nil } -type awsRestjson1_deserializeOpListDashboardVersions struct { +type awsRestjson1_deserializeOpListFolders struct { } -func (*awsRestjson1_deserializeOpListDashboardVersions) ID() string { +func (*awsRestjson1_deserializeOpListFolders) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDashboardVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListFolders) 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) @@ -21312,12 +24332,12 @@ func (m *awsRestjson1_deserializeOpListDashboardVersions) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDashboardVersions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListFolders(response, &metadata) } - output := &ListDashboardVersionsOutput{} + output := &ListFoldersOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListDashboardVersionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListFoldersOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -21340,7 +24360,7 @@ func (m *awsRestjson1_deserializeOpListDashboardVersions) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDashboardVersionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListFoldersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21354,7 +24374,7 @@ func (m *awsRestjson1_deserializeOpListDashboardVersions) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDashboardVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListFolders(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)} @@ -21395,6 +24415,9 @@ func awsRestjson1_deserializeOpErrorListDashboardVersions(response *smithyhttp.R } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -21423,7 +24446,7 @@ func awsRestjson1_deserializeOpErrorListDashboardVersions(response *smithyhttp.R } } -func awsRestjson1_deserializeOpHttpBindingsListDashboardVersionsOutput(v *ListDashboardVersionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListFoldersOutput(v *ListFoldersOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -21432,7 +24455,7 @@ func awsRestjson1_deserializeOpHttpBindingsListDashboardVersionsOutput(v *ListDa return nil } -func awsRestjson1_deserializeOpDocumentListDashboardVersionsOutput(v **ListDashboardVersionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListFoldersOutput(v **ListFoldersOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21445,17 +24468,17 @@ func awsRestjson1_deserializeOpDocumentListDashboardVersionsOutput(v **ListDashb return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDashboardVersionsOutput + var sv *ListFoldersOutput if *v == nil { - sv = &ListDashboardVersionsOutput{} + sv = &ListFoldersOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DashboardVersionSummaryList": - if err := awsRestjson1_deserializeDocumentDashboardVersionSummaryList(&sv.DashboardVersionSummaryList, value); err != nil { + case "FolderSummaryList": + if err := awsRestjson1_deserializeDocumentFolderSummaryList(&sv.FolderSummaryList, value); err != nil { return err } @@ -21486,14 +24509,14 @@ func awsRestjson1_deserializeOpDocumentListDashboardVersionsOutput(v **ListDashb return nil } -type awsRestjson1_deserializeOpListDataSets struct { +type awsRestjson1_deserializeOpListFoldersForResource struct { } -func (*awsRestjson1_deserializeOpListDataSets) ID() string { +func (*awsRestjson1_deserializeOpListFoldersForResource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDataSets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListFoldersForResource) 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) @@ -21511,12 +24534,12 @@ func (m *awsRestjson1_deserializeOpListDataSets) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDataSets(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListFoldersForResource(response, &metadata) } - output := &ListDataSetsOutput{} + output := &ListFoldersForResourceOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListDataSetsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListFoldersForResourceOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -21539,7 +24562,7 @@ func (m *awsRestjson1_deserializeOpListDataSets) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDataSetsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListFoldersForResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21553,7 +24576,7 @@ func (m *awsRestjson1_deserializeOpListDataSets) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDataSets(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListFoldersForResource(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)} @@ -21606,9 +24629,15 @@ func awsRestjson1_deserializeOpErrorListDataSets(response *smithyhttp.Response, case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -21619,7 +24648,7 @@ func awsRestjson1_deserializeOpErrorListDataSets(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsListDataSetsOutput(v *ListDataSetsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListFoldersForResourceOutput(v *ListFoldersForResourceOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -21628,7 +24657,7 @@ func awsRestjson1_deserializeOpHttpBindingsListDataSetsOutput(v *ListDataSetsOut return nil } -func awsRestjson1_deserializeOpDocumentListDataSetsOutput(v **ListDataSetsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListFoldersForResourceOutput(v **ListFoldersForResourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21641,17 +24670,17 @@ func awsRestjson1_deserializeOpDocumentListDataSetsOutput(v **ListDataSetsOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDataSetsOutput + var sv *ListFoldersForResourceOutput if *v == nil { - sv = &ListDataSetsOutput{} + sv = &ListFoldersForResourceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSetSummaries": - if err := awsRestjson1_deserializeDocumentDataSetSummaryList(&sv.DataSetSummaries, value); err != nil { + case "Folders": + if err := awsRestjson1_deserializeDocumentFoldersForResourceArnList(&sv.Folders, value); err != nil { return err } @@ -21682,14 +24711,14 @@ func awsRestjson1_deserializeOpDocumentListDataSetsOutput(v **ListDataSetsOutput return nil } -type awsRestjson1_deserializeOpListDataSources struct { +type awsRestjson1_deserializeOpListGroupMemberships struct { } -func (*awsRestjson1_deserializeOpListDataSources) ID() string { +func (*awsRestjson1_deserializeOpListGroupMemberships) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDataSources) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListGroupMemberships) 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) @@ -21707,12 +24736,12 @@ func (m *awsRestjson1_deserializeOpListDataSources) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDataSources(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListGroupMemberships(response, &metadata) } - output := &ListDataSourcesOutput{} + output := &ListGroupMembershipsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListDataSourcesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListGroupMembershipsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -21735,7 +24764,7 @@ func (m *awsRestjson1_deserializeOpListDataSources) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDataSourcesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListGroupMembershipsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21749,7 +24778,7 @@ func (m *awsRestjson1_deserializeOpListDataSources) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDataSources(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListGroupMemberships(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)} @@ -21802,6 +24831,15 @@ func awsRestjson1_deserializeOpErrorListDataSources(response *smithyhttp.Respons case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -21815,7 +24853,7 @@ func awsRestjson1_deserializeOpErrorListDataSources(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpHttpBindingsListDataSourcesOutput(v *ListDataSourcesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListGroupMembershipsOutput(v *ListGroupMembershipsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -21824,7 +24862,7 @@ func awsRestjson1_deserializeOpHttpBindingsListDataSourcesOutput(v *ListDataSour return nil } -func awsRestjson1_deserializeOpDocumentListDataSourcesOutput(v **ListDataSourcesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListGroupMembershipsOutput(v **ListGroupMembershipsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -21837,17 +24875,17 @@ func awsRestjson1_deserializeOpDocumentListDataSourcesOutput(v **ListDataSources return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDataSourcesOutput + var sv *ListGroupMembershipsOutput if *v == nil { - sv = &ListDataSourcesOutput{} + sv = &ListGroupMembershipsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSources": - if err := awsRestjson1_deserializeDocumentDataSourceList(&sv.DataSources, value); err != nil { + case "GroupMemberList": + if err := awsRestjson1_deserializeDocumentGroupMemberList(&sv.GroupMemberList, value); err != nil { return err } @@ -21878,14 +24916,14 @@ func awsRestjson1_deserializeOpDocumentListDataSourcesOutput(v **ListDataSources return nil } -type awsRestjson1_deserializeOpListFolderMembers struct { +type awsRestjson1_deserializeOpListGroups struct { } -func (*awsRestjson1_deserializeOpListFolderMembers) ID() string { +func (*awsRestjson1_deserializeOpListGroups) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListFolderMembers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListGroups) 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) @@ -21903,12 +24941,12 @@ func (m *awsRestjson1_deserializeOpListFolderMembers) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListFolderMembers(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListGroups(response, &metadata) } - output := &ListFolderMembersOutput{} + output := &ListGroupsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListFolderMembersOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListGroupsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -21931,7 +24969,7 @@ func (m *awsRestjson1_deserializeOpListFolderMembers) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListFolderMembersOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListGroupsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -21945,7 +24983,7 @@ func (m *awsRestjson1_deserializeOpListFolderMembers) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorListFolderMembers(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListGroups(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)} @@ -21998,15 +25036,18 @@ func awsRestjson1_deserializeOpErrorListFolderMembers(response *smithyhttp.Respo case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -22017,7 +25058,7 @@ func awsRestjson1_deserializeOpErrorListFolderMembers(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpHttpBindingsListFolderMembersOutput(v *ListFolderMembersOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListGroupsOutput(v *ListGroupsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -22026,7 +25067,7 @@ func awsRestjson1_deserializeOpHttpBindingsListFolderMembersOutput(v *ListFolder return nil } -func awsRestjson1_deserializeOpDocumentListFolderMembersOutput(v **ListFolderMembersOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListGroupsOutput(v **ListGroupsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22039,17 +25080,17 @@ func awsRestjson1_deserializeOpDocumentListFolderMembersOutput(v **ListFolderMem return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListFolderMembersOutput + var sv *ListGroupsOutput if *v == nil { - sv = &ListFolderMembersOutput{} + sv = &ListGroupsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "FolderMemberList": - if err := awsRestjson1_deserializeDocumentFolderMemberList(&sv.FolderMemberList, value); err != nil { + case "GroupList": + if err := awsRestjson1_deserializeDocumentGroupList(&sv.GroupList, value); err != nil { return err } @@ -22080,14 +25121,14 @@ func awsRestjson1_deserializeOpDocumentListFolderMembersOutput(v **ListFolderMem return nil } -type awsRestjson1_deserializeOpListFolders struct { +type awsRestjson1_deserializeOpListIAMPolicyAssignments struct { } -func (*awsRestjson1_deserializeOpListFolders) ID() string { +func (*awsRestjson1_deserializeOpListIAMPolicyAssignments) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListFolders) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListIAMPolicyAssignments) 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) @@ -22105,12 +25146,12 @@ func (m *awsRestjson1_deserializeOpListFolders) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListFolders(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListIAMPolicyAssignments(response, &metadata) } - output := &ListFoldersOutput{} + output := &ListIAMPolicyAssignmentsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListFoldersOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -22133,7 +25174,7 @@ func (m *awsRestjson1_deserializeOpListFolders) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListFoldersOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22147,7 +25188,7 @@ func (m *awsRestjson1_deserializeOpListFolders) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorListFolders(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListIAMPolicyAssignments(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)} @@ -22206,9 +25247,6 @@ func awsRestjson1_deserializeOpErrorListFolders(response *smithyhttp.Response, m case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -22219,7 +25257,7 @@ func awsRestjson1_deserializeOpErrorListFolders(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpHttpBindingsListFoldersOutput(v *ListFoldersOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsOutput(v *ListIAMPolicyAssignmentsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -22228,7 +25266,7 @@ func awsRestjson1_deserializeOpHttpBindingsListFoldersOutput(v *ListFoldersOutpu return nil } -func awsRestjson1_deserializeOpDocumentListFoldersOutput(v **ListFoldersOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsOutput(v **ListIAMPolicyAssignmentsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22241,17 +25279,17 @@ func awsRestjson1_deserializeOpDocumentListFoldersOutput(v **ListFoldersOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListFoldersOutput + var sv *ListIAMPolicyAssignmentsOutput if *v == nil { - sv = &ListFoldersOutput{} + sv = &ListIAMPolicyAssignmentsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "FolderSummaryList": - if err := awsRestjson1_deserializeDocumentFolderSummaryList(&sv.FolderSummaryList, value); err != nil { + case "IAMPolicyAssignments": + if err := awsRestjson1_deserializeDocumentIAMPolicyAssignmentSummaryList(&sv.IAMPolicyAssignments, value); err != nil { return err } @@ -22282,14 +25320,14 @@ func awsRestjson1_deserializeOpDocumentListFoldersOutput(v **ListFoldersOutput, return nil } -type awsRestjson1_deserializeOpListFoldersForResource struct { +type awsRestjson1_deserializeOpListIAMPolicyAssignmentsForUser struct { } -func (*awsRestjson1_deserializeOpListFoldersForResource) ID() string { +func (*awsRestjson1_deserializeOpListIAMPolicyAssignmentsForUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListFoldersForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListIAMPolicyAssignmentsForUser) 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) @@ -22307,12 +25345,12 @@ func (m *awsRestjson1_deserializeOpListFoldersForResource) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListFoldersForResource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListIAMPolicyAssignmentsForUser(response, &metadata) } - output := &ListFoldersForResourceOutput{} + output := &ListIAMPolicyAssignmentsForUserOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListFoldersForResourceOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsForUserOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -22335,7 +25373,7 @@ func (m *awsRestjson1_deserializeOpListFoldersForResource) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListFoldersForResourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsForUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22349,7 +25387,7 @@ func (m *awsRestjson1_deserializeOpListFoldersForResource) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorListFoldersForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListIAMPolicyAssignmentsForUser(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)} @@ -22393,24 +25431,24 @@ func awsRestjson1_deserializeOpErrorListFoldersForResource(response *smithyhttp. case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConcurrentUpdatingException", errorCode): + return awsRestjson1_deserializeErrorConcurrentUpdatingException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -22421,7 +25459,7 @@ func awsRestjson1_deserializeOpErrorListFoldersForResource(response *smithyhttp. } } -func awsRestjson1_deserializeOpHttpBindingsListFoldersForResourceOutput(v *ListFoldersForResourceOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsForUserOutput(v *ListIAMPolicyAssignmentsForUserOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -22430,7 +25468,7 @@ func awsRestjson1_deserializeOpHttpBindingsListFoldersForResourceOutput(v *ListF return nil } -func awsRestjson1_deserializeOpDocumentListFoldersForResourceOutput(v **ListFoldersForResourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsForUserOutput(v **ListIAMPolicyAssignmentsForUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22443,17 +25481,17 @@ func awsRestjson1_deserializeOpDocumentListFoldersForResourceOutput(v **ListFold return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListFoldersForResourceOutput + var sv *ListIAMPolicyAssignmentsForUserOutput if *v == nil { - sv = &ListFoldersForResourceOutput{} + sv = &ListIAMPolicyAssignmentsForUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Folders": - if err := awsRestjson1_deserializeDocumentFoldersForResourceArnList(&sv.Folders, value); err != nil { + case "ActiveAssignments": + if err := awsRestjson1_deserializeDocumentActiveIAMPolicyAssignmentList(&sv.ActiveAssignments, value); err != nil { return err } @@ -22484,14 +25522,14 @@ func awsRestjson1_deserializeOpDocumentListFoldersForResourceOutput(v **ListFold return nil } -type awsRestjson1_deserializeOpListGroupMemberships struct { +type awsRestjson1_deserializeOpListIdentityPropagationConfigs struct { } -func (*awsRestjson1_deserializeOpListGroupMemberships) ID() string { +func (*awsRestjson1_deserializeOpListIdentityPropagationConfigs) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListGroupMemberships) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListIdentityPropagationConfigs) 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) @@ -22509,12 +25547,12 @@ func (m *awsRestjson1_deserializeOpListGroupMemberships) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListGroupMemberships(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListIdentityPropagationConfigs(response, &metadata) } - output := &ListGroupMembershipsOutput{} + output := &ListIdentityPropagationConfigsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListGroupMembershipsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListIdentityPropagationConfigsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -22537,7 +25575,7 @@ func (m *awsRestjson1_deserializeOpListGroupMemberships) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListGroupMembershipsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListIdentityPropagationConfigsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22551,7 +25589,7 @@ func (m *awsRestjson1_deserializeOpListGroupMemberships) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorListGroupMemberships(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListIdentityPropagationConfigs(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)} @@ -22598,21 +25636,12 @@ func awsRestjson1_deserializeOpErrorListGroupMemberships(response *smithyhttp.Re case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -22626,7 +25655,7 @@ func awsRestjson1_deserializeOpErrorListGroupMemberships(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpHttpBindingsListGroupMembershipsOutput(v *ListGroupMembershipsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListIdentityPropagationConfigsOutput(v *ListIdentityPropagationConfigsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -22635,7 +25664,7 @@ func awsRestjson1_deserializeOpHttpBindingsListGroupMembershipsOutput(v *ListGro return nil } -func awsRestjson1_deserializeOpDocumentListGroupMembershipsOutput(v **ListGroupMembershipsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListIdentityPropagationConfigsOutput(v **ListIdentityPropagationConfigsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22648,20 +25677,15 @@ func awsRestjson1_deserializeOpDocumentListGroupMembershipsOutput(v **ListGroupM return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListGroupMembershipsOutput + var sv *ListIdentityPropagationConfigsOutput if *v == nil { - sv = &ListGroupMembershipsOutput{} + sv = &ListIdentityPropagationConfigsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupMemberList": - if err := awsRestjson1_deserializeDocumentGroupMemberList(&sv.GroupMemberList, value); err != nil { - return err - } - case "NextToken": if value != nil { jtv, ok := value.(string) @@ -22680,6 +25704,11 @@ func awsRestjson1_deserializeOpDocumentListGroupMembershipsOutput(v **ListGroupM sv.RequestId = ptr.String(jtv) } + case "Services": + if err := awsRestjson1_deserializeDocumentAuthorizedTargetsByServices(&sv.Services, value); err != nil { + return err + } + default: _, _ = key, value @@ -22689,14 +25718,14 @@ func awsRestjson1_deserializeOpDocumentListGroupMembershipsOutput(v **ListGroupM return nil } -type awsRestjson1_deserializeOpListGroups struct { +type awsRestjson1_deserializeOpListIngestions struct { } -func (*awsRestjson1_deserializeOpListGroups) ID() string { +func (*awsRestjson1_deserializeOpListIngestions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListIngestions) 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) @@ -22714,12 +25743,12 @@ func (m *awsRestjson1_deserializeOpListGroups) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListGroups(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListIngestions(response, &metadata) } - output := &ListGroupsOutput{} + output := &ListIngestionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListGroupsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListIngestionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -22742,7 +25771,7 @@ func (m *awsRestjson1_deserializeOpListGroups) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListGroupsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListIngestionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22756,7 +25785,7 @@ func (m *awsRestjson1_deserializeOpListGroups) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorListGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListIngestions(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)} @@ -22809,15 +25838,12 @@ func awsRestjson1_deserializeOpErrorListGroups(response *smithyhttp.Response, me case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -22831,7 +25857,7 @@ func awsRestjson1_deserializeOpErrorListGroups(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpHttpBindingsListGroupsOutput(v *ListGroupsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListIngestionsOutput(v *ListIngestionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -22840,7 +25866,7 @@ func awsRestjson1_deserializeOpHttpBindingsListGroupsOutput(v *ListGroupsOutput, return nil } -func awsRestjson1_deserializeOpDocumentListGroupsOutput(v **ListGroupsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListIngestionsOutput(v **ListIngestionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -22853,17 +25879,17 @@ func awsRestjson1_deserializeOpDocumentListGroupsOutput(v **ListGroupsOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListGroupsOutput + var sv *ListIngestionsOutput if *v == nil { - sv = &ListGroupsOutput{} + sv = &ListIngestionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupList": - if err := awsRestjson1_deserializeDocumentGroupList(&sv.GroupList, value); err != nil { + case "Ingestions": + if err := awsRestjson1_deserializeDocumentIngestions(&sv.Ingestions, value); err != nil { return err } @@ -22894,14 +25920,14 @@ func awsRestjson1_deserializeOpDocumentListGroupsOutput(v **ListGroupsOutput, va return nil } -type awsRestjson1_deserializeOpListIAMPolicyAssignments struct { +type awsRestjson1_deserializeOpListNamespaces struct { } -func (*awsRestjson1_deserializeOpListIAMPolicyAssignments) ID() string { +func (*awsRestjson1_deserializeOpListNamespaces) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListIAMPolicyAssignments) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListNamespaces) 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) @@ -22919,12 +25945,12 @@ func (m *awsRestjson1_deserializeOpListIAMPolicyAssignments) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListIAMPolicyAssignments(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListNamespaces(response, &metadata) } - output := &ListIAMPolicyAssignmentsOutput{} + output := &ListNamespacesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListNamespacesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -22947,7 +25973,7 @@ func (m *awsRestjson1_deserializeOpListIAMPolicyAssignments) HandleDeserialize(c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListNamespacesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -22961,7 +25987,7 @@ func (m *awsRestjson1_deserializeOpListIAMPolicyAssignments) HandleDeserialize(c return out, metadata, err } -func awsRestjson1_deserializeOpErrorListIAMPolicyAssignments(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListNamespaces(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)} @@ -23014,9 +26040,15 @@ func awsRestjson1_deserializeOpErrorListIAMPolicyAssignments(response *smithyhtt case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -23030,7 +26062,7 @@ func awsRestjson1_deserializeOpErrorListIAMPolicyAssignments(response *smithyhtt } } -func awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsOutput(v *ListIAMPolicyAssignmentsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListNamespacesOutput(v *ListNamespacesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -23039,7 +26071,7 @@ func awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsOutput(v *Lis return nil } -func awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsOutput(v **ListIAMPolicyAssignmentsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListNamespacesOutput(v **ListNamespacesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23052,17 +26084,17 @@ func awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsOutput(v **ListIA return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListIAMPolicyAssignmentsOutput + var sv *ListNamespacesOutput if *v == nil { - sv = &ListIAMPolicyAssignmentsOutput{} + sv = &ListNamespacesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "IAMPolicyAssignments": - if err := awsRestjson1_deserializeDocumentIAMPolicyAssignmentSummaryList(&sv.IAMPolicyAssignments, value); err != nil { + case "Namespaces": + if err := awsRestjson1_deserializeDocumentNamespaces(&sv.Namespaces, value); err != nil { return err } @@ -23093,14 +26125,14 @@ func awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsOutput(v **ListIA return nil } -type awsRestjson1_deserializeOpListIAMPolicyAssignmentsForUser struct { +type awsRestjson1_deserializeOpListRefreshSchedules struct { } -func (*awsRestjson1_deserializeOpListIAMPolicyAssignmentsForUser) ID() string { +func (*awsRestjson1_deserializeOpListRefreshSchedules) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListIAMPolicyAssignmentsForUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListRefreshSchedules) 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) @@ -23118,12 +26150,12 @@ func (m *awsRestjson1_deserializeOpListIAMPolicyAssignmentsForUser) HandleDeseri } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListIAMPolicyAssignmentsForUser(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListRefreshSchedules(response, &metadata) } - output := &ListIAMPolicyAssignmentsForUserOutput{} + output := &ListRefreshSchedulesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsForUserOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListRefreshSchedulesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -23146,7 +26178,7 @@ func (m *awsRestjson1_deserializeOpListIAMPolicyAssignmentsForUser) HandleDeseri return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsForUserOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListRefreshSchedulesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23160,7 +26192,7 @@ func (m *awsRestjson1_deserializeOpListIAMPolicyAssignmentsForUser) HandleDeseri return out, metadata, err } -func awsRestjson1_deserializeOpErrorListIAMPolicyAssignmentsForUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListRefreshSchedules(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)} @@ -23204,17 +26236,14 @@ func awsRestjson1_deserializeOpErrorListIAMPolicyAssignmentsForUser(response *sm case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConcurrentUpdatingException", errorCode): - return awsRestjson1_deserializeErrorConcurrentUpdatingException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -23232,7 +26261,7 @@ func awsRestjson1_deserializeOpErrorListIAMPolicyAssignmentsForUser(response *sm } } -func awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsForUserOutput(v *ListIAMPolicyAssignmentsForUserOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListRefreshSchedulesOutput(v *ListRefreshSchedulesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -23241,7 +26270,7 @@ func awsRestjson1_deserializeOpHttpBindingsListIAMPolicyAssignmentsForUserOutput return nil } -func awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsForUserOutput(v **ListIAMPolicyAssignmentsForUserOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListRefreshSchedulesOutput(v **ListRefreshSchedulesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23254,29 +26283,20 @@ func awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsForUserOutput(v * return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListIAMPolicyAssignmentsForUserOutput + var sv *ListRefreshSchedulesOutput if *v == nil { - sv = &ListIAMPolicyAssignmentsForUserOutput{} + sv = &ListRefreshSchedulesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "ActiveAssignments": - if err := awsRestjson1_deserializeDocumentActiveIAMPolicyAssignmentList(&sv.ActiveAssignments, value); err != nil { + case "RefreshSchedules": + if err := awsRestjson1_deserializeDocumentRefreshSchedules(&sv.RefreshSchedules, value); err != nil { return err } - 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 "RequestId": if value != nil { jtv, ok := value.(string) @@ -23295,14 +26315,14 @@ func awsRestjson1_deserializeOpDocumentListIAMPolicyAssignmentsForUserOutput(v * return nil } -type awsRestjson1_deserializeOpListIdentityPropagationConfigs struct { +type awsRestjson1_deserializeOpListRoleMemberships struct { } -func (*awsRestjson1_deserializeOpListIdentityPropagationConfigs) ID() string { +func (*awsRestjson1_deserializeOpListRoleMemberships) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListIdentityPropagationConfigs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListRoleMemberships) 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) @@ -23320,12 +26340,12 @@ func (m *awsRestjson1_deserializeOpListIdentityPropagationConfigs) HandleDeseria } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListIdentityPropagationConfigs(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListRoleMemberships(response, &metadata) } - output := &ListIdentityPropagationConfigsOutput{} + output := &ListRoleMembershipsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListIdentityPropagationConfigsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListRoleMembershipsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -23348,7 +26368,7 @@ func (m *awsRestjson1_deserializeOpListIdentityPropagationConfigs) HandleDeseria return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListIdentityPropagationConfigsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListRoleMembershipsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23362,7 +26382,7 @@ func (m *awsRestjson1_deserializeOpListIdentityPropagationConfigs) HandleDeseria return out, metadata, err } -func awsRestjson1_deserializeOpErrorListIdentityPropagationConfigs(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListRoleMemberships(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)} @@ -23409,12 +26429,24 @@ func awsRestjson1_deserializeOpErrorListIdentityPropagationConfigs(response *smi case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -23428,7 +26460,7 @@ func awsRestjson1_deserializeOpErrorListIdentityPropagationConfigs(response *smi } } -func awsRestjson1_deserializeOpHttpBindingsListIdentityPropagationConfigsOutput(v *ListIdentityPropagationConfigsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListRoleMembershipsOutput(v *ListRoleMembershipsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -23437,7 +26469,7 @@ func awsRestjson1_deserializeOpHttpBindingsListIdentityPropagationConfigsOutput( return nil } -func awsRestjson1_deserializeOpDocumentListIdentityPropagationConfigsOutput(v **ListIdentityPropagationConfigsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListRoleMembershipsOutput(v **ListRoleMembershipsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23450,15 +26482,20 @@ func awsRestjson1_deserializeOpDocumentListIdentityPropagationConfigsOutput(v ** return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListIdentityPropagationConfigsOutput + var sv *ListRoleMembershipsOutput if *v == nil { - sv = &ListIdentityPropagationConfigsOutput{} + sv = &ListRoleMembershipsOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "MembersList": + if err := awsRestjson1_deserializeDocumentGroupsList(&sv.MembersList, value); err != nil { + return err + } + case "NextToken": if value != nil { jtv, ok := value.(string) @@ -23477,11 +26514,6 @@ func awsRestjson1_deserializeOpDocumentListIdentityPropagationConfigsOutput(v ** sv.RequestId = ptr.String(jtv) } - case "Services": - if err := awsRestjson1_deserializeDocumentAuthorizedTargetsByServices(&sv.Services, value); err != nil { - return err - } - default: _, _ = key, value @@ -23491,14 +26523,14 @@ func awsRestjson1_deserializeOpDocumentListIdentityPropagationConfigsOutput(v ** return nil } -type awsRestjson1_deserializeOpListIngestions struct { +type awsRestjson1_deserializeOpListTagsForResource struct { } -func (*awsRestjson1_deserializeOpListIngestions) ID() string { +func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListIngestions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +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) @@ -23516,12 +26548,12 @@ func (m *awsRestjson1_deserializeOpListIngestions) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListIngestions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata) } - output := &ListIngestionsOutput{} + output := &ListTagsForResourceOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListIngestionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListTagsForResourceOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -23544,7 +26576,7 @@ func (m *awsRestjson1_deserializeOpListIngestions) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListIngestionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23558,7 +26590,7 @@ func (m *awsRestjson1_deserializeOpListIngestions) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorListIngestions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListTagsForResource(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)} @@ -23605,15 +26637,9 @@ func awsRestjson1_deserializeOpErrorListIngestions(response *smithyhttp.Response case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -23630,7 +26656,7 @@ func awsRestjson1_deserializeOpErrorListIngestions(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsListIngestionsOutput(v *ListIngestionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListTagsForResourceOutput(v *ListTagsForResourceOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -23639,7 +26665,7 @@ func awsRestjson1_deserializeOpHttpBindingsListIngestionsOutput(v *ListIngestion return nil } -func awsRestjson1_deserializeOpDocumentListIngestionsOutput(v **ListIngestionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23652,29 +26678,15 @@ func awsRestjson1_deserializeOpDocumentListIngestionsOutput(v **ListIngestionsOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListIngestionsOutput + var sv *ListTagsForResourceOutput if *v == nil { - sv = &ListIngestionsOutput{} + sv = &ListTagsForResourceOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Ingestions": - if err := awsRestjson1_deserializeDocumentIngestions(&sv.Ingestions, value); err != nil { - return err - } - - 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 "RequestId": if value != nil { jtv, ok := value.(string) @@ -23684,6 +26696,11 @@ func awsRestjson1_deserializeOpDocumentListIngestionsOutput(v **ListIngestionsOu sv.RequestId = ptr.String(jtv) } + case "Tags": + if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil { + return err + } + default: _, _ = key, value @@ -23693,14 +26710,14 @@ func awsRestjson1_deserializeOpDocumentListIngestionsOutput(v **ListIngestionsOu return nil } -type awsRestjson1_deserializeOpListNamespaces struct { +type awsRestjson1_deserializeOpListTemplateAliases struct { } -func (*awsRestjson1_deserializeOpListNamespaces) ID() string { +func (*awsRestjson1_deserializeOpListTemplateAliases) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListNamespaces) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListTemplateAliases) 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) @@ -23718,12 +26735,12 @@ func (m *awsRestjson1_deserializeOpListNamespaces) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListNamespaces(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTemplateAliases(response, &metadata) } - output := &ListNamespacesOutput{} + output := &ListTemplateAliasesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListNamespacesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListTemplateAliasesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -23746,7 +26763,7 @@ func (m *awsRestjson1_deserializeOpListNamespaces) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListNamespacesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListTemplateAliasesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23760,7 +26777,7 @@ func (m *awsRestjson1_deserializeOpListNamespaces) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorListNamespaces(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListTemplateAliases(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)} @@ -23801,30 +26818,21 @@ func awsRestjson1_deserializeOpErrorListNamespaces(response *smithyhttp.Response } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidNextTokenException", errorCode): return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -23835,7 +26843,7 @@ func awsRestjson1_deserializeOpErrorListNamespaces(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsListNamespacesOutput(v *ListNamespacesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListTemplateAliasesOutput(v *ListTemplateAliasesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -23844,7 +26852,7 @@ func awsRestjson1_deserializeOpHttpBindingsListNamespacesOutput(v *ListNamespace return nil } -func awsRestjson1_deserializeOpDocumentListNamespacesOutput(v **ListNamespacesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListTemplateAliasesOutput(v **ListTemplateAliasesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -23857,20 +26865,15 @@ func awsRestjson1_deserializeOpDocumentListNamespacesOutput(v **ListNamespacesOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListNamespacesOutput + var sv *ListTemplateAliasesOutput if *v == nil { - sv = &ListNamespacesOutput{} + sv = &ListTemplateAliasesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Namespaces": - if err := awsRestjson1_deserializeDocumentNamespaces(&sv.Namespaces, value); err != nil { - return err - } - case "NextToken": if value != nil { jtv, ok := value.(string) @@ -23889,6 +26892,11 @@ func awsRestjson1_deserializeOpDocumentListNamespacesOutput(v **ListNamespacesOu sv.RequestId = ptr.String(jtv) } + case "TemplateAliasList": + if err := awsRestjson1_deserializeDocumentTemplateAliasList(&sv.TemplateAliasList, value); err != nil { + return err + } + default: _, _ = key, value @@ -23898,14 +26906,14 @@ func awsRestjson1_deserializeOpDocumentListNamespacesOutput(v **ListNamespacesOu return nil } -type awsRestjson1_deserializeOpListRefreshSchedules struct { +type awsRestjson1_deserializeOpListTemplates struct { } -func (*awsRestjson1_deserializeOpListRefreshSchedules) ID() string { +func (*awsRestjson1_deserializeOpListTemplates) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListRefreshSchedules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListTemplates) 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) @@ -23923,12 +26931,12 @@ func (m *awsRestjson1_deserializeOpListRefreshSchedules) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListRefreshSchedules(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTemplates(response, &metadata) } - output := &ListRefreshSchedulesOutput{} + output := &ListTemplatesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListRefreshSchedulesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListTemplatesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -23951,7 +26959,7 @@ func (m *awsRestjson1_deserializeOpListRefreshSchedules) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListRefreshSchedulesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListTemplatesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -23965,7 +26973,7 @@ func (m *awsRestjson1_deserializeOpListRefreshSchedules) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorListRefreshSchedules(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListTemplates(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)} @@ -24006,24 +27014,24 @@ func awsRestjson1_deserializeOpErrorListRefreshSchedules(response *smithyhttp.Re } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -24034,7 +27042,7 @@ func awsRestjson1_deserializeOpErrorListRefreshSchedules(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpHttpBindingsListRefreshSchedulesOutput(v *ListRefreshSchedulesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListTemplatesOutput(v *ListTemplatesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -24043,7 +27051,7 @@ func awsRestjson1_deserializeOpHttpBindingsListRefreshSchedulesOutput(v *ListRef return nil } -func awsRestjson1_deserializeOpDocumentListRefreshSchedulesOutput(v **ListRefreshSchedulesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListTemplatesOutput(v **ListTemplatesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24056,18 +27064,22 @@ func awsRestjson1_deserializeOpDocumentListRefreshSchedulesOutput(v **ListRefres return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListRefreshSchedulesOutput + var sv *ListTemplatesOutput if *v == nil { - sv = &ListRefreshSchedulesOutput{} + sv = &ListTemplatesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "RefreshSchedules": - if err := awsRestjson1_deserializeDocumentRefreshSchedules(&sv.RefreshSchedules, value); err != nil { - return err + 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 "RequestId": @@ -24079,6 +27091,11 @@ func awsRestjson1_deserializeOpDocumentListRefreshSchedulesOutput(v **ListRefres sv.RequestId = ptr.String(jtv) } + case "TemplateSummaryList": + if err := awsRestjson1_deserializeDocumentTemplateSummaryList(&sv.TemplateSummaryList, value); err != nil { + return err + } + default: _, _ = key, value @@ -24088,14 +27105,14 @@ func awsRestjson1_deserializeOpDocumentListRefreshSchedulesOutput(v **ListRefres return nil } -type awsRestjson1_deserializeOpListRoleMemberships struct { +type awsRestjson1_deserializeOpListTemplateVersions struct { } -func (*awsRestjson1_deserializeOpListRoleMemberships) ID() string { +func (*awsRestjson1_deserializeOpListTemplateVersions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListRoleMemberships) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListTemplateVersions) 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) @@ -24113,12 +27130,12 @@ func (m *awsRestjson1_deserializeOpListRoleMemberships) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListRoleMemberships(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTemplateVersions(response, &metadata) } - output := &ListRoleMembershipsOutput{} + output := &ListTemplateVersionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListRoleMembershipsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListTemplateVersionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -24141,7 +27158,7 @@ func (m *awsRestjson1_deserializeOpListRoleMemberships) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListRoleMembershipsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListTemplateVersionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24155,7 +27172,7 @@ func (m *awsRestjson1_deserializeOpListRoleMemberships) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorListRoleMemberships(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListTemplateVersions(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)} @@ -24196,9 +27213,6 @@ func awsRestjson1_deserializeOpErrorListRoleMemberships(response *smithyhttp.Res } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -24208,21 +27222,15 @@ func awsRestjson1_deserializeOpErrorListRoleMemberships(response *smithyhttp.Res case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -24233,7 +27241,7 @@ func awsRestjson1_deserializeOpErrorListRoleMemberships(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpHttpBindingsListRoleMembershipsOutput(v *ListRoleMembershipsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListTemplateVersionsOutput(v *ListTemplateVersionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -24242,7 +27250,7 @@ func awsRestjson1_deserializeOpHttpBindingsListRoleMembershipsOutput(v *ListRole return nil } -func awsRestjson1_deserializeOpDocumentListRoleMembershipsOutput(v **ListRoleMembershipsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListTemplateVersionsOutput(v **ListTemplateVersionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24255,20 +27263,15 @@ func awsRestjson1_deserializeOpDocumentListRoleMembershipsOutput(v **ListRoleMem return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListRoleMembershipsOutput + var sv *ListTemplateVersionsOutput if *v == nil { - sv = &ListRoleMembershipsOutput{} + sv = &ListTemplateVersionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "MembersList": - if err := awsRestjson1_deserializeDocumentGroupsList(&sv.MembersList, value); err != nil { - return err - } - case "NextToken": if value != nil { jtv, ok := value.(string) @@ -24287,6 +27290,11 @@ func awsRestjson1_deserializeOpDocumentListRoleMembershipsOutput(v **ListRoleMem sv.RequestId = ptr.String(jtv) } + case "TemplateVersionSummaryList": + if err := awsRestjson1_deserializeDocumentTemplateVersionSummaryList(&sv.TemplateVersionSummaryList, value); err != nil { + return err + } + default: _, _ = key, value @@ -24296,14 +27304,14 @@ func awsRestjson1_deserializeOpDocumentListRoleMembershipsOutput(v **ListRoleMem return nil } -type awsRestjson1_deserializeOpListTagsForResource struct { +type awsRestjson1_deserializeOpListThemeAliases struct { } -func (*awsRestjson1_deserializeOpListTagsForResource) ID() string { +func (*awsRestjson1_deserializeOpListThemeAliases) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListThemeAliases) 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) @@ -24321,12 +27329,12 @@ 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_deserializeOpErrorListThemeAliases(response, &metadata) } - output := &ListTagsForResourceOutput{} + output := &ListThemeAliasesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListTagsForResourceOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListThemeAliasesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -24349,7 +27357,7 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListThemeAliasesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24363,7 +27371,7 @@ func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListThemeAliases(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)} @@ -24404,12 +27412,15 @@ func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) @@ -24419,6 +27430,9 @@ func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Res case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -24429,7 +27443,7 @@ func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpHttpBindingsListTagsForResourceOutput(v *ListTagsForResourceOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListThemeAliasesOutput(v *ListThemeAliasesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -24438,7 +27452,7 @@ func awsRestjson1_deserializeOpHttpBindingsListTagsForResourceOutput(v *ListTags return nil } -func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListThemeAliasesOutput(v **ListThemeAliasesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24451,15 +27465,24 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTagsForResourceOutput + var sv *ListThemeAliasesOutput if *v == nil { - sv = &ListTagsForResourceOutput{} + sv = &ListThemeAliasesOutput{} } 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 "RequestId": if value != nil { jtv, ok := value.(string) @@ -24469,8 +27492,8 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor sv.RequestId = ptr.String(jtv) } - case "Tags": - if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil { + case "ThemeAliasList": + if err := awsRestjson1_deserializeDocumentThemeAliasList(&sv.ThemeAliasList, value); err != nil { return err } @@ -24483,14 +27506,14 @@ func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsFor return nil } -type awsRestjson1_deserializeOpListTemplateAliases struct { +type awsRestjson1_deserializeOpListThemes struct { } -func (*awsRestjson1_deserializeOpListTemplateAliases) ID() string { +func (*awsRestjson1_deserializeOpListThemes) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTemplateAliases) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListThemes) 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) @@ -24508,12 +27531,12 @@ func (m *awsRestjson1_deserializeOpListTemplateAliases) HandleDeserialize(ctx co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListTemplateAliases(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListThemes(response, &metadata) } - output := &ListTemplateAliasesOutput{} + output := &ListThemesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListTemplateAliasesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListThemesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -24536,7 +27559,7 @@ func (m *awsRestjson1_deserializeOpListTemplateAliases) HandleDeserialize(ctx co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTemplateAliasesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListThemesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24550,7 +27573,7 @@ func (m *awsRestjson1_deserializeOpListTemplateAliases) HandleDeserialize(ctx co return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTemplateAliases(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListThemes(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)} @@ -24591,12 +27614,18 @@ func awsRestjson1_deserializeOpErrorListTemplateAliases(response *smithyhttp.Res } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidNextTokenException", errorCode): return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -24616,7 +27645,7 @@ func awsRestjson1_deserializeOpErrorListTemplateAliases(response *smithyhttp.Res } } -func awsRestjson1_deserializeOpHttpBindingsListTemplateAliasesOutput(v *ListTemplateAliasesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListThemesOutput(v *ListThemesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -24625,7 +27654,7 @@ func awsRestjson1_deserializeOpHttpBindingsListTemplateAliasesOutput(v *ListTemp return nil } -func awsRestjson1_deserializeOpDocumentListTemplateAliasesOutput(v **ListTemplateAliasesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListThemesOutput(v **ListThemesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24638,9 +27667,9 @@ func awsRestjson1_deserializeOpDocumentListTemplateAliasesOutput(v **ListTemplat return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTemplateAliasesOutput + var sv *ListThemesOutput if *v == nil { - sv = &ListTemplateAliasesOutput{} + sv = &ListThemesOutput{} } else { sv = *v } @@ -24665,8 +27694,8 @@ func awsRestjson1_deserializeOpDocumentListTemplateAliasesOutput(v **ListTemplat sv.RequestId = ptr.String(jtv) } - case "TemplateAliasList": - if err := awsRestjson1_deserializeDocumentTemplateAliasList(&sv.TemplateAliasList, value); err != nil { + case "ThemeSummaryList": + if err := awsRestjson1_deserializeDocumentThemeSummaryList(&sv.ThemeSummaryList, value); err != nil { return err } @@ -24679,14 +27708,14 @@ func awsRestjson1_deserializeOpDocumentListTemplateAliasesOutput(v **ListTemplat return nil } -type awsRestjson1_deserializeOpListTemplates struct { +type awsRestjson1_deserializeOpListThemeVersions struct { } -func (*awsRestjson1_deserializeOpListTemplates) ID() string { +func (*awsRestjson1_deserializeOpListThemeVersions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTemplates) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListThemeVersions) 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) @@ -24704,12 +27733,12 @@ func (m *awsRestjson1_deserializeOpListTemplates) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListTemplates(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListThemeVersions(response, &metadata) } - output := &ListTemplatesOutput{} + output := &ListThemeVersionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListTemplatesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListThemeVersionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -24732,7 +27761,7 @@ func (m *awsRestjson1_deserializeOpListTemplates) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTemplatesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListThemeVersionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24746,7 +27775,7 @@ func (m *awsRestjson1_deserializeOpListTemplates) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTemplates(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListThemeVersions(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)} @@ -24787,6 +27816,9 @@ func awsRestjson1_deserializeOpErrorListTemplates(response *smithyhttp.Response, } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -24815,7 +27847,7 @@ func awsRestjson1_deserializeOpErrorListTemplates(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsListTemplatesOutput(v *ListTemplatesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListThemeVersionsOutput(v *ListThemeVersionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -24824,7 +27856,7 @@ func awsRestjson1_deserializeOpHttpBindingsListTemplatesOutput(v *ListTemplatesO return nil } -func awsRestjson1_deserializeOpDocumentListTemplatesOutput(v **ListTemplatesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListThemeVersionsOutput(v **ListThemeVersionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -24837,9 +27869,9 @@ func awsRestjson1_deserializeOpDocumentListTemplatesOutput(v **ListTemplatesOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTemplatesOutput + var sv *ListThemeVersionsOutput if *v == nil { - sv = &ListTemplatesOutput{} + sv = &ListThemeVersionsOutput{} } else { sv = *v } @@ -24864,8 +27896,8 @@ func awsRestjson1_deserializeOpDocumentListTemplatesOutput(v **ListTemplatesOutp sv.RequestId = ptr.String(jtv) } - case "TemplateSummaryList": - if err := awsRestjson1_deserializeDocumentTemplateSummaryList(&sv.TemplateSummaryList, value); err != nil { + case "ThemeVersionSummaryList": + if err := awsRestjson1_deserializeDocumentThemeVersionSummaryList(&sv.ThemeVersionSummaryList, value); err != nil { return err } @@ -24878,14 +27910,14 @@ func awsRestjson1_deserializeOpDocumentListTemplatesOutput(v **ListTemplatesOutp return nil } -type awsRestjson1_deserializeOpListTemplateVersions struct { +type awsRestjson1_deserializeOpListTopicRefreshSchedules struct { } -func (*awsRestjson1_deserializeOpListTemplateVersions) ID() string { +func (*awsRestjson1_deserializeOpListTopicRefreshSchedules) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTemplateVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListTopicRefreshSchedules) 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) @@ -24903,12 +27935,12 @@ func (m *awsRestjson1_deserializeOpListTemplateVersions) HandleDeserialize(ctx c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListTemplateVersions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTopicRefreshSchedules(response, &metadata) } - output := &ListTemplateVersionsOutput{} + output := &ListTopicRefreshSchedulesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListTemplateVersionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListTopicRefreshSchedulesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -24931,7 +27963,7 @@ func (m *awsRestjson1_deserializeOpListTemplateVersions) HandleDeserialize(ctx c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTemplateVersionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListTopicRefreshSchedulesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -24945,7 +27977,7 @@ func (m *awsRestjson1_deserializeOpListTemplateVersions) HandleDeserialize(ctx c return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTemplateVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListTopicRefreshSchedules(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)} @@ -24986,24 +28018,30 @@ func awsRestjson1_deserializeOpErrorListTemplateVersions(response *smithyhttp.Re } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -25014,7 +28052,7 @@ func awsRestjson1_deserializeOpErrorListTemplateVersions(response *smithyhttp.Re } } -func awsRestjson1_deserializeOpHttpBindingsListTemplateVersionsOutput(v *ListTemplateVersionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListTopicRefreshSchedulesOutput(v *ListTopicRefreshSchedulesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -25023,7 +28061,7 @@ func awsRestjson1_deserializeOpHttpBindingsListTemplateVersionsOutput(v *ListTem return nil } -func awsRestjson1_deserializeOpDocumentListTemplateVersionsOutput(v **ListTemplateVersionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListTopicRefreshSchedulesOutput(v **ListTopicRefreshSchedulesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25036,36 +28074,45 @@ func awsRestjson1_deserializeOpDocumentListTemplateVersionsOutput(v **ListTempla return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTemplateVersionsOutput + var sv *ListTopicRefreshSchedulesOutput if *v == nil { - sv = &ListTemplateVersionsOutput{} + sv = &ListTopicRefreshSchedulesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "NextToken": + case "RefreshSchedules": + if err := awsRestjson1_deserializeDocumentTopicRefreshScheduleSummaries(&sv.RefreshSchedules, value); err != nil { + return err + } + + case "RequestId": 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) + sv.RequestId = ptr.String(jtv) } - case "RequestId": + case "TopicArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.TopicArn = ptr.String(jtv) } - case "TemplateVersionSummaryList": - if err := awsRestjson1_deserializeDocumentTemplateVersionSummaryList(&sv.TemplateVersionSummaryList, value); err != nil { - return err + case "TopicId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + } + sv.TopicId = ptr.String(jtv) } default: @@ -25077,14 +28124,14 @@ func awsRestjson1_deserializeOpDocumentListTemplateVersionsOutput(v **ListTempla return nil } -type awsRestjson1_deserializeOpListThemeAliases struct { +type awsRestjson1_deserializeOpListTopicReviewedAnswers struct { } -func (*awsRestjson1_deserializeOpListThemeAliases) ID() string { +func (*awsRestjson1_deserializeOpListTopicReviewedAnswers) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListThemeAliases) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListTopicReviewedAnswers) 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) @@ -25102,12 +28149,12 @@ func (m *awsRestjson1_deserializeOpListThemeAliases) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListThemeAliases(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTopicReviewedAnswers(response, &metadata) } - output := &ListThemeAliasesOutput{} + output := &ListTopicReviewedAnswersOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListThemeAliasesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListTopicReviewedAnswersOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -25130,7 +28177,7 @@ func (m *awsRestjson1_deserializeOpListThemeAliases) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListThemeAliasesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListTopicReviewedAnswersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25144,7 +28191,7 @@ func (m *awsRestjson1_deserializeOpListThemeAliases) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorListThemeAliases(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListTopicReviewedAnswers(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)} @@ -25185,15 +28232,12 @@ func awsRestjson1_deserializeOpErrorListThemeAliases(response *smithyhttp.Respon } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) @@ -25203,9 +28247,6 @@ func awsRestjson1_deserializeOpErrorListThemeAliases(response *smithyhttp.Respon case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -25216,7 +28257,7 @@ func awsRestjson1_deserializeOpErrorListThemeAliases(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpHttpBindingsListThemeAliasesOutput(v *ListThemeAliasesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListTopicReviewedAnswersOutput(v *ListTopicReviewedAnswersOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -25225,7 +28266,7 @@ func awsRestjson1_deserializeOpHttpBindingsListThemeAliasesOutput(v *ListThemeAl return nil } -func awsRestjson1_deserializeOpDocumentListThemeAliasesOutput(v **ListThemeAliasesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListTopicReviewedAnswersOutput(v **ListTopicReviewedAnswersOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25238,36 +28279,45 @@ func awsRestjson1_deserializeOpDocumentListThemeAliasesOutput(v **ListThemeAlias return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListThemeAliasesOutput + var sv *ListTopicReviewedAnswersOutput if *v == nil { - sv = &ListThemeAliasesOutput{} + sv = &ListTopicReviewedAnswersOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "NextToken": + case "Answers": + if err := awsRestjson1_deserializeDocumentTopicReviewedAnswers(&sv.Answers, value); err != nil { + return err + } + + case "RequestId": 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) + sv.RequestId = ptr.String(jtv) } - case "RequestId": + case "TopicArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.TopicArn = ptr.String(jtv) } - case "ThemeAliasList": - if err := awsRestjson1_deserializeDocumentThemeAliasList(&sv.ThemeAliasList, value); err != nil { - return err + case "TopicId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) + } + sv.TopicId = ptr.String(jtv) } default: @@ -25279,14 +28329,14 @@ func awsRestjson1_deserializeOpDocumentListThemeAliasesOutput(v **ListThemeAlias return nil } -type awsRestjson1_deserializeOpListThemes struct { +type awsRestjson1_deserializeOpListTopics struct { } -func (*awsRestjson1_deserializeOpListThemes) ID() string { +func (*awsRestjson1_deserializeOpListTopics) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListThemes) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListTopics) 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) @@ -25304,12 +28354,12 @@ func (m *awsRestjson1_deserializeOpListThemes) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListThemes(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListTopics(response, &metadata) } - output := &ListThemesOutput{} + output := &ListTopicsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListThemesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListTopicsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -25332,7 +28382,7 @@ func (m *awsRestjson1_deserializeOpListThemes) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListThemesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListTopicsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25346,7 +28396,7 @@ func (m *awsRestjson1_deserializeOpListThemes) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorListThemes(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListTopics(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)} @@ -25399,15 +28449,9 @@ func awsRestjson1_deserializeOpErrorListThemes(response *smithyhttp.Response, me case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -25418,7 +28462,7 @@ func awsRestjson1_deserializeOpErrorListThemes(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpHttpBindingsListThemesOutput(v *ListThemesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListTopicsOutput(v *ListTopicsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -25427,7 +28471,7 @@ func awsRestjson1_deserializeOpHttpBindingsListThemesOutput(v *ListThemesOutput, return nil } -func awsRestjson1_deserializeOpDocumentListThemesOutput(v **ListThemesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListTopicsOutput(v **ListTopicsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25440,9 +28484,9 @@ func awsRestjson1_deserializeOpDocumentListThemesOutput(v **ListThemesOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListThemesOutput + var sv *ListTopicsOutput if *v == nil { - sv = &ListThemesOutput{} + sv = &ListTopicsOutput{} } else { sv = *v } @@ -25467,8 +28511,8 @@ func awsRestjson1_deserializeOpDocumentListThemesOutput(v **ListThemesOutput, va sv.RequestId = ptr.String(jtv) } - case "ThemeSummaryList": - if err := awsRestjson1_deserializeDocumentThemeSummaryList(&sv.ThemeSummaryList, value); err != nil { + case "TopicsSummaries": + if err := awsRestjson1_deserializeDocumentTopicSummaries(&sv.TopicsSummaries, value); err != nil { return err } @@ -25481,14 +28525,14 @@ func awsRestjson1_deserializeOpDocumentListThemesOutput(v **ListThemesOutput, va return nil } -type awsRestjson1_deserializeOpListThemeVersions struct { +type awsRestjson1_deserializeOpListUserGroups struct { } -func (*awsRestjson1_deserializeOpListThemeVersions) ID() string { +func (*awsRestjson1_deserializeOpListUserGroups) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListThemeVersions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListUserGroups) 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) @@ -25506,12 +28550,12 @@ func (m *awsRestjson1_deserializeOpListThemeVersions) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListThemeVersions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListUserGroups(response, &metadata) } - output := &ListThemeVersionsOutput{} + output := &ListUserGroupsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListThemeVersionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListUserGroupsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -25534,7 +28578,7 @@ func (m *awsRestjson1_deserializeOpListThemeVersions) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListThemeVersionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListUserGroupsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25548,7 +28592,7 @@ func (m *awsRestjson1_deserializeOpListThemeVersions) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorListThemeVersions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListUserGroups(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)} @@ -25595,21 +28639,21 @@ func awsRestjson1_deserializeOpErrorListThemeVersions(response *smithyhttp.Respo case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -25620,7 +28664,7 @@ func awsRestjson1_deserializeOpErrorListThemeVersions(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpHttpBindingsListThemeVersionsOutput(v *ListThemeVersionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListUserGroupsOutput(v *ListUserGroupsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -25629,7 +28673,7 @@ func awsRestjson1_deserializeOpHttpBindingsListThemeVersionsOutput(v *ListThemeV return nil } -func awsRestjson1_deserializeOpDocumentListThemeVersionsOutput(v **ListThemeVersionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListUserGroupsOutput(v **ListUserGroupsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25642,15 +28686,20 @@ func awsRestjson1_deserializeOpDocumentListThemeVersionsOutput(v **ListThemeVers return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListThemeVersionsOutput + var sv *ListUserGroupsOutput if *v == nil { - sv = &ListThemeVersionsOutput{} + sv = &ListUserGroupsOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "GroupList": + if err := awsRestjson1_deserializeDocumentGroupList(&sv.GroupList, value); err != nil { + return err + } + case "NextToken": if value != nil { jtv, ok := value.(string) @@ -25669,11 +28718,6 @@ func awsRestjson1_deserializeOpDocumentListThemeVersionsOutput(v **ListThemeVers sv.RequestId = ptr.String(jtv) } - case "ThemeVersionSummaryList": - if err := awsRestjson1_deserializeDocumentThemeVersionSummaryList(&sv.ThemeVersionSummaryList, value); err != nil { - return err - } - default: _, _ = key, value @@ -25683,14 +28727,14 @@ func awsRestjson1_deserializeOpDocumentListThemeVersionsOutput(v **ListThemeVers return nil } -type awsRestjson1_deserializeOpListTopicRefreshSchedules struct { +type awsRestjson1_deserializeOpListUsers struct { } -func (*awsRestjson1_deserializeOpListTopicRefreshSchedules) ID() string { +func (*awsRestjson1_deserializeOpListUsers) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTopicRefreshSchedules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListUsers) 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) @@ -25708,12 +28752,12 @@ func (m *awsRestjson1_deserializeOpListTopicRefreshSchedules) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListTopicRefreshSchedules(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListUsers(response, &metadata) } - output := &ListTopicRefreshSchedulesOutput{} + output := &ListUsersOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListTopicRefreshSchedulesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListUsersOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -25736,7 +28780,7 @@ func (m *awsRestjson1_deserializeOpListTopicRefreshSchedules) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTopicRefreshSchedulesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListUsersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25750,7 +28794,7 @@ func (m *awsRestjson1_deserializeOpListTopicRefreshSchedules) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTopicRefreshSchedules(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListUsers(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)} @@ -25794,24 +28838,24 @@ func awsRestjson1_deserializeOpErrorListTopicRefreshSchedules(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -25825,7 +28869,7 @@ func awsRestjson1_deserializeOpErrorListTopicRefreshSchedules(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsListTopicRefreshSchedulesOutput(v *ListTopicRefreshSchedulesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListUsersOutput(v *ListUsersOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -25834,7 +28878,7 @@ func awsRestjson1_deserializeOpHttpBindingsListTopicRefreshSchedulesOutput(v *Li return nil } -func awsRestjson1_deserializeOpDocumentListTopicRefreshSchedulesOutput(v **ListTopicRefreshSchedulesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListUsersOutput(v **ListUsersOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -25847,45 +28891,36 @@ func awsRestjson1_deserializeOpDocumentListTopicRefreshSchedulesOutput(v **ListT return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTopicRefreshSchedulesOutput + var sv *ListUsersOutput if *v == nil { - sv = &ListTopicRefreshSchedulesOutput{} + sv = &ListUsersOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "RefreshSchedules": - if err := awsRestjson1_deserializeDocumentTopicRefreshScheduleSummaries(&sv.RefreshSchedules, value); err != nil { - return err - } - - case "RequestId": + 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.RequestId = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } - case "TopicArn": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.TopicArn = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } - case "TopicId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) - } - sv.TopicId = ptr.String(jtv) + case "UserList": + if err := awsRestjson1_deserializeDocumentUserList(&sv.UserList, value); err != nil { + return err } default: @@ -25897,14 +28932,14 @@ func awsRestjson1_deserializeOpDocumentListTopicRefreshSchedulesOutput(v **ListT return nil } -type awsRestjson1_deserializeOpListTopicReviewedAnswers struct { +type awsRestjson1_deserializeOpListVPCConnections struct { } -func (*awsRestjson1_deserializeOpListTopicReviewedAnswers) ID() string { +func (*awsRestjson1_deserializeOpListVPCConnections) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTopicReviewedAnswers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListVPCConnections) 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) @@ -25922,12 +28957,12 @@ func (m *awsRestjson1_deserializeOpListTopicReviewedAnswers) HandleDeserialize(c } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListTopicReviewedAnswers(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorListVPCConnections(response, &metadata) } - output := &ListTopicReviewedAnswersOutput{} + output := &ListVPCConnectionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListTopicReviewedAnswersOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsListVPCConnectionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -25950,7 +28985,7 @@ func (m *awsRestjson1_deserializeOpListTopicReviewedAnswers) HandleDeserialize(c return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTopicReviewedAnswersOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentListVPCConnectionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -25964,7 +28999,7 @@ func (m *awsRestjson1_deserializeOpListTopicReviewedAnswers) HandleDeserialize(c return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTopicReviewedAnswers(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorListVPCConnections(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)} @@ -26011,15 +29046,18 @@ func awsRestjson1_deserializeOpErrorListTopicReviewedAnswers(response *smithyhtt case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -26030,7 +29068,7 @@ func awsRestjson1_deserializeOpErrorListTopicReviewedAnswers(response *smithyhtt } } -func awsRestjson1_deserializeOpHttpBindingsListTopicReviewedAnswersOutput(v *ListTopicReviewedAnswersOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsListVPCConnectionsOutput(v *ListVPCConnectionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -26039,7 +29077,7 @@ func awsRestjson1_deserializeOpHttpBindingsListTopicReviewedAnswersOutput(v *Lis return nil } -func awsRestjson1_deserializeOpDocumentListTopicReviewedAnswersOutput(v **ListTopicReviewedAnswersOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentListVPCConnectionsOutput(v **ListVPCConnectionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26052,45 +29090,36 @@ func awsRestjson1_deserializeOpDocumentListTopicReviewedAnswersOutput(v **ListTo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTopicReviewedAnswersOutput + var sv *ListVPCConnectionsOutput if *v == nil { - sv = &ListTopicReviewedAnswersOutput{} + sv = &ListVPCConnectionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Answers": - if err := awsRestjson1_deserializeDocumentTopicReviewedAnswers(&sv.Answers, value); err != nil { - return err - } - - case "RequestId": + 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.RequestId = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } - case "TopicArn": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.TopicArn = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } - case "TopicId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) - } - sv.TopicId = ptr.String(jtv) + case "VPCConnectionSummaries": + if err := awsRestjson1_deserializeDocumentVPCConnectionSummaryList(&sv.VPCConnectionSummaries, value); err != nil { + return err } default: @@ -26102,14 +29131,14 @@ func awsRestjson1_deserializeOpDocumentListTopicReviewedAnswersOutput(v **ListTo return nil } -type awsRestjson1_deserializeOpListTopics struct { +type awsRestjson1_deserializeOpPutDataSetRefreshProperties struct { } -func (*awsRestjson1_deserializeOpListTopics) ID() string { +func (*awsRestjson1_deserializeOpPutDataSetRefreshProperties) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListTopics) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpPutDataSetRefreshProperties) 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) @@ -26127,12 +29156,12 @@ func (m *awsRestjson1_deserializeOpListTopics) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListTopics(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorPutDataSetRefreshProperties(response, &metadata) } - output := &ListTopicsOutput{} + output := &PutDataSetRefreshPropertiesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListTopicsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsPutDataSetRefreshPropertiesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -26155,7 +29184,7 @@ func (m *awsRestjson1_deserializeOpListTopics) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListTopicsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentPutDataSetRefreshPropertiesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26169,7 +29198,7 @@ func (m *awsRestjson1_deserializeOpListTopics) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorListTopics(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorPutDataSetRefreshProperties(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)} @@ -26213,15 +29242,24 @@ func awsRestjson1_deserializeOpErrorListTopics(response *smithyhttp.Response, me case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -26235,7 +29273,7 @@ func awsRestjson1_deserializeOpErrorListTopics(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpHttpBindingsListTopicsOutput(v *ListTopicsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsPutDataSetRefreshPropertiesOutput(v *PutDataSetRefreshPropertiesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -26244,7 +29282,7 @@ func awsRestjson1_deserializeOpHttpBindingsListTopicsOutput(v *ListTopicsOutput, return nil } -func awsRestjson1_deserializeOpDocumentListTopicsOutput(v **ListTopicsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentPutDataSetRefreshPropertiesOutput(v **PutDataSetRefreshPropertiesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26257,24 +29295,15 @@ func awsRestjson1_deserializeOpDocumentListTopicsOutput(v **ListTopicsOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListTopicsOutput + var sv *PutDataSetRefreshPropertiesOutput if *v == nil { - sv = &ListTopicsOutput{} + sv = &PutDataSetRefreshPropertiesOutput{} } 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 "RequestId": if value != nil { jtv, ok := value.(string) @@ -26284,11 +29313,6 @@ func awsRestjson1_deserializeOpDocumentListTopicsOutput(v **ListTopicsOutput, va sv.RequestId = ptr.String(jtv) } - case "TopicsSummaries": - if err := awsRestjson1_deserializeDocumentTopicSummaries(&sv.TopicsSummaries, value); err != nil { - return err - } - default: _, _ = key, value @@ -26298,14 +29322,14 @@ func awsRestjson1_deserializeOpDocumentListTopicsOutput(v **ListTopicsOutput, va return nil } -type awsRestjson1_deserializeOpListUserGroups struct { +type awsRestjson1_deserializeOpRegisterUser struct { } -func (*awsRestjson1_deserializeOpListUserGroups) ID() string { +func (*awsRestjson1_deserializeOpRegisterUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListUserGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpRegisterUser) 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) @@ -26323,12 +29347,12 @@ func (m *awsRestjson1_deserializeOpListUserGroups) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListUserGroups(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorRegisterUser(response, &metadata) } - output := &ListUserGroupsOutput{} + output := &RegisterUserOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListUserGroupsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsRegisterUserOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -26351,7 +29375,7 @@ func (m *awsRestjson1_deserializeOpListUserGroups) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListUserGroupsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentRegisterUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26365,7 +29389,7 @@ func (m *awsRestjson1_deserializeOpListUserGroups) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorListUserGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorRegisterUser(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)} @@ -26415,9 +29439,15 @@ func awsRestjson1_deserializeOpErrorListUserGroups(response *smithyhttp.Response case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -26437,7 +29467,7 @@ func awsRestjson1_deserializeOpErrorListUserGroups(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsListUserGroupsOutput(v *ListUserGroupsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsRegisterUserOutput(v *RegisterUserOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -26446,7 +29476,7 @@ func awsRestjson1_deserializeOpHttpBindingsListUserGroupsOutput(v *ListUserGroup return nil } -func awsRestjson1_deserializeOpDocumentListUserGroupsOutput(v **ListUserGroupsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentRegisterUserOutput(v **RegisterUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26459,36 +29489,36 @@ func awsRestjson1_deserializeOpDocumentListUserGroupsOutput(v **ListUserGroupsOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListUserGroupsOutput + var sv *RegisterUserOutput if *v == nil { - sv = &ListUserGroupsOutput{} + sv = &RegisterUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupList": - if err := awsRestjson1_deserializeDocumentGroupList(&sv.GroupList, value); err != nil { - return err - } - - case "NextToken": + case "RequestId": 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) + sv.RequestId = ptr.String(jtv) } - case "RequestId": + case "User": + if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil { + return err + } + + case "UserInvitationUrl": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.UserInvitationUrl = ptr.String(jtv) } default: @@ -26500,14 +29530,14 @@ func awsRestjson1_deserializeOpDocumentListUserGroupsOutput(v **ListUserGroupsOu return nil } -type awsRestjson1_deserializeOpListUsers struct { +type awsRestjson1_deserializeOpRestoreAnalysis struct { } -func (*awsRestjson1_deserializeOpListUsers) ID() string { +func (*awsRestjson1_deserializeOpRestoreAnalysis) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpRestoreAnalysis) 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) @@ -26525,12 +29555,12 @@ func (m *awsRestjson1_deserializeOpListUsers) HandleDeserialize(ctx context.Cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListUsers(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorRestoreAnalysis(response, &metadata) } - output := &ListUsersOutput{} + output := &RestoreAnalysisOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListUsersOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsRestoreAnalysisOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -26553,7 +29583,7 @@ func (m *awsRestjson1_deserializeOpListUsers) HandleDeserialize(ctx context.Cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListUsersOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentRestoreAnalysisOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26567,7 +29597,7 @@ func (m *awsRestjson1_deserializeOpListUsers) HandleDeserialize(ctx context.Cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorListUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorRestoreAnalysis(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)} @@ -26608,30 +29638,30 @@ func awsRestjson1_deserializeOpErrorListUsers(response *smithyhttp.Response, met } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -26642,7 +29672,7 @@ func awsRestjson1_deserializeOpErrorListUsers(response *smithyhttp.Response, met } } -func awsRestjson1_deserializeOpHttpBindingsListUsersOutput(v *ListUsersOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsRestoreAnalysisOutput(v *RestoreAnalysisOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -26651,7 +29681,7 @@ func awsRestjson1_deserializeOpHttpBindingsListUsersOutput(v *ListUsersOutput, r return nil } -func awsRestjson1_deserializeOpDocumentListUsersOutput(v **ListUsersOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentRestoreAnalysisOutput(v **RestoreAnalysisOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26664,22 +29694,31 @@ func awsRestjson1_deserializeOpDocumentListUsersOutput(v **ListUsersOutput, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListUsersOutput + var sv *RestoreAnalysisOutput if *v == nil { - sv = &ListUsersOutput{} + sv = &RestoreAnalysisOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "NextToken": + case "AnalysisId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.NextToken = ptr.String(jtv) + sv.AnalysisId = ptr.String(jtv) + } + + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } case "RequestId": @@ -26691,8 +29730,8 @@ func awsRestjson1_deserializeOpDocumentListUsersOutput(v **ListUsersOutput, valu sv.RequestId = ptr.String(jtv) } - case "UserList": - if err := awsRestjson1_deserializeDocumentUserList(&sv.UserList, value); err != nil { + case "RestorationFailedFolderArns": + if err := awsRestjson1_deserializeDocumentFolderArnList(&sv.RestorationFailedFolderArns, value); err != nil { return err } @@ -26705,14 +29744,14 @@ func awsRestjson1_deserializeOpDocumentListUsersOutput(v **ListUsersOutput, valu return nil } -type awsRestjson1_deserializeOpListVPCConnections struct { +type awsRestjson1_deserializeOpSearchAnalyses struct { } -func (*awsRestjson1_deserializeOpListVPCConnections) ID() string { +func (*awsRestjson1_deserializeOpSearchAnalyses) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListVPCConnections) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchAnalyses) 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) @@ -26730,12 +29769,12 @@ func (m *awsRestjson1_deserializeOpListVPCConnections) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListVPCConnections(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchAnalyses(response, &metadata) } - output := &ListVPCConnectionsOutput{} + output := &SearchAnalysesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsListVPCConnectionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsSearchAnalysesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -26758,7 +29797,7 @@ func (m *awsRestjson1_deserializeOpListVPCConnections) HandleDeserialize(ctx con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListVPCConnectionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchAnalysesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26772,7 +29811,7 @@ func (m *awsRestjson1_deserializeOpListVPCConnections) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorListVPCConnections(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchAnalyses(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)} @@ -26813,9 +29852,6 @@ func awsRestjson1_deserializeOpErrorListVPCConnections(response *smithyhttp.Resp } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -26825,6 +29861,9 @@ func awsRestjson1_deserializeOpErrorListVPCConnections(response *smithyhttp.Resp case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -26841,7 +29880,7 @@ func awsRestjson1_deserializeOpErrorListVPCConnections(response *smithyhttp.Resp } } -func awsRestjson1_deserializeOpHttpBindingsListVPCConnectionsOutput(v *ListVPCConnectionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsSearchAnalysesOutput(v *SearchAnalysesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -26850,7 +29889,7 @@ func awsRestjson1_deserializeOpHttpBindingsListVPCConnectionsOutput(v *ListVPCCo return nil } -func awsRestjson1_deserializeOpDocumentListVPCConnectionsOutput(v **ListVPCConnectionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchAnalysesOutput(v **SearchAnalysesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -26863,15 +29902,20 @@ func awsRestjson1_deserializeOpDocumentListVPCConnectionsOutput(v **ListVPCConne return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListVPCConnectionsOutput + var sv *SearchAnalysesOutput if *v == nil { - sv = &ListVPCConnectionsOutput{} + sv = &SearchAnalysesOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "AnalysisSummaryList": + if err := awsRestjson1_deserializeDocumentAnalysisSummaryList(&sv.AnalysisSummaryList, value); err != nil { + return err + } + case "NextToken": if value != nil { jtv, ok := value.(string) @@ -26890,11 +29934,6 @@ func awsRestjson1_deserializeOpDocumentListVPCConnectionsOutput(v **ListVPCConne sv.RequestId = ptr.String(jtv) } - case "VPCConnectionSummaries": - if err := awsRestjson1_deserializeDocumentVPCConnectionSummaryList(&sv.VPCConnectionSummaries, value); err != nil { - return err - } - default: _, _ = key, value @@ -26904,14 +29943,14 @@ func awsRestjson1_deserializeOpDocumentListVPCConnectionsOutput(v **ListVPCConne return nil } -type awsRestjson1_deserializeOpPutDataSetRefreshProperties struct { +type awsRestjson1_deserializeOpSearchDashboards struct { } -func (*awsRestjson1_deserializeOpPutDataSetRefreshProperties) ID() string { +func (*awsRestjson1_deserializeOpSearchDashboards) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpPutDataSetRefreshProperties) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchDashboards) 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) @@ -26929,12 +29968,12 @@ func (m *awsRestjson1_deserializeOpPutDataSetRefreshProperties) HandleDeserializ } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorPutDataSetRefreshProperties(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchDashboards(response, &metadata) } - output := &PutDataSetRefreshPropertiesOutput{} + output := &SearchDashboardsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsPutDataSetRefreshPropertiesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsSearchDashboardsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -26957,7 +29996,7 @@ func (m *awsRestjson1_deserializeOpPutDataSetRefreshProperties) HandleDeserializ return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentPutDataSetRefreshPropertiesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchDashboardsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -26971,7 +30010,7 @@ func (m *awsRestjson1_deserializeOpPutDataSetRefreshProperties) HandleDeserializ return out, metadata, err } -func awsRestjson1_deserializeOpErrorPutDataSetRefreshProperties(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchDashboards(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)} @@ -27012,30 +30051,24 @@ func awsRestjson1_deserializeOpErrorPutDataSetRefreshProperties(response *smithy } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -27046,7 +30079,7 @@ func awsRestjson1_deserializeOpErrorPutDataSetRefreshProperties(response *smithy } } -func awsRestjson1_deserializeOpHttpBindingsPutDataSetRefreshPropertiesOutput(v *PutDataSetRefreshPropertiesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsSearchDashboardsOutput(v *SearchDashboardsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -27055,7 +30088,7 @@ func awsRestjson1_deserializeOpHttpBindingsPutDataSetRefreshPropertiesOutput(v * return nil } -func awsRestjson1_deserializeOpDocumentPutDataSetRefreshPropertiesOutput(v **PutDataSetRefreshPropertiesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchDashboardsOutput(v **SearchDashboardsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27068,15 +30101,29 @@ func awsRestjson1_deserializeOpDocumentPutDataSetRefreshPropertiesOutput(v **Put return fmt.Errorf("unexpected JSON type %v", value) } - var sv *PutDataSetRefreshPropertiesOutput + var sv *SearchDashboardsOutput if *v == nil { - sv = &PutDataSetRefreshPropertiesOutput{} + sv = &SearchDashboardsOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "DashboardSummaryList": + if err := awsRestjson1_deserializeDocumentDashboardSummaryList(&sv.DashboardSummaryList, value); err != nil { + return err + } + + 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 "RequestId": if value != nil { jtv, ok := value.(string) @@ -27095,14 +30142,14 @@ func awsRestjson1_deserializeOpDocumentPutDataSetRefreshPropertiesOutput(v **Put return nil } -type awsRestjson1_deserializeOpRegisterUser struct { +type awsRestjson1_deserializeOpSearchDataSets struct { } -func (*awsRestjson1_deserializeOpRegisterUser) ID() string { +func (*awsRestjson1_deserializeOpSearchDataSets) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpRegisterUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchDataSets) 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) @@ -27120,12 +30167,12 @@ func (m *awsRestjson1_deserializeOpRegisterUser) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorRegisterUser(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchDataSets(response, &metadata) } - output := &RegisterUserOutput{} + output := &SearchDataSetsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsRegisterUserOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsSearchDataSetsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -27148,7 +30195,7 @@ func (m *awsRestjson1_deserializeOpRegisterUser) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentRegisterUserOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchDataSetsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27162,7 +30209,7 @@ func (m *awsRestjson1_deserializeOpRegisterUser) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorRegisterUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchDataSets(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)} @@ -27209,24 +30256,15 @@ func awsRestjson1_deserializeOpErrorRegisterUser(response *smithyhttp.Response, case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) - - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -27240,7 +30278,7 @@ func awsRestjson1_deserializeOpErrorRegisterUser(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsRegisterUserOutput(v *RegisterUserOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsSearchDataSetsOutput(v *SearchDataSetsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -27249,7 +30287,7 @@ func awsRestjson1_deserializeOpHttpBindingsRegisterUserOutput(v *RegisterUserOut return nil } -func awsRestjson1_deserializeOpDocumentRegisterUserOutput(v **RegisterUserOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchDataSetsOutput(v **SearchDataSetsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27262,36 +30300,36 @@ func awsRestjson1_deserializeOpDocumentRegisterUserOutput(v **RegisterUserOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *RegisterUserOutput + var sv *SearchDataSetsOutput if *v == nil { - sv = &RegisterUserOutput{} + sv = &SearchDataSetsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "RequestId": + case "DataSetSummaries": + if err := awsRestjson1_deserializeDocumentDataSetSummaryList(&sv.DataSetSummaries, value); err != nil { + return err + } + + 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.RequestId = ptr.String(jtv) - } - - case "User": - if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil { - return err + sv.NextToken = ptr.String(jtv) } - case "UserInvitationUrl": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.UserInvitationUrl = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } default: @@ -27303,14 +30341,14 @@ func awsRestjson1_deserializeOpDocumentRegisterUserOutput(v **RegisterUserOutput return nil } -type awsRestjson1_deserializeOpRestoreAnalysis struct { +type awsRestjson1_deserializeOpSearchDataSources struct { } -func (*awsRestjson1_deserializeOpRestoreAnalysis) ID() string { +func (*awsRestjson1_deserializeOpSearchDataSources) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpRestoreAnalysis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchDataSources) 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) @@ -27328,12 +30366,12 @@ func (m *awsRestjson1_deserializeOpRestoreAnalysis) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorRestoreAnalysis(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchDataSources(response, &metadata) } - output := &RestoreAnalysisOutput{} + output := &SearchDataSourcesOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsRestoreAnalysisOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsSearchDataSourcesOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -27356,7 +30394,7 @@ func (m *awsRestjson1_deserializeOpRestoreAnalysis) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentRestoreAnalysisOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchDataSourcesOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27370,7 +30408,7 @@ func (m *awsRestjson1_deserializeOpRestoreAnalysis) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorRestoreAnalysis(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchDataSources(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)} @@ -27411,30 +30449,24 @@ func awsRestjson1_deserializeOpErrorRestoreAnalysis(response *smithyhttp.Respons } switch { - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InvalidNextTokenException", errorCode): + return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -27445,7 +30477,7 @@ func awsRestjson1_deserializeOpErrorRestoreAnalysis(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpHttpBindingsRestoreAnalysisOutput(v *RestoreAnalysisOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsSearchDataSourcesOutput(v *SearchDataSourcesOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -27454,7 +30486,7 @@ func awsRestjson1_deserializeOpHttpBindingsRestoreAnalysisOutput(v *RestoreAnaly return nil } -func awsRestjson1_deserializeOpDocumentRestoreAnalysisOutput(v **RestoreAnalysisOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchDataSourcesOutput(v **SearchDataSourcesOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27467,31 +30499,27 @@ func awsRestjson1_deserializeOpDocumentRestoreAnalysisOutput(v **RestoreAnalysis return fmt.Errorf("unexpected JSON type %v", value) } - var sv *RestoreAnalysisOutput + var sv *SearchDataSourcesOutput if *v == nil { - sv = &RestoreAnalysisOutput{} + sv = &SearchDataSourcesOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AnalysisId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.AnalysisId = ptr.String(jtv) + case "DataSourceSummaries": + if err := awsRestjson1_deserializeDocumentDataSourceSummaryList(&sv.DataSourceSummaries, value); err != nil { + return err } - case "Arn": + case "NextToken": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.Arn = ptr.String(jtv) + sv.NextToken = ptr.String(jtv) } case "RequestId": @@ -27503,11 +30531,6 @@ func awsRestjson1_deserializeOpDocumentRestoreAnalysisOutput(v **RestoreAnalysis sv.RequestId = ptr.String(jtv) } - case "RestorationFailedFolderArns": - if err := awsRestjson1_deserializeDocumentFolderArnList(&sv.RestorationFailedFolderArns, value); err != nil { - return err - } - default: _, _ = key, value @@ -27517,14 +30540,14 @@ func awsRestjson1_deserializeOpDocumentRestoreAnalysisOutput(v **RestoreAnalysis return nil } -type awsRestjson1_deserializeOpSearchAnalyses struct { +type awsRestjson1_deserializeOpSearchFolders struct { } -func (*awsRestjson1_deserializeOpSearchAnalyses) ID() string { +func (*awsRestjson1_deserializeOpSearchFolders) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchAnalyses) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchFolders) 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) @@ -27542,12 +30565,12 @@ func (m *awsRestjson1_deserializeOpSearchAnalyses) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchAnalyses(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchFolders(response, &metadata) } - output := &SearchAnalysesOutput{} + output := &SearchFoldersOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsSearchAnalysesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsSearchFoldersOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -27570,7 +30593,7 @@ func (m *awsRestjson1_deserializeOpSearchAnalyses) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchAnalysesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchFoldersOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27584,7 +30607,7 @@ func (m *awsRestjson1_deserializeOpSearchAnalyses) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchAnalyses(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchFolders(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)} @@ -27625,6 +30648,9 @@ func awsRestjson1_deserializeOpErrorSearchAnalyses(response *smithyhttp.Response } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -27634,6 +30660,9 @@ func awsRestjson1_deserializeOpErrorSearchAnalyses(response *smithyhttp.Response case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -27653,7 +30682,7 @@ func awsRestjson1_deserializeOpErrorSearchAnalyses(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsSearchAnalysesOutput(v *SearchAnalysesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsSearchFoldersOutput(v *SearchFoldersOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -27662,7 +30691,7 @@ func awsRestjson1_deserializeOpHttpBindingsSearchAnalysesOutput(v *SearchAnalyse return nil } -func awsRestjson1_deserializeOpDocumentSearchAnalysesOutput(v **SearchAnalysesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchFoldersOutput(v **SearchFoldersOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27675,17 +30704,17 @@ func awsRestjson1_deserializeOpDocumentSearchAnalysesOutput(v **SearchAnalysesOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchAnalysesOutput + var sv *SearchFoldersOutput if *v == nil { - sv = &SearchAnalysesOutput{} + sv = &SearchFoldersOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AnalysisSummaryList": - if err := awsRestjson1_deserializeDocumentAnalysisSummaryList(&sv.AnalysisSummaryList, value); err != nil { + case "FolderSummaryList": + if err := awsRestjson1_deserializeDocumentFolderSummaryList(&sv.FolderSummaryList, value); err != nil { return err } @@ -27716,14 +30745,14 @@ func awsRestjson1_deserializeOpDocumentSearchAnalysesOutput(v **SearchAnalysesOu return nil } -type awsRestjson1_deserializeOpSearchDashboards struct { +type awsRestjson1_deserializeOpSearchGroups struct { } -func (*awsRestjson1_deserializeOpSearchDashboards) ID() string { +func (*awsRestjson1_deserializeOpSearchGroups) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchDashboards) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpSearchGroups) 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) @@ -27741,12 +30770,12 @@ func (m *awsRestjson1_deserializeOpSearchDashboards) HandleDeserialize(ctx conte } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchDashboards(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorSearchGroups(response, &metadata) } - output := &SearchDashboardsOutput{} + output := &SearchGroupsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsSearchDashboardsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsSearchGroupsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -27769,7 +30798,7 @@ func (m *awsRestjson1_deserializeOpSearchDashboards) HandleDeserialize(ctx conte return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchDashboardsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentSearchGroupsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27783,7 +30812,7 @@ func (m *awsRestjson1_deserializeOpSearchDashboards) HandleDeserialize(ctx conte return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchDashboards(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorSearchGroups(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)} @@ -27824,6 +30853,9 @@ func awsRestjson1_deserializeOpErrorSearchDashboards(response *smithyhttp.Respon } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -27833,15 +30865,18 @@ func awsRestjson1_deserializeOpErrorSearchDashboards(response *smithyhttp.Respon case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -27852,7 +30887,7 @@ func awsRestjson1_deserializeOpErrorSearchDashboards(response *smithyhttp.Respon } } -func awsRestjson1_deserializeOpHttpBindingsSearchDashboardsOutput(v *SearchDashboardsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsSearchGroupsOutput(v *SearchGroupsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -27861,7 +30896,7 @@ func awsRestjson1_deserializeOpHttpBindingsSearchDashboardsOutput(v *SearchDashb return nil } -func awsRestjson1_deserializeOpDocumentSearchDashboardsOutput(v **SearchDashboardsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentSearchGroupsOutput(v **SearchGroupsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -27874,17 +30909,17 @@ func awsRestjson1_deserializeOpDocumentSearchDashboardsOutput(v **SearchDashboar return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchDashboardsOutput + var sv *SearchGroupsOutput if *v == nil { - sv = &SearchDashboardsOutput{} + sv = &SearchGroupsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DashboardSummaryList": - if err := awsRestjson1_deserializeDocumentDashboardSummaryList(&sv.DashboardSummaryList, value); err != nil { + case "GroupList": + if err := awsRestjson1_deserializeDocumentGroupList(&sv.GroupList, value); err != nil { return err } @@ -27915,14 +30950,14 @@ func awsRestjson1_deserializeOpDocumentSearchDashboardsOutput(v **SearchDashboar return nil } -type awsRestjson1_deserializeOpSearchDataSets struct { +type awsRestjson1_deserializeOpStartAssetBundleExportJob struct { } -func (*awsRestjson1_deserializeOpSearchDataSets) ID() string { +func (*awsRestjson1_deserializeOpStartAssetBundleExportJob) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchDataSets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpStartAssetBundleExportJob) 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) @@ -27940,12 +30975,12 @@ func (m *awsRestjson1_deserializeOpSearchDataSets) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchDataSets(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorStartAssetBundleExportJob(response, &metadata) } - output := &SearchDataSetsOutput{} + output := &StartAssetBundleExportJobOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsSearchDataSetsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsStartAssetBundleExportJobOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -27968,7 +31003,7 @@ func (m *awsRestjson1_deserializeOpSearchDataSets) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchDataSetsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentStartAssetBundleExportJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -27982,7 +31017,7 @@ func (m *awsRestjson1_deserializeOpSearchDataSets) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchDataSets(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorStartAssetBundleExportJob(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)} @@ -28026,21 +31061,24 @@ func awsRestjson1_deserializeOpErrorSearchDataSets(response *smithyhttp.Response case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -28051,7 +31089,7 @@ func awsRestjson1_deserializeOpErrorSearchDataSets(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsSearchDataSetsOutput(v *SearchDataSetsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsStartAssetBundleExportJobOutput(v *StartAssetBundleExportJobOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -28060,7 +31098,7 @@ func awsRestjson1_deserializeOpHttpBindingsSearchDataSetsOutput(v *SearchDataSet return nil } -func awsRestjson1_deserializeOpDocumentSearchDataSetsOutput(v **SearchDataSetsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentStartAssetBundleExportJobOutput(v **StartAssetBundleExportJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -28073,34 +31111,38 @@ func awsRestjson1_deserializeOpDocumentSearchDataSetsOutput(v **SearchDataSetsOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchDataSetsOutput + var sv *StartAssetBundleExportJobOutput if *v == nil { - sv = &SearchDataSetsOutput{} + sv = &StartAssetBundleExportJobOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSetSummaries": - if err := awsRestjson1_deserializeDocumentDataSetSummaryList(&sv.DataSetSummaries, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "NextToken": + case "AssetBundleExportJobId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.NextToken = ptr.String(jtv) + sv.AssetBundleExportJobId = ptr.String(jtv) } case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } @@ -28114,14 +31156,14 @@ func awsRestjson1_deserializeOpDocumentSearchDataSetsOutput(v **SearchDataSetsOu return nil } -type awsRestjson1_deserializeOpSearchDataSources struct { +type awsRestjson1_deserializeOpStartAssetBundleImportJob struct { } -func (*awsRestjson1_deserializeOpSearchDataSources) ID() string { +func (*awsRestjson1_deserializeOpStartAssetBundleImportJob) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchDataSources) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpStartAssetBundleImportJob) 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) @@ -28139,12 +31181,12 @@ func (m *awsRestjson1_deserializeOpSearchDataSources) HandleDeserialize(ctx cont } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchDataSources(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorStartAssetBundleImportJob(response, &metadata) } - output := &SearchDataSourcesOutput{} + output := &StartAssetBundleImportJobOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsSearchDataSourcesOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsStartAssetBundleImportJobOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -28167,7 +31209,7 @@ func (m *awsRestjson1_deserializeOpSearchDataSources) HandleDeserialize(ctx cont return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchDataSourcesOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentStartAssetBundleImportJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28181,7 +31223,7 @@ func (m *awsRestjson1_deserializeOpSearchDataSources) HandleDeserialize(ctx cont return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchDataSources(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorStartAssetBundleImportJob(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)} @@ -28225,21 +31267,24 @@ func awsRestjson1_deserializeOpErrorSearchDataSources(response *smithyhttp.Respo case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -28250,7 +31295,7 @@ func awsRestjson1_deserializeOpErrorSearchDataSources(response *smithyhttp.Respo } } -func awsRestjson1_deserializeOpHttpBindingsSearchDataSourcesOutput(v *SearchDataSourcesOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsStartAssetBundleImportJobOutput(v *StartAssetBundleImportJobOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -28259,7 +31304,7 @@ func awsRestjson1_deserializeOpHttpBindingsSearchDataSourcesOutput(v *SearchData return nil } -func awsRestjson1_deserializeOpDocumentSearchDataSourcesOutput(v **SearchDataSourcesOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentStartAssetBundleImportJobOutput(v **StartAssetBundleImportJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -28272,34 +31317,38 @@ func awsRestjson1_deserializeOpDocumentSearchDataSourcesOutput(v **SearchDataSou return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchDataSourcesOutput + var sv *StartAssetBundleImportJobOutput if *v == nil { - sv = &SearchDataSourcesOutput{} + sv = &StartAssetBundleImportJobOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSourceSummaries": - if err := awsRestjson1_deserializeDocumentDataSourceSummaryList(&sv.DataSourceSummaries, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "NextToken": + case "AssetBundleImportJobId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.NextToken = ptr.String(jtv) + sv.AssetBundleImportJobId = ptr.String(jtv) } case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } @@ -28313,14 +31362,14 @@ func awsRestjson1_deserializeOpDocumentSearchDataSourcesOutput(v **SearchDataSou return nil } -type awsRestjson1_deserializeOpSearchFolders struct { +type awsRestjson1_deserializeOpStartDashboardSnapshotJob struct { } -func (*awsRestjson1_deserializeOpSearchFolders) ID() string { +func (*awsRestjson1_deserializeOpStartDashboardSnapshotJob) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchFolders) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJob) 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) @@ -28338,12 +31387,12 @@ func (m *awsRestjson1_deserializeOpSearchFolders) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchFolders(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorStartDashboardSnapshotJob(response, &metadata) } - output := &SearchFoldersOutput{} + output := &StartDashboardSnapshotJobOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsSearchFoldersOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -28366,7 +31415,7 @@ func (m *awsRestjson1_deserializeOpSearchFolders) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchFoldersOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28380,7 +31429,7 @@ func (m *awsRestjson1_deserializeOpSearchFolders) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchFolders(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorStartDashboardSnapshotJob(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)} @@ -28427,14 +31476,14 @@ func awsRestjson1_deserializeOpErrorSearchFolders(response *smithyhttp.Response, case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("InvalidRequestException", errorCode): - return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -28442,6 +31491,9 @@ func awsRestjson1_deserializeOpErrorSearchFolders(response *smithyhttp.Response, case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedPricingPlanException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedPricingPlanException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) @@ -28455,7 +31507,7 @@ func awsRestjson1_deserializeOpErrorSearchFolders(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsSearchFoldersOutput(v *SearchFoldersOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobOutput(v *StartDashboardSnapshotJobOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -28464,7 +31516,7 @@ func awsRestjson1_deserializeOpHttpBindingsSearchFoldersOutput(v *SearchFoldersO return nil } -func awsRestjson1_deserializeOpDocumentSearchFoldersOutput(v **SearchFoldersOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobOutput(v **StartDashboardSnapshotJobOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -28477,38 +31529,42 @@ func awsRestjson1_deserializeOpDocumentSearchFoldersOutput(v **SearchFoldersOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchFoldersOutput + var sv *StartDashboardSnapshotJobOutput if *v == nil { - sv = &SearchFoldersOutput{} + sv = &StartDashboardSnapshotJobOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "FolderSummaryList": - if err := awsRestjson1_deserializeDocumentFolderSummaryList(&sv.FolderSummaryList, value); err != nil { - return err - } - - case "NextToken": + 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) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.NextToken = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } + case "SnapshotJobId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.SnapshotJobId = ptr.String(jtv) + } + default: _, _ = key, value @@ -28518,14 +31574,14 @@ func awsRestjson1_deserializeOpDocumentSearchFoldersOutput(v **SearchFoldersOutp return nil } -type awsRestjson1_deserializeOpSearchGroups struct { +type awsRestjson1_deserializeOpStartDashboardSnapshotJobSchedule struct { } -func (*awsRestjson1_deserializeOpSearchGroups) ID() string { +func (*awsRestjson1_deserializeOpStartDashboardSnapshotJobSchedule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpSearchGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJobSchedule) 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) @@ -28543,12 +31599,12 @@ func (m *awsRestjson1_deserializeOpSearchGroups) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorSearchGroups(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorStartDashboardSnapshotJobSchedule(response, &metadata) } - output := &SearchGroupsOutput{} + output := &StartDashboardSnapshotJobScheduleOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsSearchGroupsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobScheduleOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -28571,7 +31627,7 @@ func (m *awsRestjson1_deserializeOpSearchGroups) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentSearchGroupsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28585,7 +31641,7 @@ func (m *awsRestjson1_deserializeOpSearchGroups) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorSearchGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorStartDashboardSnapshotJobSchedule(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)} @@ -28632,24 +31688,21 @@ func awsRestjson1_deserializeOpErrorSearchGroups(response *smithyhttp.Response, case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) - case strings.EqualFold("InvalidNextTokenException", errorCode): - return awsRestjson1_deserializeErrorInvalidNextTokenException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("PreconditionNotMetException", errorCode): - return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -28660,7 +31713,7 @@ func awsRestjson1_deserializeOpErrorSearchGroups(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsSearchGroupsOutput(v *SearchGroupsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobScheduleOutput(v *StartDashboardSnapshotJobScheduleOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -28669,7 +31722,7 @@ func awsRestjson1_deserializeOpHttpBindingsSearchGroupsOutput(v *SearchGroupsOut return nil } -func awsRestjson1_deserializeOpDocumentSearchGroupsOutput(v **SearchGroupsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobScheduleOutput(v **StartDashboardSnapshotJobScheduleOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -28682,34 +31735,20 @@ func awsRestjson1_deserializeOpDocumentSearchGroupsOutput(v **SearchGroupsOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *SearchGroupsOutput + var sv *StartDashboardSnapshotJobScheduleOutput if *v == nil { - sv = &SearchGroupsOutput{} + sv = &StartDashboardSnapshotJobScheduleOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "GroupList": - if err := awsRestjson1_deserializeDocumentGroupList(&sv.GroupList, value); err != nil { - return err - } - - 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 "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } @@ -28723,14 +31762,14 @@ func awsRestjson1_deserializeOpDocumentSearchGroupsOutput(v **SearchGroupsOutput return nil } -type awsRestjson1_deserializeOpStartAssetBundleExportJob struct { +type awsRestjson1_deserializeOpTagResource struct { } -func (*awsRestjson1_deserializeOpStartAssetBundleExportJob) ID() string { +func (*awsRestjson1_deserializeOpTagResource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpStartAssetBundleExportJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpTagResource) 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) @@ -28748,12 +31787,12 @@ func (m *awsRestjson1_deserializeOpStartAssetBundleExportJob) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorStartAssetBundleExportJob(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorTagResource(response, &metadata) } - output := &StartAssetBundleExportJobOutput{} + output := &TagResourceOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsStartAssetBundleExportJobOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsTagResourceOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -28776,7 +31815,7 @@ func (m *awsRestjson1_deserializeOpStartAssetBundleExportJob) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentStartAssetBundleExportJobOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentTagResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28790,7 +31829,7 @@ func (m *awsRestjson1_deserializeOpStartAssetBundleExportJob) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorStartAssetBundleExportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorTagResource(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)} @@ -28834,8 +31873,8 @@ func awsRestjson1_deserializeOpErrorStartAssetBundleExportJob(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) @@ -28849,9 +31888,6 @@ func awsRestjson1_deserializeOpErrorStartAssetBundleExportJob(response *smithyht case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -28862,7 +31898,7 @@ func awsRestjson1_deserializeOpErrorStartAssetBundleExportJob(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsStartAssetBundleExportJobOutput(v *StartAssetBundleExportJobOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsTagResourceOutput(v *TagResourceOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -28871,7 +31907,7 @@ func awsRestjson1_deserializeOpHttpBindingsStartAssetBundleExportJobOutput(v *St return nil } -func awsRestjson1_deserializeOpDocumentStartAssetBundleExportJobOutput(v **StartAssetBundleExportJobOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentTagResourceOutput(v **TagResourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -28884,38 +31920,20 @@ func awsRestjson1_deserializeOpDocumentStartAssetBundleExportJobOutput(v **Start return fmt.Errorf("unexpected JSON type %v", value) } - var sv *StartAssetBundleExportJobOutput + var sv *TagResourceOutput if *v == nil { - sv = &StartAssetBundleExportJobOutput{} + sv = &TagResourceOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "AssetBundleExportJobId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.AssetBundleExportJobId = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } @@ -28929,14 +31947,14 @@ func awsRestjson1_deserializeOpDocumentStartAssetBundleExportJobOutput(v **Start return nil } -type awsRestjson1_deserializeOpStartAssetBundleImportJob struct { +type awsRestjson1_deserializeOpUntagResource struct { } -func (*awsRestjson1_deserializeOpStartAssetBundleImportJob) ID() string { +func (*awsRestjson1_deserializeOpUntagResource) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpStartAssetBundleImportJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUntagResource) 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) @@ -28954,12 +31972,12 @@ func (m *awsRestjson1_deserializeOpStartAssetBundleImportJob) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorStartAssetBundleImportJob(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUntagResource(response, &metadata) } - output := &StartAssetBundleImportJobOutput{} + output := &UntagResourceOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsStartAssetBundleImportJobOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsUntagResourceOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -28982,7 +32000,7 @@ func (m *awsRestjson1_deserializeOpStartAssetBundleImportJob) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentStartAssetBundleImportJobOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUntagResourceOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -28996,7 +32014,7 @@ func (m *awsRestjson1_deserializeOpStartAssetBundleImportJob) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorStartAssetBundleImportJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUntagResource(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)} @@ -29040,24 +32058,18 @@ func awsRestjson1_deserializeOpErrorStartAssetBundleImportJob(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29068,7 +32080,7 @@ func awsRestjson1_deserializeOpErrorStartAssetBundleImportJob(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsStartAssetBundleImportJobOutput(v *StartAssetBundleImportJobOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUntagResourceOutput(v *UntagResourceOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -29077,7 +32089,7 @@ func awsRestjson1_deserializeOpHttpBindingsStartAssetBundleImportJobOutput(v *St return nil } -func awsRestjson1_deserializeOpDocumentStartAssetBundleImportJobOutput(v **StartAssetBundleImportJobOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUntagResourceOutput(v **UntagResourceOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -29090,38 +32102,20 @@ func awsRestjson1_deserializeOpDocumentStartAssetBundleImportJobOutput(v **Start return fmt.Errorf("unexpected JSON type %v", value) } - var sv *StartAssetBundleImportJobOutput + var sv *UntagResourceOutput if *v == nil { - sv = &StartAssetBundleImportJobOutput{} + sv = &UntagResourceOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "AssetBundleImportJobId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.AssetBundleImportJobId = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } @@ -29135,14 +32129,14 @@ func awsRestjson1_deserializeOpDocumentStartAssetBundleImportJobOutput(v **Start return nil } -type awsRestjson1_deserializeOpStartDashboardSnapshotJob struct { +type awsRestjson1_deserializeOpUpdateAccountCustomization struct { } -func (*awsRestjson1_deserializeOpStartDashboardSnapshotJob) ID() string { +func (*awsRestjson1_deserializeOpUpdateAccountCustomization) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJob) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateAccountCustomization) 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) @@ -29160,12 +32154,12 @@ func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJob) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorStartDashboardSnapshotJob(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateAccountCustomization(response, &metadata) } - output := &StartDashboardSnapshotJobOutput{} + output := &UpdateAccountCustomizationOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsUpdateAccountCustomizationOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -29188,7 +32182,7 @@ func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJob) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateAccountCustomizationOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29202,7 +32196,7 @@ func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJob) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorStartDashboardSnapshotJob(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateAccountCustomization(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)} @@ -29246,30 +32240,24 @@ func awsRestjson1_deserializeOpErrorStartDashboardSnapshotJob(response *smithyht case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedPricingPlanException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedPricingPlanException(response, errorBody) - - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29280,7 +32268,7 @@ func awsRestjson1_deserializeOpErrorStartDashboardSnapshotJob(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobOutput(v *StartDashboardSnapshotJobOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUpdateAccountCustomizationOutput(v *UpdateAccountCustomizationOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -29289,7 +32277,7 @@ func awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobOutput(v *St return nil } -func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobOutput(v **StartDashboardSnapshotJobOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateAccountCustomizationOutput(v **UpdateAccountCustomizationOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -29302,15 +32290,20 @@ func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobOutput(v **Start return fmt.Errorf("unexpected JSON type %v", value) } - var sv *StartDashboardSnapshotJobOutput + var sv *UpdateAccountCustomizationOutput if *v == nil { - sv = &StartDashboardSnapshotJobOutput{} + sv = &UpdateAccountCustomizationOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "AccountCustomization": + if err := awsRestjson1_deserializeDocumentAccountCustomization(&sv.AccountCustomization, value); err != nil { + return err + } + case "Arn": if value != nil { jtv, ok := value.(string) @@ -29320,22 +32313,31 @@ func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobOutput(v **Start sv.Arn = ptr.String(jtv) } - case "RequestId": + case "AwsAccountId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.AwsAccountId = ptr.String(jtv) } - case "SnapshotJobId": + case "Namespace": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected Namespace to be of type string, got %T instead", value) } - sv.SnapshotJobId = ptr.String(jtv) + sv.Namespace = ptr.String(jtv) + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) } default: @@ -29347,14 +32349,14 @@ func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobOutput(v **Start return nil } -type awsRestjson1_deserializeOpStartDashboardSnapshotJobSchedule struct { +type awsRestjson1_deserializeOpUpdateAccountSettings struct { } -func (*awsRestjson1_deserializeOpStartDashboardSnapshotJobSchedule) ID() string { +func (*awsRestjson1_deserializeOpUpdateAccountSettings) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJobSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateAccountSettings) 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) @@ -29372,12 +32374,12 @@ func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJobSchedule) HandleDese } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorStartDashboardSnapshotJobSchedule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateAccountSettings(response, &metadata) } - output := &StartDashboardSnapshotJobScheduleOutput{} + output := &UpdateAccountSettingsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobScheduleOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsUpdateAccountSettingsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -29400,7 +32402,7 @@ func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJobSchedule) HandleDese return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobScheduleOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateAccountSettingsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29414,7 +32416,7 @@ func (m *awsRestjson1_deserializeOpStartDashboardSnapshotJobSchedule) HandleDese return out, metadata, err } -func awsRestjson1_deserializeOpErrorStartDashboardSnapshotJobSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateAccountSettings(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)} @@ -29464,18 +32466,15 @@ func awsRestjson1_deserializeOpErrorStartDashboardSnapshotJobSchedule(response * case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29486,7 +32485,7 @@ func awsRestjson1_deserializeOpErrorStartDashboardSnapshotJobSchedule(response * } } -func awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobScheduleOutput(v *StartDashboardSnapshotJobScheduleOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUpdateAccountSettingsOutput(v *UpdateAccountSettingsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -29495,7 +32494,7 @@ func awsRestjson1_deserializeOpHttpBindingsStartDashboardSnapshotJobScheduleOutp return nil } -func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobScheduleOutput(v **StartDashboardSnapshotJobScheduleOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateAccountSettingsOutput(v **UpdateAccountSettingsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -29508,9 +32507,9 @@ func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobScheduleOutput(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *StartDashboardSnapshotJobScheduleOutput + var sv *UpdateAccountSettingsOutput if *v == nil { - sv = &StartDashboardSnapshotJobScheduleOutput{} + sv = &UpdateAccountSettingsOutput{} } else { sv = *v } @@ -29521,7 +32520,7 @@ func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobScheduleOutput(v if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } sv.RequestId = ptr.String(jtv) } @@ -29535,14 +32534,14 @@ func awsRestjson1_deserializeOpDocumentStartDashboardSnapshotJobScheduleOutput(v return nil } -type awsRestjson1_deserializeOpTagResource struct { +type awsRestjson1_deserializeOpUpdateAnalysis struct { } -func (*awsRestjson1_deserializeOpTagResource) ID() string { +func (*awsRestjson1_deserializeOpUpdateAnalysis) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateAnalysis) 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) @@ -29560,12 +32559,12 @@ func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorTagResource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateAnalysis(response, &metadata) } - output := &TagResourceOutput{} + output := &UpdateAnalysisOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsTagResourceOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsUpdateAnalysisOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -29588,7 +32587,7 @@ func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentTagResourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateAnalysisOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29602,7 +32601,7 @@ func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateAnalysis(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)} @@ -29643,8 +32642,8 @@ func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, m } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -29652,8 +32651,8 @@ func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, m case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -29661,6 +32660,9 @@ func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, m case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29671,7 +32673,7 @@ func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpHttpBindingsTagResourceOutput(v *TagResourceOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUpdateAnalysisOutput(v *UpdateAnalysisOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -29680,7 +32682,7 @@ func awsRestjson1_deserializeOpHttpBindingsTagResourceOutput(v *TagResourceOutpu return nil } -func awsRestjson1_deserializeOpDocumentTagResourceOutput(v **TagResourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateAnalysisOutput(v **UpdateAnalysisOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -29693,15 +32695,33 @@ func awsRestjson1_deserializeOpDocumentTagResourceOutput(v **TagResourceOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *TagResourceOutput + var sv *UpdateAnalysisOutput if *v == nil { - sv = &TagResourceOutput{} + sv = &UpdateAnalysisOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "AnalysisId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.AnalysisId = ptr.String(jtv) + } + + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -29711,6 +32731,15 @@ func awsRestjson1_deserializeOpDocumentTagResourceOutput(v **TagResourceOutput, sv.RequestId = ptr.String(jtv) } + case "UpdateStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) + } + sv.UpdateStatus = types.ResourceStatus(jtv) + } + default: _, _ = key, value @@ -29720,14 +32749,14 @@ func awsRestjson1_deserializeOpDocumentTagResourceOutput(v **TagResourceOutput, return nil } -type awsRestjson1_deserializeOpUntagResource struct { +type awsRestjson1_deserializeOpUpdateAnalysisPermissions struct { } -func (*awsRestjson1_deserializeOpUntagResource) ID() string { +func (*awsRestjson1_deserializeOpUpdateAnalysisPermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateAnalysisPermissions) 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) @@ -29745,12 +32774,12 @@ func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUntagResource(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateAnalysisPermissions(response, &metadata) } - output := &UntagResourceOutput{} + output := &UpdateAnalysisPermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsUntagResourceOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsUpdateAnalysisPermissionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -29773,7 +32802,7 @@ func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUntagResourceOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateAnalysisPermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29787,7 +32816,7 @@ func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateAnalysisPermissions(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)} @@ -29828,8 +32857,8 @@ func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, } switch { - case strings.EqualFold("AccessDeniedException", errorCode): - return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -29837,12 +32866,18 @@ func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -29853,7 +32888,7 @@ func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpHttpBindingsUntagResourceOutput(v *UntagResourceOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUpdateAnalysisPermissionsOutput(v *UpdateAnalysisPermissionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -29862,7 +32897,7 @@ func awsRestjson1_deserializeOpHttpBindingsUntagResourceOutput(v *UntagResourceO return nil } -func awsRestjson1_deserializeOpDocumentUntagResourceOutput(v **UntagResourceOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateAnalysisPermissionsOutput(v **UpdateAnalysisPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -29875,15 +32910,38 @@ func awsRestjson1_deserializeOpDocumentUntagResourceOutput(v **UntagResourceOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UntagResourceOutput + var sv *UpdateAnalysisPermissionsOutput if *v == nil { - sv = &UntagResourceOutput{} + sv = &UpdateAnalysisPermissionsOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "AnalysisArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.AnalysisArn = ptr.String(jtv) + } + + case "AnalysisId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.AnalysisId = ptr.String(jtv) + } + + case "Permissions": + if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { + return err + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -29902,14 +32960,14 @@ func awsRestjson1_deserializeOpDocumentUntagResourceOutput(v **UntagResourceOutp return nil } -type awsRestjson1_deserializeOpUpdateAccountCustomization struct { +type awsRestjson1_deserializeOpUpdateBrand struct { } -func (*awsRestjson1_deserializeOpUpdateAccountCustomization) ID() string { +func (*awsRestjson1_deserializeOpUpdateBrand) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateAccountCustomization) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateBrand) 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) @@ -29927,16 +32985,11 @@ func (m *awsRestjson1_deserializeOpUpdateAccountCustomization) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateAccountCustomization(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateBrand(response, &metadata) } - output := &UpdateAccountCustomizationOutput{} + output := &UpdateBrandOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsUpdateAccountCustomizationOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -29955,7 +33008,7 @@ func (m *awsRestjson1_deserializeOpUpdateAccountCustomization) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateAccountCustomizationOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateBrandOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -29969,7 +33022,7 @@ func (m *awsRestjson1_deserializeOpUpdateAccountCustomization) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateAccountCustomization(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateBrand(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)} @@ -30016,18 +33069,15 @@ func awsRestjson1_deserializeOpErrorUpdateAccountCustomization(response *smithyh case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -30041,16 +33091,7 @@ func awsRestjson1_deserializeOpErrorUpdateAccountCustomization(response *smithyh } } -func awsRestjson1_deserializeOpHttpBindingsUpdateAccountCustomizationOutput(v *UpdateAccountCustomizationOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentUpdateAccountCustomizationOutput(v **UpdateAccountCustomizationOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateBrandOutput(v **UpdateBrandOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -30063,45 +33104,23 @@ func awsRestjson1_deserializeOpDocumentUpdateAccountCustomizationOutput(v **Upda return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateAccountCustomizationOutput + var sv *UpdateBrandOutput if *v == nil { - sv = &UpdateAccountCustomizationOutput{} + sv = &UpdateBrandOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AccountCustomization": - if err := awsRestjson1_deserializeDocumentAccountCustomization(&sv.AccountCustomization, value); err != nil { + case "BrandDefinition": + if err := awsRestjson1_deserializeDocumentBrandDefinition(&sv.BrandDefinition, value); err != nil { return err } - case "Arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - - case "AwsAccountId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AwsAccountId to be of type string, got %T instead", value) - } - sv.AwsAccountId = ptr.String(jtv) - } - - case "Namespace": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Namespace to be of type string, got %T instead", value) - } - sv.Namespace = ptr.String(jtv) + case "BrandDetail": + if err := awsRestjson1_deserializeDocumentBrandDetail(&sv.BrandDetail, value); err != nil { + return err } case "RequestId": @@ -30122,14 +33141,14 @@ func awsRestjson1_deserializeOpDocumentUpdateAccountCustomizationOutput(v **Upda return nil } -type awsRestjson1_deserializeOpUpdateAccountSettings struct { +type awsRestjson1_deserializeOpUpdateBrandAssignment struct { } -func (*awsRestjson1_deserializeOpUpdateAccountSettings) ID() string { +func (*awsRestjson1_deserializeOpUpdateBrandAssignment) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateAccountSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateBrandAssignment) 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) @@ -30147,16 +33166,11 @@ func (m *awsRestjson1_deserializeOpUpdateAccountSettings) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateAccountSettings(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateBrandAssignment(response, &metadata) } - output := &UpdateAccountSettingsOutput{} + output := &UpdateBrandAssignmentOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsUpdateAccountSettingsOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -30175,7 +33189,7 @@ func (m *awsRestjson1_deserializeOpUpdateAccountSettings) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateAccountSettingsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateBrandAssignmentOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -30189,7 +33203,7 @@ func (m *awsRestjson1_deserializeOpUpdateAccountSettings) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateAccountSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateBrandAssignment(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)} @@ -30233,18 +33247,18 @@ func awsRestjson1_deserializeOpErrorUpdateAccountSettings(response *smithyhttp.R case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ResourceUnavailableException", errorCode): - return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -30258,16 +33272,7 @@ func awsRestjson1_deserializeOpErrorUpdateAccountSettings(response *smithyhttp.R } } -func awsRestjson1_deserializeOpHttpBindingsUpdateAccountSettingsOutput(v *UpdateAccountSettingsOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentUpdateAccountSettingsOutput(v **UpdateAccountSettingsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateBrandAssignmentOutput(v **UpdateBrandAssignmentOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -30280,15 +33285,24 @@ func awsRestjson1_deserializeOpDocumentUpdateAccountSettingsOutput(v **UpdateAcc return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateAccountSettingsOutput + var sv *UpdateBrandAssignmentOutput if *v == nil { - sv = &UpdateAccountSettingsOutput{} + sv = &UpdateBrandAssignmentOutput{} } else { sv = *v } for key, value := range shape { switch key { + case "BrandArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.BrandArn = ptr.String(jtv) + } + case "RequestId": if value != nil { jtv, ok := value.(string) @@ -30307,14 +33321,14 @@ func awsRestjson1_deserializeOpDocumentUpdateAccountSettingsOutput(v **UpdateAcc return nil } -type awsRestjson1_deserializeOpUpdateAnalysis struct { +type awsRestjson1_deserializeOpUpdateBrandPublishedVersion struct { } -func (*awsRestjson1_deserializeOpUpdateAnalysis) ID() string { +func (*awsRestjson1_deserializeOpUpdateBrandPublishedVersion) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateAnalysis) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateBrandPublishedVersion) 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) @@ -30332,16 +33346,11 @@ func (m *awsRestjson1_deserializeOpUpdateAnalysis) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateAnalysis(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateBrandPublishedVersion(response, &metadata) } - output := &UpdateAnalysisOutput{} + output := &UpdateBrandPublishedVersionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsUpdateAnalysisOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -30360,7 +33369,7 @@ func (m *awsRestjson1_deserializeOpUpdateAnalysis) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateAnalysisOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateBrandPublishedVersionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -30374,7 +33383,7 @@ func (m *awsRestjson1_deserializeOpUpdateAnalysis) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateAnalysis(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateBrandPublishedVersion(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)} @@ -30415,17 +33424,17 @@ func awsRestjson1_deserializeOpErrorUpdateAnalysis(response *smithyhttp.Response } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): - return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("InvalidParameterValueException", errorCode): - return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -30433,9 +33442,6 @@ func awsRestjson1_deserializeOpErrorUpdateAnalysis(response *smithyhttp.Response case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -30446,16 +33452,7 @@ func awsRestjson1_deserializeOpErrorUpdateAnalysis(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpHttpBindingsUpdateAnalysisOutput(v *UpdateAnalysisOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentUpdateAnalysisOutput(v **UpdateAnalysisOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateBrandPublishedVersionOutput(v **UpdateBrandPublishedVersionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -30468,33 +33465,15 @@ func awsRestjson1_deserializeOpDocumentUpdateAnalysisOutput(v **UpdateAnalysisOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateAnalysisOutput + var sv *UpdateBrandPublishedVersionOutput if *v == nil { - sv = &UpdateAnalysisOutput{} + sv = &UpdateBrandPublishedVersionOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AnalysisId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) - } - sv.AnalysisId = ptr.String(jtv) - } - - case "Arn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -30504,13 +33483,13 @@ func awsRestjson1_deserializeOpDocumentUpdateAnalysisOutput(v **UpdateAnalysisOu sv.RequestId = ptr.String(jtv) } - case "UpdateStatus": + case "VersionId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ResourceStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.UpdateStatus = types.ResourceStatus(jtv) + sv.VersionId = ptr.String(jtv) } default: @@ -30522,14 +33501,14 @@ func awsRestjson1_deserializeOpDocumentUpdateAnalysisOutput(v **UpdateAnalysisOu return nil } -type awsRestjson1_deserializeOpUpdateAnalysisPermissions struct { +type awsRestjson1_deserializeOpUpdateCustomPermissions struct { } -func (*awsRestjson1_deserializeOpUpdateAnalysisPermissions) ID() string { +func (*awsRestjson1_deserializeOpUpdateCustomPermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateAnalysisPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateCustomPermissions) 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) @@ -30547,16 +33526,11 @@ func (m *awsRestjson1_deserializeOpUpdateAnalysisPermissions) HandleDeserialize( } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateAnalysisPermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateCustomPermissions(response, &metadata) } - output := &UpdateAnalysisPermissionsOutput{} + output := &UpdateCustomPermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsUpdateAnalysisPermissionsOutput(output, response) - if err != nil { - return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} - } - var buff [1024]byte ringBuffer := smithyio.NewRingBuffer(buff[:]) @@ -30575,7 +33549,7 @@ func (m *awsRestjson1_deserializeOpUpdateAnalysisPermissions) HandleDeserialize( return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateAnalysisPermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateCustomPermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -30589,7 +33563,7 @@ func (m *awsRestjson1_deserializeOpUpdateAnalysisPermissions) HandleDeserialize( return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateAnalysisPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateCustomPermissions(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)} @@ -30630,6 +33604,9 @@ func awsRestjson1_deserializeOpErrorUpdateAnalysisPermissions(response *smithyht } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) @@ -30639,18 +33616,18 @@ func awsRestjson1_deserializeOpErrorUpdateAnalysisPermissions(response *smithyht case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -30661,16 +33638,7 @@ func awsRestjson1_deserializeOpErrorUpdateAnalysisPermissions(response *smithyht } } -func awsRestjson1_deserializeOpHttpBindingsUpdateAnalysisPermissionsOutput(v *UpdateAnalysisPermissionsOutput, response *smithyhttp.Response) error { - if v == nil { - return fmt.Errorf("unsupported deserialization for nil %T", v) - } - - v.Status = int32(response.StatusCode) - - return nil -} -func awsRestjson1_deserializeOpDocumentUpdateAnalysisPermissionsOutput(v **UpdateAnalysisPermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateCustomPermissionsOutput(v **UpdateCustomPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -30683,45 +33651,44 @@ func awsRestjson1_deserializeOpDocumentUpdateAnalysisPermissionsOutput(v **Updat return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateAnalysisPermissionsOutput + var sv *UpdateCustomPermissionsOutput if *v == nil { - sv = &UpdateAnalysisPermissionsOutput{} + sv = &UpdateCustomPermissionsOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "AnalysisArn": + case "Arn": if value != nil { jtv, ok := value.(string) if !ok { return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.AnalysisArn = ptr.String(jtv) + sv.Arn = ptr.String(jtv) } - case "AnalysisId": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.AnalysisId = ptr.String(jtv) - } - - case "Permissions": - if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { - return err + sv.RequestId = ptr.String(jtv) } - case "RequestId": + case "Status": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected StatusCode to be json.Number, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Status = int32(i64) } default: @@ -35945,9 +38912,223 @@ func awsRestjson1_deserializeOpErrorUpdateThemePermissions(response *smithyhttp. case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) - case strings.EqualFold("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - + case strings.EqualFold("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpHttpBindingsUpdateThemePermissionsOutput(v *UpdateThemePermissionsOutput, response *smithyhttp.Response) error { + if v == nil { + return fmt.Errorf("unsupported deserialization for nil %T", v) + } + + v.Status = int32(response.StatusCode) + + return nil +} +func awsRestjson1_deserializeOpDocumentUpdateThemePermissionsOutput(v **UpdateThemePermissionsOutput, 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 *UpdateThemePermissionsOutput + if *v == nil { + sv = &UpdateThemePermissionsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Permissions": + if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { + return err + } + + case "RequestId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.RequestId = ptr.String(jtv) + } + + case "ThemeArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.ThemeArn = ptr.String(jtv) + } + + case "ThemeId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.ThemeId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpUpdateTopic struct { +} + +func (*awsRestjson1_deserializeOpUpdateTopic) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateTopic) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsRestjson1_deserializeOpErrorUpdateTopic(response, &metadata) + } + output := &UpdateTopicOutput{} + out.Result = output + + err = awsRestjson1_deserializeOpHttpBindingsUpdateTopicOutput(output, response) + if err != nil { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} + } + + 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_deserializeOpDocumentUpdateTopicOutput(&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(), + } + } + + span.End() + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdateTopic(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, 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(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + 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("InternalFailureException", errorCode): + return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) + + case strings.EqualFold("InvalidParameterValueException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) + + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -35958,7 +39139,7 @@ func awsRestjson1_deserializeOpErrorUpdateThemePermissions(response *smithyhttp. } } -func awsRestjson1_deserializeOpHttpBindingsUpdateThemePermissionsOutput(v *UpdateThemePermissionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUpdateTopicOutput(v *UpdateTopicOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -35967,7 +39148,7 @@ func awsRestjson1_deserializeOpHttpBindingsUpdateThemePermissionsOutput(v *Updat return nil } -func awsRestjson1_deserializeOpDocumentUpdateThemePermissionsOutput(v **UpdateThemePermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateTopicOutput(v **UpdateTopicOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -35980,45 +39161,49 @@ func awsRestjson1_deserializeOpDocumentUpdateThemePermissionsOutput(v **UpdateTh return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateThemePermissionsOutput + var sv *UpdateTopicOutput if *v == nil { - sv = &UpdateThemePermissionsOutput{} + sv = &UpdateTopicOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Permissions": - if err := awsRestjson1_deserializeDocumentUpdateResourcePermissionList(&sv.Permissions, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "RequestId": + case "RefreshArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.RefreshArn = ptr.String(jtv) } - case "ThemeArn": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.ThemeArn = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } - case "ThemeId": + case "TopicId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) } - sv.ThemeId = ptr.String(jtv) + sv.TopicId = ptr.String(jtv) } default: @@ -36030,14 +39215,14 @@ func awsRestjson1_deserializeOpDocumentUpdateThemePermissionsOutput(v **UpdateTh return nil } -type awsRestjson1_deserializeOpUpdateTopic struct { +type awsRestjson1_deserializeOpUpdateTopicPermissions struct { } -func (*awsRestjson1_deserializeOpUpdateTopic) ID() string { +func (*awsRestjson1_deserializeOpUpdateTopicPermissions) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateTopic) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateTopicPermissions) 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) @@ -36055,12 +39240,12 @@ func (m *awsRestjson1_deserializeOpUpdateTopic) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateTopic(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateTopicPermissions(response, &metadata) } - output := &UpdateTopicOutput{} + output := &UpdateTopicPermissionsOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsUpdateTopicOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsUpdateTopicPermissionsOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -36083,7 +39268,7 @@ func (m *awsRestjson1_deserializeOpUpdateTopic) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateTopicOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateTopicPermissionsOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36097,7 +39282,7 @@ func (m *awsRestjson1_deserializeOpUpdateTopic) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateTopic(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateTopicPermissions(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)} @@ -36153,15 +39338,15 @@ func awsRestjson1_deserializeOpErrorUpdateTopic(response *smithyhttp.Response, m case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -36172,7 +39357,7 @@ func awsRestjson1_deserializeOpErrorUpdateTopic(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpHttpBindingsUpdateTopicOutput(v *UpdateTopicOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUpdateTopicPermissionsOutput(v *UpdateTopicPermissionsOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -36181,7 +39366,7 @@ func awsRestjson1_deserializeOpHttpBindingsUpdateTopicOutput(v *UpdateTopicOutpu return nil } -func awsRestjson1_deserializeOpDocumentUpdateTopicOutput(v **UpdateTopicOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateTopicPermissionsOutput(v **UpdateTopicPermissionsOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36194,40 +39379,36 @@ func awsRestjson1_deserializeOpDocumentUpdateTopicOutput(v **UpdateTopicOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateTopicOutput + var sv *UpdateTopicPermissionsOutput if *v == nil { - sv = &UpdateTopicOutput{} + sv = &UpdateTopicPermissionsOutput{} } 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 Arn to be of type string, got %T instead", value) - } - sv.Arn = ptr.String(jtv) + case "Permissions": + if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { + return err } - case "RefreshArn": + case "RequestId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + return fmt.Errorf("expected String to be of type string, got %T instead", value) } - sv.RefreshArn = ptr.String(jtv) + sv.RequestId = ptr.String(jtv) } - case "RequestId": + case "TopicArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected String to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.RequestId = ptr.String(jtv) + sv.TopicArn = ptr.String(jtv) } case "TopicId": @@ -36248,14 +39429,14 @@ func awsRestjson1_deserializeOpDocumentUpdateTopicOutput(v **UpdateTopicOutput, return nil } -type awsRestjson1_deserializeOpUpdateTopicPermissions struct { +type awsRestjson1_deserializeOpUpdateTopicRefreshSchedule struct { } -func (*awsRestjson1_deserializeOpUpdateTopicPermissions) ID() string { +func (*awsRestjson1_deserializeOpUpdateTopicRefreshSchedule) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateTopicPermissions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateTopicRefreshSchedule) 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) @@ -36273,12 +39454,12 @@ func (m *awsRestjson1_deserializeOpUpdateTopicPermissions) HandleDeserialize(ctx } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateTopicPermissions(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateTopicRefreshSchedule(response, &metadata) } - output := &UpdateTopicPermissionsOutput{} + output := &UpdateTopicRefreshScheduleOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsUpdateTopicPermissionsOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsUpdateTopicRefreshScheduleOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -36301,7 +39482,7 @@ func (m *awsRestjson1_deserializeOpUpdateTopicPermissions) HandleDeserialize(ctx return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateTopicPermissionsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateTopicRefreshScheduleOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36315,7 +39496,7 @@ func (m *awsRestjson1_deserializeOpUpdateTopicPermissions) HandleDeserialize(ctx return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateTopicPermissions(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateTopicRefreshSchedule(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)} @@ -36371,15 +39552,15 @@ func awsRestjson1_deserializeOpErrorUpdateTopicPermissions(response *smithyhttp. case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceExistsException", errorCode): + return awsRestjson1_deserializeErrorResourceExistsException(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("UnsupportedUserEditionException", errorCode): - return awsRestjson1_deserializeErrorUnsupportedUserEditionException(response, errorBody) - default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -36390,7 +39571,7 @@ func awsRestjson1_deserializeOpErrorUpdateTopicPermissions(response *smithyhttp. } } -func awsRestjson1_deserializeOpHttpBindingsUpdateTopicPermissionsOutput(v *UpdateTopicPermissionsOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUpdateTopicRefreshScheduleOutput(v *UpdateTopicRefreshScheduleOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -36399,7 +39580,7 @@ func awsRestjson1_deserializeOpHttpBindingsUpdateTopicPermissionsOutput(v *Updat return nil } -func awsRestjson1_deserializeOpDocumentUpdateTopicPermissionsOutput(v **UpdateTopicPermissionsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateTopicRefreshScheduleOutput(v **UpdateTopicRefreshScheduleOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36412,18 +39593,22 @@ func awsRestjson1_deserializeOpDocumentUpdateTopicPermissionsOutput(v **UpdateTo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateTopicPermissionsOutput + var sv *UpdateTopicRefreshScheduleOutput if *v == nil { - sv = &UpdateTopicPermissionsOutput{} + sv = &UpdateTopicRefreshScheduleOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "Permissions": - if err := awsRestjson1_deserializeDocumentResourcePermissionList(&sv.Permissions, value); err != nil { - return err + case "DatasetArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.DatasetArn = ptr.String(jtv) } case "RequestId": @@ -36462,14 +39647,14 @@ func awsRestjson1_deserializeOpDocumentUpdateTopicPermissionsOutput(v **UpdateTo return nil } -type awsRestjson1_deserializeOpUpdateTopicRefreshSchedule struct { +type awsRestjson1_deserializeOpUpdateUser struct { } -func (*awsRestjson1_deserializeOpUpdateTopicRefreshSchedule) ID() string { +func (*awsRestjson1_deserializeOpUpdateUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateTopicRefreshSchedule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateUser) 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) @@ -36487,12 +39672,12 @@ func (m *awsRestjson1_deserializeOpUpdateTopicRefreshSchedule) HandleDeserialize } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateTopicRefreshSchedule(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateUser(response, &metadata) } - output := &UpdateTopicRefreshScheduleOutput{} + output := &UpdateUserOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsUpdateTopicRefreshScheduleOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsUpdateUserOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -36515,7 +39700,7 @@ func (m *awsRestjson1_deserializeOpUpdateTopicRefreshSchedule) HandleDeserialize return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateTopicRefreshScheduleOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36529,7 +39714,7 @@ func (m *awsRestjson1_deserializeOpUpdateTopicRefreshSchedule) HandleDeserialize return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateTopicRefreshSchedule(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateUser(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)} @@ -36573,24 +39758,21 @@ func awsRestjson1_deserializeOpErrorUpdateTopicRefreshSchedule(response *smithyh case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) - case strings.EqualFold("ConflictException", errorCode): - return awsRestjson1_deserializeErrorConflictException(response, errorBody) - case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) case strings.EqualFold("InvalidParameterValueException", errorCode): return awsRestjson1_deserializeErrorInvalidParameterValueException(response, errorBody) - case strings.EqualFold("LimitExceededException", errorCode): - return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - - case strings.EqualFold("ResourceExistsException", errorCode): - return awsRestjson1_deserializeErrorResourceExistsException(response, errorBody) + case strings.EqualFold("PreconditionNotMetException", errorCode): + return awsRestjson1_deserializeErrorPreconditionNotMetException(response, errorBody) case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ResourceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorResourceUnavailableException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -36604,7 +39786,7 @@ func awsRestjson1_deserializeOpErrorUpdateTopicRefreshSchedule(response *smithyh } } -func awsRestjson1_deserializeOpHttpBindingsUpdateTopicRefreshScheduleOutput(v *UpdateTopicRefreshScheduleOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUpdateUserOutput(v *UpdateUserOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -36613,7 +39795,7 @@ func awsRestjson1_deserializeOpHttpBindingsUpdateTopicRefreshScheduleOutput(v *U return nil } -func awsRestjson1_deserializeOpDocumentUpdateTopicRefreshScheduleOutput(v **UpdateTopicRefreshScheduleOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateUserOutput(v **UpdateUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36626,24 +39808,15 @@ func awsRestjson1_deserializeOpDocumentUpdateTopicRefreshScheduleOutput(v **Upda return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateTopicRefreshScheduleOutput + var sv *UpdateUserOutput if *v == nil { - sv = &UpdateTopicRefreshScheduleOutput{} + sv = &UpdateUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "DatasetArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.DatasetArn = ptr.String(jtv) - } - case "RequestId": if value != nil { jtv, ok := value.(string) @@ -36653,22 +39826,9 @@ func awsRestjson1_deserializeOpDocumentUpdateTopicRefreshScheduleOutput(v **Upda sv.RequestId = ptr.String(jtv) } - case "TopicArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.TopicArn = ptr.String(jtv) - } - - case "TopicId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected TopicId to be of type string, got %T instead", value) - } - sv.TopicId = ptr.String(jtv) + case "User": + if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil { + return err } default: @@ -36680,14 +39840,14 @@ func awsRestjson1_deserializeOpDocumentUpdateTopicRefreshScheduleOutput(v **Upda return nil } -type awsRestjson1_deserializeOpUpdateUser struct { +type awsRestjson1_deserializeOpUpdateUserCustomPermission struct { } -func (*awsRestjson1_deserializeOpUpdateUser) ID() string { +func (*awsRestjson1_deserializeOpUpdateUserCustomPermission) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateUserCustomPermission) 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) @@ -36705,12 +39865,12 @@ func (m *awsRestjson1_deserializeOpUpdateUser) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateUser(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateUserCustomPermission(response, &metadata) } - output := &UpdateUserOutput{} + output := &UpdateUserCustomPermissionOutput{} out.Result = output - err = awsRestjson1_deserializeOpHttpBindingsUpdateUserOutput(output, response) + err = awsRestjson1_deserializeOpHttpBindingsUpdateUserCustomPermissionOutput(output, response) if err != nil { return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)} } @@ -36733,7 +39893,7 @@ func (m *awsRestjson1_deserializeOpUpdateUser) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateUserOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateUserCustomPermissionOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -36747,7 +39907,7 @@ func (m *awsRestjson1_deserializeOpUpdateUser) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateUserCustomPermission(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)} @@ -36791,6 +39951,9 @@ func awsRestjson1_deserializeOpErrorUpdateUser(response *smithyhttp.Response, me case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalFailureException", errorCode): return awsRestjson1_deserializeErrorInternalFailureException(response, errorBody) @@ -36819,7 +39982,7 @@ func awsRestjson1_deserializeOpErrorUpdateUser(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpHttpBindingsUpdateUserOutput(v *UpdateUserOutput, response *smithyhttp.Response) error { +func awsRestjson1_deserializeOpHttpBindingsUpdateUserCustomPermissionOutput(v *UpdateUserCustomPermissionOutput, response *smithyhttp.Response) error { if v == nil { return fmt.Errorf("unsupported deserialization for nil %T", v) } @@ -36828,7 +39991,7 @@ func awsRestjson1_deserializeOpHttpBindingsUpdateUserOutput(v *UpdateUserOutput, return nil } -func awsRestjson1_deserializeOpDocumentUpdateUserOutput(v **UpdateUserOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateUserCustomPermissionOutput(v **UpdateUserCustomPermissionOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -36841,9 +40004,9 @@ func awsRestjson1_deserializeOpDocumentUpdateUserOutput(v **UpdateUserOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateUserOutput + var sv *UpdateUserCustomPermissionOutput if *v == nil { - sv = &UpdateUserOutput{} + sv = &UpdateUserCustomPermissionOutput{} } else { sv = *v } @@ -36859,11 +40022,6 @@ func awsRestjson1_deserializeOpDocumentUpdateUserOutput(v **UpdateUserOutput, va sv.RequestId = ptr.String(jtv) } - case "User": - if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil { - return err - } - default: _, _ = key, value @@ -37352,6 +40510,42 @@ func awsRestjson1_deserializeErrorInternalFailureException(response *smithyhttp. return output } +func awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.InternalServerException{} + 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 + } + + err := awsRestjson1_deserializeDocumentInternalServerException(&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 awsRestjson1_deserializeErrorInvalidNextTokenException(response *smithyhttp.Response, errorBody *bytes.Reader) error { output := &types.InvalidNextTokenException{} var buff [1024]byte @@ -39356,6 +42550,47 @@ func awsRestjson1_deserializeDocumentAnonymousUserSnapshotJobResultList(v *[]typ return nil } +func awsRestjson1_deserializeDocumentApplicationTheme(v **types.ApplicationTheme, 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.ApplicationTheme + if *v == nil { + sv = &types.ApplicationTheme{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BrandColorPalette": + if err := awsRestjson1_deserializeDocumentBrandColorPalette(&sv.BrandColorPalette, value); err != nil { + return err + } + + case "BrandElementStyle": + if err := awsRestjson1_deserializeDocumentBrandElementStyle(&sv.BrandElementStyle, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentArcAxisConfiguration(v **types.ArcAxisConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -45902,7 +49137,277 @@ func awsRestjson1_deserializeDocumentBoxPlotDimensionFieldList(v *[]types.Dimens return nil } -func awsRestjson1_deserializeDocumentBoxPlotFieldWells(v **types.BoxPlotFieldWells, value interface{}) error { +func awsRestjson1_deserializeDocumentBoxPlotFieldWells(v **types.BoxPlotFieldWells, 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.BoxPlotFieldWells + if *v == nil { + sv = &types.BoxPlotFieldWells{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "BoxPlotAggregatedFieldWells": + if err := awsRestjson1_deserializeDocumentBoxPlotAggregatedFieldWells(&sv.BoxPlotAggregatedFieldWells, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBoxPlotMeasureFieldList(v *[]types.MeasureField, 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.MeasureField + if *v == nil { + cv = []types.MeasureField{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.MeasureField + destAddr := &col + if err := awsRestjson1_deserializeDocumentMeasureField(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentBoxPlotOptions(v **types.BoxPlotOptions, 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.BoxPlotOptions + if *v == nil { + sv = &types.BoxPlotOptions{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AllDataPointsVisibility": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + } + sv.AllDataPointsVisibility = types.Visibility(jtv) + } + + case "OutlierVisibility": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + } + sv.OutlierVisibility = types.Visibility(jtv) + } + + case "StyleOptions": + if err := awsRestjson1_deserializeDocumentBoxPlotStyleOptions(&sv.StyleOptions, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBoxPlotSortConfiguration(v **types.BoxPlotSortConfiguration, 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.BoxPlotSortConfiguration + if *v == nil { + sv = &types.BoxPlotSortConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CategorySort": + if err := awsRestjson1_deserializeDocumentFieldSortOptionsList(&sv.CategorySort, value); err != nil { + return err + } + + case "PaginationConfiguration": + if err := awsRestjson1_deserializeDocumentPaginationConfiguration(&sv.PaginationConfiguration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBoxPlotStyleOptions(v **types.BoxPlotStyleOptions, 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.BoxPlotStyleOptions + if *v == nil { + sv = &types.BoxPlotStyleOptions{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FillStyle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BoxPlotFillStyle to be of type string, got %T instead", value) + } + sv.FillStyle = types.BoxPlotFillStyle(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBoxPlotVisual(v **types.BoxPlotVisual, 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.BoxPlotVisual + if *v == nil { + sv = &types.BoxPlotVisual{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Actions": + if err := awsRestjson1_deserializeDocumentVisualCustomActionList(&sv.Actions, value); err != nil { + return err + } + + case "ChartConfiguration": + if err := awsRestjson1_deserializeDocumentBoxPlotChartConfiguration(&sv.ChartConfiguration, value); err != nil { + return err + } + + case "ColumnHierarchies": + if err := awsRestjson1_deserializeDocumentColumnHierarchyList(&sv.ColumnHierarchies, value); err != nil { + return err + } + + case "Subtitle": + if err := awsRestjson1_deserializeDocumentVisualSubtitleLabelOptions(&sv.Subtitle, value); err != nil { + return err + } + + case "Title": + if err := awsRestjson1_deserializeDocumentVisualTitleLabelOptions(&sv.Title, value); err != nil { + return err + } + + case "VisualId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.VisualId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentBrandColorPalette(v **types.BrandColorPalette, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -45915,64 +49420,70 @@ func awsRestjson1_deserializeDocumentBoxPlotFieldWells(v **types.BoxPlotFieldWel return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BoxPlotFieldWells + var sv *types.BrandColorPalette if *v == nil { - sv = &types.BoxPlotFieldWells{} + sv = &types.BrandColorPalette{} } else { sv = *v } for key, value := range shape { switch key { - case "BoxPlotAggregatedFieldWells": - if err := awsRestjson1_deserializeDocumentBoxPlotAggregatedFieldWells(&sv.BoxPlotAggregatedFieldWells, value); err != nil { + case "Accent": + if err := awsRestjson1_deserializeDocumentPalette(&sv.Accent, value); err != nil { return err } - default: - _, _ = key, value + case "Danger": + if err := awsRestjson1_deserializeDocumentPalette(&sv.Danger, value); err != nil { + return err + } - } - } - *v = sv - return nil -} + case "Dimension": + if err := awsRestjson1_deserializeDocumentPalette(&sv.Dimension, value); err != nil { + return err + } -func awsRestjson1_deserializeDocumentBoxPlotMeasureFieldList(v *[]types.MeasureField, value interface{}) error { - if v == nil { - return fmt.Errorf("unexpected nil of type %T", v) - } - if value == nil { - return nil - } + case "Info": + if err := awsRestjson1_deserializeDocumentPalette(&sv.Info, value); err != nil { + return err + } - shape, ok := value.([]interface{}) - if !ok { - return fmt.Errorf("unexpected JSON type %v", value) - } + case "Measure": + if err := awsRestjson1_deserializeDocumentPalette(&sv.Measure, value); err != nil { + return err + } - var cv []types.MeasureField - if *v == nil { - cv = []types.MeasureField{} - } else { - cv = *v - } + case "Primary": + if err := awsRestjson1_deserializeDocumentPalette(&sv.Primary, value); err != nil { + return err + } - for _, value := range shape { - var col types.MeasureField - destAddr := &col - if err := awsRestjson1_deserializeDocumentMeasureField(&destAddr, value); err != nil { - return err - } - col = *destAddr - cv = append(cv, col) + case "Secondary": + if err := awsRestjson1_deserializeDocumentPalette(&sv.Secondary, value); err != nil { + return err + } + + case "Success": + if err := awsRestjson1_deserializeDocumentPalette(&sv.Success, value); err != nil { + return err + } + + case "Warning": + if err := awsRestjson1_deserializeDocumentPalette(&sv.Warning, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = cv + *v = sv return nil } -func awsRestjson1_deserializeDocumentBoxPlotOptions(v **types.BoxPlotOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentBrandDefinition(v **types.BrandDefinition, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -45985,35 +49496,40 @@ func awsRestjson1_deserializeDocumentBoxPlotOptions(v **types.BoxPlotOptions, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BoxPlotOptions + var sv *types.BrandDefinition if *v == nil { - sv = &types.BoxPlotOptions{} + sv = &types.BrandDefinition{} } else { sv = *v } for key, value := range shape { switch key { - case "AllDataPointsVisibility": + case "ApplicationTheme": + if err := awsRestjson1_deserializeDocumentApplicationTheme(&sv.ApplicationTheme, value); err != nil { + return err + } + + case "BrandName": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + return fmt.Errorf("expected Name to be of type string, got %T instead", value) } - sv.AllDataPointsVisibility = types.Visibility(jtv) + sv.BrandName = ptr.String(jtv) } - case "OutlierVisibility": + case "Description": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + return fmt.Errorf("expected Description to be of type string, got %T instead", value) } - sv.OutlierVisibility = types.Visibility(jtv) + sv.Description = ptr.String(jtv) } - case "StyleOptions": - if err := awsRestjson1_deserializeDocumentBoxPlotStyleOptions(&sv.StyleOptions, value); err != nil { + case "LogoConfiguration": + if err := awsRestjson1_deserializeDocumentLogoConfiguration(&sv.LogoConfiguration, value); err != nil { return err } @@ -46026,7 +49542,7 @@ func awsRestjson1_deserializeDocumentBoxPlotOptions(v **types.BoxPlotOptions, va return nil } -func awsRestjson1_deserializeDocumentBoxPlotSortConfiguration(v **types.BoxPlotSortConfiguration, value interface{}) error { +func awsRestjson1_deserializeDocumentBrandDetail(v **types.BrandDetail, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -46039,25 +49555,102 @@ func awsRestjson1_deserializeDocumentBoxPlotSortConfiguration(v **types.BoxPlotS return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BoxPlotSortConfiguration + var sv *types.BrandDetail if *v == nil { - sv = &types.BoxPlotSortConfiguration{} + sv = &types.BrandDetail{} } else { sv = *v } for key, value := range shape { switch key { - case "CategorySort": - if err := awsRestjson1_deserializeDocumentFieldSortOptionsList(&sv.CategorySort, value); err != nil { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "BrandId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.BrandId = ptr.String(jtv) + } + + case "BrandStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BrandStatus to be of type string, got %T instead", value) + } + sv.BrandStatus = types.BrandStatus(jtv) + } + + case "CreatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Errors": + if err := awsRestjson1_deserializeDocumentErrorList(&sv.Errors, value); err != nil { return err } - case "PaginationConfiguration": - if err := awsRestjson1_deserializeDocumentPaginationConfiguration(&sv.PaginationConfiguration, value); err != nil { + case "LastUpdatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "Logo": + if err := awsRestjson1_deserializeDocumentLogo(&sv.Logo, value); err != nil { return err } + case "VersionId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.VersionId = ptr.String(jtv) + } + + case "VersionStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BrandVersionStatus to be of type string, got %T instead", value) + } + sv.VersionStatus = types.BrandVersionStatus(jtv) + } + default: _, _ = key, value @@ -46067,7 +49660,7 @@ func awsRestjson1_deserializeDocumentBoxPlotSortConfiguration(v **types.BoxPlotS return nil } -func awsRestjson1_deserializeDocumentBoxPlotStyleOptions(v **types.BoxPlotStyleOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentBrandElementStyle(v **types.BrandElementStyle, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -46080,22 +49673,18 @@ func awsRestjson1_deserializeDocumentBoxPlotStyleOptions(v **types.BoxPlotStyleO return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BoxPlotStyleOptions + var sv *types.BrandElementStyle if *v == nil { - sv = &types.BoxPlotStyleOptions{} + sv = &types.BrandElementStyle{} } else { sv = *v } for key, value := range shape { switch key { - case "FillStyle": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected BoxPlotFillStyle to be of type string, got %T instead", value) - } - sv.FillStyle = types.BoxPlotFillStyle(jtv) + case "NavbarStyle": + if err := awsRestjson1_deserializeDocumentNavbarStyle(&sv.NavbarStyle, value); err != nil { + return err } default: @@ -46107,7 +49696,7 @@ func awsRestjson1_deserializeDocumentBoxPlotStyleOptions(v **types.BoxPlotStyleO return nil } -func awsRestjson1_deserializeDocumentBoxPlotVisual(v **types.BoxPlotVisual, value interface{}) error { +func awsRestjson1_deserializeDocumentBrandSummary(v **types.BrandSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -46120,47 +49709,90 @@ func awsRestjson1_deserializeDocumentBoxPlotVisual(v **types.BoxPlotVisual, valu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.BoxPlotVisual + var sv *types.BrandSummary if *v == nil { - sv = &types.BoxPlotVisual{} + sv = &types.BrandSummary{} } else { sv = *v } for key, value := range shape { switch key { - case "Actions": - if err := awsRestjson1_deserializeDocumentVisualCustomActionList(&sv.Actions, value); err != nil { - return err + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) } - case "ChartConfiguration": - if err := awsRestjson1_deserializeDocumentBoxPlotChartConfiguration(&sv.ChartConfiguration, value); err != nil { - return err + case "BrandId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + } + sv.BrandId = ptr.String(jtv) } - case "ColumnHierarchies": - if err := awsRestjson1_deserializeDocumentColumnHierarchyList(&sv.ColumnHierarchies, value); err != nil { - return err + case "BrandName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Name to be of type string, got %T instead", value) + } + sv.BrandName = ptr.String(jtv) } - case "Subtitle": - if err := awsRestjson1_deserializeDocumentVisualSubtitleLabelOptions(&sv.Subtitle, value); err != nil { - return err + case "BrandStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BrandStatus to be of type string, got %T instead", value) + } + sv.BrandStatus = types.BrandStatus(jtv) } - case "Title": - if err := awsRestjson1_deserializeDocumentVisualTitleLabelOptions(&sv.Title, value); err != nil { - return err + case "CreatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.CreatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } } - case "VisualId": + case "Description": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected Description to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + + case "LastUpdatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + } - sv.VisualId = ptr.String(jtv) } default: @@ -46172,6 +49804,40 @@ func awsRestjson1_deserializeDocumentBoxPlotVisual(v **types.BoxPlotVisual, valu return nil } +func awsRestjson1_deserializeDocumentBrandSummaryList(v *[]types.BrandSummary, 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.BrandSummary + if *v == nil { + cv = []types.BrandSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.BrandSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentBrandSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentCalculatedColumn(v **types.CalculatedColumn, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -46439,6 +50105,190 @@ func awsRestjson1_deserializeDocumentCalculatedMeasureField(v **types.Calculated return nil } +func awsRestjson1_deserializeDocumentCapabilities(v **types.Capabilities, 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.Capabilities + if *v == nil { + sv = &types.Capabilities{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AddOrRunAnomalyDetectionForAnalyses": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.AddOrRunAnomalyDetectionForAnalyses = types.CapabilityState(jtv) + } + + case "CreateAndUpdateDashboardEmailReports": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.CreateAndUpdateDashboardEmailReports = types.CapabilityState(jtv) + } + + case "CreateAndUpdateDatasets": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.CreateAndUpdateDatasets = types.CapabilityState(jtv) + } + + case "CreateAndUpdateDataSources": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.CreateAndUpdateDataSources = types.CapabilityState(jtv) + } + + case "CreateAndUpdateThemes": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.CreateAndUpdateThemes = types.CapabilityState(jtv) + } + + case "CreateAndUpdateThresholdAlerts": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.CreateAndUpdateThresholdAlerts = types.CapabilityState(jtv) + } + + case "CreateSharedFolders": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.CreateSharedFolders = types.CapabilityState(jtv) + } + + case "CreateSPICEDataset": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.CreateSPICEDataset = types.CapabilityState(jtv) + } + + case "ExportToCsv": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.ExportToCsv = types.CapabilityState(jtv) + } + + case "ExportToExcel": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.ExportToExcel = types.CapabilityState(jtv) + } + + case "RenameSharedFolders": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.RenameSharedFolders = types.CapabilityState(jtv) + } + + case "ShareAnalyses": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.ShareAnalyses = types.CapabilityState(jtv) + } + + case "ShareDashboards": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.ShareDashboards = types.CapabilityState(jtv) + } + + case "ShareDatasets": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.ShareDatasets = types.CapabilityState(jtv) + } + + case "ShareDataSources": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.ShareDataSources = types.CapabilityState(jtv) + } + + case "SubscribeDashboardEmailReports": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.SubscribeDashboardEmailReports = types.CapabilityState(jtv) + } + + case "ViewAccountSPICECapacity": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CapabilityState to be of type string, got %T instead", value) + } + sv.ViewAccountSPICECapacity = types.CapabilityState(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentCascadingControlConfiguration(v **types.CascadingControlConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -50540,6 +54390,94 @@ func awsRestjson1_deserializeDocumentCustomParameterValues(v **types.CustomParam return nil } +func awsRestjson1_deserializeDocumentCustomPermissions(v **types.CustomPermissions, 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.CustomPermissions + if *v == nil { + sv = &types.CustomPermissions{} + } 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 Arn to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "Capabilities": + if err := awsRestjson1_deserializeDocumentCapabilities(&sv.Capabilities, value); err != nil { + return err + } + + case "CustomPermissionsName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CustomPermissionsName to be of type string, got %T instead", value) + } + sv.CustomPermissionsName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentCustomPermissionsList(v *[]types.CustomPermissions, 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.CustomPermissions + if *v == nil { + cv = []types.CustomPermissions{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.CustomPermissions + destAddr := &col + if err := awsRestjson1_deserializeDocumentCustomPermissions(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentCustomSql(v **types.CustomSql, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -56927,6 +60865,42 @@ func awsRestjson1_deserializeDocumentErrorInfo(v **types.ErrorInfo, value interf return nil } +func awsRestjson1_deserializeDocumentErrorList(v *[]string, 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 []string + if *v == nil { + cv = []string{} + } else { + cv = *v + } + + for _, value := range shape { + var col string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentExasolParameters(v **types.ExasolParameters, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -64624,6 +68598,223 @@ func awsRestjson1_deserializeDocumentIdentityTypeNotSupportedException(v **types return nil } +func awsRestjson1_deserializeDocumentImage(v **types.Image, 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.Image + if *v == nil { + sv = &types.Image{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "GeneratedImageUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.GeneratedImageUrl = ptr.String(jtv) + } + + case "Source": + if err := awsRestjson1_deserializeDocumentImageSource(&sv.Source, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImageConfiguration(v **types.ImageConfiguration, 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.ImageConfiguration + if *v == nil { + sv = &types.ImageConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Source": + if err := awsRestjson1_deserializeDocumentImageSource(&sv.Source, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImageSet(v **types.ImageSet, 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.ImageSet + if *v == nil { + sv = &types.ImageSet{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Height32": + if err := awsRestjson1_deserializeDocumentImage(&sv.Height32, value); err != nil { + return err + } + + case "Height64": + if err := awsRestjson1_deserializeDocumentImage(&sv.Height64, value); err != nil { + return err + } + + case "Original": + if err := awsRestjson1_deserializeDocumentImage(&sv.Original, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImageSetConfiguration(v **types.ImageSetConfiguration, 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.ImageSetConfiguration + if *v == nil { + sv = &types.ImageSetConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Original": + if err := awsRestjson1_deserializeDocumentImageConfiguration(&sv.Original, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentImageSource(v *types.ImageSource, 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 uv types.ImageSource +loop: + for key, value := range shape { + if value == nil { + continue + } + switch key { + case "PublicUrl": + var mv string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + mv = jtv + } + uv = &types.ImageSourceMemberPublicUrl{Value: mv} + break loop + + case "S3Uri": + var mv string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + mv = jtv + } + uv = &types.ImageSourceMemberS3Uri{Value: mv} + break loop + + default: + uv = &types.UnknownUnionMember{Tag: key} + break loop + + } + } + *v = uv + return nil +} + func awsRestjson1_deserializeDocumentIncrementalRefresh(v **types.IncrementalRefresh, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -65535,6 +69726,46 @@ func awsRestjson1_deserializeDocumentInternalFailureException(v **types.Internal return nil } +func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, 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.InternalServerException + if *v == nil { + sv = &types.InternalServerException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message", "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentInvalidNextTokenException(v **types.InvalidNextTokenException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -67828,7 +72059,87 @@ func awsRestjson1_deserializeDocumentListControlSearchOptions(v **types.ListCont return nil } -func awsRestjson1_deserializeDocumentListControlSelectAllOptions(v **types.ListControlSelectAllOptions, value interface{}) error { +func awsRestjson1_deserializeDocumentListControlSelectAllOptions(v **types.ListControlSelectAllOptions, 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.ListControlSelectAllOptions + if *v == nil { + sv = &types.ListControlSelectAllOptions{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Visibility": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + } + sv.Visibility = types.Visibility(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentLoadingAnimation(v **types.LoadingAnimation, 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.LoadingAnimation + if *v == nil { + sv = &types.LoadingAnimation{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Visibility": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + } + sv.Visibility = types.Visibility(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentLocalNavigationConfiguration(v **types.LocalNavigationConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -67841,22 +72152,22 @@ func awsRestjson1_deserializeDocumentListControlSelectAllOptions(v **types.ListC return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.ListControlSelectAllOptions + var sv *types.LocalNavigationConfiguration if *v == nil { - sv = &types.ListControlSelectAllOptions{} + sv = &types.LocalNavigationConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "Visibility": + case "TargetSheetId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) } - sv.Visibility = types.Visibility(jtv) + sv.TargetSheetId = ptr.String(jtv) } default: @@ -67868,7 +72179,7 @@ func awsRestjson1_deserializeDocumentListControlSelectAllOptions(v **types.ListC return nil } -func awsRestjson1_deserializeDocumentLoadingAnimation(v **types.LoadingAnimation, value interface{}) error { +func awsRestjson1_deserializeDocumentLogicalTable(v **types.LogicalTable, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -67881,22 +72192,32 @@ func awsRestjson1_deserializeDocumentLoadingAnimation(v **types.LoadingAnimation return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.LoadingAnimation + var sv *types.LogicalTable if *v == nil { - sv = &types.LoadingAnimation{} + sv = &types.LogicalTable{} } else { sv = *v } for key, value := range shape { switch key { - case "Visibility": + case "Alias": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected Visibility to be of type string, got %T instead", value) + return fmt.Errorf("expected LogicalTableAlias to be of type string, got %T instead", value) } - sv.Visibility = types.Visibility(jtv) + sv.Alias = ptr.String(jtv) + } + + case "DataTransforms": + if err := awsRestjson1_deserializeDocumentTransformOperationList(&sv.DataTransforms, value); err != nil { + return err + } + + case "Source": + if err := awsRestjson1_deserializeDocumentLogicalTableSource(&sv.Source, value); err != nil { + return err } default: @@ -67908,7 +72229,7 @@ func awsRestjson1_deserializeDocumentLoadingAnimation(v **types.LoadingAnimation return nil } -func awsRestjson1_deserializeDocumentLocalNavigationConfiguration(v **types.LocalNavigationConfiguration, value interface{}) error { +func awsRestjson1_deserializeDocumentLogicalTableMap(v *map[string]types.LogicalTable, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -67921,22 +72242,71 @@ func awsRestjson1_deserializeDocumentLocalNavigationConfiguration(v **types.Loca return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.LocalNavigationConfiguration + var mv map[string]types.LogicalTable if *v == nil { - sv = &types.LocalNavigationConfiguration{} + mv = map[string]types.LogicalTable{} + } else { + mv = *v + } + + for key, value := range shape { + var parsedVal types.LogicalTable + mapVar := parsedVal + destAddr := &mapVar + if err := awsRestjson1_deserializeDocumentLogicalTable(&destAddr, value); err != nil { + return err + } + parsedVal = *destAddr + mv[key] = parsedVal + + } + *v = mv + return nil +} + +func awsRestjson1_deserializeDocumentLogicalTableSource(v **types.LogicalTableSource, 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.LogicalTableSource + if *v == nil { + sv = &types.LogicalTableSource{} } else { sv = *v } for key, value := range shape { switch key { - case "TargetSheetId": + case "DataSetArn": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ShortRestrictiveResourceId to be of type string, got %T instead", value) + return fmt.Errorf("expected Arn to be of type string, got %T instead", value) } - sv.TargetSheetId = ptr.String(jtv) + sv.DataSetArn = ptr.String(jtv) + } + + case "JoinInstruction": + if err := awsRestjson1_deserializeDocumentJoinInstruction(&sv.JoinInstruction, value); err != nil { + return err + } + + case "PhysicalTableId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PhysicalTableId to be of type string, got %T instead", value) + } + sv.PhysicalTableId = ptr.String(jtv) } default: @@ -67948,7 +72318,7 @@ func awsRestjson1_deserializeDocumentLocalNavigationConfiguration(v **types.Loca return nil } -func awsRestjson1_deserializeDocumentLogicalTable(v **types.LogicalTable, value interface{}) error { +func awsRestjson1_deserializeDocumentLogo(v **types.Logo, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -67961,31 +72331,71 @@ func awsRestjson1_deserializeDocumentLogicalTable(v **types.LogicalTable, value return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.LogicalTable + var sv *types.Logo if *v == nil { - sv = &types.LogicalTable{} + sv = &types.Logo{} } else { sv = *v } for key, value := range shape { switch key { - case "Alias": + case "AltText": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected LogicalTableAlias to be of type string, got %T instead", value) + return fmt.Errorf("expected AltText to be of type string, got %T instead", value) } - sv.Alias = ptr.String(jtv) + sv.AltText = ptr.String(jtv) } - case "DataTransforms": - if err := awsRestjson1_deserializeDocumentTransformOperationList(&sv.DataTransforms, value); err != nil { + case "LogoSet": + if err := awsRestjson1_deserializeDocumentLogoSet(&sv.LogoSet, value); err != nil { return err } - case "Source": - if err := awsRestjson1_deserializeDocumentLogicalTableSource(&sv.Source, value); err != nil { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentLogoConfiguration(v **types.LogoConfiguration, 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.LogoConfiguration + if *v == nil { + sv = &types.LogoConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AltText": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.AltText = ptr.String(jtv) + } + + case "LogoSet": + if err := awsRestjson1_deserializeDocumentLogoSetConfiguration(&sv.LogoSet, value); err != nil { return err } @@ -67998,7 +72408,7 @@ func awsRestjson1_deserializeDocumentLogicalTable(v **types.LogicalTable, value return nil } -func awsRestjson1_deserializeDocumentLogicalTableMap(v *map[string]types.LogicalTable, value interface{}) error { +func awsRestjson1_deserializeDocumentLogoSet(v **types.LogoSet, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -68011,29 +72421,35 @@ func awsRestjson1_deserializeDocumentLogicalTableMap(v *map[string]types.Logical return fmt.Errorf("unexpected JSON type %v", value) } - var mv map[string]types.LogicalTable + var sv *types.LogoSet if *v == nil { - mv = map[string]types.LogicalTable{} + sv = &types.LogoSet{} } else { - mv = *v + sv = *v } for key, value := range shape { - var parsedVal types.LogicalTable - mapVar := parsedVal - destAddr := &mapVar - if err := awsRestjson1_deserializeDocumentLogicalTable(&destAddr, value); err != nil { - return err - } - parsedVal = *destAddr - mv[key] = parsedVal + switch key { + case "Favicon": + if err := awsRestjson1_deserializeDocumentImageSet(&sv.Favicon, value); err != nil { + return err + } + + case "Primary": + if err := awsRestjson1_deserializeDocumentImageSet(&sv.Primary, value); err != nil { + return err + } + + default: + _, _ = key, value + } } - *v = mv + *v = sv return nil } -func awsRestjson1_deserializeDocumentLogicalTableSource(v **types.LogicalTableSource, value interface{}) error { +func awsRestjson1_deserializeDocumentLogoSetConfiguration(v **types.LogoSetConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -68046,36 +72462,23 @@ func awsRestjson1_deserializeDocumentLogicalTableSource(v **types.LogicalTableSo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.LogicalTableSource + var sv *types.LogoSetConfiguration if *v == nil { - sv = &types.LogicalTableSource{} + sv = &types.LogoSetConfiguration{} } else { sv = *v } for key, value := range shape { switch key { - case "DataSetArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected Arn to be of type string, got %T instead", value) - } - sv.DataSetArn = ptr.String(jtv) - } - - case "JoinInstruction": - if err := awsRestjson1_deserializeDocumentJoinInstruction(&sv.JoinInstruction, value); err != nil { + case "Favicon": + if err := awsRestjson1_deserializeDocumentImageSetConfiguration(&sv.Favicon, value); err != nil { return err } - case "PhysicalTableId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected PhysicalTableId to be of type string, got %T instead", value) - } - sv.PhysicalTableId = ptr.String(jtv) + case "Primary": + if err := awsRestjson1_deserializeDocumentImageSetConfiguration(&sv.Primary, value); err != nil { + return err } default: @@ -69269,6 +73672,47 @@ func awsRestjson1_deserializeDocumentNamespaces(v *[]types.NamespaceInfoV2, valu return nil } +func awsRestjson1_deserializeDocumentNavbarStyle(v **types.NavbarStyle, 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.NavbarStyle + if *v == nil { + sv = &types.NavbarStyle{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ContextualNavbar": + if err := awsRestjson1_deserializeDocumentPalette(&sv.ContextualNavbar, value); err != nil { + return err + } + + case "GlobalNavbar": + if err := awsRestjson1_deserializeDocumentPalette(&sv.GlobalNavbar, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentNegativeFormat(v **types.NegativeFormat, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -70800,6 +75244,55 @@ func awsRestjson1_deserializeDocumentPaginationConfiguration(v **types.Paginatio return nil } +func awsRestjson1_deserializeDocumentPalette(v **types.Palette, 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.Palette + if *v == nil { + sv = &types.Palette{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Background": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HexColor to be of type string, got %T instead", value) + } + sv.Background = ptr.String(jtv) + } + + case "Foreground": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HexColor to be of type string, got %T instead", value) + } + sv.Foreground = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentPanelConfiguration(v **types.PanelConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/quicksight/generated.json b/service/quicksight/generated.json index fe2ab12c70f..ae1010a3228 100644 --- a/service/quicksight/generated.json +++ b/service/quicksight/generated.json @@ -14,6 +14,8 @@ "api_op_CreateAccountCustomization.go", "api_op_CreateAccountSubscription.go", "api_op_CreateAnalysis.go", + "api_op_CreateBrand.go", + "api_op_CreateCustomPermissions.go", "api_op_CreateDashboard.go", "api_op_CreateDataSet.go", "api_op_CreateDataSource.go", @@ -36,6 +38,9 @@ "api_op_DeleteAccountCustomization.go", "api_op_DeleteAccountSubscription.go", "api_op_DeleteAnalysis.go", + "api_op_DeleteBrand.go", + "api_op_DeleteBrandAssignment.go", + "api_op_DeleteCustomPermissions.go", "api_op_DeleteDashboard.go", "api_op_DeleteDataSet.go", "api_op_DeleteDataSetRefreshProperties.go", @@ -58,6 +63,7 @@ "api_op_DeleteTopicRefreshSchedule.go", "api_op_DeleteUser.go", "api_op_DeleteUserByPrincipalId.go", + "api_op_DeleteUserCustomPermission.go", "api_op_DeleteVPCConnection.go", "api_op_DescribeAccountCustomization.go", "api_op_DescribeAccountSettings.go", @@ -67,6 +73,10 @@ "api_op_DescribeAnalysisPermissions.go", "api_op_DescribeAssetBundleExportJob.go", "api_op_DescribeAssetBundleImportJob.go", + "api_op_DescribeBrand.go", + "api_op_DescribeBrandAssignment.go", + "api_op_DescribeBrandPublishedVersion.go", + "api_op_DescribeCustomPermissions.go", "api_op_DescribeDashboard.go", "api_op_DescribeDashboardDefinition.go", "api_op_DescribeDashboardPermissions.go", @@ -110,6 +120,8 @@ "api_op_ListAnalyses.go", "api_op_ListAssetBundleExportJobs.go", "api_op_ListAssetBundleImportJobs.go", + "api_op_ListBrands.go", + "api_op_ListCustomPermissions.go", "api_op_ListDashboardVersions.go", "api_op_ListDashboards.go", "api_op_ListDataSets.go", @@ -158,6 +170,10 @@ "api_op_UpdateAccountSettings.go", "api_op_UpdateAnalysis.go", "api_op_UpdateAnalysisPermissions.go", + "api_op_UpdateBrand.go", + "api_op_UpdateBrandAssignment.go", + "api_op_UpdateBrandPublishedVersion.go", + "api_op_UpdateCustomPermissions.go", "api_op_UpdateDashboard.go", "api_op_UpdateDashboardLinks.go", "api_op_UpdateDashboardPermissions.go", @@ -188,6 +204,7 @@ "api_op_UpdateTopicPermissions.go", "api_op_UpdateTopicRefreshSchedule.go", "api_op_UpdateUser.go", + "api_op_UpdateUserCustomPermission.go", "api_op_UpdateVPCConnection.go", "auth.go", "deserializers.go", diff --git a/service/quicksight/serializers.go b/service/quicksight/serializers.go index 613d635868e..a583248cc9e 100644 --- a/service/quicksight/serializers.go +++ b/service/quicksight/serializers.go @@ -772,6 +772,226 @@ func awsRestjson1_serializeOpDocumentCreateAnalysisInput(v *CreateAnalysisInput, return nil } +type awsRestjson1_serializeOpCreateBrand struct { +} + +func (*awsRestjson1_serializeOpCreateBrand) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateBrand) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateBrandInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brands/{BrandId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsCreateBrandInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateBrandInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsCreateBrandInput(v *CreateBrandInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.BrandId == nil || len(*v.BrandId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member BrandId must not be empty")} + } + if v.BrandId != nil { + if err := encoder.SetURI("BrandId").String(*v.BrandId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateBrandInput(v *CreateBrandInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BrandDefinition != nil { + ok := object.Key("BrandDefinition") + if err := awsRestjson1_serializeDocumentBrandDefinition(v.BrandDefinition, ok); err != nil { + return err + } + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpCreateCustomPermissions struct { +} + +func (*awsRestjson1_serializeOpCreateCustomPermissions) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpCreateCustomPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*CreateCustomPermissionsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/custom-permissions") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsCreateCustomPermissionsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateCustomPermissionsInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsCreateCustomPermissionsInput(v *CreateCustomPermissionsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentCreateCustomPermissionsInput(v *CreateCustomPermissionsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Capabilities != nil { + ok := object.Key("Capabilities") + if err := awsRestjson1_serializeDocumentCapabilities(v.Capabilities, ok); err != nil { + return err + } + } + + if v.CustomPermissionsName != nil { + ok := object.Key("CustomPermissionsName") + ok.String(*v.CustomPermissionsName) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpCreateDashboard struct { } @@ -3363,14 +3583,14 @@ func awsRestjson1_serializeOpHttpBindingsDeleteAnalysisInput(v *DeleteAnalysisIn return nil } -type awsRestjson1_serializeOpDeleteDashboard struct { +type awsRestjson1_serializeOpDeleteBrand struct { } -func (*awsRestjson1_serializeOpDeleteDashboard) ID() string { +func (*awsRestjson1_serializeOpDeleteBrand) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDeleteDashboard) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDeleteBrand) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -3382,13 +3602,13 @@ func (m *awsRestjson1_serializeOpDeleteDashboard) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DeleteDashboardInput) + input, ok := in.Parameters.(*DeleteBrandInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brands/{BrandId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "DELETE" @@ -3404,7 +3624,7 @@ func (m *awsRestjson1_serializeOpDeleteDashboard) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDeleteDashboardInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDeleteBrandInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -3417,7 +3637,7 @@ func (m *awsRestjson1_serializeOpDeleteDashboard) HandleSerialize(ctx context.Co span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDeleteDashboardInput(v *DeleteDashboardInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDeleteBrandInput(v *DeleteBrandInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -3431,30 +3651,26 @@ func awsRestjson1_serializeOpHttpBindingsDeleteDashboardInput(v *DeleteDashboard } } - if v.DashboardId == nil || len(*v.DashboardId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} + if v.BrandId == nil || len(*v.BrandId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member BrandId must not be empty")} } - if v.DashboardId != nil { - if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + if v.BrandId != nil { + if err := encoder.SetURI("BrandId").String(*v.BrandId); err != nil { return err } } - if v.VersionNumber != nil { - encoder.SetQuery("version-number").Long(*v.VersionNumber) - } - return nil } -type awsRestjson1_serializeOpDeleteDataSet struct { +type awsRestjson1_serializeOpDeleteBrandAssignment struct { } -func (*awsRestjson1_serializeOpDeleteDataSet) ID() string { +func (*awsRestjson1_serializeOpDeleteBrandAssignment) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDeleteDataSet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDeleteBrandAssignment) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -3466,13 +3682,13 @@ func (m *awsRestjson1_serializeOpDeleteDataSet) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DeleteDataSetInput) + input, ok := in.Parameters.(*DeleteBrandAssignmentInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brandassignments") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "DELETE" @@ -3488,7 +3704,7 @@ func (m *awsRestjson1_serializeOpDeleteDataSet) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDeleteDataSetInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDeleteBrandAssignmentInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -3501,7 +3717,7 @@ func (m *awsRestjson1_serializeOpDeleteDataSet) HandleSerialize(ctx context.Cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDeleteDataSetInput(v *DeleteDataSetInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDeleteBrandAssignmentInput(v *DeleteBrandAssignmentInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -3515,26 +3731,17 @@ func awsRestjson1_serializeOpHttpBindingsDeleteDataSetInput(v *DeleteDataSetInpu } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} - } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { - return err - } - } - return nil } -type awsRestjson1_serializeOpDeleteDataSetRefreshProperties struct { +type awsRestjson1_serializeOpDeleteCustomPermissions struct { } -func (*awsRestjson1_serializeOpDeleteDataSetRefreshProperties) ID() string { +func (*awsRestjson1_serializeOpDeleteCustomPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDeleteDataSetRefreshProperties) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDeleteCustomPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -3546,13 +3753,13 @@ func (m *awsRestjson1_serializeOpDeleteDataSetRefreshProperties) HandleSerialize return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DeleteDataSetRefreshPropertiesInput) + input, ok := in.Parameters.(*DeleteCustomPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-properties") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/custom-permissions/{CustomPermissionsName}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "DELETE" @@ -3568,7 +3775,7 @@ func (m *awsRestjson1_serializeOpDeleteDataSetRefreshProperties) HandleSerialize return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDeleteDataSetRefreshPropertiesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDeleteCustomPermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -3581,7 +3788,7 @@ func (m *awsRestjson1_serializeOpDeleteDataSetRefreshProperties) HandleSerialize span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDeleteDataSetRefreshPropertiesInput(v *DeleteDataSetRefreshPropertiesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDeleteCustomPermissionsInput(v *DeleteCustomPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -3595,11 +3802,11 @@ func awsRestjson1_serializeOpHttpBindingsDeleteDataSetRefreshPropertiesInput(v * } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + if v.CustomPermissionsName == nil || len(*v.CustomPermissionsName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member CustomPermissionsName must not be empty")} } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + if v.CustomPermissionsName != nil { + if err := encoder.SetURI("CustomPermissionsName").String(*v.CustomPermissionsName); err != nil { return err } } @@ -3607,14 +3814,14 @@ func awsRestjson1_serializeOpHttpBindingsDeleteDataSetRefreshPropertiesInput(v * return nil } -type awsRestjson1_serializeOpDeleteDataSource struct { +type awsRestjson1_serializeOpDeleteDashboard struct { } -func (*awsRestjson1_serializeOpDeleteDataSource) ID() string { +func (*awsRestjson1_serializeOpDeleteDashboard) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDeleteDataSource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDeleteDashboard) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -3626,13 +3833,13 @@ func (m *awsRestjson1_serializeOpDeleteDataSource) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DeleteDataSourceInput) + input, ok := in.Parameters.(*DeleteDashboardInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sources/{DataSourceId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "DELETE" @@ -3648,7 +3855,7 @@ func (m *awsRestjson1_serializeOpDeleteDataSource) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDeleteDataSourceInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDeleteDashboardInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -3661,7 +3868,7 @@ func (m *awsRestjson1_serializeOpDeleteDataSource) HandleSerialize(ctx context.C span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDeleteDataSourceInput(v *DeleteDataSourceInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDeleteDashboardInput(v *DeleteDashboardInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -3675,12 +3882,256 @@ func awsRestjson1_serializeOpHttpBindingsDeleteDataSourceInput(v *DeleteDataSour } } - if v.DataSourceId == nil || len(*v.DataSourceId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSourceId must not be empty")} + if v.DashboardId == nil || len(*v.DashboardId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} } - if v.DataSourceId != nil { - if err := encoder.SetURI("DataSourceId").String(*v.DataSourceId); err != nil { - return err + if v.DashboardId != nil { + if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + return err + } + } + + if v.VersionNumber != nil { + encoder.SetQuery("version-number").Long(*v.VersionNumber) + } + + return nil +} + +type awsRestjson1_serializeOpDeleteDataSet struct { +} + +func (*awsRestjson1_serializeOpDeleteDataSet) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteDataSet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteDataSetInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDeleteDataSetInput(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 + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeleteDataSetInput(v *DeleteDataSetInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + } + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpDeleteDataSetRefreshProperties struct { +} + +func (*awsRestjson1_serializeOpDeleteDataSetRefreshProperties) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteDataSetRefreshProperties) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteDataSetRefreshPropertiesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-properties") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDeleteDataSetRefreshPropertiesInput(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 + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeleteDataSetRefreshPropertiesInput(v *DeleteDataSetRefreshPropertiesInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + } + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpDeleteDataSource struct { +} + +func (*awsRestjson1_serializeOpDeleteDataSource) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteDataSource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteDataSourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sources/{DataSourceId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDeleteDataSourceInput(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 + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeleteDataSourceInput(v *DeleteDataSourceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.DataSourceId == nil || len(*v.DataSourceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSourceId must not be empty")} + } + if v.DataSourceId != nil { + if err := encoder.SetURI("DataSourceId").String(*v.DataSourceId); err != nil { + return err } } @@ -5270,14 +5721,14 @@ func awsRestjson1_serializeOpHttpBindingsDeleteUserByPrincipalIdInput(v *DeleteU return nil } -type awsRestjson1_serializeOpDeleteVPCConnection struct { +type awsRestjson1_serializeOpDeleteUserCustomPermission struct { } -func (*awsRestjson1_serializeOpDeleteVPCConnection) ID() string { +func (*awsRestjson1_serializeOpDeleteUserCustomPermission) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDeleteVPCConnection) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDeleteUserCustomPermission) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -5289,13 +5740,13 @@ func (m *awsRestjson1_serializeOpDeleteVPCConnection) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DeleteVPCConnectionInput) + input, ok := in.Parameters.(*DeleteUserCustomPermissionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/vpc-connections/{VPCConnectionId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/custom-permission") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "DELETE" @@ -5311,7 +5762,7 @@ func (m *awsRestjson1_serializeOpDeleteVPCConnection) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDeleteVPCConnectionInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDeleteUserCustomPermissionInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -5324,7 +5775,7 @@ func (m *awsRestjson1_serializeOpDeleteVPCConnection) HandleSerialize(ctx contex span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDeleteVPCConnectionInput(v *DeleteVPCConnectionInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDeleteUserCustomPermissionInput(v *DeleteUserCustomPermissionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -5338,8 +5789,97 @@ func awsRestjson1_serializeOpHttpBindingsDeleteVPCConnectionInput(v *DeleteVPCCo } } - if v.VPCConnectionId == nil || len(*v.VPCConnectionId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member VPCConnectionId must not be empty")} + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } + } + + if v.UserName == nil || len(*v.UserName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member UserName must not be empty")} + } + if v.UserName != nil { + if err := encoder.SetURI("UserName").String(*v.UserName); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpDeleteVPCConnection struct { +} + +func (*awsRestjson1_serializeOpDeleteVPCConnection) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteVPCConnection) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*DeleteVPCConnectionInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/vpc-connections/{VPCConnectionId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDeleteVPCConnectionInput(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 + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsDeleteVPCConnectionInput(v *DeleteVPCConnectionInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.VPCConnectionId == nil || len(*v.VPCConnectionId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member VPCConnectionId must not be empty")} } if v.VPCConnectionId != nil { if err := encoder.SetURI("VPCConnectionId").String(*v.VPCConnectionId); err != nil { @@ -5971,14 +6511,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeAssetBundleImportJobInput(v *De return nil } -type awsRestjson1_serializeOpDescribeDashboard struct { +type awsRestjson1_serializeOpDescribeBrand struct { } -func (*awsRestjson1_serializeOpDescribeDashboard) ID() string { +func (*awsRestjson1_serializeOpDescribeBrand) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDashboard) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeBrand) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -5990,13 +6530,13 @@ func (m *awsRestjson1_serializeOpDescribeDashboard) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDashboardInput) + input, ok := in.Parameters.(*DescribeBrandInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brands/{BrandId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6012,7 +6552,7 @@ func (m *awsRestjson1_serializeOpDescribeDashboard) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeBrandInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6025,15 +6565,11 @@ func (m *awsRestjson1_serializeOpDescribeDashboard) HandleSerialize(ctx context. span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDashboardInput(v *DescribeDashboardInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeBrandInput(v *DescribeBrandInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AliasName != nil { - encoder.SetQuery("alias-name").String(*v.AliasName) - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -6043,30 +6579,30 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDashboardInput(v *DescribeDashb } } - if v.DashboardId == nil || len(*v.DashboardId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} + if v.BrandId == nil || len(*v.BrandId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member BrandId must not be empty")} } - if v.DashboardId != nil { - if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + if v.BrandId != nil { + if err := encoder.SetURI("BrandId").String(*v.BrandId); err != nil { return err } } - if v.VersionNumber != nil { - encoder.SetQuery("version-number").Long(*v.VersionNumber) + if v.VersionId != nil { + encoder.SetQuery("versionId").String(*v.VersionId) } return nil } -type awsRestjson1_serializeOpDescribeDashboardDefinition struct { +type awsRestjson1_serializeOpDescribeBrandAssignment struct { } -func (*awsRestjson1_serializeOpDescribeDashboardDefinition) ID() string { +func (*awsRestjson1_serializeOpDescribeBrandAssignment) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDashboardDefinition) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeBrandAssignment) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6078,13 +6614,13 @@ func (m *awsRestjson1_serializeOpDescribeDashboardDefinition) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDashboardDefinitionInput) + input, ok := in.Parameters.(*DescribeBrandAssignmentInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/definition") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brandassignments") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6100,7 +6636,7 @@ func (m *awsRestjson1_serializeOpDescribeDashboardDefinition) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardDefinitionInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeBrandAssignmentInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6113,15 +6649,11 @@ func (m *awsRestjson1_serializeOpDescribeDashboardDefinition) HandleSerialize(ct span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDashboardDefinitionInput(v *DescribeDashboardDefinitionInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeBrandAssignmentInput(v *DescribeBrandAssignmentInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AliasName != nil { - encoder.SetQuery("alias-name").String(*v.AliasName) - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -6131,30 +6663,17 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDashboardDefinitionInput(v *Des } } - if v.DashboardId == nil || len(*v.DashboardId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} - } - if v.DashboardId != nil { - if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { - return err - } - } - - if v.VersionNumber != nil { - encoder.SetQuery("version-number").Long(*v.VersionNumber) - } - return nil } -type awsRestjson1_serializeOpDescribeDashboardPermissions struct { +type awsRestjson1_serializeOpDescribeBrandPublishedVersion struct { } -func (*awsRestjson1_serializeOpDescribeDashboardPermissions) ID() string { +func (*awsRestjson1_serializeOpDescribeBrandPublishedVersion) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDashboardPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeBrandPublishedVersion) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6166,13 +6685,13 @@ func (m *awsRestjson1_serializeOpDescribeDashboardPermissions) HandleSerialize(c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDashboardPermissionsInput) + input, ok := in.Parameters.(*DescribeBrandPublishedVersionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/permissions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brands/{BrandId}/publishedversion") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6188,7 +6707,7 @@ func (m *awsRestjson1_serializeOpDescribeDashboardPermissions) HandleSerialize(c return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardPermissionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeBrandPublishedVersionInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6201,7 +6720,7 @@ func (m *awsRestjson1_serializeOpDescribeDashboardPermissions) HandleSerialize(c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDashboardPermissionsInput(v *DescribeDashboardPermissionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeBrandPublishedVersionInput(v *DescribeBrandPublishedVersionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -6215,11 +6734,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDashboardPermissionsInput(v *De } } - if v.DashboardId == nil || len(*v.DashboardId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} + if v.BrandId == nil || len(*v.BrandId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member BrandId must not be empty")} } - if v.DashboardId != nil { - if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + if v.BrandId != nil { + if err := encoder.SetURI("BrandId").String(*v.BrandId); err != nil { return err } } @@ -6227,14 +6746,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDashboardPermissionsInput(v *De return nil } -type awsRestjson1_serializeOpDescribeDashboardSnapshotJob struct { +type awsRestjson1_serializeOpDescribeCustomPermissions struct { } -func (*awsRestjson1_serializeOpDescribeDashboardSnapshotJob) ID() string { +func (*awsRestjson1_serializeOpDescribeCustomPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeCustomPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6246,13 +6765,13 @@ func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJob) HandleSerialize(c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDashboardSnapshotJobInput) + input, ok := in.Parameters.(*DescribeCustomPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/snapshot-jobs/{SnapshotJobId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/custom-permissions/{CustomPermissionsName}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6268,7 +6787,7 @@ func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJob) HandleSerialize(c return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeCustomPermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6281,7 +6800,7 @@ func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJob) HandleSerialize(c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobInput(v *DescribeDashboardSnapshotJobInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeCustomPermissionsInput(v *DescribeCustomPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -6295,20 +6814,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobInput(v *De } } - if v.DashboardId == nil || len(*v.DashboardId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} - } - if v.DashboardId != nil { - if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { - return err - } - } - - if v.SnapshotJobId == nil || len(*v.SnapshotJobId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member SnapshotJobId must not be empty")} + if v.CustomPermissionsName == nil || len(*v.CustomPermissionsName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member CustomPermissionsName must not be empty")} } - if v.SnapshotJobId != nil { - if err := encoder.SetURI("SnapshotJobId").String(*v.SnapshotJobId); err != nil { + if v.CustomPermissionsName != nil { + if err := encoder.SetURI("CustomPermissionsName").String(*v.CustomPermissionsName); err != nil { return err } } @@ -6316,14 +6826,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobInput(v *De return nil } -type awsRestjson1_serializeOpDescribeDashboardSnapshotJobResult struct { +type awsRestjson1_serializeOpDescribeDashboard struct { } -func (*awsRestjson1_serializeOpDescribeDashboardSnapshotJobResult) ID() string { +func (*awsRestjson1_serializeOpDescribeDashboard) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJobResult) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDashboard) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6335,13 +6845,13 @@ func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJobResult) HandleSeria return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDashboardSnapshotJobResultInput) + input, ok := in.Parameters.(*DescribeDashboardInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/snapshot-jobs/{SnapshotJobId}/result") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6357,7 +6867,7 @@ func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJobResult) HandleSeria return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobResultInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6370,11 +6880,15 @@ func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJobResult) HandleSeria span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobResultInput(v *DescribeDashboardSnapshotJobResultInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDashboardInput(v *DescribeDashboardInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.AliasName != nil { + encoder.SetQuery("alias-name").String(*v.AliasName) + } + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -6393,26 +6907,21 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobResultInput } } - if v.SnapshotJobId == nil || len(*v.SnapshotJobId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member SnapshotJobId must not be empty")} - } - if v.SnapshotJobId != nil { - if err := encoder.SetURI("SnapshotJobId").String(*v.SnapshotJobId); err != nil { - return err - } + if v.VersionNumber != nil { + encoder.SetQuery("version-number").Long(*v.VersionNumber) } return nil } -type awsRestjson1_serializeOpDescribeDataSet struct { +type awsRestjson1_serializeOpDescribeDashboardDefinition struct { } -func (*awsRestjson1_serializeOpDescribeDataSet) ID() string { +func (*awsRestjson1_serializeOpDescribeDashboardDefinition) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDataSet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDashboardDefinition) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6424,13 +6933,13 @@ func (m *awsRestjson1_serializeOpDescribeDataSet) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDataSetInput) + input, ok := in.Parameters.(*DescribeDashboardDefinitionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/definition") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6446,7 +6955,7 @@ func (m *awsRestjson1_serializeOpDescribeDataSet) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSetInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardDefinitionInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6459,11 +6968,15 @@ func (m *awsRestjson1_serializeOpDescribeDataSet) HandleSerialize(ctx context.Co span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDataSetInput(v *DescribeDataSetInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDashboardDefinitionInput(v *DescribeDashboardDefinitionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.AliasName != nil { + encoder.SetQuery("alias-name").String(*v.AliasName) + } + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -6473,26 +6986,30 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDataSetInput(v *DescribeDataSet } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + if v.DashboardId == nil || len(*v.DashboardId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + if v.DashboardId != nil { + if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { return err } } + if v.VersionNumber != nil { + encoder.SetQuery("version-number").Long(*v.VersionNumber) + } + return nil } -type awsRestjson1_serializeOpDescribeDataSetPermissions struct { +type awsRestjson1_serializeOpDescribeDashboardPermissions struct { } -func (*awsRestjson1_serializeOpDescribeDataSetPermissions) ID() string { +func (*awsRestjson1_serializeOpDescribeDashboardPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDataSetPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDashboardPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6504,13 +7021,13 @@ func (m *awsRestjson1_serializeOpDescribeDataSetPermissions) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDataSetPermissionsInput) + input, ok := in.Parameters.(*DescribeDashboardPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/permissions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6526,7 +7043,7 @@ func (m *awsRestjson1_serializeOpDescribeDataSetPermissions) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSetPermissionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardPermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6539,7 +7056,7 @@ func (m *awsRestjson1_serializeOpDescribeDataSetPermissions) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDataSetPermissionsInput(v *DescribeDataSetPermissionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDashboardPermissionsInput(v *DescribeDashboardPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -6553,11 +7070,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDataSetPermissionsInput(v *Desc } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + if v.DashboardId == nil || len(*v.DashboardId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + if v.DashboardId != nil { + if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { return err } } @@ -6565,14 +7082,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDataSetPermissionsInput(v *Desc return nil } -type awsRestjson1_serializeOpDescribeDataSetRefreshProperties struct { +type awsRestjson1_serializeOpDescribeDashboardSnapshotJob struct { } -func (*awsRestjson1_serializeOpDescribeDataSetRefreshProperties) ID() string { +func (*awsRestjson1_serializeOpDescribeDashboardSnapshotJob) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDataSetRefreshProperties) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6584,13 +7101,13 @@ func (m *awsRestjson1_serializeOpDescribeDataSetRefreshProperties) HandleSeriali return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDataSetRefreshPropertiesInput) + input, ok := in.Parameters.(*DescribeDashboardSnapshotJobInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-properties") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/snapshot-jobs/{SnapshotJobId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6606,7 +7123,7 @@ func (m *awsRestjson1_serializeOpDescribeDataSetRefreshProperties) HandleSeriali return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSetRefreshPropertiesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6619,7 +7136,7 @@ func (m *awsRestjson1_serializeOpDescribeDataSetRefreshProperties) HandleSeriali span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDataSetRefreshPropertiesInput(v *DescribeDataSetRefreshPropertiesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobInput(v *DescribeDashboardSnapshotJobInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -6633,11 +7150,20 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDataSetRefreshPropertiesInput(v } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + if v.DashboardId == nil || len(*v.DashboardId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + if v.DashboardId != nil { + if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + return err + } + } + + if v.SnapshotJobId == nil || len(*v.SnapshotJobId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member SnapshotJobId must not be empty")} + } + if v.SnapshotJobId != nil { + if err := encoder.SetURI("SnapshotJobId").String(*v.SnapshotJobId); err != nil { return err } } @@ -6645,14 +7171,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDataSetRefreshPropertiesInput(v return nil } -type awsRestjson1_serializeOpDescribeDataSource struct { +type awsRestjson1_serializeOpDescribeDashboardSnapshotJobResult struct { } -func (*awsRestjson1_serializeOpDescribeDataSource) ID() string { +func (*awsRestjson1_serializeOpDescribeDashboardSnapshotJobResult) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDataSource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDashboardSnapshotJobResult) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6664,13 +7190,13 @@ func (m *awsRestjson1_serializeOpDescribeDataSource) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDataSourceInput) + input, ok := in.Parameters.(*DescribeDashboardSnapshotJobResultInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sources/{DataSourceId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/snapshot-jobs/{SnapshotJobId}/result") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6686,7 +7212,7 @@ func (m *awsRestjson1_serializeOpDescribeDataSource) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSourceInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobResultInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6699,7 +7225,7 @@ func (m *awsRestjson1_serializeOpDescribeDataSource) HandleSerialize(ctx context span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDataSourceInput(v *DescribeDataSourceInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDashboardSnapshotJobResultInput(v *DescribeDashboardSnapshotJobResultInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -6713,11 +7239,20 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDataSourceInput(v *DescribeData } } - if v.DataSourceId == nil || len(*v.DataSourceId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSourceId must not be empty")} + if v.DashboardId == nil || len(*v.DashboardId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} } - if v.DataSourceId != nil { - if err := encoder.SetURI("DataSourceId").String(*v.DataSourceId); err != nil { + if v.DashboardId != nil { + if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + return err + } + } + + if v.SnapshotJobId == nil || len(*v.SnapshotJobId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member SnapshotJobId must not be empty")} + } + if v.SnapshotJobId != nil { + if err := encoder.SetURI("SnapshotJobId").String(*v.SnapshotJobId); err != nil { return err } } @@ -6725,14 +7260,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDataSourceInput(v *DescribeData return nil } -type awsRestjson1_serializeOpDescribeDataSourcePermissions struct { +type awsRestjson1_serializeOpDescribeDataSet struct { } -func (*awsRestjson1_serializeOpDescribeDataSourcePermissions) ID() string { +func (*awsRestjson1_serializeOpDescribeDataSet) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeDataSourcePermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDataSet) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6744,13 +7279,13 @@ func (m *awsRestjson1_serializeOpDescribeDataSourcePermissions) HandleSerialize( return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeDataSourcePermissionsInput) + input, ok := in.Parameters.(*DescribeDataSetInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sources/{DataSourceId}/permissions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6766,7 +7301,7 @@ func (m *awsRestjson1_serializeOpDescribeDataSourcePermissions) HandleSerialize( return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSourcePermissionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSetInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6779,7 +7314,7 @@ func (m *awsRestjson1_serializeOpDescribeDataSourcePermissions) HandleSerialize( span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeDataSourcePermissionsInput(v *DescribeDataSourcePermissionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDataSetInput(v *DescribeDataSetInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -6793,11 +7328,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDataSourcePermissionsInput(v *D } } - if v.DataSourceId == nil || len(*v.DataSourceId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSourceId must not be empty")} + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} } - if v.DataSourceId != nil { - if err := encoder.SetURI("DataSourceId").String(*v.DataSourceId); err != nil { + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { return err } } @@ -6805,14 +7340,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeDataSourcePermissionsInput(v *D return nil } -type awsRestjson1_serializeOpDescribeFolder struct { +type awsRestjson1_serializeOpDescribeDataSetPermissions struct { } -func (*awsRestjson1_serializeOpDescribeFolder) ID() string { +func (*awsRestjson1_serializeOpDescribeDataSetPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeFolder) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDataSetPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6824,13 +7359,13 @@ func (m *awsRestjson1_serializeOpDescribeFolder) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeFolderInput) + input, ok := in.Parameters.(*DescribeDataSetPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders/{FolderId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6846,7 +7381,7 @@ func (m *awsRestjson1_serializeOpDescribeFolder) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeFolderInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSetPermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6859,7 +7394,7 @@ func (m *awsRestjson1_serializeOpDescribeFolder) HandleSerialize(ctx context.Con span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeFolderInput(v *DescribeFolderInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDataSetPermissionsInput(v *DescribeDataSetPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -6873,11 +7408,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeFolderInput(v *DescribeFolderIn } } - if v.FolderId == nil || len(*v.FolderId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member FolderId must not be empty")} + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} } - if v.FolderId != nil { - if err := encoder.SetURI("FolderId").String(*v.FolderId); err != nil { + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { return err } } @@ -6885,14 +7420,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeFolderInput(v *DescribeFolderIn return nil } -type awsRestjson1_serializeOpDescribeFolderPermissions struct { +type awsRestjson1_serializeOpDescribeDataSetRefreshProperties struct { } -func (*awsRestjson1_serializeOpDescribeFolderPermissions) ID() string { +func (*awsRestjson1_serializeOpDescribeDataSetRefreshProperties) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeFolderPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDataSetRefreshProperties) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6904,13 +7439,13 @@ func (m *awsRestjson1_serializeOpDescribeFolderPermissions) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeFolderPermissionsInput) + input, ok := in.Parameters.(*DescribeDataSetRefreshPropertiesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders/{FolderId}/permissions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-properties") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -6926,7 +7461,7 @@ func (m *awsRestjson1_serializeOpDescribeFolderPermissions) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeFolderPermissionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSetRefreshPropertiesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -6939,7 +7474,7 @@ func (m *awsRestjson1_serializeOpDescribeFolderPermissions) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeFolderPermissionsInput(v *DescribeFolderPermissionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDataSetRefreshPropertiesInput(v *DescribeDataSetRefreshPropertiesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -6953,38 +7488,26 @@ func awsRestjson1_serializeOpHttpBindingsDescribeFolderPermissionsInput(v *Descr } } - if v.FolderId == nil || len(*v.FolderId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member FolderId must not be empty")} + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} } - if v.FolderId != nil { - if err := encoder.SetURI("FolderId").String(*v.FolderId); err != nil { + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { return err } } - if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) - } - - if v.Namespace != nil { - encoder.SetQuery("namespace").String(*v.Namespace) - } - - if v.NextToken != nil { - encoder.SetQuery("next-token").String(*v.NextToken) - } - return nil } -type awsRestjson1_serializeOpDescribeFolderResolvedPermissions struct { +type awsRestjson1_serializeOpDescribeDataSource struct { } -func (*awsRestjson1_serializeOpDescribeFolderResolvedPermissions) ID() string { +func (*awsRestjson1_serializeOpDescribeDataSource) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeFolderResolvedPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDataSource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -6996,13 +7519,13 @@ func (m *awsRestjson1_serializeOpDescribeFolderResolvedPermissions) HandleSerial return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeFolderResolvedPermissionsInput) + input, ok := in.Parameters.(*DescribeDataSourceInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders/{FolderId}/resolved-permissions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sources/{DataSourceId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7018,7 +7541,7 @@ func (m *awsRestjson1_serializeOpDescribeFolderResolvedPermissions) HandleSerial return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeFolderResolvedPermissionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSourceInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7031,7 +7554,7 @@ func (m *awsRestjson1_serializeOpDescribeFolderResolvedPermissions) HandleSerial span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeFolderResolvedPermissionsInput(v *DescribeFolderResolvedPermissionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDataSourceInput(v *DescribeDataSourceInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -7045,38 +7568,26 @@ func awsRestjson1_serializeOpHttpBindingsDescribeFolderResolvedPermissionsInput( } } - if v.FolderId == nil || len(*v.FolderId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member FolderId must not be empty")} + if v.DataSourceId == nil || len(*v.DataSourceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSourceId must not be empty")} } - if v.FolderId != nil { - if err := encoder.SetURI("FolderId").String(*v.FolderId); err != nil { + if v.DataSourceId != nil { + if err := encoder.SetURI("DataSourceId").String(*v.DataSourceId); err != nil { return err } } - if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) - } - - if v.Namespace != nil { - encoder.SetQuery("namespace").String(*v.Namespace) - } - - if v.NextToken != nil { - encoder.SetQuery("next-token").String(*v.NextToken) - } - return nil } -type awsRestjson1_serializeOpDescribeGroup struct { +type awsRestjson1_serializeOpDescribeDataSourcePermissions struct { } -func (*awsRestjson1_serializeOpDescribeGroup) ID() string { +func (*awsRestjson1_serializeOpDescribeDataSourcePermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeGroup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeDataSourcePermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7088,13 +7599,13 @@ func (m *awsRestjson1_serializeOpDescribeGroup) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeGroupInput) + input, ok := in.Parameters.(*DescribeDataSourcePermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sources/{DataSourceId}/permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7110,7 +7621,7 @@ func (m *awsRestjson1_serializeOpDescribeGroup) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeGroupInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeDataSourcePermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7123,7 +7634,7 @@ func (m *awsRestjson1_serializeOpDescribeGroup) HandleSerialize(ctx context.Cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeGroupInput(v *DescribeGroupInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeDataSourcePermissionsInput(v *DescribeDataSourcePermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -7137,20 +7648,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeGroupInput(v *DescribeGroupInpu } } - if v.GroupName == nil || len(*v.GroupName) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member GroupName must not be empty")} - } - if v.GroupName != nil { - if err := encoder.SetURI("GroupName").String(*v.GroupName); err != nil { - return err - } - } - - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + if v.DataSourceId == nil || len(*v.DataSourceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSourceId must not be empty")} } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + if v.DataSourceId != nil { + if err := encoder.SetURI("DataSourceId").String(*v.DataSourceId); err != nil { return err } } @@ -7158,14 +7660,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeGroupInput(v *DescribeGroupInpu return nil } -type awsRestjson1_serializeOpDescribeGroupMembership struct { +type awsRestjson1_serializeOpDescribeFolder struct { } -func (*awsRestjson1_serializeOpDescribeGroupMembership) ID() string { +func (*awsRestjson1_serializeOpDescribeFolder) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeGroupMembership) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeFolder) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7177,13 +7679,13 @@ func (m *awsRestjson1_serializeOpDescribeGroupMembership) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeGroupMembershipInput) + input, ok := in.Parameters.(*DescribeFolderInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}/members/{MemberName}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders/{FolderId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7199,7 +7701,7 @@ func (m *awsRestjson1_serializeOpDescribeGroupMembership) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeGroupMembershipInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeFolderInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7212,7 +7714,7 @@ func (m *awsRestjson1_serializeOpDescribeGroupMembership) HandleSerialize(ctx co span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeGroupMembershipInput(v *DescribeGroupMembershipInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeFolderInput(v *DescribeFolderInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -7226,29 +7728,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeGroupMembershipInput(v *Describ } } - if v.GroupName == nil || len(*v.GroupName) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member GroupName must not be empty")} - } - if v.GroupName != nil { - if err := encoder.SetURI("GroupName").String(*v.GroupName); err != nil { - return err - } - } - - if v.MemberName == nil || len(*v.MemberName) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member MemberName must not be empty")} - } - if v.MemberName != nil { - if err := encoder.SetURI("MemberName").String(*v.MemberName); err != nil { - return err - } - } - - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + if v.FolderId == nil || len(*v.FolderId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member FolderId must not be empty")} } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + if v.FolderId != nil { + if err := encoder.SetURI("FolderId").String(*v.FolderId); err != nil { return err } } @@ -7256,14 +7740,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeGroupMembershipInput(v *Describ return nil } -type awsRestjson1_serializeOpDescribeIAMPolicyAssignment struct { +type awsRestjson1_serializeOpDescribeFolderPermissions struct { } -func (*awsRestjson1_serializeOpDescribeIAMPolicyAssignment) ID() string { +func (*awsRestjson1_serializeOpDescribeFolderPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeIAMPolicyAssignment) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeFolderPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7275,13 +7759,13 @@ func (m *awsRestjson1_serializeOpDescribeIAMPolicyAssignment) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeIAMPolicyAssignmentInput) + input, ok := in.Parameters.(*DescribeFolderPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/iam-policy-assignments/{AssignmentName}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders/{FolderId}/permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7297,7 +7781,7 @@ func (m *awsRestjson1_serializeOpDescribeIAMPolicyAssignment) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeIAMPolicyAssignmentInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeFolderPermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7310,20 +7794,11 @@ func (m *awsRestjson1_serializeOpDescribeIAMPolicyAssignment) HandleSerialize(ct span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeIAMPolicyAssignmentInput(v *DescribeIAMPolicyAssignmentInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeFolderPermissionsInput(v *DescribeFolderPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AssignmentName == nil || len(*v.AssignmentName) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member AssignmentName must not be empty")} - } - if v.AssignmentName != nil { - if err := encoder.SetURI("AssignmentName").String(*v.AssignmentName); err != nil { - return err - } - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -7333,26 +7808,38 @@ func awsRestjson1_serializeOpHttpBindingsDescribeIAMPolicyAssignmentInput(v *Des } } - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + if v.FolderId == nil || len(*v.FolderId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member FolderId must not be empty")} } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + if v.FolderId != nil { + if err := encoder.SetURI("FolderId").String(*v.FolderId); err != nil { return err } } + if v.MaxResults != nil { + encoder.SetQuery("max-results").Integer(*v.MaxResults) + } + + if v.Namespace != nil { + encoder.SetQuery("namespace").String(*v.Namespace) + } + + if v.NextToken != nil { + encoder.SetQuery("next-token").String(*v.NextToken) + } + return nil } -type awsRestjson1_serializeOpDescribeIngestion struct { +type awsRestjson1_serializeOpDescribeFolderResolvedPermissions struct { } -func (*awsRestjson1_serializeOpDescribeIngestion) ID() string { +func (*awsRestjson1_serializeOpDescribeFolderResolvedPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeIngestion) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeFolderResolvedPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7364,13 +7851,13 @@ func (m *awsRestjson1_serializeOpDescribeIngestion) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeIngestionInput) + input, ok := in.Parameters.(*DescribeFolderResolvedPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/ingestions/{IngestionId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders/{FolderId}/resolved-permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7386,7 +7873,7 @@ func (m *awsRestjson1_serializeOpDescribeIngestion) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeIngestionInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeFolderResolvedPermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7399,7 +7886,7 @@ func (m *awsRestjson1_serializeOpDescribeIngestion) HandleSerialize(ctx context. span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeIngestionInput(v *DescribeIngestionInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeFolderResolvedPermissionsInput(v *DescribeFolderResolvedPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -7413,35 +7900,38 @@ func awsRestjson1_serializeOpHttpBindingsDescribeIngestionInput(v *DescribeInges } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + if v.FolderId == nil || len(*v.FolderId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member FolderId must not be empty")} } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + if v.FolderId != nil { + if err := encoder.SetURI("FolderId").String(*v.FolderId); err != nil { return err } } - if v.IngestionId == nil || len(*v.IngestionId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member IngestionId must not be empty")} + if v.MaxResults != nil { + encoder.SetQuery("max-results").Integer(*v.MaxResults) } - if v.IngestionId != nil { - if err := encoder.SetURI("IngestionId").String(*v.IngestionId); err != nil { - return err - } + + if v.Namespace != nil { + encoder.SetQuery("namespace").String(*v.Namespace) + } + + if v.NextToken != nil { + encoder.SetQuery("next-token").String(*v.NextToken) } return nil } -type awsRestjson1_serializeOpDescribeIpRestriction struct { +type awsRestjson1_serializeOpDescribeGroup struct { } -func (*awsRestjson1_serializeOpDescribeIpRestriction) ID() string { +func (*awsRestjson1_serializeOpDescribeGroup) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeIpRestriction) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeGroup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7453,13 +7943,13 @@ func (m *awsRestjson1_serializeOpDescribeIpRestriction) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeIpRestrictionInput) + input, ok := in.Parameters.(*DescribeGroupInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/ip-restriction") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7475,7 +7965,7 @@ func (m *awsRestjson1_serializeOpDescribeIpRestriction) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeIpRestrictionInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeGroupInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7488,7 +7978,7 @@ func (m *awsRestjson1_serializeOpDescribeIpRestriction) HandleSerialize(ctx cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeIpRestrictionInput(v *DescribeIpRestrictionInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeGroupInput(v *DescribeGroupInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -7502,17 +7992,35 @@ func awsRestjson1_serializeOpHttpBindingsDescribeIpRestrictionInput(v *DescribeI } } + if v.GroupName == nil || len(*v.GroupName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member GroupName must not be empty")} + } + if v.GroupName != nil { + if err := encoder.SetURI("GroupName").String(*v.GroupName); err != nil { + return err + } + } + + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } + } + return nil } -type awsRestjson1_serializeOpDescribeKeyRegistration struct { +type awsRestjson1_serializeOpDescribeGroupMembership struct { } -func (*awsRestjson1_serializeOpDescribeKeyRegistration) ID() string { +func (*awsRestjson1_serializeOpDescribeGroupMembership) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeKeyRegistration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeGroupMembership) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7524,13 +8032,13 @@ func (m *awsRestjson1_serializeOpDescribeKeyRegistration) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeKeyRegistrationInput) + input, ok := in.Parameters.(*DescribeGroupMembershipInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/key-registration") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}/members/{MemberName}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7546,7 +8054,7 @@ func (m *awsRestjson1_serializeOpDescribeKeyRegistration) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeKeyRegistrationInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeGroupMembershipInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7559,7 +8067,7 @@ func (m *awsRestjson1_serializeOpDescribeKeyRegistration) HandleSerialize(ctx co span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeKeyRegistrationInput(v *DescribeKeyRegistrationInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeGroupMembershipInput(v *DescribeGroupMembershipInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -7573,21 +8081,44 @@ func awsRestjson1_serializeOpHttpBindingsDescribeKeyRegistrationInput(v *Describ } } - if v.DefaultKeyOnly { - encoder.SetQuery("default-key-only").Boolean(v.DefaultKeyOnly) + if v.GroupName == nil || len(*v.GroupName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member GroupName must not be empty")} + } + if v.GroupName != nil { + if err := encoder.SetURI("GroupName").String(*v.GroupName); err != nil { + return err + } + } + + if v.MemberName == nil || len(*v.MemberName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member MemberName must not be empty")} + } + if v.MemberName != nil { + if err := encoder.SetURI("MemberName").String(*v.MemberName); err != nil { + return err + } + } + + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpDescribeNamespace struct { +type awsRestjson1_serializeOpDescribeIAMPolicyAssignment struct { } -func (*awsRestjson1_serializeOpDescribeNamespace) ID() string { +func (*awsRestjson1_serializeOpDescribeIAMPolicyAssignment) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeNamespace) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeIAMPolicyAssignment) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7599,13 +8130,13 @@ func (m *awsRestjson1_serializeOpDescribeNamespace) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeNamespaceInput) + input, ok := in.Parameters.(*DescribeIAMPolicyAssignmentInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/iam-policy-assignments/{AssignmentName}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7621,7 +8152,7 @@ func (m *awsRestjson1_serializeOpDescribeNamespace) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeNamespaceInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeIAMPolicyAssignmentInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7634,11 +8165,20 @@ func (m *awsRestjson1_serializeOpDescribeNamespace) HandleSerialize(ctx context. span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeNamespaceInput(v *DescribeNamespaceInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeIAMPolicyAssignmentInput(v *DescribeIAMPolicyAssignmentInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.AssignmentName == nil || len(*v.AssignmentName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AssignmentName must not be empty")} + } + if v.AssignmentName != nil { + if err := encoder.SetURI("AssignmentName").String(*v.AssignmentName); err != nil { + return err + } + } + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -7660,14 +8200,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeNamespaceInput(v *DescribeNames return nil } -type awsRestjson1_serializeOpDescribeQPersonalizationConfiguration struct { +type awsRestjson1_serializeOpDescribeIngestion struct { } -func (*awsRestjson1_serializeOpDescribeQPersonalizationConfiguration) ID() string { +func (*awsRestjson1_serializeOpDescribeIngestion) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeQPersonalizationConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeIngestion) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7679,13 +8219,13 @@ func (m *awsRestjson1_serializeOpDescribeQPersonalizationConfiguration) HandleSe return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeQPersonalizationConfigurationInput) + input, ok := in.Parameters.(*DescribeIngestionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/q-personalization-configuration") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/ingestions/{IngestionId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7701,7 +8241,7 @@ func (m *awsRestjson1_serializeOpDescribeQPersonalizationConfiguration) HandleSe return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeQPersonalizationConfigurationInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeIngestionInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7714,7 +8254,7 @@ func (m *awsRestjson1_serializeOpDescribeQPersonalizationConfiguration) HandleSe span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeQPersonalizationConfigurationInput(v *DescribeQPersonalizationConfigurationInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeIngestionInput(v *DescribeIngestionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -7728,17 +8268,35 @@ func awsRestjson1_serializeOpHttpBindingsDescribeQPersonalizationConfigurationIn } } + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + } + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + return err + } + } + + if v.IngestionId == nil || len(*v.IngestionId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member IngestionId must not be empty")} + } + if v.IngestionId != nil { + if err := encoder.SetURI("IngestionId").String(*v.IngestionId); err != nil { + return err + } + } + return nil } -type awsRestjson1_serializeOpDescribeRefreshSchedule struct { +type awsRestjson1_serializeOpDescribeIpRestriction struct { } -func (*awsRestjson1_serializeOpDescribeRefreshSchedule) ID() string { +func (*awsRestjson1_serializeOpDescribeIpRestriction) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeRefreshSchedule) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeIpRestriction) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7750,13 +8308,13 @@ func (m *awsRestjson1_serializeOpDescribeRefreshSchedule) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeRefreshScheduleInput) + input, ok := in.Parameters.(*DescribeIpRestrictionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-schedules/{ScheduleId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/ip-restriction") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7772,7 +8330,7 @@ func (m *awsRestjson1_serializeOpDescribeRefreshSchedule) HandleSerialize(ctx co return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeRefreshScheduleInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeIpRestrictionInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7785,7 +8343,7 @@ func (m *awsRestjson1_serializeOpDescribeRefreshSchedule) HandleSerialize(ctx co span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeRefreshScheduleInput(v *DescribeRefreshScheduleInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeIpRestrictionInput(v *DescribeIpRestrictionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -7799,35 +8357,17 @@ func awsRestjson1_serializeOpHttpBindingsDescribeRefreshScheduleInput(v *Describ } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} - } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { - return err - } - } - - if v.ScheduleId == nil || len(*v.ScheduleId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ScheduleId must not be empty")} - } - if v.ScheduleId != nil { - if err := encoder.SetURI("ScheduleId").String(*v.ScheduleId); err != nil { - return err - } - } - return nil } -type awsRestjson1_serializeOpDescribeRoleCustomPermission struct { +type awsRestjson1_serializeOpDescribeKeyRegistration struct { } -func (*awsRestjson1_serializeOpDescribeRoleCustomPermission) ID() string { +func (*awsRestjson1_serializeOpDescribeKeyRegistration) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeRoleCustomPermission) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeKeyRegistration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7839,13 +8379,13 @@ func (m *awsRestjson1_serializeOpDescribeRoleCustomPermission) HandleSerialize(c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeRoleCustomPermissionInput) + input, ok := in.Parameters.(*DescribeKeyRegistrationInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/roles/{Role}/custom-permission") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/key-registration") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7861,7 +8401,7 @@ func (m *awsRestjson1_serializeOpDescribeRoleCustomPermission) HandleSerialize(c return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeRoleCustomPermissionInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeKeyRegistrationInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7874,7 +8414,7 @@ func (m *awsRestjson1_serializeOpDescribeRoleCustomPermission) HandleSerialize(c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeRoleCustomPermissionInput(v *DescribeRoleCustomPermissionInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeKeyRegistrationInput(v *DescribeKeyRegistrationInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -7888,35 +8428,21 @@ func awsRestjson1_serializeOpHttpBindingsDescribeRoleCustomPermissionInput(v *De } } - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} - } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { - return err - } - } - - if len(v.Role) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Role must not be empty")} - } - if len(v.Role) > 0 { - if err := encoder.SetURI("Role").String(string(v.Role)); err != nil { - return err - } + if v.DefaultKeyOnly { + encoder.SetQuery("default-key-only").Boolean(v.DefaultKeyOnly) } return nil } -type awsRestjson1_serializeOpDescribeTemplate struct { +type awsRestjson1_serializeOpDescribeNamespace struct { } -func (*awsRestjson1_serializeOpDescribeTemplate) ID() string { +func (*awsRestjson1_serializeOpDescribeNamespace) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeTemplate) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeNamespace) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -7928,13 +8454,13 @@ func (m *awsRestjson1_serializeOpDescribeTemplate) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeTemplateInput) + input, ok := in.Parameters.(*DescribeNamespaceInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -7950,7 +8476,7 @@ func (m *awsRestjson1_serializeOpDescribeTemplate) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeTemplateInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeNamespaceInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -7963,15 +8489,11 @@ func (m *awsRestjson1_serializeOpDescribeTemplate) HandleSerialize(ctx context.C span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeTemplateInput(v *DescribeTemplateInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeNamespaceInput(v *DescribeNamespaceInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AliasName != nil { - encoder.SetQuery("alias-name").String(*v.AliasName) - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -7981,30 +8503,26 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTemplateInput(v *DescribeTempla } } - if v.TemplateId == nil || len(*v.TemplateId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} } - if v.TemplateId != nil { - if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { return err } } - if v.VersionNumber != nil { - encoder.SetQuery("version-number").Long(*v.VersionNumber) - } - return nil } -type awsRestjson1_serializeOpDescribeTemplateAlias struct { +type awsRestjson1_serializeOpDescribeQPersonalizationConfiguration struct { } -func (*awsRestjson1_serializeOpDescribeTemplateAlias) ID() string { +func (*awsRestjson1_serializeOpDescribeQPersonalizationConfiguration) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeTemplateAlias) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeQPersonalizationConfiguration) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8016,13 +8534,13 @@ func (m *awsRestjson1_serializeOpDescribeTemplateAlias) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeTemplateAliasInput) + input, ok := in.Parameters.(*DescribeQPersonalizationConfigurationInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/aliases/{AliasName}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/q-personalization-configuration") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8038,7 +8556,7 @@ func (m *awsRestjson1_serializeOpDescribeTemplateAlias) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeTemplateAliasInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeQPersonalizationConfigurationInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8051,20 +8569,11 @@ func (m *awsRestjson1_serializeOpDescribeTemplateAlias) HandleSerialize(ctx cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeTemplateAliasInput(v *DescribeTemplateAliasInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeQPersonalizationConfigurationInput(v *DescribeQPersonalizationConfigurationInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AliasName == nil || len(*v.AliasName) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member AliasName must not be empty")} - } - if v.AliasName != nil { - if err := encoder.SetURI("AliasName").String(*v.AliasName); err != nil { - return err - } - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -8074,26 +8583,17 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTemplateAliasInput(v *DescribeT } } - if v.TemplateId == nil || len(*v.TemplateId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} - } - if v.TemplateId != nil { - if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { - return err - } - } - return nil } -type awsRestjson1_serializeOpDescribeTemplateDefinition struct { +type awsRestjson1_serializeOpDescribeRefreshSchedule struct { } -func (*awsRestjson1_serializeOpDescribeTemplateDefinition) ID() string { +func (*awsRestjson1_serializeOpDescribeRefreshSchedule) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeTemplateDefinition) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeRefreshSchedule) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8105,13 +8605,13 @@ func (m *awsRestjson1_serializeOpDescribeTemplateDefinition) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeTemplateDefinitionInput) + input, ok := in.Parameters.(*DescribeRefreshScheduleInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/definition") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-schedules/{ScheduleId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8127,7 +8627,7 @@ func (m *awsRestjson1_serializeOpDescribeTemplateDefinition) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeTemplateDefinitionInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeRefreshScheduleInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8140,15 +8640,11 @@ func (m *awsRestjson1_serializeOpDescribeTemplateDefinition) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeTemplateDefinitionInput(v *DescribeTemplateDefinitionInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeRefreshScheduleInput(v *DescribeRefreshScheduleInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AliasName != nil { - encoder.SetQuery("alias-name").String(*v.AliasName) - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -8158,30 +8654,35 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTemplateDefinitionInput(v *Desc } } - if v.TemplateId == nil || len(*v.TemplateId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} } - if v.TemplateId != nil { - if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { return err } } - if v.VersionNumber != nil { - encoder.SetQuery("version-number").Long(*v.VersionNumber) + if v.ScheduleId == nil || len(*v.ScheduleId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ScheduleId must not be empty")} + } + if v.ScheduleId != nil { + if err := encoder.SetURI("ScheduleId").String(*v.ScheduleId); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpDescribeTemplatePermissions struct { +type awsRestjson1_serializeOpDescribeRoleCustomPermission struct { } -func (*awsRestjson1_serializeOpDescribeTemplatePermissions) ID() string { +func (*awsRestjson1_serializeOpDescribeRoleCustomPermission) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeTemplatePermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeRoleCustomPermission) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8193,13 +8694,13 @@ func (m *awsRestjson1_serializeOpDescribeTemplatePermissions) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeTemplatePermissionsInput) + input, ok := in.Parameters.(*DescribeRoleCustomPermissionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/permissions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/roles/{Role}/custom-permission") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8215,7 +8716,7 @@ func (m *awsRestjson1_serializeOpDescribeTemplatePermissions) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeTemplatePermissionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeRoleCustomPermissionInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8228,7 +8729,7 @@ func (m *awsRestjson1_serializeOpDescribeTemplatePermissions) HandleSerialize(ct span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeTemplatePermissionsInput(v *DescribeTemplatePermissionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeRoleCustomPermissionInput(v *DescribeRoleCustomPermissionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -8242,11 +8743,20 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTemplatePermissionsInput(v *Des } } - if v.TemplateId == nil || len(*v.TemplateId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} } - if v.TemplateId != nil { - if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } + } + + if len(v.Role) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Role must not be empty")} + } + if len(v.Role) > 0 { + if err := encoder.SetURI("Role").String(string(v.Role)); err != nil { return err } } @@ -8254,14 +8764,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTemplatePermissionsInput(v *Des return nil } -type awsRestjson1_serializeOpDescribeTheme struct { +type awsRestjson1_serializeOpDescribeTemplate struct { } -func (*awsRestjson1_serializeOpDescribeTheme) ID() string { +func (*awsRestjson1_serializeOpDescribeTemplate) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeTheme) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeTemplate) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8273,13 +8783,13 @@ func (m *awsRestjson1_serializeOpDescribeTheme) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeThemeInput) + input, ok := in.Parameters.(*DescribeTemplateInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8295,7 +8805,7 @@ func (m *awsRestjson1_serializeOpDescribeTheme) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeThemeInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeTemplateInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8308,7 +8818,7 @@ func (m *awsRestjson1_serializeOpDescribeTheme) HandleSerialize(ctx context.Cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeThemeInput(v *DescribeThemeInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeTemplateInput(v *DescribeTemplateInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -8326,11 +8836,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeThemeInput(v *DescribeThemeInpu } } - if v.ThemeId == nil || len(*v.ThemeId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} + if v.TemplateId == nil || len(*v.TemplateId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} } - if v.ThemeId != nil { - if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { + if v.TemplateId != nil { + if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { return err } } @@ -8342,14 +8852,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeThemeInput(v *DescribeThemeInpu return nil } -type awsRestjson1_serializeOpDescribeThemeAlias struct { +type awsRestjson1_serializeOpDescribeTemplateAlias struct { } -func (*awsRestjson1_serializeOpDescribeThemeAlias) ID() string { +func (*awsRestjson1_serializeOpDescribeTemplateAlias) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeThemeAlias) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeTemplateAlias) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8361,13 +8871,13 @@ func (m *awsRestjson1_serializeOpDescribeThemeAlias) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeThemeAliasInput) + input, ok := in.Parameters.(*DescribeTemplateAliasInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}/aliases/{AliasName}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/aliases/{AliasName}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8383,7 +8893,7 @@ func (m *awsRestjson1_serializeOpDescribeThemeAlias) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeThemeAliasInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeTemplateAliasInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8396,7 +8906,7 @@ func (m *awsRestjson1_serializeOpDescribeThemeAlias) HandleSerialize(ctx context span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeThemeAliasInput(v *DescribeThemeAliasInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeTemplateAliasInput(v *DescribeTemplateAliasInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -8419,11 +8929,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeThemeAliasInput(v *DescribeThem } } - if v.ThemeId == nil || len(*v.ThemeId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} + if v.TemplateId == nil || len(*v.TemplateId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} } - if v.ThemeId != nil { - if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { + if v.TemplateId != nil { + if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { return err } } @@ -8431,14 +8941,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeThemeAliasInput(v *DescribeThem return nil } -type awsRestjson1_serializeOpDescribeThemePermissions struct { +type awsRestjson1_serializeOpDescribeTemplateDefinition struct { } -func (*awsRestjson1_serializeOpDescribeThemePermissions) ID() string { +func (*awsRestjson1_serializeOpDescribeTemplateDefinition) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeThemePermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeTemplateDefinition) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8450,13 +8960,13 @@ func (m *awsRestjson1_serializeOpDescribeThemePermissions) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeThemePermissionsInput) + input, ok := in.Parameters.(*DescribeTemplateDefinitionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}/permissions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/definition") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8472,7 +8982,7 @@ func (m *awsRestjson1_serializeOpDescribeThemePermissions) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeThemePermissionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeTemplateDefinitionInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8485,11 +8995,15 @@ func (m *awsRestjson1_serializeOpDescribeThemePermissions) HandleSerialize(ctx c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeThemePermissionsInput(v *DescribeThemePermissionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeTemplateDefinitionInput(v *DescribeTemplateDefinitionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.AliasName != nil { + encoder.SetQuery("alias-name").String(*v.AliasName) + } + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -8499,26 +9013,30 @@ func awsRestjson1_serializeOpHttpBindingsDescribeThemePermissionsInput(v *Descri } } - if v.ThemeId == nil || len(*v.ThemeId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} + if v.TemplateId == nil || len(*v.TemplateId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} } - if v.ThemeId != nil { - if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { + if v.TemplateId != nil { + if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { return err } } + if v.VersionNumber != nil { + encoder.SetQuery("version-number").Long(*v.VersionNumber) + } + return nil } -type awsRestjson1_serializeOpDescribeTopic struct { +type awsRestjson1_serializeOpDescribeTemplatePermissions struct { } -func (*awsRestjson1_serializeOpDescribeTopic) ID() string { +func (*awsRestjson1_serializeOpDescribeTemplatePermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeTopic) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeTemplatePermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8530,13 +9048,13 @@ func (m *awsRestjson1_serializeOpDescribeTopic) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeTopicInput) + input, ok := in.Parameters.(*DescribeTemplatePermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8552,7 +9070,7 @@ func (m *awsRestjson1_serializeOpDescribeTopic) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeTopicInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeTemplatePermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8565,7 +9083,7 @@ func (m *awsRestjson1_serializeOpDescribeTopic) HandleSerialize(ctx context.Cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeTopicInput(v *DescribeTopicInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeTemplatePermissionsInput(v *DescribeTemplatePermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -8579,11 +9097,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTopicInput(v *DescribeTopicInpu } } - if v.TopicId == nil || len(*v.TopicId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} + if v.TemplateId == nil || len(*v.TemplateId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} } - if v.TopicId != nil { - if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { + if v.TemplateId != nil { + if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { return err } } @@ -8591,14 +9109,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTopicInput(v *DescribeTopicInpu return nil } -type awsRestjson1_serializeOpDescribeTopicPermissions struct { +type awsRestjson1_serializeOpDescribeTheme struct { } -func (*awsRestjson1_serializeOpDescribeTopicPermissions) ID() string { +func (*awsRestjson1_serializeOpDescribeTheme) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeTopicPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeTheme) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8610,13 +9128,13 @@ func (m *awsRestjson1_serializeOpDescribeTopicPermissions) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeTopicPermissionsInput) + input, ok := in.Parameters.(*DescribeThemeInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/permissions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8632,7 +9150,7 @@ func (m *awsRestjson1_serializeOpDescribeTopicPermissions) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeTopicPermissionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeThemeInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8645,11 +9163,15 @@ func (m *awsRestjson1_serializeOpDescribeTopicPermissions) HandleSerialize(ctx c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeTopicPermissionsInput(v *DescribeTopicPermissionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeThemeInput(v *DescribeThemeInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.AliasName != nil { + encoder.SetQuery("alias-name").String(*v.AliasName) + } + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -8659,26 +9181,30 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTopicPermissionsInput(v *Descri } } - if v.TopicId == nil || len(*v.TopicId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} + if v.ThemeId == nil || len(*v.ThemeId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} } - if v.TopicId != nil { - if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { + if v.ThemeId != nil { + if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { return err } } + if v.VersionNumber != nil { + encoder.SetQuery("version-number").Long(*v.VersionNumber) + } + return nil } -type awsRestjson1_serializeOpDescribeTopicRefresh struct { +type awsRestjson1_serializeOpDescribeThemeAlias struct { } -func (*awsRestjson1_serializeOpDescribeTopicRefresh) ID() string { +func (*awsRestjson1_serializeOpDescribeThemeAlias) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeTopicRefresh) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeThemeAlias) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8690,13 +9216,13 @@ func (m *awsRestjson1_serializeOpDescribeTopicRefresh) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeTopicRefreshInput) + input, ok := in.Parameters.(*DescribeThemeAliasInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/refresh/{RefreshId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}/aliases/{AliasName}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8712,7 +9238,7 @@ func (m *awsRestjson1_serializeOpDescribeTopicRefresh) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeThemeAliasInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8725,34 +9251,34 @@ func (m *awsRestjson1_serializeOpDescribeTopicRefresh) HandleSerialize(ctx conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshInput(v *DescribeTopicRefreshInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeThemeAliasInput(v *DescribeThemeAliasInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + if v.AliasName == nil || len(*v.AliasName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AliasName must not be empty")} } - if v.AwsAccountId != nil { - if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + if v.AliasName != nil { + if err := encoder.SetURI("AliasName").String(*v.AliasName); err != nil { return err } } - if v.RefreshId == nil || len(*v.RefreshId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member RefreshId must not be empty")} + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } - if v.RefreshId != nil { - if err := encoder.SetURI("RefreshId").String(*v.RefreshId); err != nil { + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { return err } } - if v.TopicId == nil || len(*v.TopicId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} + if v.ThemeId == nil || len(*v.ThemeId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} } - if v.TopicId != nil { - if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { + if v.ThemeId != nil { + if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { return err } } @@ -8760,14 +9286,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshInput(v *DescribeTo return nil } -type awsRestjson1_serializeOpDescribeTopicRefreshSchedule struct { +type awsRestjson1_serializeOpDescribeThemePermissions struct { } -func (*awsRestjson1_serializeOpDescribeTopicRefreshSchedule) ID() string { +func (*awsRestjson1_serializeOpDescribeThemePermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeTopicRefreshSchedule) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeThemePermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8779,13 +9305,13 @@ func (m *awsRestjson1_serializeOpDescribeTopicRefreshSchedule) HandleSerialize(c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeTopicRefreshScheduleInput) + input, ok := in.Parameters.(*DescribeThemePermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/schedules/{DatasetId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}/permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8801,7 +9327,7 @@ func (m *awsRestjson1_serializeOpDescribeTopicRefreshSchedule) HandleSerialize(c return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshScheduleInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeThemePermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8814,7 +9340,7 @@ func (m *awsRestjson1_serializeOpDescribeTopicRefreshSchedule) HandleSerialize(c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshScheduleInput(v *DescribeTopicRefreshScheduleInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeThemePermissionsInput(v *DescribeThemePermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -8828,20 +9354,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshScheduleInput(v *De } } - if v.DatasetId == nil || len(*v.DatasetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DatasetId must not be empty")} - } - if v.DatasetId != nil { - if err := encoder.SetURI("DatasetId").String(*v.DatasetId); err != nil { - return err - } - } - - if v.TopicId == nil || len(*v.TopicId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} + if v.ThemeId == nil || len(*v.ThemeId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} } - if v.TopicId != nil { - if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { + if v.ThemeId != nil { + if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { return err } } @@ -8849,14 +9366,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshScheduleInput(v *De return nil } -type awsRestjson1_serializeOpDescribeUser struct { +type awsRestjson1_serializeOpDescribeTopic struct { } -func (*awsRestjson1_serializeOpDescribeUser) ID() string { +func (*awsRestjson1_serializeOpDescribeTopic) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeTopic) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8868,13 +9385,13 @@ func (m *awsRestjson1_serializeOpDescribeUser) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeUserInput) + input, ok := in.Parameters.(*DescribeTopicInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8890,7 +9407,7 @@ func (m *awsRestjson1_serializeOpDescribeUser) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeUserInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeTopicInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8903,7 +9420,7 @@ func (m *awsRestjson1_serializeOpDescribeUser) HandleSerialize(ctx context.Conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeUserInput(v *DescribeUserInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeTopicInput(v *DescribeTopicInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -8917,20 +9434,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeUserInput(v *DescribeUserInput, } } - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} - } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { - return err - } - } - - if v.UserName == nil || len(*v.UserName) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member UserName must not be empty")} + if v.TopicId == nil || len(*v.TopicId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} } - if v.UserName != nil { - if err := encoder.SetURI("UserName").String(*v.UserName); err != nil { + if v.TopicId != nil { + if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { return err } } @@ -8938,14 +9446,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeUserInput(v *DescribeUserInput, return nil } -type awsRestjson1_serializeOpDescribeVPCConnection struct { +type awsRestjson1_serializeOpDescribeTopicPermissions struct { } -func (*awsRestjson1_serializeOpDescribeVPCConnection) ID() string { +func (*awsRestjson1_serializeOpDescribeTopicPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDescribeVPCConnection) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeTopicPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -8957,13 +9465,13 @@ func (m *awsRestjson1_serializeOpDescribeVPCConnection) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DescribeVPCConnectionInput) + input, ok := in.Parameters.(*DescribeTopicPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/vpc-connections/{VPCConnectionId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -8979,7 +9487,7 @@ func (m *awsRestjson1_serializeOpDescribeVPCConnection) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsDescribeVPCConnectionInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeTopicPermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -8992,7 +9500,7 @@ func (m *awsRestjson1_serializeOpDescribeVPCConnection) HandleSerialize(ctx cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDescribeVPCConnectionInput(v *DescribeVPCConnectionInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeTopicPermissionsInput(v *DescribeTopicPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -9006,11 +9514,11 @@ func awsRestjson1_serializeOpHttpBindingsDescribeVPCConnectionInput(v *DescribeV } } - if v.VPCConnectionId == nil || len(*v.VPCConnectionId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member VPCConnectionId must not be empty")} + if v.TopicId == nil || len(*v.TopicId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} } - if v.VPCConnectionId != nil { - if err := encoder.SetURI("VPCConnectionId").String(*v.VPCConnectionId); err != nil { + if v.TopicId != nil { + if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { return err } } @@ -9018,14 +9526,14 @@ func awsRestjson1_serializeOpHttpBindingsDescribeVPCConnectionInput(v *DescribeV return nil } -type awsRestjson1_serializeOpGenerateEmbedUrlForAnonymousUser struct { +type awsRestjson1_serializeOpDescribeTopicRefresh struct { } -func (*awsRestjson1_serializeOpGenerateEmbedUrlForAnonymousUser) ID() string { +func (*awsRestjson1_serializeOpDescribeTopicRefresh) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGenerateEmbedUrlForAnonymousUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeTopicRefresh) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9037,16 +9545,16 @@ func (m *awsRestjson1_serializeOpGenerateEmbedUrlForAnonymousUser) HandleSeriali return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GenerateEmbedUrlForAnonymousUserInput) + input, ok := in.Parameters.(*DescribeTopicRefreshInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/embed-url/anonymous-user") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/refresh/{RefreshId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -9059,18 +9567,7 @@ func (m *awsRestjson1_serializeOpGenerateEmbedUrlForAnonymousUser) HandleSeriali return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserInput(input, restEncoder); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentGenerateEmbedUrlForAnonymousUserInput(input, jsonEncoder.Value); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -9083,7 +9580,7 @@ func (m *awsRestjson1_serializeOpGenerateEmbedUrlForAnonymousUser) HandleSeriali span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserInput(v *GenerateEmbedUrlForAnonymousUserInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshInput(v *DescribeTopicRefreshInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -9097,47 +9594,20 @@ func awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserInput(v } } - return nil -} - -func awsRestjson1_serializeOpDocumentGenerateEmbedUrlForAnonymousUserInput(v *GenerateEmbedUrlForAnonymousUserInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.AllowedDomains != nil { - ok := object.Key("AllowedDomains") - if err := awsRestjson1_serializeDocumentStringList(v.AllowedDomains, ok); err != nil { - return err - } - } - - if v.AuthorizedResourceArns != nil { - ok := object.Key("AuthorizedResourceArns") - if err := awsRestjson1_serializeDocumentArnList(v.AuthorizedResourceArns, ok); err != nil { - return err - } + if v.RefreshId == nil || len(*v.RefreshId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member RefreshId must not be empty")} } - - if v.ExperienceConfiguration != nil { - ok := object.Key("ExperienceConfiguration") - if err := awsRestjson1_serializeDocumentAnonymousUserEmbeddingExperienceConfiguration(v.ExperienceConfiguration, ok); err != nil { + if v.RefreshId != nil { + if err := encoder.SetURI("RefreshId").String(*v.RefreshId); err != nil { return err } } - if v.Namespace != nil { - ok := object.Key("Namespace") - ok.String(*v.Namespace) - } - - if v.SessionLifetimeInMinutes != nil { - ok := object.Key("SessionLifetimeInMinutes") - ok.Long(*v.SessionLifetimeInMinutes) + if v.TopicId == nil || len(*v.TopicId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} } - - if v.SessionTags != nil { - ok := object.Key("SessionTags") - if err := awsRestjson1_serializeDocumentSessionTagList(v.SessionTags, ok); err != nil { + if v.TopicId != nil { + if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { return err } } @@ -9145,14 +9615,14 @@ func awsRestjson1_serializeOpDocumentGenerateEmbedUrlForAnonymousUserInput(v *Ge return nil } -type awsRestjson1_serializeOpGenerateEmbedUrlForRegisteredUser struct { +type awsRestjson1_serializeOpDescribeTopicRefreshSchedule struct { } -func (*awsRestjson1_serializeOpGenerateEmbedUrlForRegisteredUser) ID() string { +func (*awsRestjson1_serializeOpDescribeTopicRefreshSchedule) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGenerateEmbedUrlForRegisteredUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeTopicRefreshSchedule) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9164,16 +9634,16 @@ func (m *awsRestjson1_serializeOpGenerateEmbedUrlForRegisteredUser) HandleSerial return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GenerateEmbedUrlForRegisteredUserInput) + input, ok := in.Parameters.(*DescribeTopicRefreshScheduleInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/embed-url/registered-user") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/schedules/{DatasetId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -9186,18 +9656,7 @@ func (m *awsRestjson1_serializeOpGenerateEmbedUrlForRegisteredUser) HandleSerial return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForRegisteredUserInput(input, restEncoder); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentGenerateEmbedUrlForRegisteredUserInput(input, jsonEncoder.Value); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshScheduleInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -9210,7 +9669,7 @@ func (m *awsRestjson1_serializeOpGenerateEmbedUrlForRegisteredUser) HandleSerial span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForRegisteredUserInput(v *GenerateEmbedUrlForRegisteredUserInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeTopicRefreshScheduleInput(v *DescribeTopicRefreshScheduleInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -9224,48 +9683,35 @@ func awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForRegisteredUserInput( } } - return nil -} - -func awsRestjson1_serializeOpDocumentGenerateEmbedUrlForRegisteredUserInput(v *GenerateEmbedUrlForRegisteredUserInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.AllowedDomains != nil { - ok := object.Key("AllowedDomains") - if err := awsRestjson1_serializeDocumentStringList(v.AllowedDomains, ok); err != nil { - return err - } + if v.DatasetId == nil || len(*v.DatasetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DatasetId must not be empty")} } - - if v.ExperienceConfiguration != nil { - ok := object.Key("ExperienceConfiguration") - if err := awsRestjson1_serializeDocumentRegisteredUserEmbeddingExperienceConfiguration(v.ExperienceConfiguration, ok); err != nil { + if v.DatasetId != nil { + if err := encoder.SetURI("DatasetId").String(*v.DatasetId); err != nil { return err } } - if v.SessionLifetimeInMinutes != nil { - ok := object.Key("SessionLifetimeInMinutes") - ok.Long(*v.SessionLifetimeInMinutes) + if v.TopicId == nil || len(*v.TopicId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} } - - if v.UserArn != nil { - ok := object.Key("UserArn") - ok.String(*v.UserArn) + if v.TopicId != nil { + if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpGetDashboardEmbedUrl struct { +type awsRestjson1_serializeOpDescribeUser struct { } -func (*awsRestjson1_serializeOpGetDashboardEmbedUrl) ID() string { +func (*awsRestjson1_serializeOpDescribeUser) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGetDashboardEmbedUrl) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9277,13 +9723,13 @@ func (m *awsRestjson1_serializeOpGetDashboardEmbedUrl) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetDashboardEmbedUrlInput) + input, ok := in.Parameters.(*DescribeUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/embed-url") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -9299,7 +9745,7 @@ func (m *awsRestjson1_serializeOpGetDashboardEmbedUrl) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsGetDashboardEmbedUrlInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeUserInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -9312,17 +9758,11 @@ func (m *awsRestjson1_serializeOpGetDashboardEmbedUrl) HandleSerialize(ctx conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGetDashboardEmbedUrlInput(v *GetDashboardEmbedUrlInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeUserInput(v *DescribeUserInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AdditionalDashboardIds != nil { - for i := range v.AdditionalDashboardIds { - encoder.AddQuery("additional-dashboard-ids").String(v.AdditionalDashboardIds[i]) - } - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -9332,54 +9772,35 @@ func awsRestjson1_serializeOpHttpBindingsGetDashboardEmbedUrlInput(v *GetDashboa } } - if v.DashboardId == nil || len(*v.DashboardId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} } - if v.DashboardId != nil { - if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { return err } } - if len(v.IdentityType) > 0 { - encoder.SetQuery("creds-type").String(string(v.IdentityType)) - } - - if v.Namespace != nil { - encoder.SetQuery("namespace").String(*v.Namespace) - } - - if v.ResetDisabled { - encoder.SetQuery("reset-disabled").Boolean(v.ResetDisabled) - } - - if v.SessionLifetimeInMinutes != nil { - encoder.SetQuery("session-lifetime").Long(*v.SessionLifetimeInMinutes) - } - - if v.StatePersistenceEnabled { - encoder.SetQuery("state-persistence-enabled").Boolean(v.StatePersistenceEnabled) - } - - if v.UndoRedoDisabled { - encoder.SetQuery("undo-redo-disabled").Boolean(v.UndoRedoDisabled) + if v.UserName == nil || len(*v.UserName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member UserName must not be empty")} } - - if v.UserArn != nil { - encoder.SetQuery("user-arn").String(*v.UserArn) + if v.UserName != nil { + if err := encoder.SetURI("UserName").String(*v.UserName); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpGetSessionEmbedUrl struct { +type awsRestjson1_serializeOpDescribeVPCConnection struct { } -func (*awsRestjson1_serializeOpGetSessionEmbedUrl) ID() string { +func (*awsRestjson1_serializeOpDescribeVPCConnection) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGetSessionEmbedUrl) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDescribeVPCConnection) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9391,13 +9812,13 @@ func (m *awsRestjson1_serializeOpGetSessionEmbedUrl) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetSessionEmbedUrlInput) + input, ok := in.Parameters.(*DescribeVPCConnectionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/session-embed-url") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/vpc-connections/{VPCConnectionId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -9413,7 +9834,7 @@ func (m *awsRestjson1_serializeOpGetSessionEmbedUrl) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsGetSessionEmbedUrlInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDescribeVPCConnectionInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -9426,7 +9847,7 @@ func (m *awsRestjson1_serializeOpGetSessionEmbedUrl) HandleSerialize(ctx context span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGetSessionEmbedUrlInput(v *GetSessionEmbedUrlInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDescribeVPCConnectionInput(v *DescribeVPCConnectionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -9440,29 +9861,26 @@ func awsRestjson1_serializeOpHttpBindingsGetSessionEmbedUrlInput(v *GetSessionEm } } - if v.EntryPoint != nil { - encoder.SetQuery("entry-point").String(*v.EntryPoint) - } - - if v.SessionLifetimeInMinutes != nil { - encoder.SetQuery("session-lifetime").Long(*v.SessionLifetimeInMinutes) + if v.VPCConnectionId == nil || len(*v.VPCConnectionId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member VPCConnectionId must not be empty")} } - - if v.UserArn != nil { - encoder.SetQuery("user-arn").String(*v.UserArn) + if v.VPCConnectionId != nil { + if err := encoder.SetURI("VPCConnectionId").String(*v.VPCConnectionId); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpListAnalyses struct { +type awsRestjson1_serializeOpGenerateEmbedUrlForAnonymousUser struct { } -func (*awsRestjson1_serializeOpListAnalyses) ID() string { +func (*awsRestjson1_serializeOpGenerateEmbedUrlForAnonymousUser) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListAnalyses) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpGenerateEmbedUrlForAnonymousUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9474,16 +9892,16 @@ func (m *awsRestjson1_serializeOpListAnalyses) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListAnalysesInput) + input, ok := in.Parameters.(*GenerateEmbedUrlForAnonymousUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/analyses") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/embed-url/anonymous-user") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "GET" + request.Method = "POST" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -9496,7 +9914,18 @@ func (m *awsRestjson1_serializeOpListAnalyses) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListAnalysesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentGenerateEmbedUrlForAnonymousUserInput(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} } @@ -9509,7 +9938,7 @@ func (m *awsRestjson1_serializeOpListAnalyses) HandleSerialize(ctx context.Conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListAnalysesInput(v *ListAnalysesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForAnonymousUserInput(v *GenerateEmbedUrlForAnonymousUserInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -9523,25 +9952,62 @@ func awsRestjson1_serializeOpHttpBindingsListAnalysesInput(v *ListAnalysesInput, } } - if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) + return nil +} + +func awsRestjson1_serializeOpDocumentGenerateEmbedUrlForAnonymousUserInput(v *GenerateEmbedUrlForAnonymousUserInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AllowedDomains != nil { + ok := object.Key("AllowedDomains") + if err := awsRestjson1_serializeDocumentStringList(v.AllowedDomains, ok); err != nil { + return err + } } - if v.NextToken != nil { - encoder.SetQuery("next-token").String(*v.NextToken) + if v.AuthorizedResourceArns != nil { + ok := object.Key("AuthorizedResourceArns") + if err := awsRestjson1_serializeDocumentArnList(v.AuthorizedResourceArns, ok); err != nil { + return err + } + } + + if v.ExperienceConfiguration != nil { + ok := object.Key("ExperienceConfiguration") + if err := awsRestjson1_serializeDocumentAnonymousUserEmbeddingExperienceConfiguration(v.ExperienceConfiguration, ok); err != nil { + return err + } + } + + if v.Namespace != nil { + ok := object.Key("Namespace") + ok.String(*v.Namespace) + } + + if v.SessionLifetimeInMinutes != nil { + ok := object.Key("SessionLifetimeInMinutes") + ok.Long(*v.SessionLifetimeInMinutes) + } + + if v.SessionTags != nil { + ok := object.Key("SessionTags") + if err := awsRestjson1_serializeDocumentSessionTagList(v.SessionTags, ok); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpListAssetBundleExportJobs struct { +type awsRestjson1_serializeOpGenerateEmbedUrlForRegisteredUser struct { } -func (*awsRestjson1_serializeOpListAssetBundleExportJobs) ID() string { +func (*awsRestjson1_serializeOpGenerateEmbedUrlForRegisteredUser) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListAssetBundleExportJobs) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpGenerateEmbedUrlForRegisteredUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9553,16 +10019,16 @@ func (m *awsRestjson1_serializeOpListAssetBundleExportJobs) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListAssetBundleExportJobsInput) + input, ok := in.Parameters.(*GenerateEmbedUrlForRegisteredUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/asset-bundle-export-jobs") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/embed-url/registered-user") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "GET" + request.Method = "POST" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -9575,7 +10041,18 @@ func (m *awsRestjson1_serializeOpListAssetBundleExportJobs) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListAssetBundleExportJobsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForRegisteredUserInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentGenerateEmbedUrlForRegisteredUserInput(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} } @@ -9588,7 +10065,7 @@ func (m *awsRestjson1_serializeOpListAssetBundleExportJobs) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListAssetBundleExportJobsInput(v *ListAssetBundleExportJobsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsGenerateEmbedUrlForRegisteredUserInput(v *GenerateEmbedUrlForRegisteredUserInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -9602,25 +10079,48 @@ func awsRestjson1_serializeOpHttpBindingsListAssetBundleExportJobsInput(v *ListA } } - if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) + return nil +} + +func awsRestjson1_serializeOpDocumentGenerateEmbedUrlForRegisteredUserInput(v *GenerateEmbedUrlForRegisteredUserInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AllowedDomains != nil { + ok := object.Key("AllowedDomains") + if err := awsRestjson1_serializeDocumentStringList(v.AllowedDomains, ok); err != nil { + return err + } } - if v.NextToken != nil { - encoder.SetQuery("next-token").String(*v.NextToken) + if v.ExperienceConfiguration != nil { + ok := object.Key("ExperienceConfiguration") + if err := awsRestjson1_serializeDocumentRegisteredUserEmbeddingExperienceConfiguration(v.ExperienceConfiguration, ok); err != nil { + return err + } + } + + if v.SessionLifetimeInMinutes != nil { + ok := object.Key("SessionLifetimeInMinutes") + ok.Long(*v.SessionLifetimeInMinutes) + } + + if v.UserArn != nil { + ok := object.Key("UserArn") + ok.String(*v.UserArn) } return nil } -type awsRestjson1_serializeOpListAssetBundleImportJobs struct { +type awsRestjson1_serializeOpGetDashboardEmbedUrl struct { } -func (*awsRestjson1_serializeOpListAssetBundleImportJobs) ID() string { +func (*awsRestjson1_serializeOpGetDashboardEmbedUrl) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListAssetBundleImportJobs) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpGetDashboardEmbedUrl) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9632,13 +10132,13 @@ func (m *awsRestjson1_serializeOpListAssetBundleImportJobs) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListAssetBundleImportJobsInput) + input, ok := in.Parameters.(*GetDashboardEmbedUrlInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/asset-bundle-import-jobs") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/embed-url") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -9654,7 +10154,7 @@ func (m *awsRestjson1_serializeOpListAssetBundleImportJobs) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListAssetBundleImportJobsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsGetDashboardEmbedUrlInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -9667,11 +10167,17 @@ func (m *awsRestjson1_serializeOpListAssetBundleImportJobs) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListAssetBundleImportJobsInput(v *ListAssetBundleImportJobsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsGetDashboardEmbedUrlInput(v *GetDashboardEmbedUrlInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.AdditionalDashboardIds != nil { + for i := range v.AdditionalDashboardIds { + encoder.AddQuery("additional-dashboard-ids").String(v.AdditionalDashboardIds[i]) + } + } + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -9681,27 +10187,56 @@ func awsRestjson1_serializeOpHttpBindingsListAssetBundleImportJobsInput(v *ListA } } - if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) + if v.DashboardId == nil || len(*v.DashboardId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} + } + if v.DashboardId != nil { + if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + return err + } } - if v.NextToken != nil { - encoder.SetQuery("next-token").String(*v.NextToken) + if len(v.IdentityType) > 0 { + encoder.SetQuery("creds-type").String(string(v.IdentityType)) } - return nil -} + if v.Namespace != nil { + encoder.SetQuery("namespace").String(*v.Namespace) + } -type awsRestjson1_serializeOpListDashboards struct { -} + if v.ResetDisabled { + encoder.SetQuery("reset-disabled").Boolean(v.ResetDisabled) + } -func (*awsRestjson1_serializeOpListDashboards) ID() string { - return "OperationSerializer" -} + if v.SessionLifetimeInMinutes != nil { + encoder.SetQuery("session-lifetime").Long(*v.SessionLifetimeInMinutes) + } -func (m *awsRestjson1_serializeOpListDashboards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( - out middleware.SerializeOutput, metadata middleware.Metadata, err error, -) { + if v.StatePersistenceEnabled { + encoder.SetQuery("state-persistence-enabled").Boolean(v.StatePersistenceEnabled) + } + + if v.UndoRedoDisabled { + encoder.SetQuery("undo-redo-disabled").Boolean(v.UndoRedoDisabled) + } + + if v.UserArn != nil { + encoder.SetQuery("user-arn").String(*v.UserArn) + } + + return nil +} + +type awsRestjson1_serializeOpGetSessionEmbedUrl struct { +} + +func (*awsRestjson1_serializeOpGetSessionEmbedUrl) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetSessionEmbedUrl) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { _, span := tracing.StartSpan(ctx, "OperationSerializer") endTimer := startMetricTimer(ctx, "client.call.serialization_duration") defer endTimer() @@ -9711,13 +10246,13 @@ func (m *awsRestjson1_serializeOpListDashboards) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListDashboardsInput) + input, ok := in.Parameters.(*GetSessionEmbedUrlInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/session-embed-url") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -9733,7 +10268,7 @@ func (m *awsRestjson1_serializeOpListDashboards) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListDashboardsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsGetSessionEmbedUrlInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -9746,7 +10281,7 @@ func (m *awsRestjson1_serializeOpListDashboards) HandleSerialize(ctx context.Con span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListDashboardsInput(v *ListDashboardsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsGetSessionEmbedUrlInput(v *GetSessionEmbedUrlInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -9760,25 +10295,29 @@ func awsRestjson1_serializeOpHttpBindingsListDashboardsInput(v *ListDashboardsIn } } - if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) + if v.EntryPoint != nil { + encoder.SetQuery("entry-point").String(*v.EntryPoint) } - if v.NextToken != nil { - encoder.SetQuery("next-token").String(*v.NextToken) + if v.SessionLifetimeInMinutes != nil { + encoder.SetQuery("session-lifetime").Long(*v.SessionLifetimeInMinutes) + } + + if v.UserArn != nil { + encoder.SetQuery("user-arn").String(*v.UserArn) } return nil } -type awsRestjson1_serializeOpListDashboardVersions struct { +type awsRestjson1_serializeOpListAnalyses struct { } -func (*awsRestjson1_serializeOpListDashboardVersions) ID() string { +func (*awsRestjson1_serializeOpListAnalyses) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListDashboardVersions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListAnalyses) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9790,13 +10329,13 @@ func (m *awsRestjson1_serializeOpListDashboardVersions) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListDashboardVersionsInput) + input, ok := in.Parameters.(*ListAnalysesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/versions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/analyses") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -9812,7 +10351,7 @@ func (m *awsRestjson1_serializeOpListDashboardVersions) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListDashboardVersionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListAnalysesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -9825,7 +10364,7 @@ func (m *awsRestjson1_serializeOpListDashboardVersions) HandleSerialize(ctx cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListDashboardVersionsInput(v *ListDashboardVersionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListAnalysesInput(v *ListAnalysesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -9839,15 +10378,6 @@ func awsRestjson1_serializeOpHttpBindingsListDashboardVersionsInput(v *ListDashb } } - if v.DashboardId == nil || len(*v.DashboardId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} - } - if v.DashboardId != nil { - if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { - return err - } - } - if v.MaxResults != nil { encoder.SetQuery("max-results").Integer(*v.MaxResults) } @@ -9859,14 +10389,14 @@ func awsRestjson1_serializeOpHttpBindingsListDashboardVersionsInput(v *ListDashb return nil } -type awsRestjson1_serializeOpListDataSets struct { +type awsRestjson1_serializeOpListAssetBundleExportJobs struct { } -func (*awsRestjson1_serializeOpListDataSets) ID() string { +func (*awsRestjson1_serializeOpListAssetBundleExportJobs) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListDataSets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListAssetBundleExportJobs) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9878,13 +10408,13 @@ func (m *awsRestjson1_serializeOpListDataSets) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListDataSetsInput) + input, ok := in.Parameters.(*ListAssetBundleExportJobsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/asset-bundle-export-jobs") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -9900,7 +10430,7 @@ func (m *awsRestjson1_serializeOpListDataSets) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListDataSetsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListAssetBundleExportJobsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -9913,7 +10443,7 @@ func (m *awsRestjson1_serializeOpListDataSets) HandleSerialize(ctx context.Conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListDataSetsInput(v *ListDataSetsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListAssetBundleExportJobsInput(v *ListAssetBundleExportJobsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -9938,14 +10468,14 @@ func awsRestjson1_serializeOpHttpBindingsListDataSetsInput(v *ListDataSetsInput, return nil } -type awsRestjson1_serializeOpListDataSources struct { +type awsRestjson1_serializeOpListAssetBundleImportJobs struct { } -func (*awsRestjson1_serializeOpListDataSources) ID() string { +func (*awsRestjson1_serializeOpListAssetBundleImportJobs) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListDataSources) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListAssetBundleImportJobs) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -9957,13 +10487,13 @@ func (m *awsRestjson1_serializeOpListDataSources) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListDataSourcesInput) + input, ok := in.Parameters.(*ListAssetBundleImportJobsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sources") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/asset-bundle-import-jobs") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -9979,7 +10509,7 @@ func (m *awsRestjson1_serializeOpListDataSources) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListDataSourcesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListAssetBundleImportJobsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -9992,7 +10522,7 @@ func (m *awsRestjson1_serializeOpListDataSources) HandleSerialize(ctx context.Co span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListDataSourcesInput(v *ListDataSourcesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListAssetBundleImportJobsInput(v *ListAssetBundleImportJobsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10017,14 +10547,14 @@ func awsRestjson1_serializeOpHttpBindingsListDataSourcesInput(v *ListDataSources return nil } -type awsRestjson1_serializeOpListFolderMembers struct { +type awsRestjson1_serializeOpListBrands struct { } -func (*awsRestjson1_serializeOpListFolderMembers) ID() string { +func (*awsRestjson1_serializeOpListBrands) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListFolderMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListBrands) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10036,13 +10566,13 @@ func (m *awsRestjson1_serializeOpListFolderMembers) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListFolderMembersInput) + input, ok := in.Parameters.(*ListBrandsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders/{FolderId}/members") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brands") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10058,7 +10588,7 @@ func (m *awsRestjson1_serializeOpListFolderMembers) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListFolderMembersInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListBrandsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10071,7 +10601,7 @@ func (m *awsRestjson1_serializeOpListFolderMembers) HandleSerialize(ctx context. span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListFolderMembersInput(v *ListFolderMembersInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListBrandsInput(v *ListBrandsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10085,15 +10615,6 @@ func awsRestjson1_serializeOpHttpBindingsListFolderMembersInput(v *ListFolderMem } } - if v.FolderId == nil || len(*v.FolderId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member FolderId must not be empty")} - } - if v.FolderId != nil { - if err := encoder.SetURI("FolderId").String(*v.FolderId); err != nil { - return err - } - } - if v.MaxResults != nil { encoder.SetQuery("max-results").Integer(*v.MaxResults) } @@ -10105,14 +10626,14 @@ func awsRestjson1_serializeOpHttpBindingsListFolderMembersInput(v *ListFolderMem return nil } -type awsRestjson1_serializeOpListFolders struct { +type awsRestjson1_serializeOpListCustomPermissions struct { } -func (*awsRestjson1_serializeOpListFolders) ID() string { +func (*awsRestjson1_serializeOpListCustomPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListFolders) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListCustomPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10124,13 +10645,13 @@ func (m *awsRestjson1_serializeOpListFolders) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListFoldersInput) + input, ok := in.Parameters.(*ListCustomPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/custom-permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10146,7 +10667,7 @@ func (m *awsRestjson1_serializeOpListFolders) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListFoldersInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListCustomPermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10159,7 +10680,7 @@ func (m *awsRestjson1_serializeOpListFolders) HandleSerialize(ctx context.Contex span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListFoldersInput(v *ListFoldersInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListCustomPermissionsInput(v *ListCustomPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10184,14 +10705,14 @@ func awsRestjson1_serializeOpHttpBindingsListFoldersInput(v *ListFoldersInput, e return nil } -type awsRestjson1_serializeOpListFoldersForResource struct { +type awsRestjson1_serializeOpListDashboards struct { } -func (*awsRestjson1_serializeOpListFoldersForResource) ID() string { +func (*awsRestjson1_serializeOpListDashboards) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListFoldersForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListDashboards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10203,13 +10724,13 @@ func (m *awsRestjson1_serializeOpListFoldersForResource) HandleSerialize(ctx con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListFoldersForResourceInput) + input, ok := in.Parameters.(*ListDashboardsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/resource/{ResourceArn}/folders") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10225,7 +10746,7 @@ func (m *awsRestjson1_serializeOpListFoldersForResource) HandleSerialize(ctx con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListFoldersForResourceInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListDashboardsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10238,7 +10759,7 @@ func (m *awsRestjson1_serializeOpListFoldersForResource) HandleSerialize(ctx con span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListFoldersForResourceInput(v *ListFoldersForResourceInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListDashboardsInput(v *ListDashboardsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10260,26 +10781,17 @@ func awsRestjson1_serializeOpHttpBindingsListFoldersForResourceInput(v *ListFold encoder.SetQuery("next-token").String(*v.NextToken) } - if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} - } - if v.ResourceArn != nil { - if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { - return err - } - } - return nil } -type awsRestjson1_serializeOpListGroupMemberships struct { +type awsRestjson1_serializeOpListDashboardVersions struct { } -func (*awsRestjson1_serializeOpListGroupMemberships) ID() string { +func (*awsRestjson1_serializeOpListDashboardVersions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListGroupMemberships) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListDashboardVersions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10291,13 +10803,13 @@ func (m *awsRestjson1_serializeOpListGroupMemberships) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListGroupMembershipsInput) + input, ok := in.Parameters.(*ListDashboardVersionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}/members") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/versions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10313,7 +10825,7 @@ func (m *awsRestjson1_serializeOpListGroupMemberships) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListGroupMembershipsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListDashboardVersionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10326,7 +10838,7 @@ func (m *awsRestjson1_serializeOpListGroupMemberships) HandleSerialize(ctx conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListGroupMembershipsInput(v *ListGroupMembershipsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListDashboardVersionsInput(v *ListDashboardVersionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10340,11 +10852,11 @@ func awsRestjson1_serializeOpHttpBindingsListGroupMembershipsInput(v *ListGroupM } } - if v.GroupName == nil || len(*v.GroupName) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member GroupName must not be empty")} + if v.DashboardId == nil || len(*v.DashboardId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} } - if v.GroupName != nil { - if err := encoder.SetURI("GroupName").String(*v.GroupName); err != nil { + if v.DashboardId != nil { + if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { return err } } @@ -10353,15 +10865,6 @@ func awsRestjson1_serializeOpHttpBindingsListGroupMembershipsInput(v *ListGroupM encoder.SetQuery("max-results").Integer(*v.MaxResults) } - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} - } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { - return err - } - } - if v.NextToken != nil { encoder.SetQuery("next-token").String(*v.NextToken) } @@ -10369,14 +10872,14 @@ func awsRestjson1_serializeOpHttpBindingsListGroupMembershipsInput(v *ListGroupM return nil } -type awsRestjson1_serializeOpListGroups struct { +type awsRestjson1_serializeOpListDataSets struct { } -func (*awsRestjson1_serializeOpListGroups) ID() string { +func (*awsRestjson1_serializeOpListDataSets) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListGroups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListDataSets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10388,13 +10891,13 @@ func (m *awsRestjson1_serializeOpListGroups) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListGroupsInput) + input, ok := in.Parameters.(*ListDataSetsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10410,7 +10913,7 @@ func (m *awsRestjson1_serializeOpListGroups) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListGroupsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListDataSetsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10423,7 +10926,7 @@ func (m *awsRestjson1_serializeOpListGroups) HandleSerialize(ctx context.Context span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListGroupsInput(v *ListGroupsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListDataSetsInput(v *ListDataSetsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10441,15 +10944,6 @@ func awsRestjson1_serializeOpHttpBindingsListGroupsInput(v *ListGroupsInput, enc encoder.SetQuery("max-results").Integer(*v.MaxResults) } - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} - } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { - return err - } - } - if v.NextToken != nil { encoder.SetQuery("next-token").String(*v.NextToken) } @@ -10457,14 +10951,14 @@ func awsRestjson1_serializeOpHttpBindingsListGroupsInput(v *ListGroupsInput, enc return nil } -type awsRestjson1_serializeOpListIAMPolicyAssignments struct { +type awsRestjson1_serializeOpListDataSources struct { } -func (*awsRestjson1_serializeOpListIAMPolicyAssignments) ID() string { +func (*awsRestjson1_serializeOpListDataSources) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListIAMPolicyAssignments) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListDataSources) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10476,13 +10970,13 @@ func (m *awsRestjson1_serializeOpListIAMPolicyAssignments) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListIAMPolicyAssignmentsInput) + input, ok := in.Parameters.(*ListDataSourcesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/v2/iam-policy-assignments") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sources") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10498,7 +10992,7 @@ func (m *awsRestjson1_serializeOpListIAMPolicyAssignments) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListDataSourcesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10511,15 +11005,11 @@ func (m *awsRestjson1_serializeOpListIAMPolicyAssignments) HandleSerialize(ctx c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsInput(v *ListIAMPolicyAssignmentsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListDataSourcesInput(v *ListDataSourcesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if len(v.AssignmentStatus) > 0 { - encoder.SetQuery("assignment-status").String(string(v.AssignmentStatus)) - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -10533,15 +11023,6 @@ func awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsInput(v *ListIA encoder.SetQuery("max-results").Integer(*v.MaxResults) } - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} - } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { - return err - } - } - if v.NextToken != nil { encoder.SetQuery("next-token").String(*v.NextToken) } @@ -10549,14 +11030,14 @@ func awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsInput(v *ListIA return nil } -type awsRestjson1_serializeOpListIAMPolicyAssignmentsForUser struct { +type awsRestjson1_serializeOpListFolderMembers struct { } -func (*awsRestjson1_serializeOpListIAMPolicyAssignmentsForUser) ID() string { +func (*awsRestjson1_serializeOpListFolderMembers) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListIAMPolicyAssignmentsForUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListFolderMembers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10568,13 +11049,13 @@ func (m *awsRestjson1_serializeOpListIAMPolicyAssignmentsForUser) HandleSerializ return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListIAMPolicyAssignmentsForUserInput) + input, ok := in.Parameters.(*ListFolderMembersInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/iam-policy-assignments") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders/{FolderId}/members") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10590,7 +11071,7 @@ func (m *awsRestjson1_serializeOpListIAMPolicyAssignmentsForUser) HandleSerializ return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsForUserInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListFolderMembersInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10603,7 +11084,7 @@ func (m *awsRestjson1_serializeOpListIAMPolicyAssignmentsForUser) HandleSerializ span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsForUserInput(v *ListIAMPolicyAssignmentsForUserInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListFolderMembersInput(v *ListFolderMembersInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10617,43 +11098,34 @@ func awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsForUserInput(v } } - if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) - } - - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + if v.FolderId == nil || len(*v.FolderId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member FolderId must not be empty")} } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + if v.FolderId != nil { + if err := encoder.SetURI("FolderId").String(*v.FolderId); err != nil { return err } } + if v.MaxResults != nil { + encoder.SetQuery("max-results").Integer(*v.MaxResults) + } + if v.NextToken != nil { encoder.SetQuery("next-token").String(*v.NextToken) } - if v.UserName == nil || len(*v.UserName) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member UserName must not be empty")} - } - if v.UserName != nil { - if err := encoder.SetURI("UserName").String(*v.UserName); err != nil { - return err - } - } - return nil } -type awsRestjson1_serializeOpListIdentityPropagationConfigs struct { +type awsRestjson1_serializeOpListFolders struct { } -func (*awsRestjson1_serializeOpListIdentityPropagationConfigs) ID() string { +func (*awsRestjson1_serializeOpListFolders) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListIdentityPropagationConfigs) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListFolders) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10665,13 +11137,13 @@ func (m *awsRestjson1_serializeOpListIdentityPropagationConfigs) HandleSerialize return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListIdentityPropagationConfigsInput) + input, ok := in.Parameters.(*ListFoldersInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/identity-propagation-config") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/folders") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10687,7 +11159,7 @@ func (m *awsRestjson1_serializeOpListIdentityPropagationConfigs) HandleSerialize return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListIdentityPropagationConfigsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListFoldersInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10700,7 +11172,7 @@ func (m *awsRestjson1_serializeOpListIdentityPropagationConfigs) HandleSerialize span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListIdentityPropagationConfigsInput(v *ListIdentityPropagationConfigsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListFoldersInput(v *ListFoldersInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10725,14 +11197,14 @@ func awsRestjson1_serializeOpHttpBindingsListIdentityPropagationConfigsInput(v * return nil } -type awsRestjson1_serializeOpListIngestions struct { +type awsRestjson1_serializeOpListFoldersForResource struct { } -func (*awsRestjson1_serializeOpListIngestions) ID() string { +func (*awsRestjson1_serializeOpListFoldersForResource) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListIngestions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListFoldersForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10744,13 +11216,13 @@ func (m *awsRestjson1_serializeOpListIngestions) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListIngestionsInput) + input, ok := in.Parameters.(*ListFoldersForResourceInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/ingestions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/resource/{ResourceArn}/folders") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10766,7 +11238,7 @@ func (m *awsRestjson1_serializeOpListIngestions) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListIngestionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListFoldersForResourceInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10779,7 +11251,7 @@ func (m *awsRestjson1_serializeOpListIngestions) HandleSerialize(ctx context.Con span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListIngestionsInput(v *ListIngestionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListFoldersForResourceInput(v *ListFoldersForResourceInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10793,15 +11265,6 @@ func awsRestjson1_serializeOpHttpBindingsListIngestionsInput(v *ListIngestionsIn } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} - } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { - return err - } - } - if v.MaxResults != nil { encoder.SetQuery("max-results").Integer(*v.MaxResults) } @@ -10810,17 +11273,26 @@ func awsRestjson1_serializeOpHttpBindingsListIngestionsInput(v *ListIngestionsIn encoder.SetQuery("next-token").String(*v.NextToken) } + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + } + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + return err + } + } + return nil } -type awsRestjson1_serializeOpListNamespaces struct { +type awsRestjson1_serializeOpListGroupMemberships struct { } -func (*awsRestjson1_serializeOpListNamespaces) ID() string { +func (*awsRestjson1_serializeOpListGroupMemberships) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListNamespaces) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListGroupMemberships) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10832,13 +11304,13 @@ func (m *awsRestjson1_serializeOpListNamespaces) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListNamespacesInput) + input, ok := in.Parameters.(*ListGroupMembershipsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups/{GroupName}/members") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10854,7 +11326,7 @@ func (m *awsRestjson1_serializeOpListNamespaces) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListNamespacesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListGroupMembershipsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10867,7 +11339,7 @@ func (m *awsRestjson1_serializeOpListNamespaces) HandleSerialize(ctx context.Con span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListNamespacesInput(v *ListNamespacesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListGroupMembershipsInput(v *ListGroupMembershipsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10881,10 +11353,28 @@ func awsRestjson1_serializeOpHttpBindingsListNamespacesInput(v *ListNamespacesIn } } + if v.GroupName == nil || len(*v.GroupName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member GroupName must not be empty")} + } + if v.GroupName != nil { + if err := encoder.SetURI("GroupName").String(*v.GroupName); err != nil { + return err + } + } + if v.MaxResults != nil { encoder.SetQuery("max-results").Integer(*v.MaxResults) } + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } + } + if v.NextToken != nil { encoder.SetQuery("next-token").String(*v.NextToken) } @@ -10892,14 +11382,14 @@ func awsRestjson1_serializeOpHttpBindingsListNamespacesInput(v *ListNamespacesIn return nil } -type awsRestjson1_serializeOpListRefreshSchedules struct { +type awsRestjson1_serializeOpListGroups struct { } -func (*awsRestjson1_serializeOpListRefreshSchedules) ID() string { +func (*awsRestjson1_serializeOpListGroups) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListRefreshSchedules) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListGroups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10911,13 +11401,13 @@ func (m *awsRestjson1_serializeOpListRefreshSchedules) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListRefreshSchedulesInput) + input, ok := in.Parameters.(*ListGroupsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-schedules") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -10933,7 +11423,7 @@ func (m *awsRestjson1_serializeOpListRefreshSchedules) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListRefreshSchedulesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListGroupsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -10946,7 +11436,7 @@ func (m *awsRestjson1_serializeOpListRefreshSchedules) HandleSerialize(ctx conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListRefreshSchedulesInput(v *ListRefreshSchedulesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListGroupsInput(v *ListGroupsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -10960,26 +11450,34 @@ func awsRestjson1_serializeOpHttpBindingsListRefreshSchedulesInput(v *ListRefres } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + if v.MaxResults != nil { + encoder.SetQuery("max-results").Integer(*v.MaxResults) } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { return err } } + if v.NextToken != nil { + encoder.SetQuery("next-token").String(*v.NextToken) + } + return nil } -type awsRestjson1_serializeOpListRoleMemberships struct { +type awsRestjson1_serializeOpListIAMPolicyAssignments struct { } -func (*awsRestjson1_serializeOpListRoleMemberships) ID() string { +func (*awsRestjson1_serializeOpListIAMPolicyAssignments) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListRoleMemberships) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListIAMPolicyAssignments) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -10991,13 +11489,13 @@ func (m *awsRestjson1_serializeOpListRoleMemberships) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListRoleMembershipsInput) + input, ok := in.Parameters.(*ListIAMPolicyAssignmentsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/roles/{Role}/members") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/v2/iam-policy-assignments") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11013,7 +11511,7 @@ func (m *awsRestjson1_serializeOpListRoleMemberships) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListRoleMembershipsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11026,11 +11524,15 @@ func (m *awsRestjson1_serializeOpListRoleMemberships) HandleSerialize(ctx contex span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListRoleMembershipsInput(v *ListRoleMembershipsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsInput(v *ListIAMPolicyAssignmentsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if len(v.AssignmentStatus) > 0 { + encoder.SetQuery("assignment-status").String(string(v.AssignmentStatus)) + } + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -11057,26 +11559,17 @@ func awsRestjson1_serializeOpHttpBindingsListRoleMembershipsInput(v *ListRoleMem encoder.SetQuery("next-token").String(*v.NextToken) } - if len(v.Role) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Role must not be empty")} - } - if len(v.Role) > 0 { - if err := encoder.SetURI("Role").String(string(v.Role)); err != nil { - return err - } - } - return nil } -type awsRestjson1_serializeOpListTagsForResource struct { +type awsRestjson1_serializeOpListIAMPolicyAssignmentsForUser struct { } -func (*awsRestjson1_serializeOpListTagsForResource) ID() string { +func (*awsRestjson1_serializeOpListIAMPolicyAssignmentsForUser) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListIAMPolicyAssignmentsForUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11088,13 +11581,13 @@ func (m *awsRestjson1_serializeOpListTagsForResource) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListTagsForResourceInput) + input, ok := in.Parameters.(*ListIAMPolicyAssignmentsForUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/resources/{ResourceArn}/tags") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/iam-policy-assignments") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11110,7 +11603,7 @@ func (m *awsRestjson1_serializeOpListTagsForResource) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsForUserInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11123,16 +11616,42 @@ func (m *awsRestjson1_serializeOpListTagsForResource) HandleSerialize(ctx contex span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(v *ListTagsForResourceInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListIAMPolicyAssignmentsForUserInput(v *ListIAMPolicyAssignmentsForUserInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } - if v.ResourceArn != nil { - if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.MaxResults != nil { + encoder.SetQuery("max-results").Integer(*v.MaxResults) + } + + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } + } + + if v.NextToken != nil { + encoder.SetQuery("next-token").String(*v.NextToken) + } + + if v.UserName == nil || len(*v.UserName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member UserName must not be empty")} + } + if v.UserName != nil { + if err := encoder.SetURI("UserName").String(*v.UserName); err != nil { return err } } @@ -11140,14 +11659,14 @@ func awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(v *ListTagsFor return nil } -type awsRestjson1_serializeOpListTemplateAliases struct { +type awsRestjson1_serializeOpListIdentityPropagationConfigs struct { } -func (*awsRestjson1_serializeOpListTemplateAliases) ID() string { +func (*awsRestjson1_serializeOpListIdentityPropagationConfigs) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListTemplateAliases) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListIdentityPropagationConfigs) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11159,13 +11678,13 @@ func (m *awsRestjson1_serializeOpListTemplateAliases) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListTemplateAliasesInput) + input, ok := in.Parameters.(*ListIdentityPropagationConfigsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/aliases") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/identity-propagation-config") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11181,7 +11700,7 @@ func (m *awsRestjson1_serializeOpListTemplateAliases) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListTemplateAliasesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListIdentityPropagationConfigsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11194,7 +11713,7 @@ func (m *awsRestjson1_serializeOpListTemplateAliases) HandleSerialize(ctx contex span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListTemplateAliasesInput(v *ListTemplateAliasesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListIdentityPropagationConfigsInput(v *ListIdentityPropagationConfigsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -11209,33 +11728,24 @@ func awsRestjson1_serializeOpHttpBindingsListTemplateAliasesInput(v *ListTemplat } if v.MaxResults != nil { - encoder.SetQuery("max-result").Integer(*v.MaxResults) + encoder.SetQuery("max-results").Integer(*v.MaxResults) } if v.NextToken != nil { encoder.SetQuery("next-token").String(*v.NextToken) } - if v.TemplateId == nil || len(*v.TemplateId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} - } - if v.TemplateId != nil { - if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { - return err - } - } - return nil } -type awsRestjson1_serializeOpListTemplates struct { +type awsRestjson1_serializeOpListIngestions struct { } -func (*awsRestjson1_serializeOpListTemplates) ID() string { +func (*awsRestjson1_serializeOpListIngestions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListTemplates) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListIngestions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11247,13 +11757,13 @@ func (m *awsRestjson1_serializeOpListTemplates) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListTemplatesInput) + input, ok := in.Parameters.(*ListIngestionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/ingestions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11269,7 +11779,7 @@ func (m *awsRestjson1_serializeOpListTemplates) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListTemplatesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListIngestionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11282,7 +11792,7 @@ func (m *awsRestjson1_serializeOpListTemplates) HandleSerialize(ctx context.Cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListTemplatesInput(v *ListTemplatesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListIngestionsInput(v *ListIngestionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -11296,8 +11806,17 @@ func awsRestjson1_serializeOpHttpBindingsListTemplatesInput(v *ListTemplatesInpu } } + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + } + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + return err + } + } + if v.MaxResults != nil { - encoder.SetQuery("max-result").Integer(*v.MaxResults) + encoder.SetQuery("max-results").Integer(*v.MaxResults) } if v.NextToken != nil { @@ -11307,14 +11826,14 @@ func awsRestjson1_serializeOpHttpBindingsListTemplatesInput(v *ListTemplatesInpu return nil } -type awsRestjson1_serializeOpListTemplateVersions struct { +type awsRestjson1_serializeOpListNamespaces struct { } -func (*awsRestjson1_serializeOpListTemplateVersions) ID() string { +func (*awsRestjson1_serializeOpListNamespaces) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListTemplateVersions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListNamespaces) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11326,13 +11845,13 @@ func (m *awsRestjson1_serializeOpListTemplateVersions) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListTemplateVersionsInput) + input, ok := in.Parameters.(*ListNamespacesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/versions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11348,7 +11867,7 @@ func (m *awsRestjson1_serializeOpListTemplateVersions) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListTemplateVersionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListNamespacesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11361,7 +11880,7 @@ func (m *awsRestjson1_serializeOpListTemplateVersions) HandleSerialize(ctx conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListTemplateVersionsInput(v *ListTemplateVersionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListNamespacesInput(v *ListNamespacesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -11383,26 +11902,17 @@ func awsRestjson1_serializeOpHttpBindingsListTemplateVersionsInput(v *ListTempla encoder.SetQuery("next-token").String(*v.NextToken) } - if v.TemplateId == nil || len(*v.TemplateId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} - } - if v.TemplateId != nil { - if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { - return err - } - } - return nil } -type awsRestjson1_serializeOpListThemeAliases struct { +type awsRestjson1_serializeOpListRefreshSchedules struct { } -func (*awsRestjson1_serializeOpListThemeAliases) ID() string { +func (*awsRestjson1_serializeOpListRefreshSchedules) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListThemeAliases) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListRefreshSchedules) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11414,13 +11924,13 @@ func (m *awsRestjson1_serializeOpListThemeAliases) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListThemeAliasesInput) + input, ok := in.Parameters.(*ListRefreshSchedulesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}/aliases") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-schedules") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11436,7 +11946,7 @@ func (m *awsRestjson1_serializeOpListThemeAliases) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListThemeAliasesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListRefreshSchedulesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11449,7 +11959,7 @@ func (m *awsRestjson1_serializeOpListThemeAliases) HandleSerialize(ctx context.C span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListThemeAliasesInput(v *ListThemeAliasesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListRefreshSchedulesInput(v *ListRefreshSchedulesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -11463,19 +11973,11 @@ func awsRestjson1_serializeOpHttpBindingsListThemeAliasesInput(v *ListThemeAlias } } - if v.MaxResults != nil { - encoder.SetQuery("max-result").Integer(*v.MaxResults) - } - - if v.NextToken != nil { - encoder.SetQuery("next-token").String(*v.NextToken) - } - - if v.ThemeId == nil || len(*v.ThemeId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} } - if v.ThemeId != nil { - if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { return err } } @@ -11483,14 +11985,14 @@ func awsRestjson1_serializeOpHttpBindingsListThemeAliasesInput(v *ListThemeAlias return nil } -type awsRestjson1_serializeOpListThemes struct { +type awsRestjson1_serializeOpListRoleMemberships struct { } -func (*awsRestjson1_serializeOpListThemes) ID() string { +func (*awsRestjson1_serializeOpListRoleMemberships) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListThemes) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListRoleMemberships) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11502,13 +12004,13 @@ func (m *awsRestjson1_serializeOpListThemes) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListThemesInput) + input, ok := in.Parameters.(*ListRoleMembershipsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/roles/{Role}/members") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11524,7 +12026,7 @@ func (m *awsRestjson1_serializeOpListThemes) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListThemesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListRoleMembershipsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11537,7 +12039,7 @@ func (m *awsRestjson1_serializeOpListThemes) HandleSerialize(ctx context.Context span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListThemesInput(v *ListThemesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListRoleMembershipsInput(v *ListRoleMembershipsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -11555,25 +12057,39 @@ func awsRestjson1_serializeOpHttpBindingsListThemesInput(v *ListThemesInput, enc encoder.SetQuery("max-results").Integer(*v.MaxResults) } + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } + } + if v.NextToken != nil { encoder.SetQuery("next-token").String(*v.NextToken) } - if len(v.Type) > 0 { - encoder.SetQuery("type").String(string(v.Type)) + if len(v.Role) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Role must not be empty")} + } + if len(v.Role) > 0 { + if err := encoder.SetURI("Role").String(string(v.Role)); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpListThemeVersions struct { +type awsRestjson1_serializeOpListTagsForResource struct { } -func (*awsRestjson1_serializeOpListThemeVersions) ID() string { +func (*awsRestjson1_serializeOpListTagsForResource) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListThemeVersions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListTagsForResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11585,13 +12101,13 @@ func (m *awsRestjson1_serializeOpListThemeVersions) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListThemeVersionsInput) + input, ok := in.Parameters.(*ListTagsForResourceInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}/versions") + opPath, opQuery := httpbinding.SplitURI("/resources/{ResourceArn}/tags") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11607,7 +12123,7 @@ func (m *awsRestjson1_serializeOpListThemeVersions) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListThemeVersionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11620,33 +12136,16 @@ func (m *awsRestjson1_serializeOpListThemeVersions) HandleSerialize(ctx context. span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListThemeVersionsInput(v *ListThemeVersionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListTagsForResourceInput(v *ListTagsForResourceInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} - } - if v.AwsAccountId != nil { - if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { - return err - } - } - - if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) - } - - if v.NextToken != nil { - encoder.SetQuery("next-token").String(*v.NextToken) - } - - if v.ThemeId == nil || len(*v.ThemeId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} } - if v.ThemeId != nil { - if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { return err } } @@ -11654,14 +12153,14 @@ func awsRestjson1_serializeOpHttpBindingsListThemeVersionsInput(v *ListThemeVers return nil } -type awsRestjson1_serializeOpListTopicRefreshSchedules struct { +type awsRestjson1_serializeOpListTemplateAliases struct { } -func (*awsRestjson1_serializeOpListTopicRefreshSchedules) ID() string { +func (*awsRestjson1_serializeOpListTemplateAliases) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListTopicRefreshSchedules) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListTemplateAliases) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11673,13 +12172,13 @@ func (m *awsRestjson1_serializeOpListTopicRefreshSchedules) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListTopicRefreshSchedulesInput) + input, ok := in.Parameters.(*ListTemplateAliasesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/schedules") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/aliases") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11695,7 +12194,7 @@ func (m *awsRestjson1_serializeOpListTopicRefreshSchedules) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListTopicRefreshSchedulesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListTemplateAliasesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11708,7 +12207,7 @@ func (m *awsRestjson1_serializeOpListTopicRefreshSchedules) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListTopicRefreshSchedulesInput(v *ListTopicRefreshSchedulesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListTemplateAliasesInput(v *ListTemplateAliasesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -11722,11 +12221,19 @@ func awsRestjson1_serializeOpHttpBindingsListTopicRefreshSchedulesInput(v *ListT } } - if v.TopicId == nil || len(*v.TopicId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} + if v.MaxResults != nil { + encoder.SetQuery("max-result").Integer(*v.MaxResults) } - if v.TopicId != nil { - if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { + + if v.NextToken != nil { + encoder.SetQuery("next-token").String(*v.NextToken) + } + + if v.TemplateId == nil || len(*v.TemplateId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} + } + if v.TemplateId != nil { + if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { return err } } @@ -11734,14 +12241,14 @@ func awsRestjson1_serializeOpHttpBindingsListTopicRefreshSchedulesInput(v *ListT return nil } -type awsRestjson1_serializeOpListTopicReviewedAnswers struct { +type awsRestjson1_serializeOpListTemplates struct { } -func (*awsRestjson1_serializeOpListTopicReviewedAnswers) ID() string { +func (*awsRestjson1_serializeOpListTemplates) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListTopicReviewedAnswers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListTemplates) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11753,13 +12260,13 @@ func (m *awsRestjson1_serializeOpListTopicReviewedAnswers) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListTopicReviewedAnswersInput) + input, ok := in.Parameters.(*ListTemplatesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/reviewed-answers") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11775,7 +12282,7 @@ func (m *awsRestjson1_serializeOpListTopicReviewedAnswers) HandleSerialize(ctx c return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListTopicReviewedAnswersInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListTemplatesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11788,7 +12295,7 @@ func (m *awsRestjson1_serializeOpListTopicReviewedAnswers) HandleSerialize(ctx c span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListTopicReviewedAnswersInput(v *ListTopicReviewedAnswersInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListTemplatesInput(v *ListTemplatesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -11802,26 +12309,25 @@ func awsRestjson1_serializeOpHttpBindingsListTopicReviewedAnswersInput(v *ListTo } } - if v.TopicId == nil || len(*v.TopicId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} + if v.MaxResults != nil { + encoder.SetQuery("max-result").Integer(*v.MaxResults) } - if v.TopicId != nil { - if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { - return err - } + + if v.NextToken != nil { + encoder.SetQuery("next-token").String(*v.NextToken) } return nil } -type awsRestjson1_serializeOpListTopics struct { +type awsRestjson1_serializeOpListTemplateVersions struct { } -func (*awsRestjson1_serializeOpListTopics) ID() string { +func (*awsRestjson1_serializeOpListTemplateVersions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListTopics) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListTemplateVersions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11833,13 +12339,13 @@ func (m *awsRestjson1_serializeOpListTopics) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListTopicsInput) + input, ok := in.Parameters.(*ListTemplateVersionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/templates/{TemplateId}/versions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11855,7 +12361,7 @@ func (m *awsRestjson1_serializeOpListTopics) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListTopicsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListTemplateVersionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11868,7 +12374,7 @@ func (m *awsRestjson1_serializeOpListTopics) HandleSerialize(ctx context.Context span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListTopicsInput(v *ListTopicsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListTemplateVersionsInput(v *ListTemplateVersionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -11890,17 +12396,26 @@ func awsRestjson1_serializeOpHttpBindingsListTopicsInput(v *ListTopicsInput, enc encoder.SetQuery("next-token").String(*v.NextToken) } + if v.TemplateId == nil || len(*v.TemplateId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TemplateId must not be empty")} + } + if v.TemplateId != nil { + if err := encoder.SetURI("TemplateId").String(*v.TemplateId); err != nil { + return err + } + } + return nil } -type awsRestjson1_serializeOpListUserGroups struct { +type awsRestjson1_serializeOpListThemeAliases struct { } -func (*awsRestjson1_serializeOpListUserGroups) ID() string { +func (*awsRestjson1_serializeOpListThemeAliases) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListUserGroups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListThemeAliases) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -11912,13 +12427,13 @@ func (m *awsRestjson1_serializeOpListUserGroups) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListUserGroupsInput) + input, ok := in.Parameters.(*ListThemeAliasesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/groups") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}/aliases") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -11934,7 +12449,7 @@ func (m *awsRestjson1_serializeOpListUserGroups) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListUserGroupsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListThemeAliasesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -11947,7 +12462,7 @@ func (m *awsRestjson1_serializeOpListUserGroups) HandleSerialize(ctx context.Con span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListUserGroupsInput(v *ListUserGroupsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListThemeAliasesInput(v *ListThemeAliasesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -11962,27 +12477,18 @@ func awsRestjson1_serializeOpHttpBindingsListUserGroupsInput(v *ListUserGroupsIn } if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) - } - - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} - } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { - return err - } + encoder.SetQuery("max-result").Integer(*v.MaxResults) } if v.NextToken != nil { encoder.SetQuery("next-token").String(*v.NextToken) } - if v.UserName == nil || len(*v.UserName) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member UserName must not be empty")} + if v.ThemeId == nil || len(*v.ThemeId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} } - if v.UserName != nil { - if err := encoder.SetURI("UserName").String(*v.UserName); err != nil { + if v.ThemeId != nil { + if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { return err } } @@ -11990,14 +12496,14 @@ func awsRestjson1_serializeOpHttpBindingsListUserGroupsInput(v *ListUserGroupsIn return nil } -type awsRestjson1_serializeOpListUsers struct { +type awsRestjson1_serializeOpListThemes struct { } -func (*awsRestjson1_serializeOpListUsers) ID() string { +func (*awsRestjson1_serializeOpListThemes) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListUsers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListThemes) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12009,13 +12515,13 @@ func (m *awsRestjson1_serializeOpListUsers) HandleSerialize(ctx context.Context, return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListUsersInput) + input, ok := in.Parameters.(*ListThemesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -12031,7 +12537,7 @@ func (m *awsRestjson1_serializeOpListUsers) HandleSerialize(ctx context.Context, return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListUsersInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListThemesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12044,7 +12550,7 @@ func (m *awsRestjson1_serializeOpListUsers) HandleSerialize(ctx context.Context, span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListUsersInput(v *ListUsersInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListThemesInput(v *ListThemesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -12062,30 +12568,25 @@ func awsRestjson1_serializeOpHttpBindingsListUsersInput(v *ListUsersInput, encod encoder.SetQuery("max-results").Integer(*v.MaxResults) } - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} - } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { - return err - } - } - if v.NextToken != nil { encoder.SetQuery("next-token").String(*v.NextToken) } + if len(v.Type) > 0 { + encoder.SetQuery("type").String(string(v.Type)) + } + return nil } -type awsRestjson1_serializeOpListVPCConnections struct { +type awsRestjson1_serializeOpListThemeVersions struct { } -func (*awsRestjson1_serializeOpListVPCConnections) ID() string { +func (*awsRestjson1_serializeOpListThemeVersions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListVPCConnections) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListThemeVersions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12097,13 +12598,13 @@ func (m *awsRestjson1_serializeOpListVPCConnections) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListVPCConnectionsInput) + input, ok := in.Parameters.(*ListThemeVersionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/vpc-connections") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/themes/{ThemeId}/versions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -12119,7 +12620,7 @@ func (m *awsRestjson1_serializeOpListVPCConnections) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListVPCConnectionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListThemeVersionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12132,7 +12633,7 @@ func (m *awsRestjson1_serializeOpListVPCConnections) HandleSerialize(ctx context span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListVPCConnectionsInput(v *ListVPCConnectionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListThemeVersionsInput(v *ListThemeVersionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -12154,17 +12655,26 @@ func awsRestjson1_serializeOpHttpBindingsListVPCConnectionsInput(v *ListVPCConne encoder.SetQuery("next-token").String(*v.NextToken) } + if v.ThemeId == nil || len(*v.ThemeId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ThemeId must not be empty")} + } + if v.ThemeId != nil { + if err := encoder.SetURI("ThemeId").String(*v.ThemeId); err != nil { + return err + } + } + return nil } -type awsRestjson1_serializeOpPutDataSetRefreshProperties struct { +type awsRestjson1_serializeOpListTopicRefreshSchedules struct { } -func (*awsRestjson1_serializeOpPutDataSetRefreshProperties) ID() string { +func (*awsRestjson1_serializeOpListTopicRefreshSchedules) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpPutDataSetRefreshProperties) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListTopicRefreshSchedules) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12176,16 +12686,16 @@ func (m *awsRestjson1_serializeOpPutDataSetRefreshProperties) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*PutDataSetRefreshPropertiesInput) + input, ok := in.Parameters.(*ListTopicRefreshSchedulesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-properties") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/schedules") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "PUT" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -12198,18 +12708,7 @@ func (m *awsRestjson1_serializeOpPutDataSetRefreshProperties) HandleSerialize(ct return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsPutDataSetRefreshPropertiesInput(input, restEncoder); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentPutDataSetRefreshPropertiesInput(input, jsonEncoder.Value); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListTopicRefreshSchedulesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12222,7 +12721,7 @@ func (m *awsRestjson1_serializeOpPutDataSetRefreshProperties) HandleSerialize(ct span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsPutDataSetRefreshPropertiesInput(v *PutDataSetRefreshPropertiesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListTopicRefreshSchedulesInput(v *ListTopicRefreshSchedulesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -12236,25 +12735,11 @@ func awsRestjson1_serializeOpHttpBindingsPutDataSetRefreshPropertiesInput(v *Put } } - if v.DataSetId == nil || len(*v.DataSetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} - } - if v.DataSetId != nil { - if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { - return err - } + if v.TopicId == nil || len(*v.TopicId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} } - - return nil -} - -func awsRestjson1_serializeOpDocumentPutDataSetRefreshPropertiesInput(v *PutDataSetRefreshPropertiesInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.DataSetRefreshProperties != nil { - ok := object.Key("DataSetRefreshProperties") - if err := awsRestjson1_serializeDocumentDataSetRefreshProperties(v.DataSetRefreshProperties, ok); err != nil { + if v.TopicId != nil { + if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { return err } } @@ -12262,14 +12747,14 @@ func awsRestjson1_serializeOpDocumentPutDataSetRefreshPropertiesInput(v *PutData return nil } -type awsRestjson1_serializeOpRegisterUser struct { +type awsRestjson1_serializeOpListTopicReviewedAnswers struct { } -func (*awsRestjson1_serializeOpRegisterUser) ID() string { +func (*awsRestjson1_serializeOpListTopicReviewedAnswers) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpRegisterUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListTopicReviewedAnswers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12281,16 +12766,16 @@ func (m *awsRestjson1_serializeOpRegisterUser) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*RegisterUserInput) + input, ok := in.Parameters.(*ListTopicReviewedAnswersInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics/{TopicId}/reviewed-answers") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -12303,18 +12788,7 @@ func (m *awsRestjson1_serializeOpRegisterUser) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsRegisterUserInput(input, restEncoder); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentRegisterUserInput(input, jsonEncoder.Value); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListTopicReviewedAnswersInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12327,7 +12801,7 @@ func (m *awsRestjson1_serializeOpRegisterUser) HandleSerialize(ctx context.Conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsRegisterUserInput(v *RegisterUserInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListTopicReviewedAnswersInput(v *ListTopicReviewedAnswersInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -12341,90 +12815,26 @@ func awsRestjson1_serializeOpHttpBindingsRegisterUserInput(v *RegisterUserInput, } } - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} - } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { - return err - } - } - - return nil -} - -func awsRestjson1_serializeOpDocumentRegisterUserInput(v *RegisterUserInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.CustomFederationProviderUrl != nil { - ok := object.Key("CustomFederationProviderUrl") - ok.String(*v.CustomFederationProviderUrl) - } - - if v.CustomPermissionsName != nil { - ok := object.Key("CustomPermissionsName") - ok.String(*v.CustomPermissionsName) - } - - if v.Email != nil { - ok := object.Key("Email") - ok.String(*v.Email) - } - - if v.ExternalLoginFederationProviderType != nil { - ok := object.Key("ExternalLoginFederationProviderType") - ok.String(*v.ExternalLoginFederationProviderType) - } - - if v.ExternalLoginId != nil { - ok := object.Key("ExternalLoginId") - ok.String(*v.ExternalLoginId) - } - - if v.IamArn != nil { - ok := object.Key("IamArn") - ok.String(*v.IamArn) - } - - if len(v.IdentityType) > 0 { - ok := object.Key("IdentityType") - ok.String(string(v.IdentityType)) - } - - if v.SessionName != nil { - ok := object.Key("SessionName") - ok.String(*v.SessionName) + if v.TopicId == nil || len(*v.TopicId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member TopicId must not be empty")} } - - if v.Tags != nil { - ok := object.Key("Tags") - if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { + if v.TopicId != nil { + if err := encoder.SetURI("TopicId").String(*v.TopicId); err != nil { return err } } - if v.UserName != nil { - ok := object.Key("UserName") - ok.String(*v.UserName) - } - - if len(v.UserRole) > 0 { - ok := object.Key("UserRole") - ok.String(string(v.UserRole)) - } - return nil } -type awsRestjson1_serializeOpRestoreAnalysis struct { +type awsRestjson1_serializeOpListTopics struct { } -func (*awsRestjson1_serializeOpRestoreAnalysis) ID() string { +func (*awsRestjson1_serializeOpListTopics) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpRestoreAnalysis) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListTopics) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12436,16 +12846,16 @@ func (m *awsRestjson1_serializeOpRestoreAnalysis) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*RestoreAnalysisInput) + input, ok := in.Parameters.(*ListTopicsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/restore/analyses/{AnalysisId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/topics") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -12458,7 +12868,7 @@ func (m *awsRestjson1_serializeOpRestoreAnalysis) HandleSerialize(ctx context.Co return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsRestoreAnalysisInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListTopicsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12471,20 +12881,11 @@ func (m *awsRestjson1_serializeOpRestoreAnalysis) HandleSerialize(ctx context.Co span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsRestoreAnalysisInput(v *RestoreAnalysisInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListTopicsInput(v *ListTopicsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AnalysisId == nil || len(*v.AnalysisId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member AnalysisId must not be empty")} - } - if v.AnalysisId != nil { - if err := encoder.SetURI("AnalysisId").String(*v.AnalysisId); err != nil { - return err - } - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -12494,21 +12895,25 @@ func awsRestjson1_serializeOpHttpBindingsRestoreAnalysisInput(v *RestoreAnalysis } } - if v.RestoreToFolders { - encoder.SetQuery("restore-to-folders").Boolean(v.RestoreToFolders) + if v.MaxResults != nil { + encoder.SetQuery("max-results").Integer(*v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("next-token").String(*v.NextToken) } return nil } -type awsRestjson1_serializeOpSearchAnalyses struct { +type awsRestjson1_serializeOpListUserGroups struct { } -func (*awsRestjson1_serializeOpSearchAnalyses) ID() string { +func (*awsRestjson1_serializeOpListUserGroups) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpSearchAnalyses) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListUserGroups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12520,16 +12925,16 @@ func (m *awsRestjson1_serializeOpSearchAnalyses) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*SearchAnalysesInput) + input, ok := in.Parameters.(*ListUserGroupsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/analyses") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/groups") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -12542,18 +12947,7 @@ func (m *awsRestjson1_serializeOpSearchAnalyses) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsSearchAnalysesInput(input, restEncoder); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentSearchAnalysesInput(input, jsonEncoder.Value); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListUserGroupsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12566,7 +12960,7 @@ func (m *awsRestjson1_serializeOpSearchAnalyses) HandleSerialize(ctx context.Con span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsSearchAnalysesInput(v *SearchAnalysesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListUserGroupsInput(v *ListUserGroupsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -12580,41 +12974,43 @@ func awsRestjson1_serializeOpHttpBindingsSearchAnalysesInput(v *SearchAnalysesIn } } - return nil -} - -func awsRestjson1_serializeOpDocumentSearchAnalysesInput(v *SearchAnalysesInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() + if v.MaxResults != nil { + encoder.SetQuery("max-results").Integer(*v.MaxResults) + } - if v.Filters != nil { - ok := object.Key("Filters") - if err := awsRestjson1_serializeDocumentAnalysisSearchFilterList(v.Filters, ok); err != nil { + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { return err } } - if v.MaxResults != nil { - ok := object.Key("MaxResults") - ok.Integer(*v.MaxResults) + if v.NextToken != nil { + encoder.SetQuery("next-token").String(*v.NextToken) } - if v.NextToken != nil { - ok := object.Key("NextToken") - ok.String(*v.NextToken) + if v.UserName == nil || len(*v.UserName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member UserName must not be empty")} + } + if v.UserName != nil { + if err := encoder.SetURI("UserName").String(*v.UserName); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpSearchDashboards struct { +type awsRestjson1_serializeOpListUsers struct { } -func (*awsRestjson1_serializeOpSearchDashboards) ID() string { +func (*awsRestjson1_serializeOpListUsers) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpSearchDashboards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListUsers) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12626,16 +13022,16 @@ func (m *awsRestjson1_serializeOpSearchDashboards) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*SearchDashboardsInput) + input, ok := in.Parameters.(*ListUsersInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/dashboards") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -12648,18 +13044,7 @@ func (m *awsRestjson1_serializeOpSearchDashboards) HandleSerialize(ctx context.C return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsSearchDashboardsInput(input, restEncoder); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentSearchDashboardsInput(input, jsonEncoder.Value); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListUsersInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12672,7 +13057,7 @@ func (m *awsRestjson1_serializeOpSearchDashboards) HandleSerialize(ctx context.C span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsSearchDashboardsInput(v *SearchDashboardsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListUsersInput(v *ListUsersInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -12686,41 +13071,34 @@ func awsRestjson1_serializeOpHttpBindingsSearchDashboardsInput(v *SearchDashboar } } - return nil -} - -func awsRestjson1_serializeOpDocumentSearchDashboardsInput(v *SearchDashboardsInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() + if v.MaxResults != nil { + encoder.SetQuery("max-results").Integer(*v.MaxResults) + } - if v.Filters != nil { - ok := object.Key("Filters") - if err := awsRestjson1_serializeDocumentDashboardSearchFilterList(v.Filters, ok); err != nil { + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { return err } } - if v.MaxResults != nil { - ok := object.Key("MaxResults") - ok.Integer(*v.MaxResults) - } - if v.NextToken != nil { - ok := object.Key("NextToken") - ok.String(*v.NextToken) + encoder.SetQuery("next-token").String(*v.NextToken) } return nil } -type awsRestjson1_serializeOpSearchDataSets struct { +type awsRestjson1_serializeOpListVPCConnections struct { } -func (*awsRestjson1_serializeOpSearchDataSets) ID() string { +func (*awsRestjson1_serializeOpListVPCConnections) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpSearchDataSets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpListVPCConnections) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12732,16 +13110,16 @@ func (m *awsRestjson1_serializeOpSearchDataSets) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*SearchDataSetsInput) + input, ok := in.Parameters.(*ListVPCConnectionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/data-sets") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/vpc-connections") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "GET" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -12754,18 +13132,7 @@ func (m *awsRestjson1_serializeOpSearchDataSets) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsSearchDataSetsInput(input, restEncoder); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentSearchDataSetsInput(input, jsonEncoder.Value); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsListVPCConnectionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12778,7 +13145,7 @@ func (m *awsRestjson1_serializeOpSearchDataSets) HandleSerialize(ctx context.Con span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsSearchDataSetsInput(v *SearchDataSetsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsListVPCConnectionsInput(v *ListVPCConnectionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -12792,41 +13159,25 @@ func awsRestjson1_serializeOpHttpBindingsSearchDataSetsInput(v *SearchDataSetsIn } } - return nil -} - -func awsRestjson1_serializeOpDocumentSearchDataSetsInput(v *SearchDataSetsInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.Filters != nil { - ok := object.Key("Filters") - if err := awsRestjson1_serializeDocumentDataSetSearchFilterList(v.Filters, ok); err != nil { - return err - } - } - if v.MaxResults != nil { - ok := object.Key("MaxResults") - ok.Integer(*v.MaxResults) + encoder.SetQuery("max-results").Integer(*v.MaxResults) } if v.NextToken != nil { - ok := object.Key("NextToken") - ok.String(*v.NextToken) + encoder.SetQuery("next-token").String(*v.NextToken) } return nil } -type awsRestjson1_serializeOpSearchDataSources struct { +type awsRestjson1_serializeOpPutDataSetRefreshProperties struct { } -func (*awsRestjson1_serializeOpSearchDataSources) ID() string { +func (*awsRestjson1_serializeOpPutDataSetRefreshProperties) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpSearchDataSources) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpPutDataSetRefreshProperties) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12838,16 +13189,16 @@ func (m *awsRestjson1_serializeOpSearchDataSources) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*SearchDataSourcesInput) + input, ok := in.Parameters.(*PutDataSetRefreshPropertiesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/data-sources") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/data-sets/{DataSetId}/refresh-properties") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "PUT" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -12860,14 +13211,14 @@ func (m *awsRestjson1_serializeOpSearchDataSources) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsSearchDataSourcesInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsPutDataSetRefreshPropertiesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentSearchDataSourcesInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentPutDataSetRefreshPropertiesInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12884,7 +13235,7 @@ func (m *awsRestjson1_serializeOpSearchDataSources) HandleSerialize(ctx context. span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsSearchDataSourcesInput(v *SearchDataSourcesInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsPutDataSetRefreshPropertiesInput(v *PutDataSetRefreshPropertiesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -12898,41 +13249,40 @@ func awsRestjson1_serializeOpHttpBindingsSearchDataSourcesInput(v *SearchDataSou } } + if v.DataSetId == nil || len(*v.DataSetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DataSetId must not be empty")} + } + if v.DataSetId != nil { + if err := encoder.SetURI("DataSetId").String(*v.DataSetId); err != nil { + return err + } + } + return nil } -func awsRestjson1_serializeOpDocumentSearchDataSourcesInput(v *SearchDataSourcesInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentPutDataSetRefreshPropertiesInput(v *PutDataSetRefreshPropertiesInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Filters != nil { - ok := object.Key("Filters") - if err := awsRestjson1_serializeDocumentDataSourceSearchFilterList(v.Filters, ok); err != nil { + if v.DataSetRefreshProperties != nil { + ok := object.Key("DataSetRefreshProperties") + if err := awsRestjson1_serializeDocumentDataSetRefreshProperties(v.DataSetRefreshProperties, ok); err != nil { return err } } - if v.MaxResults != nil { - ok := object.Key("MaxResults") - ok.Integer(*v.MaxResults) - } - - if v.NextToken != nil { - ok := object.Key("NextToken") - ok.String(*v.NextToken) - } - return nil } -type awsRestjson1_serializeOpSearchFolders struct { +type awsRestjson1_serializeOpRegisterUser struct { } -func (*awsRestjson1_serializeOpSearchFolders) ID() string { +func (*awsRestjson1_serializeOpRegisterUser) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpSearchFolders) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpRegisterUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -12944,13 +13294,13 @@ func (m *awsRestjson1_serializeOpSearchFolders) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*SearchFoldersInput) + input, ok := in.Parameters.(*RegisterUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/folders") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -12966,14 +13316,14 @@ func (m *awsRestjson1_serializeOpSearchFolders) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsSearchFoldersInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsRegisterUserInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentSearchFoldersInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentRegisterUserInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -12990,7 +13340,7 @@ func (m *awsRestjson1_serializeOpSearchFolders) HandleSerialize(ctx context.Cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsSearchFoldersInput(v *SearchFoldersInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsRegisterUserInput(v *RegisterUserInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -13004,41 +13354,90 @@ func awsRestjson1_serializeOpHttpBindingsSearchFoldersInput(v *SearchFoldersInpu } } + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } + } + return nil } -func awsRestjson1_serializeOpDocumentSearchFoldersInput(v *SearchFoldersInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentRegisterUserInput(v *RegisterUserInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Filters != nil { - ok := object.Key("Filters") - if err := awsRestjson1_serializeDocumentFolderSearchFilterList(v.Filters, ok); err != nil { + if v.CustomFederationProviderUrl != nil { + ok := object.Key("CustomFederationProviderUrl") + ok.String(*v.CustomFederationProviderUrl) + } + + if v.CustomPermissionsName != nil { + ok := object.Key("CustomPermissionsName") + ok.String(*v.CustomPermissionsName) + } + + if v.Email != nil { + ok := object.Key("Email") + ok.String(*v.Email) + } + + if v.ExternalLoginFederationProviderType != nil { + ok := object.Key("ExternalLoginFederationProviderType") + ok.String(*v.ExternalLoginFederationProviderType) + } + + if v.ExternalLoginId != nil { + ok := object.Key("ExternalLoginId") + ok.String(*v.ExternalLoginId) + } + + if v.IamArn != nil { + ok := object.Key("IamArn") + ok.String(*v.IamArn) + } + + if len(v.IdentityType) > 0 { + ok := object.Key("IdentityType") + ok.String(string(v.IdentityType)) + } + + if v.SessionName != nil { + ok := object.Key("SessionName") + ok.String(*v.SessionName) + } + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { return err } } - if v.MaxResults != nil { - ok := object.Key("MaxResults") - ok.Integer(*v.MaxResults) + if v.UserName != nil { + ok := object.Key("UserName") + ok.String(*v.UserName) } - if v.NextToken != nil { - ok := object.Key("NextToken") - ok.String(*v.NextToken) + if len(v.UserRole) > 0 { + ok := object.Key("UserRole") + ok.String(string(v.UserRole)) } return nil } -type awsRestjson1_serializeOpSearchGroups struct { +type awsRestjson1_serializeOpRestoreAnalysis struct { } -func (*awsRestjson1_serializeOpSearchGroups) ID() string { +func (*awsRestjson1_serializeOpRestoreAnalysis) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpSearchGroups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpRestoreAnalysis) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -13050,13 +13449,13 @@ func (m *awsRestjson1_serializeOpSearchGroups) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*SearchGroupsInput) + input, ok := in.Parameters.(*RestoreAnalysisInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups-search") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/restore/analyses/{AnalysisId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -13072,18 +13471,7 @@ func (m *awsRestjson1_serializeOpSearchGroups) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsSearchGroupsInput(input, restEncoder); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - restEncoder.SetHeader("Content-Type").String("application/json") - - jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentSearchGroupsInput(input, jsonEncoder.Value); err != nil { - return out, metadata, &smithy.SerializationError{Err: err} - } - - if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsRestoreAnalysisInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -13096,62 +13484,44 @@ func (m *awsRestjson1_serializeOpSearchGroups) HandleSerialize(ctx context.Conte span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsSearchGroupsInput(v *SearchGroupsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsRestoreAnalysisInput(v *RestoreAnalysisInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + if v.AnalysisId == nil || len(*v.AnalysisId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AnalysisId must not be empty")} } - if v.AwsAccountId != nil { - if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + if v.AnalysisId != nil { + if err := encoder.SetURI("AnalysisId").String(*v.AnalysisId); err != nil { return err } } - if v.MaxResults != nil { - encoder.SetQuery("max-results").Integer(*v.MaxResults) - } - - if v.Namespace == nil || len(*v.Namespace) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } - if v.Namespace != nil { - if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { return err } } - if v.NextToken != nil { - encoder.SetQuery("next-token").String(*v.NextToken) - } - - return nil -} - -func awsRestjson1_serializeOpDocumentSearchGroupsInput(v *SearchGroupsInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.Filters != nil { - ok := object.Key("Filters") - if err := awsRestjson1_serializeDocumentGroupSearchFilterList(v.Filters, ok); err != nil { - return err - } + if v.RestoreToFolders { + encoder.SetQuery("restore-to-folders").Boolean(v.RestoreToFolders) } return nil } -type awsRestjson1_serializeOpStartAssetBundleExportJob struct { +type awsRestjson1_serializeOpSearchAnalyses struct { } -func (*awsRestjson1_serializeOpStartAssetBundleExportJob) ID() string { +func (*awsRestjson1_serializeOpSearchAnalyses) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpStartAssetBundleExportJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpSearchAnalyses) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -13163,13 +13533,13 @@ func (m *awsRestjson1_serializeOpStartAssetBundleExportJob) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StartAssetBundleExportJobInput) + input, ok := in.Parameters.(*SearchAnalysesInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/asset-bundle-export-jobs/export") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/analyses") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -13185,14 +13555,14 @@ func (m *awsRestjson1_serializeOpStartAssetBundleExportJob) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsStartAssetBundleExportJobInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsSearchAnalysesInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentStartAssetBundleExportJobInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentSearchAnalysesInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -13209,7 +13579,7 @@ func (m *awsRestjson1_serializeOpStartAssetBundleExportJob) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsStartAssetBundleExportJobInput(v *StartAssetBundleExportJobInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsSearchAnalysesInput(v *SearchAnalysesInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -13226,77 +13596,144 @@ func awsRestjson1_serializeOpHttpBindingsStartAssetBundleExportJobInput(v *Start return nil } -func awsRestjson1_serializeOpDocumentStartAssetBundleExportJobInput(v *StartAssetBundleExportJobInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentSearchAnalysesInput(v *SearchAnalysesInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.AssetBundleExportJobId != nil { - ok := object.Key("AssetBundleExportJobId") - ok.String(*v.AssetBundleExportJobId) - } - - if v.CloudFormationOverridePropertyConfiguration != nil { - ok := object.Key("CloudFormationOverridePropertyConfiguration") - if err := awsRestjson1_serializeDocumentAssetBundleCloudFormationOverridePropertyConfiguration(v.CloudFormationOverridePropertyConfiguration, ok); err != nil { + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentAnalysisSearchFilterList(v.Filters, ok); err != nil { return err } } - if len(v.ExportFormat) > 0 { - ok := object.Key("ExportFormat") - ok.String(string(v.ExportFormat)) + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) } - if v.IncludeAllDependencies { - ok := object.Key("IncludeAllDependencies") - ok.Boolean(v.IncludeAllDependencies) + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) } - if len(v.IncludeFolderMembers) > 0 { - ok := object.Key("IncludeFolderMembers") - ok.String(string(v.IncludeFolderMembers)) + return nil +} + +type awsRestjson1_serializeOpSearchDashboards struct { +} + +func (*awsRestjson1_serializeOpSearchDashboards) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpSearchDashboards) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - if v.IncludeFolderMemberships { - ok := object.Key("IncludeFolderMemberships") - ok.Boolean(v.IncludeFolderMemberships) + input, ok := in.Parameters.(*SearchDashboardsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - if v.IncludePermissions { - ok := object.Key("IncludePermissions") - ok.Boolean(v.IncludePermissions) + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/dashboards") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) } - if v.IncludeTags { - ok := object.Key("IncludeTags") - ok.Boolean(v.IncludeTags) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} } - if v.ResourceArns != nil { - ok := object.Key("ResourceArns") - if err := awsRestjson1_serializeDocumentAssetBundleResourceArns(v.ResourceArns, ok); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsSearchDashboardsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentSearchDashboardsInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsSearchDashboardsInput(v *SearchDashboardsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { return err } } - if v.ValidationStrategy != nil { - ok := object.Key("ValidationStrategy") - if err := awsRestjson1_serializeDocumentAssetBundleExportJobValidationStrategy(v.ValidationStrategy, ok); err != nil { + return nil +} + +func awsRestjson1_serializeOpDocumentSearchDashboardsInput(v *SearchDashboardsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentDashboardSearchFilterList(v.Filters, ok); err != nil { return err } } + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + return nil } -type awsRestjson1_serializeOpStartAssetBundleImportJob struct { +type awsRestjson1_serializeOpSearchDataSets struct { } -func (*awsRestjson1_serializeOpStartAssetBundleImportJob) ID() string { +func (*awsRestjson1_serializeOpSearchDataSets) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpStartAssetBundleImportJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpSearchDataSets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -13308,13 +13745,13 @@ func (m *awsRestjson1_serializeOpStartAssetBundleImportJob) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StartAssetBundleImportJobInput) + input, ok := in.Parameters.(*SearchDataSetsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/asset-bundle-import-jobs/import") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/data-sets") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -13330,14 +13767,14 @@ func (m *awsRestjson1_serializeOpStartAssetBundleImportJob) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsStartAssetBundleImportJobInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsSearchDataSetsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentStartAssetBundleImportJobInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentSearchDataSetsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -13354,7 +13791,7 @@ func (m *awsRestjson1_serializeOpStartAssetBundleImportJob) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsStartAssetBundleImportJobInput(v *StartAssetBundleImportJobInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsSearchDataSetsInput(v *SearchDataSetsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -13371,50 +13808,626 @@ func awsRestjson1_serializeOpHttpBindingsStartAssetBundleImportJobInput(v *Start return nil } -func awsRestjson1_serializeOpDocumentStartAssetBundleImportJobInput(v *StartAssetBundleImportJobInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentSearchDataSetsInput(v *SearchDataSetsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.AssetBundleImportJobId != nil { - ok := object.Key("AssetBundleImportJobId") - ok.String(*v.AssetBundleImportJobId) - } - - if v.AssetBundleImportSource != nil { - ok := object.Key("AssetBundleImportSource") - if err := awsRestjson1_serializeDocumentAssetBundleImportSource(v.AssetBundleImportSource, ok); err != nil { + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentDataSetSearchFilterList(v.Filters, ok); err != nil { return err } } - if len(v.FailureAction) > 0 { - ok := object.Key("FailureAction") - ok.String(string(v.FailureAction)) + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) } - if v.OverrideParameters != nil { - ok := object.Key("OverrideParameters") - if err := awsRestjson1_serializeDocumentAssetBundleImportJobOverrideParameters(v.OverrideParameters, ok); err != nil { - return err - } + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) } - if v.OverridePermissions != nil { - ok := object.Key("OverridePermissions") - if err := awsRestjson1_serializeDocumentAssetBundleImportJobOverridePermissions(v.OverridePermissions, ok); err != nil { - return err - } - } + return nil +} - if v.OverrideTags != nil { - ok := object.Key("OverrideTags") - if err := awsRestjson1_serializeDocumentAssetBundleImportJobOverrideTags(v.OverrideTags, ok); err != nil { - return err - } +type awsRestjson1_serializeOpSearchDataSources struct { +} + +func (*awsRestjson1_serializeOpSearchDataSources) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpSearchDataSources) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - if v.OverrideValidationStrategy != nil { - ok := object.Key("OverrideValidationStrategy") + input, ok := in.Parameters.(*SearchDataSourcesInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/data-sources") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsSearchDataSourcesInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentSearchDataSourcesInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsSearchDataSourcesInput(v *SearchDataSourcesInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentSearchDataSourcesInput(v *SearchDataSourcesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentDataSourceSearchFilterList(v.Filters, ok); err != nil { + return err + } + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + return nil +} + +type awsRestjson1_serializeOpSearchFolders struct { +} + +func (*awsRestjson1_serializeOpSearchFolders) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpSearchFolders) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*SearchFoldersInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/search/folders") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsSearchFoldersInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentSearchFoldersInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsSearchFoldersInput(v *SearchFoldersInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentSearchFoldersInput(v *SearchFoldersInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentFolderSearchFilterList(v.Filters, ok); err != nil { + return err + } + } + + if v.MaxResults != nil { + ok := object.Key("MaxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + return nil +} + +type awsRestjson1_serializeOpSearchGroups struct { +} + +func (*awsRestjson1_serializeOpSearchGroups) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpSearchGroups) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*SearchGroupsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/groups-search") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsSearchGroupsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentSearchGroupsInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsSearchGroupsInput(v *SearchGroupsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.MaxResults != nil { + encoder.SetQuery("max-results").Integer(*v.MaxResults) + } + + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } + } + + if v.NextToken != nil { + encoder.SetQuery("next-token").String(*v.NextToken) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentSearchGroupsInput(v *SearchGroupsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Filters != nil { + ok := object.Key("Filters") + if err := awsRestjson1_serializeDocumentGroupSearchFilterList(v.Filters, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpStartAssetBundleExportJob struct { +} + +func (*awsRestjson1_serializeOpStartAssetBundleExportJob) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpStartAssetBundleExportJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*StartAssetBundleExportJobInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/asset-bundle-export-jobs/export") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsStartAssetBundleExportJobInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentStartAssetBundleExportJobInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsStartAssetBundleExportJobInput(v *StartAssetBundleExportJobInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentStartAssetBundleExportJobInput(v *StartAssetBundleExportJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AssetBundleExportJobId != nil { + ok := object.Key("AssetBundleExportJobId") + ok.String(*v.AssetBundleExportJobId) + } + + if v.CloudFormationOverridePropertyConfiguration != nil { + ok := object.Key("CloudFormationOverridePropertyConfiguration") + if err := awsRestjson1_serializeDocumentAssetBundleCloudFormationOverridePropertyConfiguration(v.CloudFormationOverridePropertyConfiguration, ok); err != nil { + return err + } + } + + if len(v.ExportFormat) > 0 { + ok := object.Key("ExportFormat") + ok.String(string(v.ExportFormat)) + } + + if v.IncludeAllDependencies { + ok := object.Key("IncludeAllDependencies") + ok.Boolean(v.IncludeAllDependencies) + } + + if len(v.IncludeFolderMembers) > 0 { + ok := object.Key("IncludeFolderMembers") + ok.String(string(v.IncludeFolderMembers)) + } + + if v.IncludeFolderMemberships { + ok := object.Key("IncludeFolderMemberships") + ok.Boolean(v.IncludeFolderMemberships) + } + + if v.IncludePermissions { + ok := object.Key("IncludePermissions") + ok.Boolean(v.IncludePermissions) + } + + if v.IncludeTags { + ok := object.Key("IncludeTags") + ok.Boolean(v.IncludeTags) + } + + if v.ResourceArns != nil { + ok := object.Key("ResourceArns") + if err := awsRestjson1_serializeDocumentAssetBundleResourceArns(v.ResourceArns, ok); err != nil { + return err + } + } + + if v.ValidationStrategy != nil { + ok := object.Key("ValidationStrategy") + if err := awsRestjson1_serializeDocumentAssetBundleExportJobValidationStrategy(v.ValidationStrategy, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpStartAssetBundleImportJob struct { +} + +func (*awsRestjson1_serializeOpStartAssetBundleImportJob) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpStartAssetBundleImportJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*StartAssetBundleImportJobInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/asset-bundle-import-jobs/import") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsStartAssetBundleImportJobInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentStartAssetBundleImportJobInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsStartAssetBundleImportJobInput(v *StartAssetBundleImportJobInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentStartAssetBundleImportJobInput(v *StartAssetBundleImportJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AssetBundleImportJobId != nil { + ok := object.Key("AssetBundleImportJobId") + ok.String(*v.AssetBundleImportJobId) + } + + if v.AssetBundleImportSource != nil { + ok := object.Key("AssetBundleImportSource") + if err := awsRestjson1_serializeDocumentAssetBundleImportSource(v.AssetBundleImportSource, ok); err != nil { + return err + } + } + + if len(v.FailureAction) > 0 { + ok := object.Key("FailureAction") + ok.String(string(v.FailureAction)) + } + + if v.OverrideParameters != nil { + ok := object.Key("OverrideParameters") + if err := awsRestjson1_serializeDocumentAssetBundleImportJobOverrideParameters(v.OverrideParameters, ok); err != nil { + return err + } + } + + if v.OverridePermissions != nil { + ok := object.Key("OverridePermissions") + if err := awsRestjson1_serializeDocumentAssetBundleImportJobOverridePermissions(v.OverridePermissions, ok); err != nil { + return err + } + } + + if v.OverrideTags != nil { + ok := object.Key("OverrideTags") + if err := awsRestjson1_serializeDocumentAssetBundleImportJobOverrideTags(v.OverrideTags, ok); err != nil { + return err + } + } + + if v.OverrideValidationStrategy != nil { + ok := object.Key("OverrideValidationStrategy") if err := awsRestjson1_serializeDocumentAssetBundleImportJobOverrideValidationStrategy(v.OverrideValidationStrategy, ok); err != nil { return err } @@ -13423,14 +14436,393 @@ func awsRestjson1_serializeOpDocumentStartAssetBundleImportJobInput(v *StartAsse return nil } -type awsRestjson1_serializeOpStartDashboardSnapshotJob struct { +type awsRestjson1_serializeOpStartDashboardSnapshotJob struct { +} + +func (*awsRestjson1_serializeOpStartDashboardSnapshotJob) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpStartDashboardSnapshotJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*StartDashboardSnapshotJobInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/snapshot-jobs") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentStartDashboardSnapshotJobInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobInput(v *StartDashboardSnapshotJobInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.DashboardId == nil || len(*v.DashboardId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} + } + if v.DashboardId != nil { + if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentStartDashboardSnapshotJobInput(v *StartDashboardSnapshotJobInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.SnapshotConfiguration != nil { + ok := object.Key("SnapshotConfiguration") + if err := awsRestjson1_serializeDocumentSnapshotConfiguration(v.SnapshotConfiguration, ok); err != nil { + return err + } + } + + if v.SnapshotJobId != nil { + ok := object.Key("SnapshotJobId") + ok.String(*v.SnapshotJobId) + } + + if v.UserConfiguration != nil { + ok := object.Key("UserConfiguration") + if err := awsRestjson1_serializeDocumentSnapshotUserConfiguration(v.UserConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpStartDashboardSnapshotJobSchedule struct { +} + +func (*awsRestjson1_serializeOpStartDashboardSnapshotJobSchedule) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpStartDashboardSnapshotJobSchedule) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*StartDashboardSnapshotJobScheduleInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/schedules/{ScheduleId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobScheduleInput(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 + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobScheduleInput(v *StartDashboardSnapshotJobScheduleInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.DashboardId == nil || len(*v.DashboardId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} + } + if v.DashboardId != nil { + if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { + return err + } + } + + if v.ScheduleId == nil || len(*v.ScheduleId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ScheduleId must not be empty")} + } + if v.ScheduleId != nil { + if err := encoder.SetURI("ScheduleId").String(*v.ScheduleId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpTagResource struct { +} + +func (*awsRestjson1_serializeOpTagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*TagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/resources/{ResourceArn}/tags") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsTagResourceInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentTagResourceInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsTagResourceInput(v *TagResourceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + } + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Tags != nil { + ok := object.Key("Tags") + if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpUntagResource struct { +} + +func (*awsRestjson1_serializeOpUntagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UntagResourceInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/resources/{ResourceArn}/tags") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "DELETE" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUntagResourceInput(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 + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUntagResourceInput(v *UntagResourceInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + } + if v.ResourceArn != nil { + if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + return err + } + } + + if v.TagKeys != nil { + for i := range v.TagKeys { + encoder.AddQuery("keys").String(v.TagKeys[i]) + } + } + + return nil +} + +type awsRestjson1_serializeOpUpdateAccountCustomization struct { } -func (*awsRestjson1_serializeOpStartDashboardSnapshotJob) ID() string { +func (*awsRestjson1_serializeOpUpdateAccountCustomization) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpStartDashboardSnapshotJob) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpUpdateAccountCustomization) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -13442,16 +14834,16 @@ func (m *awsRestjson1_serializeOpStartDashboardSnapshotJob) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StartDashboardSnapshotJobInput) + input, ok := in.Parameters.(*UpdateAccountCustomizationInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/snapshot-jobs") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/customizations") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "PUT" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -13464,14 +14856,14 @@ func (m *awsRestjson1_serializeOpStartDashboardSnapshotJob) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsUpdateAccountCustomizationInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentStartDashboardSnapshotJobInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentUpdateAccountCustomizationInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -13488,7 +14880,7 @@ func (m *awsRestjson1_serializeOpStartDashboardSnapshotJob) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobInput(v *StartDashboardSnapshotJobInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsUpdateAccountCustomizationInput(v *UpdateAccountCustomizationInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -13502,37 +14894,20 @@ func awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobInput(v *Start } } - if v.DashboardId == nil || len(*v.DashboardId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} - } - if v.DashboardId != nil { - if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { - return err - } + if v.Namespace != nil { + encoder.SetQuery("namespace").String(*v.Namespace) } return nil } -func awsRestjson1_serializeOpDocumentStartDashboardSnapshotJobInput(v *StartDashboardSnapshotJobInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentUpdateAccountCustomizationInput(v *UpdateAccountCustomizationInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.SnapshotConfiguration != nil { - ok := object.Key("SnapshotConfiguration") - if err := awsRestjson1_serializeDocumentSnapshotConfiguration(v.SnapshotConfiguration, ok); err != nil { - return err - } - } - - if v.SnapshotJobId != nil { - ok := object.Key("SnapshotJobId") - ok.String(*v.SnapshotJobId) - } - - if v.UserConfiguration != nil { - ok := object.Key("UserConfiguration") - if err := awsRestjson1_serializeDocumentSnapshotUserConfiguration(v.UserConfiguration, ok); err != nil { + if v.AccountCustomization != nil { + ok := object.Key("AccountCustomization") + if err := awsRestjson1_serializeDocumentAccountCustomization(v.AccountCustomization, ok); err != nil { return err } } @@ -13540,14 +14915,14 @@ func awsRestjson1_serializeOpDocumentStartDashboardSnapshotJobInput(v *StartDash return nil } -type awsRestjson1_serializeOpStartDashboardSnapshotJobSchedule struct { +type awsRestjson1_serializeOpUpdateAccountSettings struct { } -func (*awsRestjson1_serializeOpStartDashboardSnapshotJobSchedule) ID() string { +func (*awsRestjson1_serializeOpUpdateAccountSettings) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpStartDashboardSnapshotJobSchedule) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpUpdateAccountSettings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -13559,16 +14934,16 @@ func (m *awsRestjson1_serializeOpStartDashboardSnapshotJobSchedule) HandleSerial return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*StartDashboardSnapshotJobScheduleInput) + input, ok := in.Parameters.(*UpdateAccountSettingsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/dashboards/{DashboardId}/schedules/{ScheduleId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/settings") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "PUT" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -13581,7 +14956,18 @@ func (m *awsRestjson1_serializeOpStartDashboardSnapshotJobSchedule) HandleSerial return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobScheduleInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsUpdateAccountSettingsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateAccountSettingsInput(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} } @@ -13594,7 +14980,7 @@ func (m *awsRestjson1_serializeOpStartDashboardSnapshotJobSchedule) HandleSerial span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobScheduleInput(v *StartDashboardSnapshotJobScheduleInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsUpdateAccountSettingsInput(v *UpdateAccountSettingsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -13608,35 +14994,39 @@ func awsRestjson1_serializeOpHttpBindingsStartDashboardSnapshotJobScheduleInput( } } - if v.DashboardId == nil || len(*v.DashboardId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member DashboardId must not be empty")} - } - if v.DashboardId != nil { - if err := encoder.SetURI("DashboardId").String(*v.DashboardId); err != nil { - return err - } + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateAccountSettingsInput(v *UpdateAccountSettingsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.DefaultNamespace != nil { + ok := object.Key("DefaultNamespace") + ok.String(*v.DefaultNamespace) } - if v.ScheduleId == nil || len(*v.ScheduleId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ScheduleId must not be empty")} + if v.NotificationEmail != nil { + ok := object.Key("NotificationEmail") + ok.String(*v.NotificationEmail) } - if v.ScheduleId != nil { - if err := encoder.SetURI("ScheduleId").String(*v.ScheduleId); err != nil { - return err - } + + if v.TerminationProtectionEnabled { + ok := object.Key("TerminationProtectionEnabled") + ok.Boolean(v.TerminationProtectionEnabled) } return nil } -type awsRestjson1_serializeOpTagResource struct { +type awsRestjson1_serializeOpUpdateAnalysis struct { } -func (*awsRestjson1_serializeOpTagResource) ID() string { +func (*awsRestjson1_serializeOpUpdateAnalysis) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpUpdateAnalysis) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -13648,16 +15038,16 @@ func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*TagResourceInput) + input, ok := in.Parameters.(*UpdateAnalysisInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/resources/{ResourceArn}/tags") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/analyses/{AnalysisId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "POST" + request.Method = "PUT" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -13670,14 +15060,14 @@ func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsTagResourceInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsUpdateAnalysisInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentTagResourceInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentUpdateAnalysisInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -13694,16 +15084,25 @@ func (m *awsRestjson1_serializeOpTagResource) HandleSerialize(ctx context.Contex span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsTagResourceInput(v *TagResourceInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsUpdateAnalysisInput(v *UpdateAnalysisInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + if v.AnalysisId == nil || len(*v.AnalysisId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AnalysisId must not be empty")} } - if v.ResourceArn != nil { - if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + if v.AnalysisId != nil { + if err := encoder.SetURI("AnalysisId").String(*v.AnalysisId); err != nil { + return err + } + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { return err } } @@ -13711,13 +15110,44 @@ func awsRestjson1_serializeOpHttpBindingsTagResourceInput(v *TagResourceInput, e return nil } -func awsRestjson1_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentUpdateAnalysisInput(v *UpdateAnalysisInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.Tags != nil { - ok := object.Key("Tags") - if err := awsRestjson1_serializeDocumentTagList(v.Tags, ok); err != nil { + if v.Definition != nil { + ok := object.Key("Definition") + if err := awsRestjson1_serializeDocumentAnalysisDefinition(v.Definition, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.Parameters != nil { + ok := object.Key("Parameters") + if err := awsRestjson1_serializeDocumentParameters(v.Parameters, ok); err != nil { + return err + } + } + + if v.SourceEntity != nil { + ok := object.Key("SourceEntity") + if err := awsRestjson1_serializeDocumentAnalysisSourceEntity(v.SourceEntity, ok); err != nil { + return err + } + } + + if v.ThemeArn != nil { + ok := object.Key("ThemeArn") + ok.String(*v.ThemeArn) + } + + if v.ValidationStrategy != nil { + ok := object.Key("ValidationStrategy") + if err := awsRestjson1_serializeDocumentValidationStrategy(v.ValidationStrategy, ok); err != nil { return err } } @@ -13725,14 +15155,14 @@ func awsRestjson1_serializeOpDocumentTagResourceInput(v *TagResourceInput, value return nil } -type awsRestjson1_serializeOpUntagResource struct { +type awsRestjson1_serializeOpUpdateAnalysisPermissions struct { } -func (*awsRestjson1_serializeOpUntagResource) ID() string { +func (*awsRestjson1_serializeOpUpdateAnalysisPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpUpdateAnalysisPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -13744,16 +15174,16 @@ func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UntagResourceInput) + input, ok := in.Parameters.(*UpdateAnalysisPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/resources/{ResourceArn}/tags") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/analyses/{AnalysisId}/permissions") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "DELETE" + request.Method = "PUT" var restEncoder *httpbinding.Encoder if request.URL.RawPath == "" { restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) @@ -13766,7 +15196,18 @@ func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsUntagResourceInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsUpdateAnalysisPermissionsInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateAnalysisPermissionsInput(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} } @@ -13779,37 +15220,61 @@ func (m *awsRestjson1_serializeOpUntagResource) HandleSerialize(ctx context.Cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsUntagResourceInput(v *UntagResourceInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsUpdateAnalysisPermissionsInput(v *UpdateAnalysisPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.ResourceArn == nil || len(*v.ResourceArn) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member ResourceArn must not be empty")} + if v.AnalysisId == nil || len(*v.AnalysisId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AnalysisId must not be empty")} } - if v.ResourceArn != nil { - if err := encoder.SetURI("ResourceArn").String(*v.ResourceArn); err != nil { + if v.AnalysisId != nil { + if err := encoder.SetURI("AnalysisId").String(*v.AnalysisId); err != nil { return err } } - if v.TagKeys != nil { - for i := range v.TagKeys { - encoder.AddQuery("keys").String(v.TagKeys[i]) + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err } } return nil } -type awsRestjson1_serializeOpUpdateAccountCustomization struct { +func awsRestjson1_serializeOpDocumentUpdateAnalysisPermissionsInput(v *UpdateAnalysisPermissionsInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.GrantPermissions != nil { + ok := object.Key("GrantPermissions") + if err := awsRestjson1_serializeDocumentUpdateResourcePermissionList(v.GrantPermissions, ok); err != nil { + return err + } + } + + if v.RevokePermissions != nil { + ok := object.Key("RevokePermissions") + if err := awsRestjson1_serializeDocumentUpdateResourcePermissionList(v.RevokePermissions, ok); err != nil { + return err + } + } + + return nil } -func (*awsRestjson1_serializeOpUpdateAccountCustomization) ID() string { +type awsRestjson1_serializeOpUpdateBrand struct { +} + +func (*awsRestjson1_serializeOpUpdateBrand) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpUpdateAccountCustomization) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpUpdateBrand) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -13821,13 +15286,13 @@ func (m *awsRestjson1_serializeOpUpdateAccountCustomization) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateAccountCustomizationInput) + input, ok := in.Parameters.(*UpdateBrandInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/customizations") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brands/{BrandId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "PUT" @@ -13843,14 +15308,14 @@ func (m *awsRestjson1_serializeOpUpdateAccountCustomization) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsUpdateAccountCustomizationInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsUpdateBrandInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentUpdateAccountCustomizationInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentUpdateBrandInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -13867,7 +15332,7 @@ func (m *awsRestjson1_serializeOpUpdateAccountCustomization) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsUpdateAccountCustomizationInput(v *UpdateAccountCustomizationInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsUpdateBrandInput(v *UpdateBrandInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -13881,20 +15346,25 @@ func awsRestjson1_serializeOpHttpBindingsUpdateAccountCustomizationInput(v *Upda } } - if v.Namespace != nil { - encoder.SetQuery("namespace").String(*v.Namespace) + if v.BrandId == nil || len(*v.BrandId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member BrandId must not be empty")} + } + if v.BrandId != nil { + if err := encoder.SetURI("BrandId").String(*v.BrandId); err != nil { + return err + } } return nil } -func awsRestjson1_serializeOpDocumentUpdateAccountCustomizationInput(v *UpdateAccountCustomizationInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentUpdateBrandInput(v *UpdateBrandInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.AccountCustomization != nil { - ok := object.Key("AccountCustomization") - if err := awsRestjson1_serializeDocumentAccountCustomization(v.AccountCustomization, ok); err != nil { + if v.BrandDefinition != nil { + ok := object.Key("BrandDefinition") + if err := awsRestjson1_serializeDocumentBrandDefinition(v.BrandDefinition, ok); err != nil { return err } } @@ -13902,14 +15372,14 @@ func awsRestjson1_serializeOpDocumentUpdateAccountCustomizationInput(v *UpdateAc return nil } -type awsRestjson1_serializeOpUpdateAccountSettings struct { +type awsRestjson1_serializeOpUpdateBrandAssignment struct { } -func (*awsRestjson1_serializeOpUpdateAccountSettings) ID() string { +func (*awsRestjson1_serializeOpUpdateBrandAssignment) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpUpdateAccountSettings) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpUpdateBrandAssignment) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -13921,13 +15391,13 @@ func (m *awsRestjson1_serializeOpUpdateAccountSettings) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateAccountSettingsInput) + input, ok := in.Parameters.(*UpdateBrandAssignmentInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/settings") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brandassignments") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "PUT" @@ -13943,14 +15413,14 @@ func (m *awsRestjson1_serializeOpUpdateAccountSettings) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsUpdateAccountSettingsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsUpdateBrandAssignmentInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentUpdateAccountSettingsInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentUpdateBrandAssignmentInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -13967,7 +15437,7 @@ func (m *awsRestjson1_serializeOpUpdateAccountSettings) HandleSerialize(ctx cont span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsUpdateAccountSettingsInput(v *UpdateAccountSettingsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsUpdateBrandAssignmentInput(v *UpdateBrandAssignmentInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -13984,36 +15454,26 @@ func awsRestjson1_serializeOpHttpBindingsUpdateAccountSettingsInput(v *UpdateAcc return nil } -func awsRestjson1_serializeOpDocumentUpdateAccountSettingsInput(v *UpdateAccountSettingsInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentUpdateBrandAssignmentInput(v *UpdateBrandAssignmentInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.DefaultNamespace != nil { - ok := object.Key("DefaultNamespace") - ok.String(*v.DefaultNamespace) - } - - if v.NotificationEmail != nil { - ok := object.Key("NotificationEmail") - ok.String(*v.NotificationEmail) - } - - if v.TerminationProtectionEnabled { - ok := object.Key("TerminationProtectionEnabled") - ok.Boolean(v.TerminationProtectionEnabled) + if v.BrandArn != nil { + ok := object.Key("BrandArn") + ok.String(*v.BrandArn) } return nil } -type awsRestjson1_serializeOpUpdateAnalysis struct { +type awsRestjson1_serializeOpUpdateBrandPublishedVersion struct { } -func (*awsRestjson1_serializeOpUpdateAnalysis) ID() string { +func (*awsRestjson1_serializeOpUpdateBrandPublishedVersion) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpUpdateAnalysis) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpUpdateBrandPublishedVersion) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -14025,13 +15485,13 @@ func (m *awsRestjson1_serializeOpUpdateAnalysis) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateAnalysisInput) + input, ok := in.Parameters.(*UpdateBrandPublishedVersionInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/analyses/{AnalysisId}") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/brands/{BrandId}/publishedversion") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "PUT" @@ -14047,14 +15507,14 @@ func (m *awsRestjson1_serializeOpUpdateAnalysis) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsUpdateAnalysisInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsUpdateBrandPublishedVersionInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentUpdateAnalysisInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentUpdateBrandPublishedVersionInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -14071,20 +15531,11 @@ func (m *awsRestjson1_serializeOpUpdateAnalysis) HandleSerialize(ctx context.Con span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsUpdateAnalysisInput(v *UpdateAnalysisInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsUpdateBrandPublishedVersionInput(v *UpdateBrandPublishedVersionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AnalysisId == nil || len(*v.AnalysisId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member AnalysisId must not be empty")} - } - if v.AnalysisId != nil { - if err := encoder.SetURI("AnalysisId").String(*v.AnalysisId); err != nil { - return err - } - } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } @@ -14094,62 +15545,38 @@ func awsRestjson1_serializeOpHttpBindingsUpdateAnalysisInput(v *UpdateAnalysisIn } } - return nil -} - -func awsRestjson1_serializeOpDocumentUpdateAnalysisInput(v *UpdateAnalysisInput, value smithyjson.Value) error { - object := value.Object() - defer object.Close() - - if v.Definition != nil { - ok := object.Key("Definition") - if err := awsRestjson1_serializeDocumentAnalysisDefinition(v.Definition, ok); err != nil { - return err - } - } - - if v.Name != nil { - ok := object.Key("Name") - ok.String(*v.Name) + if v.BrandId == nil || len(*v.BrandId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member BrandId must not be empty")} } - - if v.Parameters != nil { - ok := object.Key("Parameters") - if err := awsRestjson1_serializeDocumentParameters(v.Parameters, ok); err != nil { + if v.BrandId != nil { + if err := encoder.SetURI("BrandId").String(*v.BrandId); err != nil { return err } } - if v.SourceEntity != nil { - ok := object.Key("SourceEntity") - if err := awsRestjson1_serializeDocumentAnalysisSourceEntity(v.SourceEntity, ok); err != nil { - return err - } - } + return nil +} - if v.ThemeArn != nil { - ok := object.Key("ThemeArn") - ok.String(*v.ThemeArn) - } +func awsRestjson1_serializeOpDocumentUpdateBrandPublishedVersionInput(v *UpdateBrandPublishedVersionInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() - if v.ValidationStrategy != nil { - ok := object.Key("ValidationStrategy") - if err := awsRestjson1_serializeDocumentValidationStrategy(v.ValidationStrategy, ok); err != nil { - return err - } + if v.VersionId != nil { + ok := object.Key("VersionId") + ok.String(*v.VersionId) } return nil } -type awsRestjson1_serializeOpUpdateAnalysisPermissions struct { +type awsRestjson1_serializeOpUpdateCustomPermissions struct { } -func (*awsRestjson1_serializeOpUpdateAnalysisPermissions) ID() string { +func (*awsRestjson1_serializeOpUpdateCustomPermissions) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpUpdateAnalysisPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpUpdateCustomPermissions) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { _, span := tracing.StartSpan(ctx, "OperationSerializer") @@ -14161,13 +15588,13 @@ func (m *awsRestjson1_serializeOpUpdateAnalysisPermissions) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*UpdateAnalysisPermissionsInput) + input, ok := in.Parameters.(*UpdateCustomPermissionsInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/analyses/{AnalysisId}/permissions") + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/custom-permissions/{CustomPermissionsName}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "PUT" @@ -14183,14 +15610,14 @@ func (m *awsRestjson1_serializeOpUpdateAnalysisPermissions) HandleSerialize(ctx return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsUpdateAnalysisPermissionsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsUpdateCustomPermissionsInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentUpdateAnalysisPermissionsInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentUpdateCustomPermissionsInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -14207,25 +15634,25 @@ func (m *awsRestjson1_serializeOpUpdateAnalysisPermissions) HandleSerialize(ctx span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsUpdateAnalysisPermissionsInput(v *UpdateAnalysisPermissionsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsUpdateCustomPermissionsInput(v *UpdateCustomPermissionsInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.AnalysisId == nil || len(*v.AnalysisId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member AnalysisId must not be empty")} + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} } - if v.AnalysisId != nil { - if err := encoder.SetURI("AnalysisId").String(*v.AnalysisId); err != nil { + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { return err } } - if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + if v.CustomPermissionsName == nil || len(*v.CustomPermissionsName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member CustomPermissionsName must not be empty")} } - if v.AwsAccountId != nil { - if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + if v.CustomPermissionsName != nil { + if err := encoder.SetURI("CustomPermissionsName").String(*v.CustomPermissionsName); err != nil { return err } } @@ -14233,20 +15660,13 @@ func awsRestjson1_serializeOpHttpBindingsUpdateAnalysisPermissionsInput(v *Updat return nil } -func awsRestjson1_serializeOpDocumentUpdateAnalysisPermissionsInput(v *UpdateAnalysisPermissionsInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentUpdateCustomPermissionsInput(v *UpdateCustomPermissionsInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.GrantPermissions != nil { - ok := object.Key("GrantPermissions") - if err := awsRestjson1_serializeDocumentUpdateResourcePermissionList(v.GrantPermissions, ok); err != nil { - return err - } - } - - if v.RevokePermissions != nil { - ok := object.Key("RevokePermissions") - if err := awsRestjson1_serializeDocumentUpdateResourcePermissionList(v.RevokePermissions, ok); err != nil { + if v.Capabilities != nil { + ok := object.Key("Capabilities") + if err := awsRestjson1_serializeDocumentCapabilities(v.Capabilities, ok); err != nil { return err } } @@ -17607,7 +19027,149 @@ func (m *awsRestjson1_serializeOpUpdateUser) HandleSerialize(ctx context.Context span.End() return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsUpdateUserInput(v *UpdateUserInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsUpdateUserInput(v *UpdateUserInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.AwsAccountId == nil || len(*v.AwsAccountId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member AwsAccountId must not be empty")} + } + if v.AwsAccountId != nil { + if err := encoder.SetURI("AwsAccountId").String(*v.AwsAccountId); err != nil { + return err + } + } + + if v.Namespace == nil || len(*v.Namespace) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member Namespace must not be empty")} + } + if v.Namespace != nil { + if err := encoder.SetURI("Namespace").String(*v.Namespace); err != nil { + return err + } + } + + if v.UserName == nil || len(*v.UserName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member UserName must not be empty")} + } + if v.UserName != nil { + if err := encoder.SetURI("UserName").String(*v.UserName); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateUserInput(v *UpdateUserInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CustomFederationProviderUrl != nil { + ok := object.Key("CustomFederationProviderUrl") + ok.String(*v.CustomFederationProviderUrl) + } + + if v.CustomPermissionsName != nil { + ok := object.Key("CustomPermissionsName") + ok.String(*v.CustomPermissionsName) + } + + if v.Email != nil { + ok := object.Key("Email") + ok.String(*v.Email) + } + + if v.ExternalLoginFederationProviderType != nil { + ok := object.Key("ExternalLoginFederationProviderType") + ok.String(*v.ExternalLoginFederationProviderType) + } + + if v.ExternalLoginId != nil { + ok := object.Key("ExternalLoginId") + ok.String(*v.ExternalLoginId) + } + + if len(v.Role) > 0 { + ok := object.Key("Role") + ok.String(string(v.Role)) + } + + if v.UnapplyCustomPermissions { + ok := object.Key("UnapplyCustomPermissions") + ok.Boolean(v.UnapplyCustomPermissions) + } + + return nil +} + +type awsRestjson1_serializeOpUpdateUserCustomPermission struct { +} + +func (*awsRestjson1_serializeOpUpdateUserCustomPermission) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateUserCustomPermission) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*UpdateUserCustomPermissionInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/accounts/{AwsAccountId}/namespaces/{Namespace}/users/{UserName}/custom-permission") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUpdateUserCustomPermissionInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateUserCustomPermissionInput(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} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUpdateUserCustomPermissionInput(v *UpdateUserCustomPermissionInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -17642,45 +19204,15 @@ func awsRestjson1_serializeOpHttpBindingsUpdateUserInput(v *UpdateUserInput, enc return nil } -func awsRestjson1_serializeOpDocumentUpdateUserInput(v *UpdateUserInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentUpdateUserCustomPermissionInput(v *UpdateUserCustomPermissionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if v.CustomFederationProviderUrl != nil { - ok := object.Key("CustomFederationProviderUrl") - ok.String(*v.CustomFederationProviderUrl) - } - if v.CustomPermissionsName != nil { ok := object.Key("CustomPermissionsName") ok.String(*v.CustomPermissionsName) } - if v.Email != nil { - ok := object.Key("Email") - ok.String(*v.Email) - } - - if v.ExternalLoginFederationProviderType != nil { - ok := object.Key("ExternalLoginFederationProviderType") - ok.String(*v.ExternalLoginFederationProviderType) - } - - if v.ExternalLoginId != nil { - ok := object.Key("ExternalLoginId") - ok.String(*v.ExternalLoginId) - } - - if len(v.Role) > 0 { - ok := object.Key("Role") - ok.String(string(v.Role)) - } - - if v.UnapplyCustomPermissions { - ok := object.Key("UnapplyCustomPermissions") - ok.Boolean(v.UnapplyCustomPermissions) - } - return nil } @@ -18379,6 +19911,27 @@ func awsRestjson1_serializeDocumentAnswerIds(v []string, value smithyjson.Value) return nil } +func awsRestjson1_serializeDocumentApplicationTheme(v *types.ApplicationTheme, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BrandColorPalette != nil { + ok := object.Key("BrandColorPalette") + if err := awsRestjson1_serializeDocumentBrandColorPalette(v.BrandColorPalette, ok); err != nil { + return err + } + } + + if v.BrandElementStyle != nil { + ok := object.Key("BrandElementStyle") + if err := awsRestjson1_serializeDocumentBrandElementStyle(v.BrandElementStyle, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentArcAxisConfiguration(v *types.ArcAxisConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -21249,6 +22802,121 @@ func awsRestjson1_serializeDocumentBoxPlotVisual(v *types.BoxPlotVisual, value s return nil } +func awsRestjson1_serializeDocumentBrandColorPalette(v *types.BrandColorPalette, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Accent != nil { + ok := object.Key("Accent") + if err := awsRestjson1_serializeDocumentPalette(v.Accent, ok); err != nil { + return err + } + } + + if v.Danger != nil { + ok := object.Key("Danger") + if err := awsRestjson1_serializeDocumentPalette(v.Danger, ok); err != nil { + return err + } + } + + if v.Dimension != nil { + ok := object.Key("Dimension") + if err := awsRestjson1_serializeDocumentPalette(v.Dimension, ok); err != nil { + return err + } + } + + if v.Info != nil { + ok := object.Key("Info") + if err := awsRestjson1_serializeDocumentPalette(v.Info, ok); err != nil { + return err + } + } + + if v.Measure != nil { + ok := object.Key("Measure") + if err := awsRestjson1_serializeDocumentPalette(v.Measure, ok); err != nil { + return err + } + } + + if v.Primary != nil { + ok := object.Key("Primary") + if err := awsRestjson1_serializeDocumentPalette(v.Primary, ok); err != nil { + return err + } + } + + if v.Secondary != nil { + ok := object.Key("Secondary") + if err := awsRestjson1_serializeDocumentPalette(v.Secondary, ok); err != nil { + return err + } + } + + if v.Success != nil { + ok := object.Key("Success") + if err := awsRestjson1_serializeDocumentPalette(v.Success, ok); err != nil { + return err + } + } + + if v.Warning != nil { + ok := object.Key("Warning") + if err := awsRestjson1_serializeDocumentPalette(v.Warning, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentBrandDefinition(v *types.BrandDefinition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ApplicationTheme != nil { + ok := object.Key("ApplicationTheme") + if err := awsRestjson1_serializeDocumentApplicationTheme(v.ApplicationTheme, ok); err != nil { + return err + } + } + + if v.BrandName != nil { + ok := object.Key("BrandName") + ok.String(*v.BrandName) + } + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.LogoConfiguration != nil { + ok := object.Key("LogoConfiguration") + if err := awsRestjson1_serializeDocumentLogoConfiguration(v.LogoConfiguration, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentBrandElementStyle(v *types.BrandElementStyle, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.NavbarStyle != nil { + ok := object.Key("NavbarStyle") + if err := awsRestjson1_serializeDocumentNavbarStyle(v.NavbarStyle, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentCalculatedColumn(v *types.CalculatedColumn, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -21349,6 +23017,98 @@ func awsRestjson1_serializeDocumentCalculatedMeasureField(v *types.CalculatedMea return nil } +func awsRestjson1_serializeDocumentCapabilities(v *types.Capabilities, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.AddOrRunAnomalyDetectionForAnalyses) > 0 { + ok := object.Key("AddOrRunAnomalyDetectionForAnalyses") + ok.String(string(v.AddOrRunAnomalyDetectionForAnalyses)) + } + + if len(v.CreateAndUpdateDashboardEmailReports) > 0 { + ok := object.Key("CreateAndUpdateDashboardEmailReports") + ok.String(string(v.CreateAndUpdateDashboardEmailReports)) + } + + if len(v.CreateAndUpdateDatasets) > 0 { + ok := object.Key("CreateAndUpdateDatasets") + ok.String(string(v.CreateAndUpdateDatasets)) + } + + if len(v.CreateAndUpdateDataSources) > 0 { + ok := object.Key("CreateAndUpdateDataSources") + ok.String(string(v.CreateAndUpdateDataSources)) + } + + if len(v.CreateAndUpdateThemes) > 0 { + ok := object.Key("CreateAndUpdateThemes") + ok.String(string(v.CreateAndUpdateThemes)) + } + + if len(v.CreateAndUpdateThresholdAlerts) > 0 { + ok := object.Key("CreateAndUpdateThresholdAlerts") + ok.String(string(v.CreateAndUpdateThresholdAlerts)) + } + + if len(v.CreateSharedFolders) > 0 { + ok := object.Key("CreateSharedFolders") + ok.String(string(v.CreateSharedFolders)) + } + + if len(v.CreateSPICEDataset) > 0 { + ok := object.Key("CreateSPICEDataset") + ok.String(string(v.CreateSPICEDataset)) + } + + if len(v.ExportToCsv) > 0 { + ok := object.Key("ExportToCsv") + ok.String(string(v.ExportToCsv)) + } + + if len(v.ExportToExcel) > 0 { + ok := object.Key("ExportToExcel") + ok.String(string(v.ExportToExcel)) + } + + if len(v.RenameSharedFolders) > 0 { + ok := object.Key("RenameSharedFolders") + ok.String(string(v.RenameSharedFolders)) + } + + if len(v.ShareAnalyses) > 0 { + ok := object.Key("ShareAnalyses") + ok.String(string(v.ShareAnalyses)) + } + + if len(v.ShareDashboards) > 0 { + ok := object.Key("ShareDashboards") + ok.String(string(v.ShareDashboards)) + } + + if len(v.ShareDatasets) > 0 { + ok := object.Key("ShareDatasets") + ok.String(string(v.ShareDatasets)) + } + + if len(v.ShareDataSources) > 0 { + ok := object.Key("ShareDataSources") + ok.String(string(v.ShareDataSources)) + } + + if len(v.SubscribeDashboardEmailReports) > 0 { + ok := object.Key("SubscribeDashboardEmailReports") + ok.String(string(v.SubscribeDashboardEmailReports)) + } + + if len(v.ViewAccountSPICECapacity) > 0 { + ok := object.Key("ViewAccountSPICECapacity") + ok.String(string(v.ViewAccountSPICECapacity)) + } + + return nil +} + func awsRestjson1_serializeDocumentCascadingControlConfiguration(v *types.CascadingControlConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -29294,6 +31054,54 @@ func awsRestjson1_serializeDocumentIdentityNameList(v []string, value smithyjson return nil } +func awsRestjson1_serializeDocumentImageConfiguration(v *types.ImageConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Source != nil { + ok := object.Key("Source") + if err := awsRestjson1_serializeDocumentImageSource(v.Source, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentImageSetConfiguration(v *types.ImageSetConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Original != nil { + ok := object.Key("Original") + if err := awsRestjson1_serializeDocumentImageConfiguration(v.Original, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentImageSource(v types.ImageSource, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + switch uv := v.(type) { + case *types.ImageSourceMemberPublicUrl: + av := object.Key("PublicUrl") + av.String(uv.Value) + + case *types.ImageSourceMemberS3Uri: + av := object.Key("S3Uri") + av.String(uv.Value) + + default: + return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) + + } + return nil +} + func awsRestjson1_serializeDocumentIncrementalRefresh(v *types.IncrementalRefresh, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -30797,6 +32605,46 @@ func awsRestjson1_serializeDocumentLogicalTableSource(v *types.LogicalTableSourc return nil } +func awsRestjson1_serializeDocumentLogoConfiguration(v *types.LogoConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AltText != nil { + ok := object.Key("AltText") + ok.String(*v.AltText) + } + + if v.LogoSet != nil { + ok := object.Key("LogoSet") + if err := awsRestjson1_serializeDocumentLogoSetConfiguration(v.LogoSet, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentLogoSetConfiguration(v *types.LogoSetConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Favicon != nil { + ok := object.Key("Favicon") + if err := awsRestjson1_serializeDocumentImageSetConfiguration(v.Favicon, ok); err != nil { + return err + } + } + + if v.Primary != nil { + ok := object.Key("Primary") + if err := awsRestjson1_serializeDocumentImageSetConfiguration(v.Primary, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentLongFormatText(v *types.LongFormatText, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -31188,6 +33036,27 @@ func awsRestjson1_serializeDocumentNamedEntityRef(v *types.NamedEntityRef, value return nil } +func awsRestjson1_serializeDocumentNavbarStyle(v *types.NavbarStyle, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ContextualNavbar != nil { + ok := object.Key("ContextualNavbar") + if err := awsRestjson1_serializeDocumentPalette(v.ContextualNavbar, ok); err != nil { + return err + } + } + + if v.GlobalNavbar != nil { + ok := object.Key("GlobalNavbar") + if err := awsRestjson1_serializeDocumentPalette(v.GlobalNavbar, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentNegativeFormat(v *types.NegativeFormat, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -31826,6 +33695,23 @@ func awsRestjson1_serializeDocumentPaginationConfiguration(v *types.PaginationCo return nil } +func awsRestjson1_serializeDocumentPalette(v *types.Palette, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Background != nil { + ok := object.Key("Background") + ok.String(*v.Background) + } + + if v.Foreground != nil { + ok := object.Key("Foreground") + ok.String(*v.Foreground) + } + + return nil +} + func awsRestjson1_serializeDocumentPanelConfiguration(v *types.PanelConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/quicksight/snapshot/api_op_CreateBrand.go.snap b/service/quicksight/snapshot/api_op_CreateBrand.go.snap new file mode 100644 index 00000000000..14f8fe7eef9 --- /dev/null +++ b/service/quicksight/snapshot/api_op_CreateBrand.go.snap @@ -0,0 +1,41 @@ +CreateBrand + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_CreateCustomPermissions.go.snap b/service/quicksight/snapshot/api_op_CreateCustomPermissions.go.snap new file mode 100644 index 00000000000..ded88574941 --- /dev/null +++ b/service/quicksight/snapshot/api_op_CreateCustomPermissions.go.snap @@ -0,0 +1,41 @@ +CreateCustomPermissions + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_DeleteBrand.go.snap b/service/quicksight/snapshot/api_op_DeleteBrand.go.snap new file mode 100644 index 00000000000..b2ece5b5fd6 --- /dev/null +++ b/service/quicksight/snapshot/api_op_DeleteBrand.go.snap @@ -0,0 +1,41 @@ +DeleteBrand + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_DeleteBrandAssignment.go.snap b/service/quicksight/snapshot/api_op_DeleteBrandAssignment.go.snap new file mode 100644 index 00000000000..1a4c181ce4a --- /dev/null +++ b/service/quicksight/snapshot/api_op_DeleteBrandAssignment.go.snap @@ -0,0 +1,41 @@ +DeleteBrandAssignment + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_DeleteCustomPermissions.go.snap b/service/quicksight/snapshot/api_op_DeleteCustomPermissions.go.snap new file mode 100644 index 00000000000..2959ff5b402 --- /dev/null +++ b/service/quicksight/snapshot/api_op_DeleteCustomPermissions.go.snap @@ -0,0 +1,41 @@ +DeleteCustomPermissions + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_DeleteUserCustomPermission.go.snap b/service/quicksight/snapshot/api_op_DeleteUserCustomPermission.go.snap new file mode 100644 index 00000000000..c9dd2a2e0b0 --- /dev/null +++ b/service/quicksight/snapshot/api_op_DeleteUserCustomPermission.go.snap @@ -0,0 +1,41 @@ +DeleteUserCustomPermission + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_DescribeBrand.go.snap b/service/quicksight/snapshot/api_op_DescribeBrand.go.snap new file mode 100644 index 00000000000..26983632eee --- /dev/null +++ b/service/quicksight/snapshot/api_op_DescribeBrand.go.snap @@ -0,0 +1,41 @@ +DescribeBrand + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_DescribeBrandAssignment.go.snap b/service/quicksight/snapshot/api_op_DescribeBrandAssignment.go.snap new file mode 100644 index 00000000000..0825fb129e1 --- /dev/null +++ b/service/quicksight/snapshot/api_op_DescribeBrandAssignment.go.snap @@ -0,0 +1,41 @@ +DescribeBrandAssignment + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_DescribeBrandPublishedVersion.go.snap b/service/quicksight/snapshot/api_op_DescribeBrandPublishedVersion.go.snap new file mode 100644 index 00000000000..03140c01a8e --- /dev/null +++ b/service/quicksight/snapshot/api_op_DescribeBrandPublishedVersion.go.snap @@ -0,0 +1,41 @@ +DescribeBrandPublishedVersion + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_DescribeCustomPermissions.go.snap b/service/quicksight/snapshot/api_op_DescribeCustomPermissions.go.snap new file mode 100644 index 00000000000..e31db0f19a6 --- /dev/null +++ b/service/quicksight/snapshot/api_op_DescribeCustomPermissions.go.snap @@ -0,0 +1,41 @@ +DescribeCustomPermissions + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_ListBrands.go.snap b/service/quicksight/snapshot/api_op_ListBrands.go.snap new file mode 100644 index 00000000000..cc2ea825b85 --- /dev/null +++ b/service/quicksight/snapshot/api_op_ListBrands.go.snap @@ -0,0 +1,41 @@ +ListBrands + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_ListCustomPermissions.go.snap b/service/quicksight/snapshot/api_op_ListCustomPermissions.go.snap new file mode 100644 index 00000000000..07402af9faf --- /dev/null +++ b/service/quicksight/snapshot/api_op_ListCustomPermissions.go.snap @@ -0,0 +1,41 @@ +ListCustomPermissions + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_UpdateBrand.go.snap b/service/quicksight/snapshot/api_op_UpdateBrand.go.snap new file mode 100644 index 00000000000..068096cdb2b --- /dev/null +++ b/service/quicksight/snapshot/api_op_UpdateBrand.go.snap @@ -0,0 +1,41 @@ +UpdateBrand + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_UpdateBrandAssignment.go.snap b/service/quicksight/snapshot/api_op_UpdateBrandAssignment.go.snap new file mode 100644 index 00000000000..ff87a0fa660 --- /dev/null +++ b/service/quicksight/snapshot/api_op_UpdateBrandAssignment.go.snap @@ -0,0 +1,41 @@ +UpdateBrandAssignment + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_UpdateBrandPublishedVersion.go.snap b/service/quicksight/snapshot/api_op_UpdateBrandPublishedVersion.go.snap new file mode 100644 index 00000000000..9ee9f6ffda0 --- /dev/null +++ b/service/quicksight/snapshot/api_op_UpdateBrandPublishedVersion.go.snap @@ -0,0 +1,41 @@ +UpdateBrandPublishedVersion + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_UpdateCustomPermissions.go.snap b/service/quicksight/snapshot/api_op_UpdateCustomPermissions.go.snap new file mode 100644 index 00000000000..bc0db4c468b --- /dev/null +++ b/service/quicksight/snapshot/api_op_UpdateCustomPermissions.go.snap @@ -0,0 +1,41 @@ +UpdateCustomPermissions + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot/api_op_UpdateUserCustomPermission.go.snap b/service/quicksight/snapshot/api_op_UpdateUserCustomPermission.go.snap new file mode 100644 index 00000000000..33d76eade01 --- /dev/null +++ b/service/quicksight/snapshot/api_op_UpdateUserCustomPermission.go.snap @@ -0,0 +1,41 @@ +UpdateUserCustomPermission + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/quicksight/snapshot_test.go b/service/quicksight/snapshot_test.go index d9201f737c8..177fc3f539d 100644 --- a/service/quicksight/snapshot_test.go +++ b/service/quicksight/snapshot_test.go @@ -134,6 +134,30 @@ func TestCheckSnapshot_CreateAnalysis(t *testing.T) { } } +func TestCheckSnapshot_CreateBrand(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateBrand(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateBrand") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_CreateCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "CreateCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_CreateDashboard(t *testing.T) { svc := New(Options{}) _, err := svc.CreateDashboard(context.Background(), nil, func(o *Options) { @@ -398,6 +422,42 @@ func TestCheckSnapshot_DeleteAnalysis(t *testing.T) { } } +func TestCheckSnapshot_DeleteBrand(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteBrand(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteBrand") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DeleteBrandAssignment(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteBrandAssignment(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteBrandAssignment") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DeleteCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteDashboard(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteDashboard(context.Background(), nil, func(o *Options) { @@ -662,6 +722,18 @@ func TestCheckSnapshot_DeleteUserByPrincipalId(t *testing.T) { } } +func TestCheckSnapshot_DeleteUserCustomPermission(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteUserCustomPermission(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DeleteUserCustomPermission") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DeleteVPCConnection(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteVPCConnection(context.Background(), nil, func(o *Options) { @@ -770,6 +842,54 @@ func TestCheckSnapshot_DescribeAssetBundleImportJob(t *testing.T) { } } +func TestCheckSnapshot_DescribeBrand(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeBrand(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeBrand") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DescribeBrandAssignment(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeBrandAssignment(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeBrandAssignment") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DescribeBrandPublishedVersion(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeBrandPublishedVersion(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeBrandPublishedVersion") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_DescribeCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "DescribeCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DescribeDashboard(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeDashboard(context.Background(), nil, func(o *Options) { @@ -1286,6 +1406,30 @@ func TestCheckSnapshot_ListAssetBundleImportJobs(t *testing.T) { } } +func TestCheckSnapshot_ListBrands(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListBrands(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListBrands") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_ListCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ListCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ListDashboards(t *testing.T) { svc := New(Options{}) _, err := svc.ListDashboards(context.Background(), nil, func(o *Options) { @@ -1862,6 +2006,54 @@ func TestCheckSnapshot_UpdateAnalysisPermissions(t *testing.T) { } } +func TestCheckSnapshot_UpdateBrand(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateBrand(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateBrand") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_UpdateBrandAssignment(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateBrandAssignment(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateBrandAssignment") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_UpdateBrandPublishedVersion(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateBrandPublishedVersion(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateBrandPublishedVersion") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestCheckSnapshot_UpdateCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateDashboard(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateDashboard(context.Background(), nil, func(o *Options) { @@ -2222,6 +2414,18 @@ func TestCheckSnapshot_UpdateUser(t *testing.T) { } } +func TestCheckSnapshot_UpdateUserCustomPermission(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateUserCustomPermission(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "UpdateUserCustomPermission") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_UpdateVPCConnection(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateVPCConnection(context.Background(), nil, func(o *Options) { @@ -2305,6 +2509,30 @@ func TestUpdateSnapshot_CreateAnalysis(t *testing.T) { } } +func TestUpdateSnapshot_CreateBrand(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateBrand(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateBrand") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_CreateCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.CreateCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "CreateCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_CreateDashboard(t *testing.T) { svc := New(Options{}) _, err := svc.CreateDashboard(context.Background(), nil, func(o *Options) { @@ -2569,6 +2797,42 @@ func TestUpdateSnapshot_DeleteAnalysis(t *testing.T) { } } +func TestUpdateSnapshot_DeleteBrand(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteBrand(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteBrand") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DeleteBrandAssignment(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteBrandAssignment(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteBrandAssignment") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DeleteCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteDashboard(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteDashboard(context.Background(), nil, func(o *Options) { @@ -2833,6 +3097,18 @@ func TestUpdateSnapshot_DeleteUserByPrincipalId(t *testing.T) { } } +func TestUpdateSnapshot_DeleteUserCustomPermission(t *testing.T) { + svc := New(Options{}) + _, err := svc.DeleteUserCustomPermission(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DeleteUserCustomPermission") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DeleteVPCConnection(t *testing.T) { svc := New(Options{}) _, err := svc.DeleteVPCConnection(context.Background(), nil, func(o *Options) { @@ -2941,6 +3217,54 @@ func TestUpdateSnapshot_DescribeAssetBundleImportJob(t *testing.T) { } } +func TestUpdateSnapshot_DescribeBrand(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeBrand(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeBrand") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DescribeBrandAssignment(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeBrandAssignment(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeBrandAssignment") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DescribeBrandPublishedVersion(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeBrandPublishedVersion(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeBrandPublishedVersion") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_DescribeCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.DescribeCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "DescribeCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DescribeDashboard(t *testing.T) { svc := New(Options{}) _, err := svc.DescribeDashboard(context.Background(), nil, func(o *Options) { @@ -3457,6 +3781,30 @@ func TestUpdateSnapshot_ListAssetBundleImportJobs(t *testing.T) { } } +func TestUpdateSnapshot_ListBrands(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListBrands(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListBrands") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_ListCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.ListCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ListCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ListDashboards(t *testing.T) { svc := New(Options{}) _, err := svc.ListDashboards(context.Background(), nil, func(o *Options) { @@ -4033,6 +4381,54 @@ func TestUpdateSnapshot_UpdateAnalysisPermissions(t *testing.T) { } } +func TestUpdateSnapshot_UpdateBrand(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateBrand(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateBrand") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_UpdateBrandAssignment(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateBrandAssignment(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateBrandAssignment") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_UpdateBrandPublishedVersion(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateBrandPublishedVersion(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateBrandPublishedVersion") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + +func TestUpdateSnapshot_UpdateCustomPermissions(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateCustomPermissions(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateCustomPermissions") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateDashboard(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateDashboard(context.Background(), nil, func(o *Options) { @@ -4393,6 +4789,18 @@ func TestUpdateSnapshot_UpdateUser(t *testing.T) { } } +func TestUpdateSnapshot_UpdateUserCustomPermission(t *testing.T) { + svc := New(Options{}) + _, err := svc.UpdateUserCustomPermission(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "UpdateUserCustomPermission") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_UpdateVPCConnection(t *testing.T) { svc := New(Options{}) _, err := svc.UpdateVPCConnection(context.Background(), nil, func(o *Options) { diff --git a/service/quicksight/types/enums.go b/service/quicksight/types/enums.go index 5f1f8575dcf..650e956b25b 100644 --- a/service/quicksight/types/enums.go +++ b/service/quicksight/types/enums.go @@ -715,6 +715,69 @@ func (BoxPlotFillStyle) Values() []BoxPlotFillStyle { } } +type BrandStatus string + +// Enum values for BrandStatus +const ( + BrandStatusCreateInProgress BrandStatus = "CREATE_IN_PROGRESS" + BrandStatusCreateSucceeded BrandStatus = "CREATE_SUCCEEDED" + BrandStatusCreateFailed BrandStatus = "CREATE_FAILED" + BrandStatusDeleteInProgress BrandStatus = "DELETE_IN_PROGRESS" + BrandStatusDeleteFailed BrandStatus = "DELETE_FAILED" +) + +// Values returns all known values for BrandStatus. 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 (BrandStatus) Values() []BrandStatus { + return []BrandStatus{ + "CREATE_IN_PROGRESS", + "CREATE_SUCCEEDED", + "CREATE_FAILED", + "DELETE_IN_PROGRESS", + "DELETE_FAILED", + } +} + +type BrandVersionStatus string + +// Enum values for BrandVersionStatus +const ( + BrandVersionStatusCreateInProgress BrandVersionStatus = "CREATE_IN_PROGRESS" + BrandVersionStatusCreateSucceeded BrandVersionStatus = "CREATE_SUCCEEDED" + BrandVersionStatusCreateFailed BrandVersionStatus = "CREATE_FAILED" +) + +// Values returns all known values for BrandVersionStatus. 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 (BrandVersionStatus) Values() []BrandVersionStatus { + return []BrandVersionStatus{ + "CREATE_IN_PROGRESS", + "CREATE_SUCCEEDED", + "CREATE_FAILED", + } +} + +type CapabilityState string + +// Enum values for CapabilityState +const ( + CapabilityStateDeny CapabilityState = "DENY" +) + +// Values returns all known values for CapabilityState. 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 (CapabilityState) Values() []CapabilityState { + return []CapabilityState{ + "DENY", + } +} + type CategoricalAggregationFunction string // Enum values for CategoricalAggregationFunction diff --git a/service/quicksight/types/errors.go b/service/quicksight/types/errors.go index 5eb4fdffd84..824845222d1 100644 --- a/service/quicksight/types/errors.go +++ b/service/quicksight/types/errors.go @@ -213,6 +213,32 @@ func (e *InternalFailureException) ErrorCode() string { } func (e *InternalFailureException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } +// An internal service exception. +type InternalServerException struct { + Message *string + + ErrorCodeOverride *string + + noSmithyDocumentSerde +} + +func (e *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *InternalServerException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *InternalServerException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "InternalServerException" + } + return *e.ErrorCodeOverride +} +func (e *InternalServerException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } + // The NextToken value isn't valid. type InvalidNextTokenException struct { Message *string diff --git a/service/quicksight/types/types.go b/service/quicksight/types/types.go index f224c602f79..54273c30cbc 100644 --- a/service/quicksight/types/types.go +++ b/service/quicksight/types/types.go @@ -602,6 +602,18 @@ type AnonymousUserSnapshotJobResult struct { noSmithyDocumentSerde } +// The application theme. +type ApplicationTheme struct { + + // The color palette. + BrandColorPalette *BrandColorPalette + + // The element style. + BrandElementStyle *BrandElementStyle + + noSmithyDocumentSerde +} + // The arc axis configuration of a GaugeChartVisual . type ArcAxisConfiguration struct { @@ -2344,6 +2356,130 @@ type BoxPlotVisual struct { noSmithyDocumentSerde } +// The color palette. +type BrandColorPalette struct { + + // The color that is used for accent elements. + Accent *Palette + + // The color that is used for danger elements. + Danger *Palette + + // The color that is used for dimension elements. + Dimension *Palette + + // The color that is used for info elements. + Info *Palette + + // The color that is used for measure elements. + Measure *Palette + + // The primary color. + Primary *Palette + + // The secondary color. + Secondary *Palette + + // The color that is used for success elements. + Success *Palette + + // The color that is used for warning elements. + Warning *Palette + + noSmithyDocumentSerde +} + +// The definition of the brand. +type BrandDefinition struct { + + // The name of the brand. + // + // This member is required. + BrandName *string + + // The application theme of the brand. + ApplicationTheme *ApplicationTheme + + // The description of the brand. + Description *string + + // The logo configuration of the brand. + LogoConfiguration *LogoConfiguration + + noSmithyDocumentSerde +} + +// The details of the brand. +type BrandDetail struct { + + // The ID of the Amazon QuickSight brand. + // + // This member is required. + BrandId *string + + // The Amazon Resource Name (ARN) of the brand. + Arn *string + + // The status of the brand. + BrandStatus BrandStatus + + // The time that the brand was created. + CreatedTime *time.Time + + // A list of errors that occurred during the most recent brand operation. + Errors []string + + // The last time the brand was updated. + LastUpdatedTime *time.Time + + // The logo details. + Logo *Logo + + // The ID of the version. + VersionId *string + + // The status of the version. + VersionStatus BrandVersionStatus + + noSmithyDocumentSerde +} + +// The element style. +type BrandElementStyle struct { + + // The navigation bar style. + NavbarStyle *NavbarStyle + + noSmithyDocumentSerde +} + +// A summary of the brand. +type BrandSummary struct { + + // The Amazon Resource Name (ARN) of the brand. + Arn *string + + // The ID of the Amazon QuickSight brand. + BrandId *string + + // The name of the brand. + BrandName *string + + // The status of the brand. + BrandStatus BrandStatus + + // The time that the brand was created. + CreatedTime *time.Time + + // The description of the brand. + Description *string + + // The time when the brand was last updated. + LastUpdatedTime *time.Time + + noSmithyDocumentSerde +} + // A calculated column for a dataset. type CalculatedColumn struct { @@ -2404,6 +2540,63 @@ type CalculatedMeasureField struct { noSmithyDocumentSerde } +// A set of actions that correspond to Amazon QuickSight permissions. +type Capabilities struct { + + // The ability to add or run anomaly detection. + AddOrRunAnomalyDetectionForAnalyses CapabilityState + + // The ability to create and update email reports. + CreateAndUpdateDashboardEmailReports CapabilityState + + // The ability to create and update data sources. + CreateAndUpdateDataSources CapabilityState + + // The ability to create and update datasets. + CreateAndUpdateDatasets CapabilityState + + // The ability to export to Create and Update themes. + CreateAndUpdateThemes CapabilityState + + // The ability to create and update threshold alerts. + CreateAndUpdateThresholdAlerts CapabilityState + + // The ability to create a SPICE dataset. + CreateSPICEDataset CapabilityState + + // The ability to create shared folders. + CreateSharedFolders CapabilityState + + // The ability to export to CSV files. + ExportToCsv CapabilityState + + // The ability to export to Excel files. + ExportToExcel CapabilityState + + // The ability to rename shared folders. + RenameSharedFolders CapabilityState + + // The ability to share analyses. + ShareAnalyses CapabilityState + + // The ability to share dashboards. + ShareDashboards CapabilityState + + // The ability to share data sources. + ShareDataSources CapabilityState + + // The ability to share datasets. + ShareDatasets CapabilityState + + // The ability to subscribe to email reports. + SubscribeDashboardEmailReports CapabilityState + + // The ability to view account SPICE capacity. + ViewAccountSPICECapacity CapabilityState + + noSmithyDocumentSerde +} + // The values that are displayed in a control can be configured to only show // values that are valid based on what's selected in other controls. type CascadingControlConfiguration struct { @@ -3615,6 +3808,21 @@ type CustomParameterValues struct { noSmithyDocumentSerde } +// The custom permissions profile. +type CustomPermissions struct { + + // The Amazon Resource Name (ARN) of the custom permissions profile. + Arn *string + + // A set of actions in the custom permissions profile. + Capabilities *Capabilities + + // The name of the custom permissions profile. + CustomPermissionsName *string + + noSmithyDocumentSerde +} + // A physical table type built from the results of the custom SQL query. type CustomSql struct { @@ -8080,6 +8288,83 @@ type IdentityCenterConfiguration struct { noSmithyDocumentSerde } +// The logo image. +type Image struct { + + // The URL that points to the generated logo image. + GeneratedImageUrl *string + + // The source of the logo image. + Source ImageSource + + noSmithyDocumentSerde +} + +// The logo image configuration. +type ImageConfiguration struct { + + // The source of the image. + Source ImageSource + + noSmithyDocumentSerde +} + +// The image set. +type ImageSet struct { + + // The original image. + // + // This member is required. + Original *Image + + // The image with the height set to 32 pixels. + Height32 *Image + + // The image with the height set to 64 pixels. + Height64 *Image + + noSmithyDocumentSerde +} + +// The image set configuration. +type ImageSetConfiguration struct { + + // The original image. + // + // This member is required. + Original *ImageConfiguration + + noSmithyDocumentSerde +} + +// The source of the image. +// +// The following types satisfy this interface: +// +// ImageSourceMemberPublicUrl +// ImageSourceMemberS3Uri +type ImageSource interface { + isImageSource() +} + +// The public URL that points to the source image. +type ImageSourceMemberPublicUrl struct { + Value string + + noSmithyDocumentSerde +} + +func (*ImageSourceMemberPublicUrl) isImageSource() {} + +// The Amazon S3 URI that points to the source image. +type ImageSourceMemberS3Uri struct { + Value string + + noSmithyDocumentSerde +} + +func (*ImageSourceMemberS3Uri) isImageSource() {} + // The incremental refresh configuration for a dataset. type IncrementalRefresh struct { @@ -9077,6 +9362,66 @@ type LogicalTableSource struct { noSmithyDocumentSerde } +// The logo configuration. +type Logo struct { + + // The alt text for the logo. + // + // This member is required. + AltText *string + + // A set of configured logos. + // + // This member is required. + LogoSet *LogoSet + + noSmithyDocumentSerde +} + +// The logo configuration. +type LogoConfiguration struct { + + // The alt text for the logo. + // + // This member is required. + AltText *string + + // A set of configured logos. + // + // This member is required. + LogoSet *LogoSetConfiguration + + noSmithyDocumentSerde +} + +// A set of logos. +type LogoSet struct { + + // The primary logo. + // + // This member is required. + Primary *ImageSet + + // The favicon logo. + Favicon *ImageSet + + noSmithyDocumentSerde +} + +// The logo set configuration. +type LogoSetConfiguration struct { + + // The primary logo. + // + // This member is required. + Primary *ImageSetConfiguration + + // The favicon logo. + Favicon *ImageSetConfiguration + + noSmithyDocumentSerde +} + // The text format for a subtitle. // // This is a union type structure. For this structure to be valid, only one of the @@ -9396,6 +9741,18 @@ type NamespaceInfoV2 struct { noSmithyDocumentSerde } +// The navigation bar style. +type NavbarStyle struct { + + // The contextual navigation bar style. + ContextualNavbar *Palette + + // The global navigation bar style. + GlobalNavbar *Palette + + noSmithyDocumentSerde +} + // A structure that represents a negative format. type NegativeFormat struct { @@ -9883,6 +10240,18 @@ type PaginationConfiguration struct { noSmithyDocumentSerde } +// The color palette. +type Palette struct { + + // The background color. + Background *string + + // The foreground color. + Foreground *string + + noSmithyDocumentSerde +} + // A collection of options that configure how each panel displays in a small // multiples chart. type PanelConfiguration struct { @@ -16745,5 +17114,6 @@ type UnknownUnionMember struct { } func (*UnknownUnionMember) isDataSourceParameters() {} +func (*UnknownUnionMember) isImageSource() {} func (*UnknownUnionMember) isPhysicalTable() {} func (*UnknownUnionMember) isTransformOperation() {} diff --git a/service/quicksight/types/types_exported_test.go b/service/quicksight/types/types_exported_test.go index 5a18dd8f897..f1c4894fff0 100644 --- a/service/quicksight/types/types_exported_test.go +++ b/service/quicksight/types/types_exported_test.go @@ -125,6 +125,27 @@ var _ *types.AuroraPostgreSqlParameters var _ *types.AthenaParameters var _ *types.SparkParameters +func ExampleImageSource_outputUsage() { + var union types.ImageSource + // type switches can be used to check the union value + switch v := union.(type) { + case *types.ImageSourceMemberPublicUrl: + _ = v.Value // Value is string + + case *types.ImageSourceMemberS3Uri: + _ = v.Value // Value is string + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *string + func ExamplePhysicalTable_outputUsage() { var union types.PhysicalTable // type switches can be used to check the union value diff --git a/service/quicksight/validators.go b/service/quicksight/validators.go index 182ba2933f0..e05ab0d2b3f 100644 --- a/service/quicksight/validators.go +++ b/service/quicksight/validators.go @@ -130,6 +130,46 @@ func (m *validateOpCreateAnalysis) HandleInitialize(ctx context.Context, in midd return next.HandleInitialize(ctx, in) } +type validateOpCreateBrand struct { +} + +func (*validateOpCreateBrand) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateBrand) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateBrandInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateBrandInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateCustomPermissions struct { +} + +func (*validateOpCreateCustomPermissions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateCustomPermissions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateCustomPermissionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateCustomPermissionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpCreateDashboard struct { } @@ -570,6 +610,66 @@ func (m *validateOpDeleteAnalysis) HandleInitialize(ctx context.Context, in midd return next.HandleInitialize(ctx, in) } +type validateOpDeleteBrandAssignment struct { +} + +func (*validateOpDeleteBrandAssignment) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteBrandAssignment) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteBrandAssignmentInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteBrandAssignmentInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteBrand struct { +} + +func (*validateOpDeleteBrand) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteBrand) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteBrandInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteBrandInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteCustomPermissions struct { +} + +func (*validateOpDeleteCustomPermissions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteCustomPermissions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteCustomPermissionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteCustomPermissionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteDashboard struct { } @@ -990,6 +1090,26 @@ func (m *validateOpDeleteUserByPrincipalId) HandleInitialize(ctx context.Context return next.HandleInitialize(ctx, in) } +type validateOpDeleteUserCustomPermission struct { +} + +func (*validateOpDeleteUserCustomPermission) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteUserCustomPermission) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteUserCustomPermissionInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteUserCustomPermissionInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteUser struct { } @@ -1190,6 +1310,86 @@ func (m *validateOpDescribeAssetBundleImportJob) HandleInitialize(ctx context.Co return next.HandleInitialize(ctx, in) } +type validateOpDescribeBrandAssignment struct { +} + +func (*validateOpDescribeBrandAssignment) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeBrandAssignment) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeBrandAssignmentInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeBrandAssignmentInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDescribeBrand struct { +} + +func (*validateOpDescribeBrand) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeBrand) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeBrandInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeBrandInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDescribeBrandPublishedVersion struct { +} + +func (*validateOpDescribeBrandPublishedVersion) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeBrandPublishedVersion) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeBrandPublishedVersionInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeBrandPublishedVersionInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDescribeCustomPermissions struct { +} + +func (*validateOpDescribeCustomPermissions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeCustomPermissions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeCustomPermissionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeCustomPermissionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeDashboardDefinition struct { } @@ -2050,6 +2250,46 @@ func (m *validateOpListAssetBundleImportJobs) HandleInitialize(ctx context.Conte return next.HandleInitialize(ctx, in) } +type validateOpListBrands struct { +} + +func (*validateOpListBrands) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListBrands) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListBrandsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListBrandsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListCustomPermissions struct { +} + +func (*validateOpListCustomPermissions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListCustomPermissions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListCustomPermissionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListCustomPermissionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListDashboards struct { } @@ -3010,6 +3250,86 @@ func (m *validateOpUpdateAnalysisPermissions) HandleInitialize(ctx context.Conte return next.HandleInitialize(ctx, in) } +type validateOpUpdateBrandAssignment struct { +} + +func (*validateOpUpdateBrandAssignment) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateBrandAssignment) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateBrandAssignmentInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateBrandAssignmentInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateBrand struct { +} + +func (*validateOpUpdateBrand) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateBrand) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateBrandInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateBrandInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateBrandPublishedVersion struct { +} + +func (*validateOpUpdateBrandPublishedVersion) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateBrandPublishedVersion) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateBrandPublishedVersionInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateBrandPublishedVersionInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateCustomPermissions struct { +} + +func (*validateOpUpdateCustomPermissions) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateCustomPermissions) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateCustomPermissionsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateCustomPermissionsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateDashboard struct { } @@ -3590,6 +3910,26 @@ func (m *validateOpUpdateTopicRefreshSchedule) HandleInitialize(ctx context.Cont return next.HandleInitialize(ctx, in) } +type validateOpUpdateUserCustomPermission struct { +} + +func (*validateOpUpdateUserCustomPermission) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateUserCustomPermission) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateUserCustomPermissionInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateUserCustomPermissionInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateUser struct { } @@ -3654,6 +3994,14 @@ func addOpCreateAnalysisValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateAnalysis{}, middleware.After) } +func addOpCreateBrandValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateBrand{}, middleware.After) +} + +func addOpCreateCustomPermissionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateCustomPermissions{}, middleware.After) +} + func addOpCreateDashboardValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateDashboard{}, middleware.After) } @@ -3742,6 +4090,18 @@ func addOpDeleteAnalysisValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteAnalysis{}, middleware.After) } +func addOpDeleteBrandAssignmentValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteBrandAssignment{}, middleware.After) +} + +func addOpDeleteBrandValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteBrand{}, middleware.After) +} + +func addOpDeleteCustomPermissionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteCustomPermissions{}, middleware.After) +} + func addOpDeleteDashboardValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteDashboard{}, middleware.After) } @@ -3826,6 +4186,10 @@ func addOpDeleteUserByPrincipalIdValidationMiddleware(stack *middleware.Stack) e return stack.Initialize.Add(&validateOpDeleteUserByPrincipalId{}, middleware.After) } +func addOpDeleteUserCustomPermissionValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteUserCustomPermission{}, middleware.After) +} + func addOpDeleteUserValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteUser{}, middleware.After) } @@ -3866,6 +4230,22 @@ func addOpDescribeAssetBundleImportJobValidationMiddleware(stack *middleware.Sta return stack.Initialize.Add(&validateOpDescribeAssetBundleImportJob{}, middleware.After) } +func addOpDescribeBrandAssignmentValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeBrandAssignment{}, middleware.After) +} + +func addOpDescribeBrandValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeBrand{}, middleware.After) +} + +func addOpDescribeBrandPublishedVersionValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeBrandPublishedVersion{}, middleware.After) +} + +func addOpDescribeCustomPermissionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeCustomPermissions{}, middleware.After) +} + func addOpDescribeDashboardDefinitionValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeDashboardDefinition{}, middleware.After) } @@ -4038,6 +4418,14 @@ func addOpListAssetBundleImportJobsValidationMiddleware(stack *middleware.Stack) return stack.Initialize.Add(&validateOpListAssetBundleImportJobs{}, middleware.After) } +func addOpListBrandsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListBrands{}, middleware.After) +} + +func addOpListCustomPermissionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListCustomPermissions{}, middleware.After) +} + func addOpListDashboardsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListDashboards{}, middleware.After) } @@ -4230,6 +4618,22 @@ func addOpUpdateAnalysisPermissionsValidationMiddleware(stack *middleware.Stack) return stack.Initialize.Add(&validateOpUpdateAnalysisPermissions{}, middleware.After) } +func addOpUpdateBrandAssignmentValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateBrandAssignment{}, middleware.After) +} + +func addOpUpdateBrandValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateBrand{}, middleware.After) +} + +func addOpUpdateBrandPublishedVersionValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateBrandPublishedVersion{}, middleware.After) +} + +func addOpUpdateCustomPermissionsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateCustomPermissions{}, middleware.After) +} + func addOpUpdateDashboardValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateDashboard{}, middleware.After) } @@ -4346,6 +4750,10 @@ func addOpUpdateTopicRefreshScheduleValidationMiddleware(stack *middleware.Stack return stack.Initialize.Add(&validateOpUpdateTopicRefreshSchedule{}, middleware.After) } +func addOpUpdateUserCustomPermissionValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateUserCustomPermission{}, middleware.After) +} + func addOpUpdateUserValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateUser{}, middleware.After) } @@ -6630,6 +7038,26 @@ func validateBoxPlotVisual(v *types.BoxPlotVisual) error { } } +func validateBrandDefinition(v *types.BrandDefinition) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "BrandDefinition"} + if v.BrandName == nil { + invalidParams.Add(smithy.NewErrParamRequired("BrandName")) + } + if v.LogoConfiguration != nil { + if err := validateLogoConfiguration(v.LogoConfiguration); err != nil { + invalidParams.AddNested("LogoConfiguration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateCalculatedColumn(v *types.CalculatedColumn) error { if v == nil { return nil @@ -11642,6 +12070,21 @@ func validateIdentifier(v *types.Identifier) error { } } +func validateImageSetConfiguration(v *types.ImageSetConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ImageSetConfiguration"} + if v.Original == nil { + invalidParams.Add(smithy.NewErrParamRequired("Original")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateIncrementalRefresh(v *types.IncrementalRefresh) error { if v == nil { return nil @@ -12562,6 +13005,52 @@ func validateLogicalTableSource(v *types.LogicalTableSource) error { } } +func validateLogoConfiguration(v *types.LogoConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "LogoConfiguration"} + if v.AltText == nil { + invalidParams.Add(smithy.NewErrParamRequired("AltText")) + } + if v.LogoSet == nil { + invalidParams.Add(smithy.NewErrParamRequired("LogoSet")) + } else if v.LogoSet != nil { + if err := validateLogoSetConfiguration(v.LogoSet); err != nil { + invalidParams.AddNested("LogoSet", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateLogoSetConfiguration(v *types.LogoSetConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "LogoSetConfiguration"} + if v.Primary == nil { + invalidParams.Add(smithy.NewErrParamRequired("Primary")) + } else if v.Primary != nil { + if err := validateImageSetConfiguration(v.Primary); err != nil { + invalidParams.AddNested("Primary", err.(smithy.InvalidParamsError)) + } + } + if v.Favicon != nil { + if err := validateImageSetConfiguration(v.Favicon); err != nil { + invalidParams.AddNested("Favicon", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateLookbackWindow(v *types.LookbackWindow) error { if v == nil { return nil @@ -18927,9 +19416,47 @@ func validateOpCreateAnalysisInput(v *CreateAnalysisInput) error { invalidParams.AddNested("Permissions", err.(smithy.InvalidParamsError)) } } - if v.SourceEntity != nil { - if err := validateAnalysisSourceEntity(v.SourceEntity); err != nil { - invalidParams.AddNested("SourceEntity", err.(smithy.InvalidParamsError)) + if v.SourceEntity != nil { + if err := validateAnalysisSourceEntity(v.SourceEntity); err != nil { + invalidParams.AddNested("SourceEntity", err.(smithy.InvalidParamsError)) + } + } + if v.Tags != nil { + if err := validateTagList(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if v.Definition != nil { + if err := validateAnalysisDefinition(v.Definition); err != nil { + invalidParams.AddNested("Definition", err.(smithy.InvalidParamsError)) + } + } + if v.ValidationStrategy != nil { + if err := validateValidationStrategy(v.ValidationStrategy); err != nil { + invalidParams.AddNested("ValidationStrategy", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateBrandInput(v *CreateBrandInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateBrandInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.BrandId == nil { + invalidParams.Add(smithy.NewErrParamRequired("BrandId")) + } + if v.BrandDefinition != nil { + if err := validateBrandDefinition(v.BrandDefinition); err != nil { + invalidParams.AddNested("BrandDefinition", err.(smithy.InvalidParamsError)) } } if v.Tags != nil { @@ -18937,14 +19464,27 @@ func validateOpCreateAnalysisInput(v *CreateAnalysisInput) error { invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) } } - if v.Definition != nil { - if err := validateAnalysisDefinition(v.Definition); err != nil { - invalidParams.AddNested("Definition", err.(smithy.InvalidParamsError)) - } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil } - if v.ValidationStrategy != nil { - if err := validateValidationStrategy(v.ValidationStrategy); err != nil { - invalidParams.AddNested("ValidationStrategy", err.(smithy.InvalidParamsError)) +} + +func validateOpCreateCustomPermissionsInput(v *CreateCustomPermissionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateCustomPermissionsInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.CustomPermissionsName == nil { + invalidParams.Add(smithy.NewErrParamRequired("CustomPermissionsName")) + } + if v.Tags != nil { + if err := validateTagList(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) } } if invalidParams.Len() > 0 { @@ -19611,6 +20151,57 @@ func validateOpDeleteAnalysisInput(v *DeleteAnalysisInput) error { } } +func validateOpDeleteBrandAssignmentInput(v *DeleteBrandAssignmentInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteBrandAssignmentInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteBrandInput(v *DeleteBrandInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteBrandInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.BrandId == nil { + invalidParams.Add(smithy.NewErrParamRequired("BrandId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteCustomPermissionsInput(v *DeleteCustomPermissionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteCustomPermissionsInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.CustomPermissionsName == nil { + invalidParams.Add(smithy.NewErrParamRequired("CustomPermissionsName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteDashboardInput(v *DeleteDashboardInput) error { if v == nil { return nil @@ -20031,6 +20622,27 @@ func validateOpDeleteUserByPrincipalIdInput(v *DeleteUserByPrincipalIdInput) err } } +func validateOpDeleteUserCustomPermissionInput(v *DeleteUserCustomPermissionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteUserCustomPermissionInput"} + if v.UserName == nil { + invalidParams.Add(smithy.NewErrParamRequired("UserName")) + } + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.Namespace == nil { + invalidParams.Add(smithy.NewErrParamRequired("Namespace")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteUserInput(v *DeleteUserInput) error { if v == nil { return nil @@ -20205,6 +20817,75 @@ func validateOpDescribeAssetBundleImportJobInput(v *DescribeAssetBundleImportJob } } +func validateOpDescribeBrandAssignmentInput(v *DescribeBrandAssignmentInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeBrandAssignmentInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDescribeBrandInput(v *DescribeBrandInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeBrandInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.BrandId == nil { + invalidParams.Add(smithy.NewErrParamRequired("BrandId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDescribeBrandPublishedVersionInput(v *DescribeBrandPublishedVersionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeBrandPublishedVersionInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.BrandId == nil { + invalidParams.Add(smithy.NewErrParamRequired("BrandId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDescribeCustomPermissionsInput(v *DescribeCustomPermissionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeCustomPermissionsInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.CustomPermissionsName == nil { + invalidParams.Add(smithy.NewErrParamRequired("CustomPermissionsName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeDashboardDefinitionInput(v *DescribeDashboardDefinitionInput) error { if v == nil { return nil @@ -21025,6 +21706,36 @@ func validateOpListAssetBundleImportJobsInput(v *ListAssetBundleImportJobsInput) } } +func validateOpListBrandsInput(v *ListBrandsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListBrandsInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListCustomPermissionsInput(v *ListCustomPermissionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListCustomPermissionsInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListDashboardsInput(v *ListDashboardsInput) error { if v == nil { return nil @@ -21994,6 +22705,86 @@ func validateOpUpdateAnalysisPermissionsInput(v *UpdateAnalysisPermissionsInput) } } +func validateOpUpdateBrandAssignmentInput(v *UpdateBrandAssignmentInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateBrandAssignmentInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.BrandArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("BrandArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateBrandInput(v *UpdateBrandInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateBrandInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.BrandId == nil { + invalidParams.Add(smithy.NewErrParamRequired("BrandId")) + } + if v.BrandDefinition != nil { + if err := validateBrandDefinition(v.BrandDefinition); err != nil { + invalidParams.AddNested("BrandDefinition", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateBrandPublishedVersionInput(v *UpdateBrandPublishedVersionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateBrandPublishedVersionInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.BrandId == nil { + invalidParams.Add(smithy.NewErrParamRequired("BrandId")) + } + if v.VersionId == nil { + invalidParams.Add(smithy.NewErrParamRequired("VersionId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateCustomPermissionsInput(v *UpdateCustomPermissionsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateCustomPermissionsInput"} + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.CustomPermissionsName == nil { + invalidParams.Add(smithy.NewErrParamRequired("CustomPermissionsName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateDashboardInput(v *UpdateDashboardInput) error { if v == nil { return nil @@ -22744,6 +23535,30 @@ func validateOpUpdateTopicRefreshScheduleInput(v *UpdateTopicRefreshScheduleInpu } } +func validateOpUpdateUserCustomPermissionInput(v *UpdateUserCustomPermissionInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateUserCustomPermissionInput"} + if v.UserName == nil { + invalidParams.Add(smithy.NewErrParamRequired("UserName")) + } + if v.AwsAccountId == nil { + invalidParams.Add(smithy.NewErrParamRequired("AwsAccountId")) + } + if v.Namespace == nil { + invalidParams.Add(smithy.NewErrParamRequired("Namespace")) + } + if v.CustomPermissionsName == nil { + invalidParams.Add(smithy.NewErrParamRequired("CustomPermissionsName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateUserInput(v *UpdateUserInput) error { if v == nil { return nil diff --git a/service/redshift/deserializers.go b/service/redshift/deserializers.go index 5af6e293b18..3a8152a5461 100644 --- a/service/redshift/deserializers.go +++ b/service/redshift/deserializers.go @@ -35992,6 +35992,55 @@ func awsAwsquery_deserializeDocumentPendingModifiedValues(v **types.PendingModif return nil } +func awsAwsquery_deserializeDocumentReadWriteAccess(v **types.ReadWriteAccess, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.ReadWriteAccess + if *v == nil { + sv = &types.ReadWriteAccess{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Authorization", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.Authorization = types.ServiceAuthorization(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsAwsquery_deserializeDocumentRecommendation(v **types.Recommendation, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -38970,6 +39019,114 @@ func awsAwsquery_deserializeDocumentRevisionTargetsListUnwrapped(v *[]types.Revi *v = sv return nil } +func awsAwsquery_deserializeDocumentS3AccessGrantsScopeUnion(v *types.S3AccessGrantsScopeUnion, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var uv types.S3AccessGrantsScopeUnion + var memberFound bool + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + if memberFound { + if err = decoder.Decoder.Skip(); err != nil { + return err + } + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("ReadWriteAccess", t.Name.Local): + var mv types.ReadWriteAccess + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + destAddr := &mv + if err := awsAwsquery_deserializeDocumentReadWriteAccess(&destAddr, nodeDecoder); err != nil { + return err + } + mv = *destAddr + uv = &types.S3AccessGrantsScopeUnionMemberReadWriteAccess{Value: mv} + memberFound = true + + default: + uv = &types.UnknownUnionMember{Tag: t.Name.Local} + memberFound = true + + } + decoder = originalDecoder + } + *v = uv + return nil +} + +func awsAwsquery_deserializeDocumentS3AccessGrantsServiceIntegrations(v *[]types.S3AccessGrantsScopeUnion, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv []types.S3AccessGrantsScopeUnion + if *v == nil { + sv = make([]types.S3AccessGrantsScopeUnion, 0) + } else { + sv = *v + } + + originalDecoder := decoder + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + switch { + case strings.EqualFold("member", t.Name.Local): + var col types.S3AccessGrantsScopeUnion + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsAwsquery_deserializeDocumentS3AccessGrantsScopeUnion(&col, nodeDecoder); err != nil { + return err + } + sv = append(sv, col) + + default: + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + +func awsAwsquery_deserializeDocumentS3AccessGrantsServiceIntegrationsUnwrapped(v *[]types.S3AccessGrantsScopeUnion, decoder smithyxml.NodeDecoder) error { + var sv []types.S3AccessGrantsScopeUnion + if *v == nil { + sv = make([]types.S3AccessGrantsScopeUnion, 0) + } else { + sv = *v + } + + switch { + default: + var mv types.S3AccessGrantsScopeUnion + t := decoder.StartEl + _ = t + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsAwsquery_deserializeDocumentS3AccessGrantsScopeUnion(&mv, nodeDecoder); err != nil { + return err + } + sv = append(sv, mv) + } + *v = sv + return nil +} func awsAwsquery_deserializeDocumentScheduledAction(v **types.ScheduledAction, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -39890,6 +40047,15 @@ func awsAwsquery_deserializeDocumentServiceIntegrationsUnion(v *types.ServiceInt uv = &types.ServiceIntegrationsUnionMemberLakeFormation{Value: mv} memberFound = true + case strings.EqualFold("S3AccessGrants", t.Name.Local): + var mv []types.S3AccessGrantsScopeUnion + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsAwsquery_deserializeDocumentS3AccessGrantsServiceIntegrations(&mv, nodeDecoder); err != nil { + return err + } + uv = &types.ServiceIntegrationsUnionMemberS3AccessGrants{Value: mv} + memberFound = true + default: uv = &types.UnknownUnionMember{Tag: t.Name.Local} memberFound = true diff --git a/service/redshift/serializers.go b/service/redshift/serializers.go index 5c957c6b3c7..466d09824c4 100644 --- a/service/redshift/serializers.go +++ b/service/redshift/serializers.go @@ -9949,6 +9949,18 @@ func awsAwsquery_serializeDocumentPauseClusterMessage(v *types.PauseClusterMessa return nil } +func awsAwsquery_serializeDocumentReadWriteAccess(v *types.ReadWriteAccess, value query.Value) error { + object := value.Object() + _ = object + + if len(v.Authorization) > 0 { + objectKey := object.Key("Authorization") + objectKey.String(string(v.Authorization)) + } + + return nil +} + func awsAwsquery_serializeDocumentResizeClusterMessage(v *types.ResizeClusterMessage, value query.Value) error { object := value.Object() _ = object @@ -10003,6 +10015,38 @@ func awsAwsquery_serializeDocumentResumeClusterMessage(v *types.ResumeClusterMes return nil } +func awsAwsquery_serializeDocumentS3AccessGrantsScopeUnion(v types.S3AccessGrantsScopeUnion, value query.Value) error { + object := value.Object() + + switch uv := v.(type) { + case *types.S3AccessGrantsScopeUnionMemberReadWriteAccess: + objectKey := object.Key("ReadWriteAccess") + if err := awsAwsquery_serializeDocumentReadWriteAccess(&uv.Value, objectKey); err != nil { + return err + } + + default: + return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) + + } + return nil +} + +func awsAwsquery_serializeDocumentS3AccessGrantsServiceIntegrations(v []types.S3AccessGrantsScopeUnion, value query.Value) error { + array := value.Array("member") + + for i := range v { + if vv := v[i]; vv == nil { + continue + } + av := array.Value() + if err := awsAwsquery_serializeDocumentS3AccessGrantsScopeUnion(v[i], av); err != nil { + return err + } + } + return nil +} + func awsAwsquery_serializeDocumentScheduledActionFilter(v *types.ScheduledActionFilter, value query.Value) error { object := value.Object() _ = object @@ -10097,6 +10141,12 @@ func awsAwsquery_serializeDocumentServiceIntegrationsUnion(v types.ServiceIntegr return err } + case *types.ServiceIntegrationsUnionMemberS3AccessGrants: + objectKey := object.Key("S3AccessGrants") + if err := awsAwsquery_serializeDocumentS3AccessGrantsServiceIntegrations(uv.Value, objectKey); err != nil { + return err + } + default: return fmt.Errorf("attempted to serialize unknown member type %T for union %T", uv, v) diff --git a/service/redshift/types/types.go b/service/redshift/types/types.go index c903402c349..e93b6799d6b 100644 --- a/service/redshift/types/types.go +++ b/service/redshift/types/types.go @@ -1477,6 +1477,17 @@ type PendingModifiedValues struct { noSmithyDocumentSerde } +// The S3 Access Grants scope. +type ReadWriteAccess struct { + + // Determines whether the read/write scope is enabled or disabled. + // + // This member is required. + Authorization ServiceAuthorization + + noSmithyDocumentSerde +} + // An Amazon Redshift Advisor recommended action on the Amazon Redshift cluster. type Recommendation struct { @@ -1880,6 +1891,24 @@ type RevisionTarget struct { noSmithyDocumentSerde } +// A list of scopes set up for S3 Access Grants integration. +// +// The following types satisfy this interface: +// +// S3AccessGrantsScopeUnionMemberReadWriteAccess +type S3AccessGrantsScopeUnion interface { + isS3AccessGrantsScopeUnion() +} + +// The S3 Access Grants scope. +type S3AccessGrantsScopeUnionMemberReadWriteAccess struct { + Value ReadWriteAccess + + noSmithyDocumentSerde +} + +func (*S3AccessGrantsScopeUnionMemberReadWriteAccess) isS3AccessGrantsScopeUnion() {} + // Describes a scheduled action. You can use a scheduled action to trigger some // Amazon Redshift API operations on a schedule. For information about which API // operations can be scheduled, see ScheduledActionType. @@ -1991,6 +2020,7 @@ type SecondaryClusterInfo struct { // The following types satisfy this interface: // // ServiceIntegrationsUnionMemberLakeFormation +// ServiceIntegrationsUnionMemberS3AccessGrants type ServiceIntegrationsUnion interface { isServiceIntegrationsUnion() } @@ -2004,6 +2034,15 @@ type ServiceIntegrationsUnionMemberLakeFormation struct { func (*ServiceIntegrationsUnionMemberLakeFormation) isServiceIntegrationsUnion() {} +// A list of scopes set up for S3 Access Grants integration. +type ServiceIntegrationsUnionMemberS3AccessGrants struct { + Value []S3AccessGrantsScopeUnion + + noSmithyDocumentSerde +} + +func (*ServiceIntegrationsUnionMemberS3AccessGrants) isServiceIntegrationsUnion() {} + // Describes a snapshot. type Snapshot struct { @@ -2475,4 +2514,5 @@ type UnknownUnionMember struct { } func (*UnknownUnionMember) isLakeFormationScopeUnion() {} +func (*UnknownUnionMember) isS3AccessGrantsScopeUnion() {} func (*UnknownUnionMember) isServiceIntegrationsUnion() {} diff --git a/service/redshift/types/types_exported_test.go b/service/redshift/types/types_exported_test.go index 5585fc259ba..2abac04b719 100644 --- a/service/redshift/types/types_exported_test.go +++ b/service/redshift/types/types_exported_test.go @@ -25,6 +25,24 @@ func ExampleLakeFormationScopeUnion_outputUsage() { var _ *types.LakeFormationQuery +func ExampleS3AccessGrantsScopeUnion_outputUsage() { + var union types.S3AccessGrantsScopeUnion + // type switches can be used to check the union value + switch v := union.(type) { + case *types.S3AccessGrantsScopeUnionMemberReadWriteAccess: + _ = v.Value // Value is types.ReadWriteAccess + + case *types.UnknownUnionMember: + fmt.Println("unknown tag:", v.Tag) + + default: + fmt.Println("union is nil or unknown type") + + } +} + +var _ *types.ReadWriteAccess + func ExampleServiceIntegrationsUnion_outputUsage() { var union types.ServiceIntegrationsUnion // type switches can be used to check the union value @@ -32,6 +50,9 @@ func ExampleServiceIntegrationsUnion_outputUsage() { case *types.ServiceIntegrationsUnionMemberLakeFormation: _ = v.Value // Value is []types.LakeFormationScopeUnion + case *types.ServiceIntegrationsUnionMemberS3AccessGrants: + _ = v.Value // Value is []types.S3AccessGrantsScopeUnion + case *types.UnknownUnionMember: fmt.Println("unknown tag:", v.Tag) @@ -42,3 +63,4 @@ func ExampleServiceIntegrationsUnion_outputUsage() { } var _ []types.LakeFormationScopeUnion +var _ []types.S3AccessGrantsScopeUnion diff --git a/service/redshift/validators.go b/service/redshift/validators.go index 045b0b5d08f..4fd1b8746b6 100644 --- a/service/redshift/validators.go +++ b/service/redshift/validators.go @@ -2567,6 +2567,21 @@ func validatePauseClusterMessage(v *types.PauseClusterMessage) error { } } +func validateReadWriteAccess(v *types.ReadWriteAccess) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ReadWriteAccess"} + if len(v.Authorization) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Authorization")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateResizeClusterMessage(v *types.ResizeClusterMessage) error { if v == nil { return nil @@ -2597,6 +2612,42 @@ func validateResumeClusterMessage(v *types.ResumeClusterMessage) error { } } +func validateS3AccessGrantsScopeUnion(v types.S3AccessGrantsScopeUnion) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "S3AccessGrantsScopeUnion"} + switch uv := v.(type) { + case *types.S3AccessGrantsScopeUnionMemberReadWriteAccess: + if err := validateReadWriteAccess(&uv.Value); err != nil { + invalidParams.AddNested("[ReadWriteAccess]", err.(smithy.InvalidParamsError)) + } + + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateS3AccessGrantsServiceIntegrations(v []types.S3AccessGrantsScopeUnion) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "S3AccessGrantsServiceIntegrations"} + for i := range v { + if err := validateS3AccessGrantsScopeUnion(v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateScheduledActionFilter(v *types.ScheduledActionFilter) error { if v == nil { return nil @@ -2687,6 +2738,11 @@ func validateServiceIntegrationsUnion(v types.ServiceIntegrationsUnion) error { invalidParams.AddNested("[LakeFormation]", err.(smithy.InvalidParamsError)) } + case *types.ServiceIntegrationsUnionMemberS3AccessGrants: + if err := validateS3AccessGrantsServiceIntegrations(uv.Value); err != nil { + invalidParams.AddNested("[S3AccessGrants]", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams diff --git a/service/s3/api_op_AbortMultipartUpload.go b/service/s3/api_op_AbortMultipartUpload.go index ec55f51c772..52a8258da64 100644 --- a/service/s3/api_op_AbortMultipartUpload.go +++ b/service/s3/api_op_AbortMultipartUpload.go @@ -28,7 +28,7 @@ import ( // progress, you can't delete the bucket until all the in-progress multipart // uploads are aborted or completed. To delete these in-progress multipart uploads, // use the ListMultipartUploads operation to list the in-progress multipart -// uploads in the bucket and use the AbortMultupartUpload operation to abort all +// uploads in the bucket and use the AbortMultipartUpload operation to abort all // the in-progress multipart uploads. // // - Directory buckets - For directory buckets, you must make requests for this diff --git a/service/s3/api_op_ListBuckets.go b/service/s3/api_op_ListBuckets.go index 22ea9f0c2bf..97732372c56 100644 --- a/service/s3/api_op_ListBuckets.go +++ b/service/s3/api_op_ListBuckets.go @@ -20,6 +20,13 @@ import ( // // For information about Amazon S3 buckets, see [Creating, configuring, and working with Amazon S3 buckets]. // +// We strongly recommend using only paginated requests. Unpaginated requests are +// only supported for Amazon Web Services accounts set to the default general +// purpose bucket quota of 10,000. If you have an approved general purpose bucket +// quota above 10,000, you must send paginated requests to list your account’s +// buckets. All unpaginated ListBuckets requests will be rejected for Amazon Web +// Services accounts with a general purpose bucket quota greater than 10,000. +// // [Creating, configuring, and working with Amazon S3 buckets]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html func (c *Client) ListBuckets(ctx context.Context, params *ListBucketsInput, optFns ...func(*Options)) (*ListBucketsOutput, error) { if params == nil { @@ -59,6 +66,11 @@ type ListBucketsInput struct { // Length Constraints: Minimum length of 0. Maximum length of 1024. // // Required: No. + // + // If you specify the bucket-region , prefix , or continuation-token query + // parameters without using max-buckets to set the maximum number of buckets + // returned in the response, Amazon S3 applies a default page size of 10,000 and + // provides a continuation token if there are more buckets. ContinuationToken *string // Maximum number of buckets to be returned in response. When the number is more diff --git a/service/s3/api_op_ListDirectoryBuckets.go b/service/s3/api_op_ListDirectoryBuckets.go index e375413d49b..dc0109bd283 100644 --- a/service/s3/api_op_ListDirectoryBuckets.go +++ b/service/s3/api_op_ListDirectoryBuckets.go @@ -33,6 +33,9 @@ import ( // HTTP Host header syntax Directory buckets - The HTTP Host header syntax is // s3express-control.region.amazonaws.com . // +// The BucketRegion response element is not part of the ListDirectoryBuckets +// Response Syntax. +// // [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html // [Directory buckets]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html // [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html diff --git a/service/s3/api_op_ListMultipartUploads.go b/service/s3/api_op_ListMultipartUploads.go index 0a4bfe332d9..8576b312948 100644 --- a/service/s3/api_op_ListMultipartUploads.go +++ b/service/s3/api_op_ListMultipartUploads.go @@ -21,7 +21,7 @@ import ( // you can't delete the bucket until all the in-progress multipart uploads are // aborted or completed. To delete these in-progress multipart uploads, use the // ListMultipartUploads operation to list the in-progress multipart uploads in the -// bucket and use the AbortMultupartUpload operation to abort all the in-progress +// bucket and use the AbortMultipartUpload operation to abort all the in-progress // multipart uploads. // // The ListMultipartUploads operation returns a maximum of 1,000 multipart uploads diff --git a/service/sagemaker/types/enums.go b/service/sagemaker/types/enums.go index 2fd724f18bf..48c2caec941 100644 --- a/service/sagemaker/types/enums.go +++ b/service/sagemaker/types/enums.go @@ -3287,171 +3287,178 @@ type InstanceType string // Enum values for InstanceType const ( - InstanceTypeMlT2Medium InstanceType = "ml.t2.medium" - InstanceTypeMlT2Large InstanceType = "ml.t2.large" - InstanceTypeMlT2Xlarge InstanceType = "ml.t2.xlarge" - InstanceTypeMlT22xlarge InstanceType = "ml.t2.2xlarge" - InstanceTypeMlT3Medium InstanceType = "ml.t3.medium" - InstanceTypeMlT3Large InstanceType = "ml.t3.large" - InstanceTypeMlT3Xlarge InstanceType = "ml.t3.xlarge" - InstanceTypeMlT32xlarge InstanceType = "ml.t3.2xlarge" - InstanceTypeMlM4Xlarge InstanceType = "ml.m4.xlarge" - InstanceTypeMlM42xlarge InstanceType = "ml.m4.2xlarge" - InstanceTypeMlM44xlarge InstanceType = "ml.m4.4xlarge" - InstanceTypeMlM410xlarge InstanceType = "ml.m4.10xlarge" - InstanceTypeMlM416xlarge InstanceType = "ml.m4.16xlarge" - InstanceTypeMlM5Xlarge InstanceType = "ml.m5.xlarge" - InstanceTypeMlM52xlarge InstanceType = "ml.m5.2xlarge" - InstanceTypeMlM54xlarge InstanceType = "ml.m5.4xlarge" - InstanceTypeMlM512xlarge InstanceType = "ml.m5.12xlarge" - InstanceTypeMlM524xlarge InstanceType = "ml.m5.24xlarge" - InstanceTypeMlM5dLarge InstanceType = "ml.m5d.large" - InstanceTypeMlM5dXlarge InstanceType = "ml.m5d.xlarge" - InstanceTypeMlM5d2xlarge InstanceType = "ml.m5d.2xlarge" - InstanceTypeMlM5d4xlarge InstanceType = "ml.m5d.4xlarge" - InstanceTypeMlM5d8xlarge InstanceType = "ml.m5d.8xlarge" - InstanceTypeMlM5d12xlarge InstanceType = "ml.m5d.12xlarge" - InstanceTypeMlM5d16xlarge InstanceType = "ml.m5d.16xlarge" - InstanceTypeMlM5d24xlarge InstanceType = "ml.m5d.24xlarge" - InstanceTypeMlC4Xlarge InstanceType = "ml.c4.xlarge" - InstanceTypeMlC42xlarge InstanceType = "ml.c4.2xlarge" - InstanceTypeMlC44xlarge InstanceType = "ml.c4.4xlarge" - InstanceTypeMlC48xlarge InstanceType = "ml.c4.8xlarge" - InstanceTypeMlC5Xlarge InstanceType = "ml.c5.xlarge" - InstanceTypeMlC52xlarge InstanceType = "ml.c5.2xlarge" - InstanceTypeMlC54xlarge InstanceType = "ml.c5.4xlarge" - InstanceTypeMlC59xlarge InstanceType = "ml.c5.9xlarge" - InstanceTypeMlC518xlarge InstanceType = "ml.c5.18xlarge" - InstanceTypeMlC5dXlarge InstanceType = "ml.c5d.xlarge" - InstanceTypeMlC5d2xlarge InstanceType = "ml.c5d.2xlarge" - InstanceTypeMlC5d4xlarge InstanceType = "ml.c5d.4xlarge" - InstanceTypeMlC5d9xlarge InstanceType = "ml.c5d.9xlarge" - InstanceTypeMlC5d18xlarge InstanceType = "ml.c5d.18xlarge" - InstanceTypeMlP2Xlarge InstanceType = "ml.p2.xlarge" - InstanceTypeMlP28xlarge InstanceType = "ml.p2.8xlarge" - InstanceTypeMlP216xlarge InstanceType = "ml.p2.16xlarge" - InstanceTypeMlP32xlarge InstanceType = "ml.p3.2xlarge" - InstanceTypeMlP38xlarge InstanceType = "ml.p3.8xlarge" - InstanceTypeMlP316xlarge InstanceType = "ml.p3.16xlarge" - InstanceTypeMlP3dn24xlarge InstanceType = "ml.p3dn.24xlarge" - InstanceTypeMlG4dnXlarge InstanceType = "ml.g4dn.xlarge" - InstanceTypeMlG4dn2xlarge InstanceType = "ml.g4dn.2xlarge" - InstanceTypeMlG4dn4xlarge InstanceType = "ml.g4dn.4xlarge" - InstanceTypeMlG4dn8xlarge InstanceType = "ml.g4dn.8xlarge" - InstanceTypeMlG4dn12xlarge InstanceType = "ml.g4dn.12xlarge" - InstanceTypeMlG4dn16xlarge InstanceType = "ml.g4dn.16xlarge" - InstanceTypeMlR5Large InstanceType = "ml.r5.large" - InstanceTypeMlR5Xlarge InstanceType = "ml.r5.xlarge" - InstanceTypeMlR52xlarge InstanceType = "ml.r5.2xlarge" - InstanceTypeMlR54xlarge InstanceType = "ml.r5.4xlarge" - InstanceTypeMlR58xlarge InstanceType = "ml.r5.8xlarge" - InstanceTypeMlR512xlarge InstanceType = "ml.r5.12xlarge" - InstanceTypeMlR516xlarge InstanceType = "ml.r5.16xlarge" - InstanceTypeMlR524xlarge InstanceType = "ml.r5.24xlarge" - InstanceTypeMlG5Xlarge InstanceType = "ml.g5.xlarge" - InstanceTypeMlG52xlarge InstanceType = "ml.g5.2xlarge" - InstanceTypeMlG54xlarge InstanceType = "ml.g5.4xlarge" - InstanceTypeMlG58xlarge InstanceType = "ml.g5.8xlarge" - InstanceTypeMlG516xlarge InstanceType = "ml.g5.16xlarge" - InstanceTypeMlG512xlarge InstanceType = "ml.g5.12xlarge" - InstanceTypeMlG524xlarge InstanceType = "ml.g5.24xlarge" - InstanceTypeMlG548xlarge InstanceType = "ml.g5.48xlarge" - InstanceTypeMlInf1Xlarge InstanceType = "ml.inf1.xlarge" - InstanceTypeMlInf12xlarge InstanceType = "ml.inf1.2xlarge" - InstanceTypeMlInf16xlarge InstanceType = "ml.inf1.6xlarge" - InstanceTypeMlInf124xlarge InstanceType = "ml.inf1.24xlarge" - InstanceTypeMlP4d24xlarge InstanceType = "ml.p4d.24xlarge" - InstanceTypeMlP4de24xlarge InstanceType = "ml.p4de.24xlarge" - InstanceTypeMlP548xlarge InstanceType = "ml.p5.48xlarge" - InstanceTypeMlM6iLarge InstanceType = "ml.m6i.large" - InstanceTypeMlM6iXlarge InstanceType = "ml.m6i.xlarge" - InstanceTypeMlM6i2xlarge InstanceType = "ml.m6i.2xlarge" - InstanceTypeMlM6i4xlarge InstanceType = "ml.m6i.4xlarge" - InstanceTypeMlM6i8xlarge InstanceType = "ml.m6i.8xlarge" - InstanceTypeMlM6i12xlarge InstanceType = "ml.m6i.12xlarge" - InstanceTypeMlM6i16xlarge InstanceType = "ml.m6i.16xlarge" - InstanceTypeMlM6i24xlarge InstanceType = "ml.m6i.24xlarge" - InstanceTypeMlM6i32xlarge InstanceType = "ml.m6i.32xlarge" - InstanceTypeMlM7iLarge InstanceType = "ml.m7i.large" - InstanceTypeMlM7iXlarge InstanceType = "ml.m7i.xlarge" - InstanceTypeMlM7i2xlarge InstanceType = "ml.m7i.2xlarge" - InstanceTypeMlM7i4xlarge InstanceType = "ml.m7i.4xlarge" - InstanceTypeMlM7i8xlarge InstanceType = "ml.m7i.8xlarge" - InstanceTypeMlM7i12xlarge InstanceType = "ml.m7i.12xlarge" - InstanceTypeMlM7i16xlarge InstanceType = "ml.m7i.16xlarge" - InstanceTypeMlM7i24xlarge InstanceType = "ml.m7i.24xlarge" - InstanceTypeMlM7i48xlarge InstanceType = "ml.m7i.48xlarge" - InstanceTypeMlC6iLarge InstanceType = "ml.c6i.large" - InstanceTypeMlC6iXlarge InstanceType = "ml.c6i.xlarge" - InstanceTypeMlC6i2xlarge InstanceType = "ml.c6i.2xlarge" - InstanceTypeMlC6i4xlarge InstanceType = "ml.c6i.4xlarge" - InstanceTypeMlC6i8xlarge InstanceType = "ml.c6i.8xlarge" - InstanceTypeMlC6i12xlarge InstanceType = "ml.c6i.12xlarge" - InstanceTypeMlC6i16xlarge InstanceType = "ml.c6i.16xlarge" - InstanceTypeMlC6i24xlarge InstanceType = "ml.c6i.24xlarge" - InstanceTypeMlC6i32xlarge InstanceType = "ml.c6i.32xlarge" - InstanceTypeMlC7iLarge InstanceType = "ml.c7i.large" - InstanceTypeMlC7iXlarge InstanceType = "ml.c7i.xlarge" - InstanceTypeMlC7i2xlarge InstanceType = "ml.c7i.2xlarge" - InstanceTypeMlC7i4xlarge InstanceType = "ml.c7i.4xlarge" - InstanceTypeMlC7i8xlarge InstanceType = "ml.c7i.8xlarge" - InstanceTypeMlC7i12xlarge InstanceType = "ml.c7i.12xlarge" - InstanceTypeMlC7i16xlarge InstanceType = "ml.c7i.16xlarge" - InstanceTypeMlC7i24xlarge InstanceType = "ml.c7i.24xlarge" - InstanceTypeMlC7i48xlarge InstanceType = "ml.c7i.48xlarge" - InstanceTypeMlR6iLarge InstanceType = "ml.r6i.large" - InstanceTypeMlR6iXlarge InstanceType = "ml.r6i.xlarge" - InstanceTypeMlR6i2xlarge InstanceType = "ml.r6i.2xlarge" - InstanceTypeMlR6i4xlarge InstanceType = "ml.r6i.4xlarge" - InstanceTypeMlR6i8xlarge InstanceType = "ml.r6i.8xlarge" - InstanceTypeMlR6i12xlarge InstanceType = "ml.r6i.12xlarge" - InstanceTypeMlR6i16xlarge InstanceType = "ml.r6i.16xlarge" - InstanceTypeMlR6i24xlarge InstanceType = "ml.r6i.24xlarge" - InstanceTypeMlR6i32xlarge InstanceType = "ml.r6i.32xlarge" - InstanceTypeMlR7iLarge InstanceType = "ml.r7i.large" - InstanceTypeMlR7iXlarge InstanceType = "ml.r7i.xlarge" - InstanceTypeMlR7i2xlarge InstanceType = "ml.r7i.2xlarge" - InstanceTypeMlR7i4xlarge InstanceType = "ml.r7i.4xlarge" - InstanceTypeMlR7i8xlarge InstanceType = "ml.r7i.8xlarge" - InstanceTypeMlR7i12xlarge InstanceType = "ml.r7i.12xlarge" - InstanceTypeMlR7i16xlarge InstanceType = "ml.r7i.16xlarge" - InstanceTypeMlR7i24xlarge InstanceType = "ml.r7i.24xlarge" - InstanceTypeMlR7i48xlarge InstanceType = "ml.r7i.48xlarge" - InstanceTypeMlM6idLarge InstanceType = "ml.m6id.large" - InstanceTypeMlM6idXlarge InstanceType = "ml.m6id.xlarge" - InstanceTypeMlM6id2xlarge InstanceType = "ml.m6id.2xlarge" - InstanceTypeMlM6id4xlarge InstanceType = "ml.m6id.4xlarge" - InstanceTypeMlM6id8xlarge InstanceType = "ml.m6id.8xlarge" - InstanceTypeMlM6id12xlarge InstanceType = "ml.m6id.12xlarge" - InstanceTypeMlM6id16xlarge InstanceType = "ml.m6id.16xlarge" - InstanceTypeMlM6id24xlarge InstanceType = "ml.m6id.24xlarge" - InstanceTypeMlM6id32xlarge InstanceType = "ml.m6id.32xlarge" - InstanceTypeMlC6idLarge InstanceType = "ml.c6id.large" - InstanceTypeMlC6idXlarge InstanceType = "ml.c6id.xlarge" - InstanceTypeMlC6id2xlarge InstanceType = "ml.c6id.2xlarge" - InstanceTypeMlC6id4xlarge InstanceType = "ml.c6id.4xlarge" - InstanceTypeMlC6id8xlarge InstanceType = "ml.c6id.8xlarge" - InstanceTypeMlC6id12xlarge InstanceType = "ml.c6id.12xlarge" - InstanceTypeMlC6id16xlarge InstanceType = "ml.c6id.16xlarge" - InstanceTypeMlC6id24xlarge InstanceType = "ml.c6id.24xlarge" - InstanceTypeMlC6id32xlarge InstanceType = "ml.c6id.32xlarge" - InstanceTypeMlR6idLarge InstanceType = "ml.r6id.large" - InstanceTypeMlR6idXlarge InstanceType = "ml.r6id.xlarge" - InstanceTypeMlR6id2xlarge InstanceType = "ml.r6id.2xlarge" - InstanceTypeMlR6id4xlarge InstanceType = "ml.r6id.4xlarge" - InstanceTypeMlR6id8xlarge InstanceType = "ml.r6id.8xlarge" - InstanceTypeMlR6id12xlarge InstanceType = "ml.r6id.12xlarge" - InstanceTypeMlR6id16xlarge InstanceType = "ml.r6id.16xlarge" - InstanceTypeMlR6id24xlarge InstanceType = "ml.r6id.24xlarge" - InstanceTypeMlR6id32xlarge InstanceType = "ml.r6id.32xlarge" - InstanceTypeMlG6Xlarge InstanceType = "ml.g6.xlarge" - InstanceTypeMlG62xlarge InstanceType = "ml.g6.2xlarge" - InstanceTypeMlG64xlarge InstanceType = "ml.g6.4xlarge" - InstanceTypeMlG68xlarge InstanceType = "ml.g6.8xlarge" - InstanceTypeMlG612xlarge InstanceType = "ml.g6.12xlarge" - InstanceTypeMlG616xlarge InstanceType = "ml.g6.16xlarge" - InstanceTypeMlG624xlarge InstanceType = "ml.g6.24xlarge" - InstanceTypeMlG648xlarge InstanceType = "ml.g6.48xlarge" + InstanceTypeMlT2Medium InstanceType = "ml.t2.medium" + InstanceTypeMlT2Large InstanceType = "ml.t2.large" + InstanceTypeMlT2Xlarge InstanceType = "ml.t2.xlarge" + InstanceTypeMlT22xlarge InstanceType = "ml.t2.2xlarge" + InstanceTypeMlT3Medium InstanceType = "ml.t3.medium" + InstanceTypeMlT3Large InstanceType = "ml.t3.large" + InstanceTypeMlT3Xlarge InstanceType = "ml.t3.xlarge" + InstanceTypeMlT32xlarge InstanceType = "ml.t3.2xlarge" + InstanceTypeMlM4Xlarge InstanceType = "ml.m4.xlarge" + InstanceTypeMlM42xlarge InstanceType = "ml.m4.2xlarge" + InstanceTypeMlM44xlarge InstanceType = "ml.m4.4xlarge" + InstanceTypeMlM410xlarge InstanceType = "ml.m4.10xlarge" + InstanceTypeMlM416xlarge InstanceType = "ml.m4.16xlarge" + InstanceTypeMlM5Xlarge InstanceType = "ml.m5.xlarge" + InstanceTypeMlM52xlarge InstanceType = "ml.m5.2xlarge" + InstanceTypeMlM54xlarge InstanceType = "ml.m5.4xlarge" + InstanceTypeMlM512xlarge InstanceType = "ml.m5.12xlarge" + InstanceTypeMlM524xlarge InstanceType = "ml.m5.24xlarge" + InstanceTypeMlM5dLarge InstanceType = "ml.m5d.large" + InstanceTypeMlM5dXlarge InstanceType = "ml.m5d.xlarge" + InstanceTypeMlM5d2xlarge InstanceType = "ml.m5d.2xlarge" + InstanceTypeMlM5d4xlarge InstanceType = "ml.m5d.4xlarge" + InstanceTypeMlM5d8xlarge InstanceType = "ml.m5d.8xlarge" + InstanceTypeMlM5d12xlarge InstanceType = "ml.m5d.12xlarge" + InstanceTypeMlM5d16xlarge InstanceType = "ml.m5d.16xlarge" + InstanceTypeMlM5d24xlarge InstanceType = "ml.m5d.24xlarge" + InstanceTypeMlC4Xlarge InstanceType = "ml.c4.xlarge" + InstanceTypeMlC42xlarge InstanceType = "ml.c4.2xlarge" + InstanceTypeMlC44xlarge InstanceType = "ml.c4.4xlarge" + InstanceTypeMlC48xlarge InstanceType = "ml.c4.8xlarge" + InstanceTypeMlC5Xlarge InstanceType = "ml.c5.xlarge" + InstanceTypeMlC52xlarge InstanceType = "ml.c5.2xlarge" + InstanceTypeMlC54xlarge InstanceType = "ml.c5.4xlarge" + InstanceTypeMlC59xlarge InstanceType = "ml.c5.9xlarge" + InstanceTypeMlC518xlarge InstanceType = "ml.c5.18xlarge" + InstanceTypeMlC5dXlarge InstanceType = "ml.c5d.xlarge" + InstanceTypeMlC5d2xlarge InstanceType = "ml.c5d.2xlarge" + InstanceTypeMlC5d4xlarge InstanceType = "ml.c5d.4xlarge" + InstanceTypeMlC5d9xlarge InstanceType = "ml.c5d.9xlarge" + InstanceTypeMlC5d18xlarge InstanceType = "ml.c5d.18xlarge" + InstanceTypeMlP2Xlarge InstanceType = "ml.p2.xlarge" + InstanceTypeMlP28xlarge InstanceType = "ml.p2.8xlarge" + InstanceTypeMlP216xlarge InstanceType = "ml.p2.16xlarge" + InstanceTypeMlP32xlarge InstanceType = "ml.p3.2xlarge" + InstanceTypeMlP38xlarge InstanceType = "ml.p3.8xlarge" + InstanceTypeMlP316xlarge InstanceType = "ml.p3.16xlarge" + InstanceTypeMlP3dn24xlarge InstanceType = "ml.p3dn.24xlarge" + InstanceTypeMlG4dnXlarge InstanceType = "ml.g4dn.xlarge" + InstanceTypeMlG4dn2xlarge InstanceType = "ml.g4dn.2xlarge" + InstanceTypeMlG4dn4xlarge InstanceType = "ml.g4dn.4xlarge" + InstanceTypeMlG4dn8xlarge InstanceType = "ml.g4dn.8xlarge" + InstanceTypeMlG4dn12xlarge InstanceType = "ml.g4dn.12xlarge" + InstanceTypeMlG4dn16xlarge InstanceType = "ml.g4dn.16xlarge" + InstanceTypeMlR5Large InstanceType = "ml.r5.large" + InstanceTypeMlR5Xlarge InstanceType = "ml.r5.xlarge" + InstanceTypeMlR52xlarge InstanceType = "ml.r5.2xlarge" + InstanceTypeMlR54xlarge InstanceType = "ml.r5.4xlarge" + InstanceTypeMlR58xlarge InstanceType = "ml.r5.8xlarge" + InstanceTypeMlR512xlarge InstanceType = "ml.r5.12xlarge" + InstanceTypeMlR516xlarge InstanceType = "ml.r5.16xlarge" + InstanceTypeMlR524xlarge InstanceType = "ml.r5.24xlarge" + InstanceTypeMlG5Xlarge InstanceType = "ml.g5.xlarge" + InstanceTypeMlG52xlarge InstanceType = "ml.g5.2xlarge" + InstanceTypeMlG54xlarge InstanceType = "ml.g5.4xlarge" + InstanceTypeMlG58xlarge InstanceType = "ml.g5.8xlarge" + InstanceTypeMlG516xlarge InstanceType = "ml.g5.16xlarge" + InstanceTypeMlG512xlarge InstanceType = "ml.g5.12xlarge" + InstanceTypeMlG524xlarge InstanceType = "ml.g5.24xlarge" + InstanceTypeMlG548xlarge InstanceType = "ml.g5.48xlarge" + InstanceTypeMlInf1Xlarge InstanceType = "ml.inf1.xlarge" + InstanceTypeMlInf12xlarge InstanceType = "ml.inf1.2xlarge" + InstanceTypeMlInf16xlarge InstanceType = "ml.inf1.6xlarge" + InstanceTypeMlInf124xlarge InstanceType = "ml.inf1.24xlarge" + InstanceTypeMlTrn12xlarge InstanceType = "ml.trn1.2xlarge" + InstanceTypeMlTrn132xlarge InstanceType = "ml.trn1.32xlarge" + InstanceTypeMlTrn1n32xlarge InstanceType = "ml.trn1n.32xlarge" + InstanceTypeMlInf2Xlarge InstanceType = "ml.inf2.xlarge" + InstanceTypeMlInf28xlarge InstanceType = "ml.inf2.8xlarge" + InstanceTypeMlInf224xlarge InstanceType = "ml.inf2.24xlarge" + InstanceTypeMlInf248xlarge InstanceType = "ml.inf2.48xlarge" + InstanceTypeMlP4d24xlarge InstanceType = "ml.p4d.24xlarge" + InstanceTypeMlP4de24xlarge InstanceType = "ml.p4de.24xlarge" + InstanceTypeMlP548xlarge InstanceType = "ml.p5.48xlarge" + InstanceTypeMlM6iLarge InstanceType = "ml.m6i.large" + InstanceTypeMlM6iXlarge InstanceType = "ml.m6i.xlarge" + InstanceTypeMlM6i2xlarge InstanceType = "ml.m6i.2xlarge" + InstanceTypeMlM6i4xlarge InstanceType = "ml.m6i.4xlarge" + InstanceTypeMlM6i8xlarge InstanceType = "ml.m6i.8xlarge" + InstanceTypeMlM6i12xlarge InstanceType = "ml.m6i.12xlarge" + InstanceTypeMlM6i16xlarge InstanceType = "ml.m6i.16xlarge" + InstanceTypeMlM6i24xlarge InstanceType = "ml.m6i.24xlarge" + InstanceTypeMlM6i32xlarge InstanceType = "ml.m6i.32xlarge" + InstanceTypeMlM7iLarge InstanceType = "ml.m7i.large" + InstanceTypeMlM7iXlarge InstanceType = "ml.m7i.xlarge" + InstanceTypeMlM7i2xlarge InstanceType = "ml.m7i.2xlarge" + InstanceTypeMlM7i4xlarge InstanceType = "ml.m7i.4xlarge" + InstanceTypeMlM7i8xlarge InstanceType = "ml.m7i.8xlarge" + InstanceTypeMlM7i12xlarge InstanceType = "ml.m7i.12xlarge" + InstanceTypeMlM7i16xlarge InstanceType = "ml.m7i.16xlarge" + InstanceTypeMlM7i24xlarge InstanceType = "ml.m7i.24xlarge" + InstanceTypeMlM7i48xlarge InstanceType = "ml.m7i.48xlarge" + InstanceTypeMlC6iLarge InstanceType = "ml.c6i.large" + InstanceTypeMlC6iXlarge InstanceType = "ml.c6i.xlarge" + InstanceTypeMlC6i2xlarge InstanceType = "ml.c6i.2xlarge" + InstanceTypeMlC6i4xlarge InstanceType = "ml.c6i.4xlarge" + InstanceTypeMlC6i8xlarge InstanceType = "ml.c6i.8xlarge" + InstanceTypeMlC6i12xlarge InstanceType = "ml.c6i.12xlarge" + InstanceTypeMlC6i16xlarge InstanceType = "ml.c6i.16xlarge" + InstanceTypeMlC6i24xlarge InstanceType = "ml.c6i.24xlarge" + InstanceTypeMlC6i32xlarge InstanceType = "ml.c6i.32xlarge" + InstanceTypeMlC7iLarge InstanceType = "ml.c7i.large" + InstanceTypeMlC7iXlarge InstanceType = "ml.c7i.xlarge" + InstanceTypeMlC7i2xlarge InstanceType = "ml.c7i.2xlarge" + InstanceTypeMlC7i4xlarge InstanceType = "ml.c7i.4xlarge" + InstanceTypeMlC7i8xlarge InstanceType = "ml.c7i.8xlarge" + InstanceTypeMlC7i12xlarge InstanceType = "ml.c7i.12xlarge" + InstanceTypeMlC7i16xlarge InstanceType = "ml.c7i.16xlarge" + InstanceTypeMlC7i24xlarge InstanceType = "ml.c7i.24xlarge" + InstanceTypeMlC7i48xlarge InstanceType = "ml.c7i.48xlarge" + InstanceTypeMlR6iLarge InstanceType = "ml.r6i.large" + InstanceTypeMlR6iXlarge InstanceType = "ml.r6i.xlarge" + InstanceTypeMlR6i2xlarge InstanceType = "ml.r6i.2xlarge" + InstanceTypeMlR6i4xlarge InstanceType = "ml.r6i.4xlarge" + InstanceTypeMlR6i8xlarge InstanceType = "ml.r6i.8xlarge" + InstanceTypeMlR6i12xlarge InstanceType = "ml.r6i.12xlarge" + InstanceTypeMlR6i16xlarge InstanceType = "ml.r6i.16xlarge" + InstanceTypeMlR6i24xlarge InstanceType = "ml.r6i.24xlarge" + InstanceTypeMlR6i32xlarge InstanceType = "ml.r6i.32xlarge" + InstanceTypeMlR7iLarge InstanceType = "ml.r7i.large" + InstanceTypeMlR7iXlarge InstanceType = "ml.r7i.xlarge" + InstanceTypeMlR7i2xlarge InstanceType = "ml.r7i.2xlarge" + InstanceTypeMlR7i4xlarge InstanceType = "ml.r7i.4xlarge" + InstanceTypeMlR7i8xlarge InstanceType = "ml.r7i.8xlarge" + InstanceTypeMlR7i12xlarge InstanceType = "ml.r7i.12xlarge" + InstanceTypeMlR7i16xlarge InstanceType = "ml.r7i.16xlarge" + InstanceTypeMlR7i24xlarge InstanceType = "ml.r7i.24xlarge" + InstanceTypeMlR7i48xlarge InstanceType = "ml.r7i.48xlarge" + InstanceTypeMlM6idLarge InstanceType = "ml.m6id.large" + InstanceTypeMlM6idXlarge InstanceType = "ml.m6id.xlarge" + InstanceTypeMlM6id2xlarge InstanceType = "ml.m6id.2xlarge" + InstanceTypeMlM6id4xlarge InstanceType = "ml.m6id.4xlarge" + InstanceTypeMlM6id8xlarge InstanceType = "ml.m6id.8xlarge" + InstanceTypeMlM6id12xlarge InstanceType = "ml.m6id.12xlarge" + InstanceTypeMlM6id16xlarge InstanceType = "ml.m6id.16xlarge" + InstanceTypeMlM6id24xlarge InstanceType = "ml.m6id.24xlarge" + InstanceTypeMlM6id32xlarge InstanceType = "ml.m6id.32xlarge" + InstanceTypeMlC6idLarge InstanceType = "ml.c6id.large" + InstanceTypeMlC6idXlarge InstanceType = "ml.c6id.xlarge" + InstanceTypeMlC6id2xlarge InstanceType = "ml.c6id.2xlarge" + InstanceTypeMlC6id4xlarge InstanceType = "ml.c6id.4xlarge" + InstanceTypeMlC6id8xlarge InstanceType = "ml.c6id.8xlarge" + InstanceTypeMlC6id12xlarge InstanceType = "ml.c6id.12xlarge" + InstanceTypeMlC6id16xlarge InstanceType = "ml.c6id.16xlarge" + InstanceTypeMlC6id24xlarge InstanceType = "ml.c6id.24xlarge" + InstanceTypeMlC6id32xlarge InstanceType = "ml.c6id.32xlarge" + InstanceTypeMlR6idLarge InstanceType = "ml.r6id.large" + InstanceTypeMlR6idXlarge InstanceType = "ml.r6id.xlarge" + InstanceTypeMlR6id2xlarge InstanceType = "ml.r6id.2xlarge" + InstanceTypeMlR6id4xlarge InstanceType = "ml.r6id.4xlarge" + InstanceTypeMlR6id8xlarge InstanceType = "ml.r6id.8xlarge" + InstanceTypeMlR6id12xlarge InstanceType = "ml.r6id.12xlarge" + InstanceTypeMlR6id16xlarge InstanceType = "ml.r6id.16xlarge" + InstanceTypeMlR6id24xlarge InstanceType = "ml.r6id.24xlarge" + InstanceTypeMlR6id32xlarge InstanceType = "ml.r6id.32xlarge" + InstanceTypeMlG6Xlarge InstanceType = "ml.g6.xlarge" + InstanceTypeMlG62xlarge InstanceType = "ml.g6.2xlarge" + InstanceTypeMlG64xlarge InstanceType = "ml.g6.4xlarge" + InstanceTypeMlG68xlarge InstanceType = "ml.g6.8xlarge" + InstanceTypeMlG612xlarge InstanceType = "ml.g6.12xlarge" + InstanceTypeMlG616xlarge InstanceType = "ml.g6.16xlarge" + InstanceTypeMlG624xlarge InstanceType = "ml.g6.24xlarge" + InstanceTypeMlG648xlarge InstanceType = "ml.g6.48xlarge" ) // Values returns all known values for InstanceType. Note that this can be @@ -3533,6 +3540,13 @@ func (InstanceType) Values() []InstanceType { "ml.inf1.2xlarge", "ml.inf1.6xlarge", "ml.inf1.24xlarge", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge", + "ml.trn1n.32xlarge", + "ml.inf2.xlarge", + "ml.inf2.8xlarge", + "ml.inf2.24xlarge", + "ml.inf2.48xlarge", "ml.p4d.24xlarge", "ml.p4de.24xlarge", "ml.p5.48xlarge", @@ -7793,6 +7807,10 @@ const ( TransformInstanceTypeMlG516xlarge TransformInstanceType = "ml.g5.16xlarge" TransformInstanceTypeMlG524xlarge TransformInstanceType = "ml.g5.24xlarge" TransformInstanceTypeMlG548xlarge TransformInstanceType = "ml.g5.48xlarge" + TransformInstanceTypeMlInf2Xlarge TransformInstanceType = "ml.inf2.xlarge" + TransformInstanceTypeMlInf28xlarge TransformInstanceType = "ml.inf2.8xlarge" + TransformInstanceTypeMlInf224xlarge TransformInstanceType = "ml.inf2.24xlarge" + TransformInstanceTypeMlInf248xlarge TransformInstanceType = "ml.inf2.48xlarge" ) // Values returns all known values for TransformInstanceType. Note that this can @@ -7895,6 +7913,10 @@ func (TransformInstanceType) Values() []TransformInstanceType { "ml.g5.16xlarge", "ml.g5.24xlarge", "ml.g5.48xlarge", + "ml.inf2.xlarge", + "ml.inf2.8xlarge", + "ml.inf2.24xlarge", + "ml.inf2.48xlarge", } } diff --git a/service/sts/api_op_AssumeRole.go b/service/sts/api_op_AssumeRole.go index be03f017d47..8838f4fb8aa 100644 --- a/service/sts/api_op_AssumeRole.go +++ b/service/sts/api_op_AssumeRole.go @@ -16,7 +16,7 @@ import ( // Amazon Web Services resources. These temporary credentials consist of an access // key ID, a secret access key, and a security token. Typically, you use AssumeRole // within your account or for cross-account access. For a comparison of AssumeRole -// with other API operations that produce temporary credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the +// with other API operations that produce temporary credentials, see [Requesting Temporary Security Credentials]and [Compare STS credentials] in the // IAM User Guide. // // # Permissions @@ -26,16 +26,16 @@ import ( // cannot call the Amazon Web Services STS GetFederationToken or GetSessionToken // API operations. // -// (Optional) You can pass inline or managed [session policies] to this operation. You can pass a -// single JSON policy document to use as an inline session policy. You can also -// specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed -// session policies. The plaintext that you use for both inline and managed session -// policies can't exceed 2,048 characters. Passing policies to this operation -// returns new temporary credentials. The resulting session's permissions are the -// intersection of the role's identity-based policy and the session policies. You -// can use the role's temporary credentials in subsequent Amazon Web Services API -// calls to access resources in the account that owns the role. You cannot use -// session policies to grant more permissions than those allowed by the +// (Optional) You can pass inline or managed session policies to this operation. +// You can pass a single JSON policy document to use as an inline session policy. +// You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use +// as managed session policies. The plaintext that you use for both inline and +// managed session policies can't exceed 2,048 characters. Passing policies to this +// operation returns new temporary credentials. The resulting session's permissions +// are the intersection of the role's identity-based policy and the session +// policies. You can use the role's temporary credentials in subsequent Amazon Web +// Services API calls to access resources in the account that owns the role. You +// cannot use session policies to grant more permissions than those allowed by the // identity-based policy of the role that is being assumed. For more information, // see [Session Policies]in the IAM User Guide. // @@ -104,10 +104,9 @@ import ( // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session // [Passing Session Tags in STS]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html // [Chaining Roles with Session Tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining -// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison -// [session policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session // [IAM Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html // [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html +// [Compare STS credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html // [Tutorial: Using Tags for Attribute-Based Access Control]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html func (c *Client) AssumeRole(ctx context.Context, params *AssumeRoleInput, optFns ...func(*Options)) (*AssumeRoleOutput, error) { if params == nil { @@ -141,10 +140,18 @@ type AssumeRoleInput struct { // the temporary security credentials will expose the role session name to the // external account in their CloudTrail logs. // + // For security purposes, administrators can view this field in [CloudTrail logs] to help identify + // who performed an action in Amazon Web Services. Your administrator might require + // that you specify your user name as the session name when you assume the role. + // For more information, see [sts:RoleSessionName]sts:RoleSessionName . + // // The regex used to validate this parameter is a string of characters consisting // of upper- and lower-case alphanumeric characters with no spaces. You can also // include underscores or any of the following characters: =,.@- // + // [CloudTrail logs]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html#cloudtrail-integration_signin-tempcreds + // [sts:RoleSessionName]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname + // // This member is required. RoleSessionName *string @@ -163,7 +170,7 @@ type AssumeRoleInput struct { // 43200 seconds (12 hours), depending on the maximum session duration setting for // your role. However, if you assume a role using role chaining and provide a // DurationSeconds parameter value greater than one hour, the operation fails. To - // learn how to view the maximum value for your role, see [View the Maximum Session Duration Setting for a Role]in the IAM User Guide. + // learn how to view the maximum value for your role, see [Update the maximum session duration for a role]. // // By default, the value is set to 3600 seconds. // @@ -173,7 +180,7 @@ type AssumeRoleInput struct { // parameter that specifies the maximum length of the console session. For more // information, see [Creating a URL that Enables Federated Users to Access the Amazon Web Services Management Console]in the IAM User Guide. // - // [View the Maximum Session Duration Setting for a Role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session + // [Update the maximum session duration for a role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html#id_roles_update-session-duration // [Creating a URL that Enables Federated Users to Access the Amazon Web Services Management Console]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html DurationSeconds *int32 @@ -218,7 +225,10 @@ type AssumeRoleInput struct { // by percentage how close the policies and tags for your request are to the upper // size limit. // + // For more information about role session permissions, see [Session policies]. + // // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + // [Session policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session Policy *string // The Amazon Resource Names (ARNs) of the IAM managed policies that you want to @@ -273,10 +283,10 @@ type AssumeRoleInput struct { SerialNumber *string // The source identity specified by the principal that is calling the AssumeRole - // operation. + // operation. The source identity value persists across [chained role]sessions. // // You can require users to specify a source identity when they assume a role. You - // do this by using the sts:SourceIdentity condition key in a role trust policy. + // do this by using the [sts:SourceIdentity]sts:SourceIdentity condition key in a role trust policy. // You can use source identity information in CloudTrail logs to determine who took // actions with a role. You can use the aws:SourceIdentity condition key to // further control access to Amazon Web Services resources based on the value of @@ -289,7 +299,9 @@ type AssumeRoleInput struct { // value that begins with the text aws: . This prefix is reserved for Amazon Web // Services internal use. // + // [chained role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-role-chaining // [Monitor and control actions taken with assumed roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html + // [sts:SourceIdentity]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceidentity SourceIdentity *string // A list of session tags that you want to pass. Each session tag consists of a @@ -342,8 +354,8 @@ type AssumeRoleInput struct { // a tag key as transitive, the corresponding key and value passes to subsequent // sessions in a role chain. For more information, see [Chaining Roles with Session Tags]in the IAM User Guide. // - // This parameter is optional. When you set session tags as transitive, the - // session policy and session tags packed binary limit is not affected. + // This parameter is optional. The transitive status of a session tag does not + // impact its packed binary size. // // If you choose not to specify a transitive tag key, then no tags are passed from // this session to any subsequent sessions. diff --git a/service/sts/api_op_AssumeRoleWithSAML.go b/service/sts/api_op_AssumeRoleWithSAML.go index b8b0c095f7e..d0e117ac928 100644 --- a/service/sts/api_op_AssumeRoleWithSAML.go +++ b/service/sts/api_op_AssumeRoleWithSAML.go @@ -16,7 +16,7 @@ import ( // mechanism for tying an enterprise identity store or directory to role-based // Amazon Web Services access without user-specific credentials or configuration. // For a comparison of AssumeRoleWithSAML with the other API operations that -// produce temporary credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the IAM User Guide. +// produce temporary credentials, see [Requesting Temporary Security Credentials]and [Compare STS credentials] in the IAM User Guide. // // The temporary security credentials returned by this operation consist of an // access key ID, a secret access key, and a security token. Applications can use @@ -130,10 +130,10 @@ import ( // [View the Maximum Session Duration Setting for a Role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session // [Creating a Role for SAML 2.0 Federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html // [IAM and STS Character Limits]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length -// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison // [Creating SAML Identity Providers]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html // [session policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session // [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html +// [Compare STS credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html // [Tutorial: Using Tags for Attribute-Based Access Control]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html // [Configuring a Relying Party and Claims]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html // [Role chaining]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining @@ -219,6 +219,8 @@ type AssumeRoleWithSAMLInput struct { // \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage // return (\u000D) characters. // + // For more information about role session permissions, see [Session policies]. + // // An Amazon Web Services conversion compresses the passed inline session policy, // managed policy ARNs, and session tags into a packed binary format that has a // separate limit. Your request can fail for this limit even if your plaintext @@ -227,6 +229,7 @@ type AssumeRoleWithSAMLInput struct { // size limit. // // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + // [Session policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session Policy *string // The Amazon Resource Names (ARNs) of the IAM managed policies that you want to @@ -304,7 +307,8 @@ type AssumeRoleWithSAMLOutput struct { // allowed space. PackedPolicySize *int32 - // The value in the SourceIdentity attribute in the SAML assertion. + // The value in the SourceIdentity attribute in the SAML assertion. The source + // identity value persists across [chained role]sessions. // // You can require users to set a source identity value when they assume a role. // You do this by using the sts:SourceIdentity condition key in a role trust @@ -321,7 +325,7 @@ type AssumeRoleWithSAMLOutput struct { // of upper- and lower-case alphanumeric characters with no spaces. You can also // include underscores or any of the following characters: =,.@- // - // [chained role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining + // [chained role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts // [Monitor and control actions taken with assumed roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html SourceIdentity *string diff --git a/service/sts/api_op_AssumeRoleWithWebIdentity.go b/service/sts/api_op_AssumeRoleWithWebIdentity.go index ffe2479f636..803cded5a49 100644 --- a/service/sts/api_op_AssumeRoleWithWebIdentity.go +++ b/service/sts/api_op_AssumeRoleWithWebIdentity.go @@ -31,7 +31,7 @@ import ( // Services credentials. Instead, the identity of the caller is validated by using // a token from the web identity provider. For a comparison of // AssumeRoleWithWebIdentity with the other API operations that produce temporary -// credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the IAM User Guide. +// credentials, see [Requesting Temporary Security Credentials]and [Compare STS credentials] in the IAM User Guide. // // The temporary security credentials returned by this API consist of an access // key ID, a secret access key, and a security token. Applications can use these @@ -45,7 +45,7 @@ import ( // DurationSeconds parameter to specify the duration of your session. You can // provide a value from 900 seconds (15 minutes) up to the maximum session duration // setting for the role. This setting can have a value from 1 hour to 12 hours. To -// learn how to view the maximum value for your role, see [View the Maximum Session Duration Setting for a Role]in the IAM User Guide. +// learn how to view the maximum value for your role, see [Update the maximum session duration for a role]in the IAM User Guide. // The maximum session duration limit applies when you use the AssumeRole* API // operations or the assume-role* CLI commands. However the limit does not apply // when you use those operations to create a console URL. For more information, see @@ -111,34 +111,23 @@ import ( // that you avoid using any personally identifiable information (PII) in this // field. For example, you could instead use a GUID or a pairwise identifier, as [suggested in the OIDC specification]. // -// For more information about how to use web identity federation and the +// For more information about how to use OIDC federation and the // AssumeRoleWithWebIdentity API, see the following resources: // // [Using Web Identity Federation API Operations for Mobile Apps] // - and [Federation Through a Web-based Identity Provider]. // -// [Web Identity Federation Playground] -// - . Walk through the process of authenticating through Login with Amazon, -// Facebook, or Google, getting temporary security credentials, and then using -// those credentials to make a request to Amazon Web Services. -// // [Amazon Web Services SDK for iOS Developer Guide] // - and [Amazon Web Services SDK for Android Developer Guide]. These toolkits contain sample apps that show how to invoke the // identity providers. The toolkits then show how to use the information from these // providers to get and use temporary security credentials. // -// [Web Identity Federation with Mobile Applications] -// - . This article discusses web identity federation and shows an example of -// how to use web identity federation to get access to content in Amazon S3. -// // [Amazon Web Services SDK for iOS Developer Guide]: http://aws.amazon.com/sdkforios/ -// [View the Maximum Session Duration Setting for a Role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session -// [Web Identity Federation Playground]: https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/ // [Amazon Web Services SDK for Android Developer Guide]: http://aws.amazon.com/sdkforandroid/ // [IAM and STS Character Limits]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length -// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison // [session policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session // [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html +// [Compare STS credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html // [Subject]: http://openid.net/specs/openid-connect-core-1_0.html#Claims // [Tutorial: Using Tags for Attribute-Based Access Control]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html // [Amazon Cognito identity pools]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html @@ -148,7 +137,7 @@ import ( // [Amazon Cognito federated identities]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html // [Passing Session Tags in STS]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html // [Chaining Roles with Session Tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining -// [Web Identity Federation with Mobile Applications]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications +// [Update the maximum session duration for a role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html#id_roles_update-session-duration // [Using Web Identity Federation API Operations for Mobile Apps]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html // [suggested in the OIDC specification]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes func (c *Client) AssumeRoleWithWebIdentity(ctx context.Context, params *AssumeRoleWithWebIdentityInput, optFns ...func(*Options)) (*AssumeRoleWithWebIdentityOutput, error) { @@ -170,6 +159,17 @@ type AssumeRoleWithWebIdentityInput struct { // The Amazon Resource Name (ARN) of the role that the caller is assuming. // + // Additional considerations apply to Amazon Cognito identity pools that assume [cross-account IAM roles]. + // The trust policies of these roles must accept the cognito-identity.amazonaws.com + // service principal and must contain the cognito-identity.amazonaws.com:aud + // condition key to restrict role assumption to users from your intended identity + // pools. A policy that trusts Amazon Cognito identity pools without this condition + // creates a risk that a user from an unintended identity pool can assume the role. + // For more information, see [Trust policies for IAM roles in Basic (Classic) authentication]in the Amazon Cognito Developer Guide. + // + // [cross-account IAM roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html + // [Trust policies for IAM roles in Basic (Classic) authentication]: https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#trust-policies + // // This member is required. RoleArn *string @@ -179,17 +179,26 @@ type AssumeRoleWithWebIdentityInput struct { // associated with that user. This session name is included as part of the ARN and // assumed role ID in the AssumedRoleUser response element. // + // For security purposes, administrators can view this field in [CloudTrail logs] to help identify + // who performed an action in Amazon Web Services. Your administrator might require + // that you specify your user name as the session name when you assume the role. + // For more information, see [sts:RoleSessionName]sts:RoleSessionName . + // // The regex used to validate this parameter is a string of characters consisting // of upper- and lower-case alphanumeric characters with no spaces. You can also // include underscores or any of the following characters: =,.@- // + // [CloudTrail logs]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html#cloudtrail-integration_signin-tempcreds + // [sts:RoleSessionName]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname + // // This member is required. RoleSessionName *string // The OAuth 2.0 access token or OpenID Connect ID token that is provided by the // identity provider. Your application must get this token by authenticating the // user who is using your application with a web identity provider before the - // application makes an AssumeRoleWithWebIdentity call. Only tokens with RSA + // application makes an AssumeRoleWithWebIdentity call. Timestamps in the token + // must be formatted as either an integer or a long integer. Only tokens with RSA // algorithms (RS256) are supported. // // This member is required. @@ -232,6 +241,8 @@ type AssumeRoleWithWebIdentityInput struct { // \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage // return (\u000D) characters. // + // For more information about role session permissions, see [Session policies]. + // // An Amazon Web Services conversion compresses the passed inline session policy, // managed policy ARNs, and session tags into a packed binary format that has a // separate limit. Your request can fail for this limit even if your plaintext @@ -240,6 +251,7 @@ type AssumeRoleWithWebIdentityInput struct { // size limit. // // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + // [Session policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session Policy *string // The Amazon Resource Names (ARNs) of the IAM managed policies that you want to @@ -337,7 +349,7 @@ type AssumeRoleWithWebIdentityOutput struct { // of upper- and lower-case alphanumeric characters with no spaces. You can also // include underscores or any of the following characters: =,.@- // - // [chained role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining + // [chained role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts // [Monitor and control actions taken with assumed roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html // [Using Tokens with User Pools]: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html SourceIdentity *string diff --git a/service/sts/api_op_AssumeRoot.go b/service/sts/api_op_AssumeRoot.go new file mode 100644 index 00000000000..537ab87527e --- /dev/null +++ b/service/sts/api_op_AssumeRoot.go @@ -0,0 +1,221 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package sts + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/sts/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns a set of short term credentials you can use to perform privileged tasks +// in a member account. +// +// Before you can launch a privileged session, you must have enabled centralized +// root access in your organization. For steps to enable this feature, see [Centralize root access for member accounts]in the +// IAM User Guide. +// +// The global endpoint is not supported for AssumeRoot. You must send this request +// to a Regional STS endpoint. For more information, see [Endpoints]. +// +// You can track AssumeRoot in CloudTrail logs to determine what actions were +// performed in a session. For more information, see [Track privileged tasks in CloudTrail]in the IAM User Guide. +// +// [Endpoints]: https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html#sts-endpoints +// [Track privileged tasks in CloudTrail]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-track-privileged-tasks.html +// [Centralize root access for member accounts]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-enable-root-access.html +func (c *Client) AssumeRoot(ctx context.Context, params *AssumeRootInput, optFns ...func(*Options)) (*AssumeRootOutput, error) { + if params == nil { + params = &AssumeRootInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "AssumeRoot", params, optFns, c.addOperationAssumeRootMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*AssumeRootOutput) + out.ResultMetadata = metadata + return out, nil +} + +type AssumeRootInput struct { + + // The member account principal ARN or account ID. + // + // This member is required. + TargetPrincipal *string + + // The identity based policy that scopes the session to the privileged tasks that + // can be performed. You can use one of following Amazon Web Services managed + // policies to scope root session actions. You can add additional customer managed + // policies to further limit the permissions for the root session. + // + // [IAMAuditRootUserCredentials] + // + // [IAMCreateRootUserPassword] + // + // [IAMDeleteRootUserCredentials] + // + // [S3UnlockBucketPolicy] + // + // [SQSUnlockQueuePolicy] + // + // [IAMDeleteRootUserCredentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMDeleteRootUserCredentials + // [IAMCreateRootUserPassword]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMCreateRootUserPassword + // [IAMAuditRootUserCredentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMAuditRootUserCredentials + // [S3UnlockBucketPolicy]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-S3UnlockBucketPolicy + // [SQSUnlockQueuePolicy]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-SQSUnlockQueuePolicy + // + // This member is required. + TaskPolicyArn *types.PolicyDescriptorType + + // The duration, in seconds, of the privileged session. The value can range from 0 + // seconds up to the maximum session duration of 900 seconds (15 minutes). If you + // specify a value higher than this setting, the operation fails. + // + // By default, the value is set to 900 seconds. + DurationSeconds *int32 + + noSmithyDocumentSerde +} + +type AssumeRootOutput struct { + + // The temporary security credentials, which include an access key ID, a secret + // access key, and a security token. + // + // The size of the security token that STS API operations return is not fixed. We + // strongly recommend that you make no assumptions about the maximum size. + Credentials *types.Credentials + + // The source identity specified by the principal that is calling the AssumeRoot + // operation. + // + // You can use the aws:SourceIdentity condition key to control access based on the + // value of source identity. For more information about using source identity, see [Monitor and control actions taken with assumed roles] + // in the IAM User Guide. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@- + // + // [Monitor and control actions taken with assumed roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html + SourceIdentity *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationAssumeRootMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsAwsquery_serializeOpAssumeRoot{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsquery_deserializeOpAssumeRoot{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "AssumeRoot"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addSpanRetryLoop(stack, options); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = addTimeOffsetBuild(stack, c); err != nil { + return err + } + if err = addUserAgentRetryMode(stack, options); err != nil { + return err + } + if err = addOpAssumeRootValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opAssumeRoot(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + if err = addSpanInitializeStart(stack); err != nil { + return err + } + if err = addSpanInitializeEnd(stack); err != nil { + return err + } + if err = addSpanBuildRequestStart(stack); err != nil { + return err + } + if err = addSpanBuildRequestEnd(stack); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opAssumeRoot(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "AssumeRoot", + } +} diff --git a/service/sts/api_op_GetFederationToken.go b/service/sts/api_op_GetFederationToken.go index 96f59ec63da..e2ecc792acd 100644 --- a/service/sts/api_op_GetFederationToken.go +++ b/service/sts/api_op_GetFederationToken.go @@ -20,7 +20,7 @@ import ( // credentials of an IAM user. As a result, this call is appropriate in contexts // where those credentials can be safeguarded, usually in a server-based // application. For a comparison of GetFederationToken with the other API -// operations that produce temporary credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the IAM User Guide. +// operations that produce temporary credentials, see [Requesting Temporary Security Credentials]and [Compare STS credentials] in the IAM User Guide. // // Although it is possible to call GetFederationToken using the security // credentials of an Amazon Web Services account root user rather than an IAM user @@ -104,9 +104,9 @@ import ( // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session // [Passing Session Tags in STS]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html // [GetFederationToken—Federation Through a Custom Identity Broker]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken -// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison // [Safeguard your root user credentials and don't use them for everyday tasks]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials // [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html +// [Compare STS credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html // [Tutorial: Using Tags for Attribute-Based Access Control]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html func (c *Client) GetFederationToken(ctx context.Context, params *GetFederationTokenInput, optFns ...func(*Options)) (*GetFederationTokenOutput, error) { if params == nil { diff --git a/service/sts/api_op_GetSessionToken.go b/service/sts/api_op_GetSessionToken.go index 0ed9ecbc74e..fdc451117b5 100644 --- a/service/sts/api_op_GetSessionToken.go +++ b/service/sts/api_op_GetSessionToken.go @@ -22,7 +22,7 @@ import ( // the call returns, IAM users can then make programmatic calls to API operations // that require MFA authentication. An incorrect MFA code causes the API to return // an access denied error. For a comparison of GetSessionToken with the other API -// operations that produce temporary credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the IAM User Guide. +// operations that produce temporary credentials, see [Requesting Temporary Security Credentials]and [Compare STS credentials] in the IAM User Guide. // // No permissions are required for users to perform this operation. The purpose of // the sts:GetSessionToken operation is to authenticate the user using MFA. You @@ -63,10 +63,10 @@ import ( // credentials, see [Temporary Credentials for Users in Untrusted Environments]in the IAM User Guide. // // [Permissions for GetSessionToken]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html -// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison // [Temporary Credentials for Users in Untrusted Environments]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken // [Safeguard your root user credentials and don't use them for everyday tasks]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials // [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html +// [Compare STS credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html func (c *Client) GetSessionToken(ctx context.Context, params *GetSessionTokenInput, optFns ...func(*Options)) (*GetSessionTokenOutput, error) { if params == nil { params = &GetSessionTokenInput{} diff --git a/service/sts/deserializers.go b/service/sts/deserializers.go index cf0cc54e2af..59349890f6f 100644 --- a/service/sts/deserializers.go +++ b/service/sts/deserializers.go @@ -410,6 +410,121 @@ func awsAwsquery_deserializeOpErrorAssumeRoleWithWebIdentity(response *smithyhtt } } +type awsAwsquery_deserializeOpAssumeRoot struct { +} + +func (*awsAwsquery_deserializeOpAssumeRoot) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsquery_deserializeOpAssumeRoot) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + _, span := tracing.StartSpan(ctx, "OperationDeserializer") + endTimer := startMetricTimer(ctx, "client.call.deserialization_duration") + defer endTimer() + defer span.End() + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsAwsquery_deserializeOpErrorAssumeRoot(response, &metadata) + } + output := &AssumeRootOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + t, err = decoder.GetElement("AssumeRootResult") + 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 + } + + decoder = smithyxml.WrapNodeDecoder(decoder.Decoder, t) + err = awsAwsquery_deserializeOpDocumentAssumeRootOutput(&output, 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 out, metadata, err + } + + return out, metadata, err +} + +func awsAwsquery_deserializeOpErrorAssumeRoot(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 + + errorComponents, err := awsxml.GetErrorResponseComponents(errorBody, false) + if err != nil { + return err + } + if reqID := errorComponents.RequestID; len(reqID) != 0 { + awsmiddleware.SetRequestIDMetadata(metadata, reqID) + } + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + case strings.EqualFold("ExpiredTokenException", errorCode): + return awsAwsquery_deserializeErrorExpiredTokenException(response, errorBody) + + case strings.EqualFold("RegionDisabledException", errorCode): + return awsAwsquery_deserializeErrorRegionDisabledException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsquery_deserializeOpDecodeAuthorizationMessage struct { } @@ -2268,6 +2383,61 @@ func awsAwsquery_deserializeOpDocumentAssumeRoleWithWebIdentityOutput(v **Assume return nil } +func awsAwsquery_deserializeOpDocumentAssumeRootOutput(v **AssumeRootOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *AssumeRootOutput + if *v == nil { + sv = &AssumeRootOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("Credentials", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsAwsquery_deserializeDocumentCredentials(&sv.Credentials, nodeDecoder); err != nil { + return err + } + + case strings.EqualFold("SourceIdentity", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.SourceIdentity = ptr.String(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsAwsquery_deserializeOpDocumentDecodeAuthorizationMessageOutput(v **DecodeAuthorizationMessageOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/sts/generated.json b/service/sts/generated.json index 6b6e839e6c9..70a88452ee2 100644 --- a/service/sts/generated.json +++ b/service/sts/generated.json @@ -13,6 +13,7 @@ "api_op_AssumeRole.go", "api_op_AssumeRoleWithSAML.go", "api_op_AssumeRoleWithWebIdentity.go", + "api_op_AssumeRoot.go", "api_op_DecodeAuthorizationMessage.go", "api_op_GetAccessKeyInfo.go", "api_op_GetCallerIdentity.go", diff --git a/service/sts/serializers.go b/service/sts/serializers.go index 1bcbc828423..96b222136bf 100644 --- a/service/sts/serializers.go +++ b/service/sts/serializers.go @@ -226,6 +226,76 @@ func (m *awsAwsquery_serializeOpAssumeRoleWithWebIdentity) HandleSerialize(ctx c return next.HandleSerialize(ctx, in) } +type awsAwsquery_serializeOpAssumeRoot struct { +} + +func (*awsAwsquery_serializeOpAssumeRoot) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsquery_serializeOpAssumeRoot) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + _, span := tracing.StartSpan(ctx, "OperationSerializer") + endTimer := startMetricTimer(ctx, "client.call.serialization_duration") + defer endTimer() + defer span.End() + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*AssumeRootInput) + _ = 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-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("AssumeRoot") + body.Key("Version").String("2011-06-15") + + if err := awsAwsquery_serializeOpDocumentAssumeRootInput(input, bodyEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + endTimer() + span.End() + return next.HandleSerialize(ctx, in) +} + type awsAwsquery_serializeOpDecodeAuthorizationMessage struct { } @@ -821,6 +891,30 @@ func awsAwsquery_serializeOpDocumentAssumeRoleWithWebIdentityInput(v *AssumeRole return nil } +func awsAwsquery_serializeOpDocumentAssumeRootInput(v *AssumeRootInput, value query.Value) error { + object := value.Object() + _ = object + + if v.DurationSeconds != nil { + objectKey := object.Key("DurationSeconds") + objectKey.Integer(*v.DurationSeconds) + } + + if v.TargetPrincipal != nil { + objectKey := object.Key("TargetPrincipal") + objectKey.String(*v.TargetPrincipal) + } + + if v.TaskPolicyArn != nil { + objectKey := object.Key("TaskPolicyArn") + if err := awsAwsquery_serializeDocumentPolicyDescriptorType(v.TaskPolicyArn, objectKey); err != nil { + return err + } + } + + return nil +} + func awsAwsquery_serializeOpDocumentDecodeAuthorizationMessageInput(v *DecodeAuthorizationMessageInput, value query.Value) error { object := value.Object() _ = object diff --git a/service/sts/snapshot/api_op_AssumeRoot.go.snap b/service/sts/snapshot/api_op_AssumeRoot.go.snap new file mode 100644 index 00000000000..12ab82a36f0 --- /dev/null +++ b/service/sts/snapshot/api_op_AssumeRoot.go.snap @@ -0,0 +1,41 @@ +AssumeRoot + Initialize stack step + spanInitializeStart + RegisterServiceMetadata + legacyEndpointContextSetter + SetLogger + OperationInputValidation + spanInitializeEnd + Serialize stack step + spanBuildRequestStart + setOperationInput + ResolveEndpoint + OperationSerializer + Build stack step + ClientRequestID + ComputeContentLength + UserAgent + AddTimeOffsetMiddleware + RecursionDetection + spanBuildRequestEnd + Finalize stack step + ResolveAuthScheme + GetIdentity + ResolveEndpointV2 + disableHTTPS + ComputePayloadHash + spanRetryLoop + Retry + RetryMetricsHeader + setLegacyContextSigningOptions + Signing + Deserialize stack step + AddRawResponseToMetadata + ErrorCloseResponseBody + CloseResponseBody + ResponseErrorWrapper + RequestIDRetriever + OperationDeserializer + AddTimeOffsetMiddleware + RecordResponseTiming + RequestResponseLogger diff --git a/service/sts/snapshot_test.go b/service/sts/snapshot_test.go index d224b596fd0..5fa0b3286f2 100644 --- a/service/sts/snapshot_test.go +++ b/service/sts/snapshot_test.go @@ -98,6 +98,18 @@ func TestCheckSnapshot_AssumeRoleWithWebIdentity(t *testing.T) { } } +func TestCheckSnapshot_AssumeRoot(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssumeRoot(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "AssumeRoot") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_DecodeAuthorizationMessage(t *testing.T) { svc := New(Options{}) _, err := svc.DecodeAuthorizationMessage(context.Background(), nil, func(o *Options) { @@ -193,6 +205,18 @@ func TestUpdateSnapshot_AssumeRoleWithWebIdentity(t *testing.T) { } } +func TestUpdateSnapshot_AssumeRoot(t *testing.T) { + svc := New(Options{}) + _, err := svc.AssumeRoot(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "AssumeRoot") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_DecodeAuthorizationMessage(t *testing.T) { svc := New(Options{}) _, err := svc.DecodeAuthorizationMessage(context.Background(), nil, func(o *Options) { diff --git a/service/sts/types/errors.go b/service/sts/types/errors.go index 9573a4b6461..041629bba2c 100644 --- a/service/sts/types/errors.go +++ b/service/sts/types/errors.go @@ -95,8 +95,8 @@ func (e *IDPRejectedClaimException) ErrorCode() string { func (e *IDPRejectedClaimException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The error returned if the message passed to DecodeAuthorizationMessage was -// invalid. This can happen if the token contains invalid characters, such as -// linebreaks. +// invalid. This can happen if the token contains invalid characters, such as line +// breaks, or if the message has expired. type InvalidAuthorizationMessageException struct { Message *string @@ -218,10 +218,10 @@ func (e *PackedPolicyTooLargeException) ErrorFault() smithy.ErrorFault { return // STS is not activated in the requested region for the account that is being // asked to generate credentials. The account administrator must use the IAM -// console to activate STS in that region. For more information, see [Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region]in the IAM +// console to activate STS in that region. For more information, see [Activating and Deactivating STS in an Amazon Web Services Region]in the IAM // User Guide. // -// [Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html +// [Activating and Deactivating STS in an Amazon Web Services Region]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html type RegionDisabledException struct { Message *string diff --git a/service/sts/validators.go b/service/sts/validators.go index 3e4bad2a925..1026e22118d 100644 --- a/service/sts/validators.go +++ b/service/sts/validators.go @@ -70,6 +70,26 @@ func (m *validateOpAssumeRoleWithWebIdentity) HandleInitialize(ctx context.Conte return next.HandleInitialize(ctx, in) } +type validateOpAssumeRoot struct { +} + +func (*validateOpAssumeRoot) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpAssumeRoot) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*AssumeRootInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpAssumeRootInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDecodeAuthorizationMessage struct { } @@ -142,6 +162,10 @@ func addOpAssumeRoleWithWebIdentityValidationMiddleware(stack *middleware.Stack) return stack.Initialize.Add(&validateOpAssumeRoleWithWebIdentity{}, middleware.After) } +func addOpAssumeRootValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpAssumeRoot{}, middleware.After) +} + func addOpDecodeAuthorizationMessageValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDecodeAuthorizationMessage{}, middleware.After) } @@ -254,6 +278,24 @@ func validateOpAssumeRoleWithWebIdentityInput(v *AssumeRoleWithWebIdentityInput) } } +func validateOpAssumeRootInput(v *AssumeRootInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AssumeRootInput"} + if v.TargetPrincipal == nil { + invalidParams.Add(smithy.NewErrParamRequired("TargetPrincipal")) + } + if v.TaskPolicyArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("TaskPolicyArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDecodeAuthorizationMessageInput(v *DecodeAuthorizationMessageInput) error { if v == nil { return nil From f0fcf5955d8b5db778157342fa7a5b5e43b27caa Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 14 Nov 2024 19:24:56 +0000 Subject: [PATCH 20/20] Release 2024-11-14 --- .../41575353444b40ffbf474f4155544f00.json | 8 ----- .../721a8b70805944d88cd6eb7d5f9beb3e.json | 8 ----- .../79f9753ebaf842a090345a87e34867df.json | 8 ----- .../7c0eff41e8964eacabe842b42a4b8e7f.json | 8 ----- .../7e1f7499964f48b78442815ebd0be8f0.json | 8 ----- .../7f7b098998bc46baba3dbe5b46b54bb0.json | 8 ----- .../8eb4e33dafcf42749dfcd4e06b371279.json | 8 ----- .../9ac04271ab2747019c6052cfc12b3080.json | 8 ----- .../9d893c93ad634d3caa4b9825c05a134a.json | 8 ----- .../adb73e9adf3946938a6ca8e0c4e988de.json | 8 ----- .../ca37627cb25e4750ad4feec0def644ba.json | 8 ----- .../cae5b68ad5014c38870a74a3936cae13.json | 8 ----- .../d52d1baf1bcc46e29a1244f54caf2a50.json | 8 ----- .../f4d160769d804d809058ff0c87e8eaf5.json | 8 ----- CHANGELOG.md | 34 +++++++++++++++++++ config/CHANGELOG.md | 4 +++ config/go.mod | 4 +-- config/go_module_metadata.go | 2 +- credentials/CHANGELOG.md | 4 +++ credentials/go.mod | 2 +- credentials/go_module_metadata.go | 2 +- example/service/dynamodb/createTable/go.mod | 6 ++-- example/service/dynamodb/scanItems/go.mod | 6 ++-- example/service/s3/listObjects/go.mod | 8 ++--- example/service/s3/usingPrivateLink/go.mod | 8 ++--- .../ec2/imds/internal/configtesting/go.mod | 6 ++-- feature/s3/manager/CHANGELOG.md | 4 +++ feature/s3/manager/go.mod | 8 ++--- feature/s3/manager/go_module_metadata.go | 2 +- internal/configsources/configtesting/go.mod | 6 ++-- service/accessanalyzer/CHANGELOG.md | 4 +++ service/accessanalyzer/go_module_metadata.go | 2 +- service/cloudcontrol/CHANGELOG.md | 4 +++ service/cloudcontrol/go_module_metadata.go | 2 +- service/deadline/CHANGELOG.md | 4 +++ service/deadline/go_module_metadata.go | 2 +- service/iam/CHANGELOG.md | 4 +++ service/iam/go_module_metadata.go | 2 +- service/internal/benchmark/go.mod | 2 +- .../internal/eventstreamtesting/CHANGELOG.md | 4 +++ service/internal/eventstreamtesting/go.mod | 2 +- .../eventstreamtesting/go_module_metadata.go | 2 +- service/internal/integrationtest/go.mod | 14 ++++---- service/iotwireless/CHANGELOG.md | 4 +++ service/iotwireless/go_module_metadata.go | 2 +- service/ivs/CHANGELOG.md | 4 +++ service/ivs/go_module_metadata.go | 2 +- service/kinesis/internal/testing/go.mod | 4 +-- .../CHANGELOG.md | 4 +++ .../go_module_metadata.go | 2 +- service/mq/CHANGELOG.md | 4 +++ service/mq/go_module_metadata.go | 2 +- service/partnercentralselling/CHANGELOG.md | 5 +++ .../go_module_metadata.go | 2 +- service/quicksight/CHANGELOG.md | 4 +++ service/quicksight/go_module_metadata.go | 2 +- service/redshift/CHANGELOG.md | 4 +++ service/redshift/go_module_metadata.go | 2 +- service/s3/CHANGELOG.md | 4 +++ service/s3/go_module_metadata.go | 2 +- service/s3/internal/configtesting/go.mod | 6 ++-- service/sagemaker/CHANGELOG.md | 4 +++ service/sagemaker/go_module_metadata.go | 2 +- service/sts/CHANGELOG.md | 4 +++ service/sts/go_module_metadata.go | 2 +- .../internal/testing/go.mod | 4 +-- 66 files changed, 168 insertions(+), 173 deletions(-) delete mode 100644 .changelog/41575353444b40ffbf474f4155544f00.json delete mode 100644 .changelog/721a8b70805944d88cd6eb7d5f9beb3e.json delete mode 100644 .changelog/79f9753ebaf842a090345a87e34867df.json delete mode 100644 .changelog/7c0eff41e8964eacabe842b42a4b8e7f.json delete mode 100644 .changelog/7e1f7499964f48b78442815ebd0be8f0.json delete mode 100644 .changelog/7f7b098998bc46baba3dbe5b46b54bb0.json delete mode 100644 .changelog/8eb4e33dafcf42749dfcd4e06b371279.json delete mode 100644 .changelog/9ac04271ab2747019c6052cfc12b3080.json delete mode 100644 .changelog/9d893c93ad634d3caa4b9825c05a134a.json delete mode 100644 .changelog/adb73e9adf3946938a6ca8e0c4e988de.json delete mode 100644 .changelog/ca37627cb25e4750ad4feec0def644ba.json delete mode 100644 .changelog/cae5b68ad5014c38870a74a3936cae13.json delete mode 100644 .changelog/d52d1baf1bcc46e29a1244f54caf2a50.json delete mode 100644 .changelog/f4d160769d804d809058ff0c87e8eaf5.json create mode 100644 service/partnercentralselling/CHANGELOG.md diff --git a/.changelog/41575353444b40ffbf474f4155544f00.json b/.changelog/41575353444b40ffbf474f4155544f00.json deleted file mode 100644 index 102334aa2ad..00000000000 --- a/.changelog/41575353444b40ffbf474f4155544f00.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "41575353-444b-40ff-bf47-4f4155544f00", - "type": "release", - "description": "New AWS service client module", - "modules": [ - "service/partnercentralselling" - ] -} \ No newline at end of file diff --git a/.changelog/721a8b70805944d88cd6eb7d5f9beb3e.json b/.changelog/721a8b70805944d88cd6eb7d5f9beb3e.json deleted file mode 100644 index 7b3a77ae6e2..00000000000 --- a/.changelog/721a8b70805944d88cd6eb7d5f9beb3e.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "721a8b70-8059-44d8-8cd6-eb7d5f9beb3e", - "type": "feature", - "description": "Expand analyzer configuration capabilities for unused access analyzers. Unused access analyzer configurations now support the ability to exclude accounts and resource tags from analysis providing more granular control over the scope of analysis.", - "modules": [ - "service/accessanalyzer" - ] -} \ No newline at end of file diff --git a/.changelog/79f9753ebaf842a090345a87e34867df.json b/.changelog/79f9753ebaf842a090345a87e34867df.json deleted file mode 100644 index db4c383e80a..00000000000 --- a/.changelog/79f9753ebaf842a090345a87e34867df.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "79f9753e-baf8-42a0-9034-5a87e34867df", - "type": "feature", - "description": "Add support for Neuron instance types [ trn1/trn1n/inf2 ] on SageMaker Notebook Instances Platform.", - "modules": [ - "service/sagemaker" - ] -} \ No newline at end of file diff --git a/.changelog/7c0eff41e8964eacabe842b42a4b8e7f.json b/.changelog/7c0eff41e8964eacabe842b42a4b8e7f.json deleted file mode 100644 index 9d3c8df59bc..00000000000 --- a/.changelog/7c0eff41e8964eacabe842b42a4b8e7f.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "7c0eff41-e896-4eac-abe8-42b42a4b8e7f", - "type": "feature", - "description": "This release adds APIs for Custom Permissions management in QuickSight, and APIs to support QuickSight Branding.", - "modules": [ - "service/quicksight" - ] -} \ No newline at end of file diff --git a/.changelog/7e1f7499964f48b78442815ebd0be8f0.json b/.changelog/7e1f7499964f48b78442815ebd0be8f0.json deleted file mode 100644 index 1b902afa49b..00000000000 --- a/.changelog/7e1f7499964f48b78442815ebd0be8f0.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "7e1f7499-964f-48b7-8442-815ebd0be8f0", - "type": "feature", - "description": "Adds support for Amazon Redshift S3AccessGrants", - "modules": [ - "service/redshift" - ] -} \ No newline at end of file diff --git a/.changelog/7f7b098998bc46baba3dbe5b46b54bb0.json b/.changelog/7f7b098998bc46baba3dbe5b46b54bb0.json deleted file mode 100644 index 42fab34c9c5..00000000000 --- a/.changelog/7f7b098998bc46baba3dbe5b46b54bb0.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "7f7b0989-98bc-46ba-ba3d-be5b46b54bb0", - "type": "feature", - "description": "Added support for CloudFormation Hooks with Cloud Control API. The GetResourceRequestStatus API response now includes an optional HooksProgressEvent and HooksRequestToken parameter for Hooks Invocation Progress as part of resource operation with Cloud Control.", - "modules": [ - "service/cloudcontrol" - ] -} \ No newline at end of file diff --git a/.changelog/8eb4e33dafcf42749dfcd4e06b371279.json b/.changelog/8eb4e33dafcf42749dfcd4e06b371279.json deleted file mode 100644 index 2643bc6ef51..00000000000 --- a/.changelog/8eb4e33dafcf42749dfcd4e06b371279.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "8eb4e33d-afcf-4274-9dfc-d4e06b371279", - "type": "feature", - "description": "New and updated API operations to support License Included User-based Subscription of Microsoft Remote Desktop Services (RDS).", - "modules": [ - "service/licensemanagerusersubscriptions" - ] -} \ No newline at end of file diff --git a/.changelog/9ac04271ab2747019c6052cfc12b3080.json b/.changelog/9ac04271ab2747019c6052cfc12b3080.json deleted file mode 100644 index 2b4cdde82e2..00000000000 --- a/.changelog/9ac04271ab2747019c6052cfc12b3080.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "9ac04271-ab27-4701-9c60-52cfc12b3080", - "type": "feature", - "description": "Adds support for select GPU accelerated instance types when creating new service-managed fleets.", - "modules": [ - "service/deadline" - ] -} \ No newline at end of file diff --git a/.changelog/9d893c93ad634d3caa4b9825c05a134a.json b/.changelog/9d893c93ad634d3caa4b9825c05a134a.json deleted file mode 100644 index 15aac1e41b8..00000000000 --- a/.changelog/9d893c93ad634d3caa4b9825c05a134a.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "9d893c93-ad63-4d3c-aa4b-9825c05a134a", - "type": "feature", - "description": "Announcing AWS Partner Central API for Selling: This service launch Introduces new APIs for co-selling opportunity management and related functions. Key features include notifications, a dynamic sandbox for testing, and streamlined validations.", - "modules": [ - "service/partnercentralselling" - ] -} \ No newline at end of file diff --git a/.changelog/adb73e9adf3946938a6ca8e0c4e988de.json b/.changelog/adb73e9adf3946938a6ca8e0c4e988de.json deleted file mode 100644 index bbe68a3a2fb..00000000000 --- a/.changelog/adb73e9adf3946938a6ca8e0c4e988de.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "adb73e9a-df39-4693-8a6c-a8e0c4e988de", - "type": "feature", - "description": "This release introduces the new API 'AssumeRoot', which returns short-term credentials that you can use to perform privileged tasks.", - "modules": [ - "service/sts" - ] -} \ No newline at end of file diff --git a/.changelog/ca37627cb25e4750ad4feec0def644ba.json b/.changelog/ca37627cb25e4750ad4feec0def644ba.json deleted file mode 100644 index 319b32f0b68..00000000000 --- a/.changelog/ca37627cb25e4750ad4feec0def644ba.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "ca37627c-b25e-4750-ad4f-eec0def644ba", - "type": "feature", - "description": "IVS now offers customers the ability to stream multitrack video to Channels.", - "modules": [ - "service/ivs" - ] -} \ No newline at end of file diff --git a/.changelog/cae5b68ad5014c38870a74a3936cae13.json b/.changelog/cae5b68ad5014c38870a74a3936cae13.json deleted file mode 100644 index 7fb559638b2..00000000000 --- a/.changelog/cae5b68ad5014c38870a74a3936cae13.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "cae5b68a-d501-4c38-870a-74a3936cae13", - "type": "feature", - "description": "This release includes support for five new APIs and changes to existing APIs that give AWS Organizations customers the ability to use temporary root credentials, targeted to member accounts in the organization.", - "modules": [ - "service/iam" - ] -} \ No newline at end of file diff --git a/.changelog/d52d1baf1bcc46e29a1244f54caf2a50.json b/.changelog/d52d1baf1bcc46e29a1244f54caf2a50.json deleted file mode 100644 index a38c2aace1a..00000000000 --- a/.changelog/d52d1baf1bcc46e29a1244f54caf2a50.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "d52d1baf-1bcc-46e2-9a12-44f54caf2a50", - "type": "feature", - "description": "New FuotaTask resource type to enable logging for your FUOTA tasks. A ParticipatingGatewaysforMulticast parameter to choose the list of gateways to receive the multicast downlink message and the transmission interval between them. Descriptor field which will be sent to devices during FUOTA transfer.", - "modules": [ - "service/iotwireless" - ] -} \ No newline at end of file diff --git a/.changelog/f4d160769d804d809058ff0c87e8eaf5.json b/.changelog/f4d160769d804d809058ff0c87e8eaf5.json deleted file mode 100644 index 8f19089e363..00000000000 --- a/.changelog/f4d160769d804d809058ff0c87e8eaf5.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "f4d16076-9d80-4d80-9058-ff0c87e8eaf5", - "type": "feature", - "description": "This release updates the ListBuckets API Reference documentation in support of the new 10,000 general purpose bucket default quota on all AWS accounts. To increase your bucket quota from 10,000 to up to 1 million buckets, simply request a quota increase via Service Quotas.", - "modules": [ - "service/s3" - ] -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9797c55df29..3c0b76ed44c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,37 @@ +# Release (2024-11-14) + +## General Highlights +* **Dependency Update**: Updated to the latest SDK module versions + +## Module Highlights +* `github.com/aws/aws-sdk-go-v2/service/accessanalyzer`: [v1.36.0](service/accessanalyzer/CHANGELOG.md#v1360-2024-11-14) + * **Feature**: Expand analyzer configuration capabilities for unused access analyzers. Unused access analyzer configurations now support the ability to exclude accounts and resource tags from analysis providing more granular control over the scope of analysis. +* `github.com/aws/aws-sdk-go-v2/service/cloudcontrol`: [v1.23.0](service/cloudcontrol/CHANGELOG.md#v1230-2024-11-14) + * **Feature**: Added support for CloudFormation Hooks with Cloud Control API. The GetResourceRequestStatus API response now includes an optional HooksProgressEvent and HooksRequestToken parameter for Hooks Invocation Progress as part of resource operation with Cloud Control. +* `github.com/aws/aws-sdk-go-v2/service/deadline`: [v1.7.0](service/deadline/CHANGELOG.md#v170-2024-11-14) + * **Feature**: Adds support for select GPU accelerated instance types when creating new service-managed fleets. +* `github.com/aws/aws-sdk-go-v2/service/iam`: [v1.38.0](service/iam/CHANGELOG.md#v1380-2024-11-14) + * **Feature**: This release includes support for five new APIs and changes to existing APIs that give AWS Organizations customers the ability to use temporary root credentials, targeted to member accounts in the organization. +* `github.com/aws/aws-sdk-go-v2/service/iotwireless`: [v1.45.0](service/iotwireless/CHANGELOG.md#v1450-2024-11-14) + * **Feature**: New FuotaTask resource type to enable logging for your FUOTA tasks. A ParticipatingGatewaysforMulticast parameter to choose the list of gateways to receive the multicast downlink message and the transmission interval between them. Descriptor field which will be sent to devices during FUOTA transfer. +* `github.com/aws/aws-sdk-go-v2/service/ivs`: [v1.42.0](service/ivs/CHANGELOG.md#v1420-2024-11-14) + * **Feature**: IVS now offers customers the ability to stream multitrack video to Channels. +* `github.com/aws/aws-sdk-go-v2/service/licensemanagerusersubscriptions`: [v1.14.0](service/licensemanagerusersubscriptions/CHANGELOG.md#v1140-2024-11-14) + * **Feature**: New and updated API operations to support License Included User-based Subscription of Microsoft Remote Desktop Services (RDS). +* `github.com/aws/aws-sdk-go-v2/service/partnercentralselling`: [v1.0.0](service/partnercentralselling/CHANGELOG.md#v100-2024-11-14) + * **Release**: New AWS service client module + * **Feature**: Announcing AWS Partner Central API for Selling: This service launch Introduces new APIs for co-selling opportunity management and related functions. Key features include notifications, a dynamic sandbox for testing, and streamlined validations. +* `github.com/aws/aws-sdk-go-v2/service/quicksight`: [v1.79.0](service/quicksight/CHANGELOG.md#v1790-2024-11-14) + * **Feature**: This release adds APIs for Custom Permissions management in QuickSight, and APIs to support QuickSight Branding. +* `github.com/aws/aws-sdk-go-v2/service/redshift`: [v1.52.0](service/redshift/CHANGELOG.md#v1520-2024-11-14) + * **Feature**: Adds support for Amazon Redshift S3AccessGrants +* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.67.0](service/s3/CHANGELOG.md#v1670-2024-11-14) + * **Feature**: This release updates the ListBuckets API Reference documentation in support of the new 10,000 general purpose bucket default quota on all AWS accounts. To increase your bucket quota from 10,000 to up to 1 million buckets, simply request a quota increase via Service Quotas. +* `github.com/aws/aws-sdk-go-v2/service/sagemaker`: [v1.167.0](service/sagemaker/CHANGELOG.md#v11670-2024-11-14) + * **Feature**: Add support for Neuron instance types [ trn1/trn1n/inf2 ] on SageMaker Notebook Instances Platform. +* `github.com/aws/aws-sdk-go-v2/service/sts`: [v1.33.0](service/sts/CHANGELOG.md#v1330-2024-11-14) + * **Feature**: This release introduces the new API 'AssumeRoot', which returns short-term credentials that you can use to perform privileged tasks. + # Release (2024-11-13) ## General Highlights diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index a4db973efe7..91c59f49cbf 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.28.4 (2024-11-14) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.28.3 (2024-11-07) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/config/go.mod b/config/go.mod index 35f2dec1ed5..e540022bf7f 100644 --- a/config/go.mod +++ b/config/go.mod @@ -4,12 +4,12 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 github.com/aws/smithy-go v1.22.0 ) diff --git a/config/go_module_metadata.go b/config/go_module_metadata.go index 932235f9b78..75a7fe1e825 100644 --- a/config/go_module_metadata.go +++ b/config/go_module_metadata.go @@ -3,4 +3,4 @@ package config // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.28.3" +const goModuleVersion = "1.28.4" diff --git a/credentials/CHANGELOG.md b/credentials/CHANGELOG.md index 2f0c60fbcff..ee332310031 100644 --- a/credentials/CHANGELOG.md +++ b/credentials/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.17.45 (2024-11-14) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.17.44 (2024-11-07) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/credentials/go.mod b/credentials/go.mod index 2fa5c249873..06619aa833d 100644 --- a/credentials/go.mod +++ b/credentials/go.mod @@ -7,7 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 github.com/aws/smithy-go v1.22.0 ) diff --git a/credentials/go_module_metadata.go b/credentials/go_module_metadata.go index 5c028a10db7..b6bb1432fbd 100644 --- a/credentials/go_module_metadata.go +++ b/credentials/go_module_metadata.go @@ -3,4 +3,4 @@ package credentials // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.17.44" +const goModuleVersion = "1.17.45" diff --git a/example/service/dynamodb/createTable/go.mod b/example/service/dynamodb/createTable/go.mod index 4acc0d40f52..e5ff9b05209 100644 --- a/example/service/dynamodb/createTable/go.mod +++ b/example/service/dynamodb/createTable/go.mod @@ -4,12 +4,12 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/config v1.28.3 + github.com/aws/aws-sdk-go-v2/config v1.28.4 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 ) require ( - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect @@ -19,7 +19,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect ) diff --git a/example/service/dynamodb/scanItems/go.mod b/example/service/dynamodb/scanItems/go.mod index 008cc7629b9..5be4b0a05a1 100644 --- a/example/service/dynamodb/scanItems/go.mod +++ b/example/service/dynamodb/scanItems/go.mod @@ -4,13 +4,13 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/config v1.28.3 + github.com/aws/aws-sdk-go-v2/config v1.28.4 github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.15.16 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 ) require ( - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect @@ -21,7 +21,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect ) diff --git a/example/service/s3/listObjects/go.mod b/example/service/s3/listObjects/go.mod index 4fef921a614..b188c9bd055 100644 --- a/example/service/s3/listObjects/go.mod +++ b/example/service/s3/listObjects/go.mod @@ -3,14 +3,14 @@ module github.com/aws/aws-sdk-go-v2/example/service/s3/listObjects go 1.21 require ( - github.com/aws/aws-sdk-go-v2/config v1.28.3 - github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 + github.com/aws/aws-sdk-go-v2/config v1.28.4 + github.com/aws/aws-sdk-go-v2/service/s3 v1.67.0 ) require ( github.com/aws/aws-sdk-go-v2 v1.32.4 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect @@ -22,7 +22,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect ) diff --git a/example/service/s3/usingPrivateLink/go.mod b/example/service/s3/usingPrivateLink/go.mod index 01a684af109..147233661d4 100644 --- a/example/service/s3/usingPrivateLink/go.mod +++ b/example/service/s3/usingPrivateLink/go.mod @@ -4,14 +4,14 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/config v1.28.3 - github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 + github.com/aws/aws-sdk-go-v2/config v1.28.4 + github.com/aws/aws-sdk-go-v2/service/s3 v1.67.0 github.com/aws/aws-sdk-go-v2/service/s3control v1.50.0 ) require ( github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect @@ -23,7 +23,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect ) diff --git a/feature/ec2/imds/internal/configtesting/go.mod b/feature/ec2/imds/internal/configtesting/go.mod index a9b6368a11b..954cdc408aa 100644 --- a/feature/ec2/imds/internal/configtesting/go.mod +++ b/feature/ec2/imds/internal/configtesting/go.mod @@ -3,13 +3,13 @@ module github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/configtesting go 1.21 require ( - github.com/aws/aws-sdk-go-v2/config v1.28.3 + github.com/aws/aws-sdk-go-v2/config v1.28.4 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 ) require ( github.com/aws/aws-sdk-go-v2 v1.32.4 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect @@ -17,7 +17,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect ) diff --git a/feature/s3/manager/CHANGELOG.md b/feature/s3/manager/CHANGELOG.md index 4fe95be3b43..60b6ee914f3 100644 --- a/feature/s3/manager/CHANGELOG.md +++ b/feature/s3/manager/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.17.38 (2024-11-14) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.17.37 (2024-11-07) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/feature/s3/manager/go.mod b/feature/s3/manager/go.mod index a2aa3456e8e..9b7f7a17feb 100644 --- a/feature/s3/manager/go.mod +++ b/feature/s3/manager/go.mod @@ -4,14 +4,14 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/config v1.28.3 - github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 + github.com/aws/aws-sdk-go-v2/config v1.28.4 + github.com/aws/aws-sdk-go-v2/service/s3 v1.67.0 github.com/aws/smithy-go v1.22.0 ) require ( github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect @@ -23,7 +23,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 // indirect ) replace github.com/aws/aws-sdk-go-v2 => ../../../ diff --git a/feature/s3/manager/go_module_metadata.go b/feature/s3/manager/go_module_metadata.go index d055aadb1cd..9296700dff5 100644 --- a/feature/s3/manager/go_module_metadata.go +++ b/feature/s3/manager/go_module_metadata.go @@ -3,4 +3,4 @@ package manager // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.17.37" +const goModuleVersion = "1.17.38" diff --git a/internal/configsources/configtesting/go.mod b/internal/configsources/configtesting/go.mod index 62996619675..260ba0c31fb 100644 --- a/internal/configsources/configtesting/go.mod +++ b/internal/configsources/configtesting/go.mod @@ -3,13 +3,13 @@ module github.com/aws/aws-sdk-go-v2/internal/configsources/configtesting go 1.21 require ( - github.com/aws/aws-sdk-go-v2/config v1.28.3 + github.com/aws/aws-sdk-go-v2/config v1.28.4 github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 ) require ( github.com/aws/aws-sdk-go-v2 v1.32.4 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect @@ -17,7 +17,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect ) diff --git a/service/accessanalyzer/CHANGELOG.md b/service/accessanalyzer/CHANGELOG.md index 676900d511d..296e33f1c6a 100644 --- a/service/accessanalyzer/CHANGELOG.md +++ b/service/accessanalyzer/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.36.0 (2024-11-14) + +* **Feature**: Expand analyzer configuration capabilities for unused access analyzers. Unused access analyzer configurations now support the ability to exclude accounts and resource tags from analysis providing more granular control over the scope of analysis. + # v1.35.0 (2024-11-13) * **Feature**: This release adds support for policy validation and external access findings for resource control policies (RCP). IAM Access Analyzer helps you author functional and secure RCPs and awareness that a RCP may restrict external access. Updated service API, documentation, and paginators. diff --git a/service/accessanalyzer/go_module_metadata.go b/service/accessanalyzer/go_module_metadata.go index d344732d013..be2e2a7be07 100644 --- a/service/accessanalyzer/go_module_metadata.go +++ b/service/accessanalyzer/go_module_metadata.go @@ -3,4 +3,4 @@ package accessanalyzer // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.35.0" +const goModuleVersion = "1.36.0" diff --git a/service/cloudcontrol/CHANGELOG.md b/service/cloudcontrol/CHANGELOG.md index 4a5c967de63..fde2a7bd540 100644 --- a/service/cloudcontrol/CHANGELOG.md +++ b/service/cloudcontrol/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.23.0 (2024-11-14) + +* **Feature**: Added support for CloudFormation Hooks with Cloud Control API. The GetResourceRequestStatus API response now includes an optional HooksProgressEvent and HooksRequestToken parameter for Hooks Invocation Progress as part of resource operation with Cloud Control. + # v1.22.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/cloudcontrol/go_module_metadata.go b/service/cloudcontrol/go_module_metadata.go index 8dc85cf950f..4fd9b4b754e 100644 --- a/service/cloudcontrol/go_module_metadata.go +++ b/service/cloudcontrol/go_module_metadata.go @@ -3,4 +3,4 @@ package cloudcontrol // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.22.5" +const goModuleVersion = "1.23.0" diff --git a/service/deadline/CHANGELOG.md b/service/deadline/CHANGELOG.md index 31d9db0cfa1..5fb56aa6616 100644 --- a/service/deadline/CHANGELOG.md +++ b/service/deadline/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.7.0 (2024-11-14) + +* **Feature**: Adds support for select GPU accelerated instance types when creating new service-managed fleets. + # v1.6.4 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/deadline/go_module_metadata.go b/service/deadline/go_module_metadata.go index 50071b8774d..8901e7f342a 100644 --- a/service/deadline/go_module_metadata.go +++ b/service/deadline/go_module_metadata.go @@ -3,4 +3,4 @@ package deadline // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.6.4" +const goModuleVersion = "1.7.0" diff --git a/service/iam/CHANGELOG.md b/service/iam/CHANGELOG.md index 71f1159578c..1634a2734d7 100644 --- a/service/iam/CHANGELOG.md +++ b/service/iam/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.38.0 (2024-11-14) + +* **Feature**: This release includes support for five new APIs and changes to existing APIs that give AWS Organizations customers the ability to use temporary root credentials, targeted to member accounts in the organization. + # v1.37.4 (2024-11-06) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/iam/go_module_metadata.go b/service/iam/go_module_metadata.go index 51e61f7cc0b..f687c7d0dbf 100644 --- a/service/iam/go_module_metadata.go +++ b/service/iam/go_module_metadata.go @@ -3,4 +3,4 @@ package iam // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.37.4" +const goModuleVersion = "1.38.0" diff --git a/service/internal/benchmark/go.mod b/service/internal/benchmark/go.mod index d9cfd81eb30..d54ece4e1e9 100644 --- a/service/internal/benchmark/go.mod +++ b/service/internal/benchmark/go.mod @@ -7,7 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.32.4 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.0 github.com/aws/aws-sdk-go-v2/service/lexruntimeservice v1.24.5 - github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 + github.com/aws/aws-sdk-go-v2/service/s3 v1.67.0 github.com/aws/aws-sdk-go-v2/service/schemas v1.28.6 github.com/aws/smithy-go v1.22.0 ) diff --git a/service/internal/eventstreamtesting/CHANGELOG.md b/service/internal/eventstreamtesting/CHANGELOG.md index 3509350d93c..52583ca6599 100644 --- a/service/internal/eventstreamtesting/CHANGELOG.md +++ b/service/internal/eventstreamtesting/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.5.6 (2024-11-14) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.5.5 (2024-11-07) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/internal/eventstreamtesting/go.mod b/service/internal/eventstreamtesting/go.mod index 836a06bc728..4397220978e 100644 --- a/service/internal/eventstreamtesting/go.mod +++ b/service/internal/eventstreamtesting/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 ) require github.com/aws/smithy-go v1.22.0 // indirect diff --git a/service/internal/eventstreamtesting/go_module_metadata.go b/service/internal/eventstreamtesting/go_module_metadata.go index 1bfa5fffe00..e47388c0edf 100644 --- a/service/internal/eventstreamtesting/go_module_metadata.go +++ b/service/internal/eventstreamtesting/go_module_metadata.go @@ -3,4 +3,4 @@ package eventstreamtesting // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.5.5" +const goModuleVersion = "1.5.6" diff --git a/service/internal/integrationtest/go.mod b/service/internal/integrationtest/go.mod index 08a91a52ee4..b40d79c42df 100644 --- a/service/internal/integrationtest/go.mod +++ b/service/internal/integrationtest/go.mod @@ -2,8 +2,8 @@ module github.com/aws/aws-sdk-go-v2/service/internal/integrationtest require ( github.com/aws/aws-sdk-go-v2 v1.32.4 - github.com/aws/aws-sdk-go-v2/config v1.28.3 - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37 + github.com/aws/aws-sdk-go-v2/config v1.28.4 + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.38 github.com/aws/aws-sdk-go-v2/service/acm v1.30.5 github.com/aws/aws-sdk-go-v2/service/apigateway v1.27.5 github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.33.5 @@ -46,7 +46,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/glacier v1.26.5 github.com/aws/aws-sdk-go-v2/service/glue v1.101.3 github.com/aws/aws-sdk-go-v2/service/health v1.28.5 - github.com/aws/aws-sdk-go-v2/service/iam v1.37.4 + github.com/aws/aws-sdk-go-v2/service/iam v1.38.0 github.com/aws/aws-sdk-go-v2/service/inspector v1.25.5 github.com/aws/aws-sdk-go-v2/service/iot v1.59.5 github.com/aws/aws-sdk-go-v2/service/kinesis v1.32.5 @@ -58,12 +58,12 @@ require ( github.com/aws/aws-sdk-go-v2/service/pinpointemail v1.23.5 github.com/aws/aws-sdk-go-v2/service/polly v1.45.5 github.com/aws/aws-sdk-go-v2/service/rds v1.89.2 - github.com/aws/aws-sdk-go-v2/service/redshift v1.51.1 + github.com/aws/aws-sdk-go-v2/service/redshift v1.52.0 github.com/aws/aws-sdk-go-v2/service/rekognition v1.45.6 github.com/aws/aws-sdk-go-v2/service/route53 v1.46.1 github.com/aws/aws-sdk-go-v2/service/route53domains v1.27.5 github.com/aws/aws-sdk-go-v2/service/route53resolver v1.33.3 - github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 + github.com/aws/aws-sdk-go-v2/service/s3 v1.67.0 github.com/aws/aws-sdk-go-v2/service/s3control v1.50.0 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.5 github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.32.5 @@ -74,7 +74,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sns v1.33.4 github.com/aws/aws-sdk-go-v2/service/sqs v1.37.0 github.com/aws/aws-sdk-go-v2/service/ssm v1.55.5 - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 github.com/aws/aws-sdk-go-v2/service/support v1.26.5 github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.29.5 github.com/aws/aws-sdk-go-v2/service/transcribestreaming v1.22.3 @@ -87,7 +87,7 @@ require ( require ( github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect diff --git a/service/iotwireless/CHANGELOG.md b/service/iotwireless/CHANGELOG.md index 1a32d92268a..cff325899a0 100644 --- a/service/iotwireless/CHANGELOG.md +++ b/service/iotwireless/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.45.0 (2024-11-14) + +* **Feature**: New FuotaTask resource type to enable logging for your FUOTA tasks. A ParticipatingGatewaysforMulticast parameter to choose the list of gateways to receive the multicast downlink message and the transmission interval between them. Descriptor field which will be sent to devices during FUOTA transfer. + # v1.44.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/iotwireless/go_module_metadata.go b/service/iotwireless/go_module_metadata.go index 2d9531199fb..01d1c881835 100644 --- a/service/iotwireless/go_module_metadata.go +++ b/service/iotwireless/go_module_metadata.go @@ -3,4 +3,4 @@ package iotwireless // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.44.5" +const goModuleVersion = "1.45.0" diff --git a/service/ivs/CHANGELOG.md b/service/ivs/CHANGELOG.md index f5dfe0b5870..9eaa747fcd0 100644 --- a/service/ivs/CHANGELOG.md +++ b/service/ivs/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.42.0 (2024-11-14) + +* **Feature**: IVS now offers customers the ability to stream multitrack video to Channels. + # v1.41.2 (2024-11-06) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/ivs/go_module_metadata.go b/service/ivs/go_module_metadata.go index 64b72015a7e..e2e1164c07d 100644 --- a/service/ivs/go_module_metadata.go +++ b/service/ivs/go_module_metadata.go @@ -3,4 +3,4 @@ package ivs // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.41.2" +const goModuleVersion = "1.42.0" diff --git a/service/kinesis/internal/testing/go.mod b/service/kinesis/internal/testing/go.mod index 9577d79b167..9a33361193c 100644 --- a/service/kinesis/internal/testing/go.mod +++ b/service/kinesis/internal/testing/go.mod @@ -5,13 +5,13 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 - github.com/aws/aws-sdk-go-v2/service/internal/eventstreamtesting v1.5.5 + github.com/aws/aws-sdk-go-v2/service/internal/eventstreamtesting v1.5.6 github.com/aws/aws-sdk-go-v2/service/kinesis v1.32.5 github.com/aws/smithy-go v1.22.0 ) require ( - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect diff --git a/service/licensemanagerusersubscriptions/CHANGELOG.md b/service/licensemanagerusersubscriptions/CHANGELOG.md index 3c7b17f03d3..b69841b4a7e 100644 --- a/service/licensemanagerusersubscriptions/CHANGELOG.md +++ b/service/licensemanagerusersubscriptions/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.14.0 (2024-11-14) + +* **Feature**: New and updated API operations to support License Included User-based Subscription of Microsoft Remote Desktop Services (RDS). + # v1.13.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/licensemanagerusersubscriptions/go_module_metadata.go b/service/licensemanagerusersubscriptions/go_module_metadata.go index 31c9f4af520..3f26c1c46ac 100644 --- a/service/licensemanagerusersubscriptions/go_module_metadata.go +++ b/service/licensemanagerusersubscriptions/go_module_metadata.go @@ -3,4 +3,4 @@ package licensemanagerusersubscriptions // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.13.5" +const goModuleVersion = "1.14.0" diff --git a/service/mq/CHANGELOG.md b/service/mq/CHANGELOG.md index 39519a92834..93bab74497b 100644 --- a/service/mq/CHANGELOG.md +++ b/service/mq/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.27.6 (2024-11-14) + +* No change notes available for this release. + # v1.27.5 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/mq/go_module_metadata.go b/service/mq/go_module_metadata.go index f1f9c129e8a..0ed80c79542 100644 --- a/service/mq/go_module_metadata.go +++ b/service/mq/go_module_metadata.go @@ -3,4 +3,4 @@ package mq // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.27.5" +const goModuleVersion = "1.27.6" diff --git a/service/partnercentralselling/CHANGELOG.md b/service/partnercentralselling/CHANGELOG.md new file mode 100644 index 00000000000..aad5c81ca4e --- /dev/null +++ b/service/partnercentralselling/CHANGELOG.md @@ -0,0 +1,5 @@ +# v1.0.0 (2024-11-14) + +* **Release**: New AWS service client module +* **Feature**: Announcing AWS Partner Central API for Selling: This service launch Introduces new APIs for co-selling opportunity management and related functions. Key features include notifications, a dynamic sandbox for testing, and streamlined validations. + diff --git a/service/partnercentralselling/go_module_metadata.go b/service/partnercentralselling/go_module_metadata.go index 9219e1c923f..57673f7e18d 100644 --- a/service/partnercentralselling/go_module_metadata.go +++ b/service/partnercentralselling/go_module_metadata.go @@ -3,4 +3,4 @@ package partnercentralselling // goModuleVersion is the tagged release for this module -const goModuleVersion = "tip" +const goModuleVersion = "1.0.0" diff --git a/service/quicksight/CHANGELOG.md b/service/quicksight/CHANGELOG.md index b20e72a2c89..7cc7eaaf5aa 100644 --- a/service/quicksight/CHANGELOG.md +++ b/service/quicksight/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.79.0 (2024-11-14) + +* **Feature**: This release adds APIs for Custom Permissions management in QuickSight, and APIs to support QuickSight Branding. + # v1.78.0 (2024-11-07) * **Feature**: Add Client Credentials based OAuth support for Snowflake and Starburst diff --git a/service/quicksight/go_module_metadata.go b/service/quicksight/go_module_metadata.go index d8a80a43dde..af782b42185 100644 --- a/service/quicksight/go_module_metadata.go +++ b/service/quicksight/go_module_metadata.go @@ -3,4 +3,4 @@ package quicksight // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.78.0" +const goModuleVersion = "1.79.0" diff --git a/service/redshift/CHANGELOG.md b/service/redshift/CHANGELOG.md index 98d565175b8..1ede7033258 100644 --- a/service/redshift/CHANGELOG.md +++ b/service/redshift/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.52.0 (2024-11-14) + +* **Feature**: Adds support for Amazon Redshift S3AccessGrants + # v1.51.1 (2024-11-06) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/redshift/go_module_metadata.go b/service/redshift/go_module_metadata.go index 6a6f2197696..290c65b0b91 100644 --- a/service/redshift/go_module_metadata.go +++ b/service/redshift/go_module_metadata.go @@ -3,4 +3,4 @@ package redshift // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.51.1" +const goModuleVersion = "1.52.0" diff --git a/service/s3/CHANGELOG.md b/service/s3/CHANGELOG.md index f42ea826b42..7b3d25b4e70 100644 --- a/service/s3/CHANGELOG.md +++ b/service/s3/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.67.0 (2024-11-14) + +* **Feature**: This release updates the ListBuckets API Reference documentation in support of the new 10,000 general purpose bucket default quota on all AWS accounts. To increase your bucket quota from 10,000 to up to 1 million buckets, simply request a quota increase via Service Quotas. + # v1.66.3 (2024-11-06) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/s3/go_module_metadata.go b/service/s3/go_module_metadata.go index b91995348ad..76b0ef4c8b2 100644 --- a/service/s3/go_module_metadata.go +++ b/service/s3/go_module_metadata.go @@ -3,4 +3,4 @@ package s3 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.66.3" +const goModuleVersion = "1.67.0" diff --git a/service/s3/internal/configtesting/go.mod b/service/s3/internal/configtesting/go.mod index 88a9d2c993f..ea25c952656 100644 --- a/service/s3/internal/configtesting/go.mod +++ b/service/s3/internal/configtesting/go.mod @@ -3,13 +3,13 @@ module github.com/aws/aws-sdk-go-v2/service/s3/internal/configtesting go 1.21 require ( - github.com/aws/aws-sdk-go-v2/config v1.28.3 + github.com/aws/aws-sdk-go-v2/config v1.28.4 github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 ) require ( github.com/aws/aws-sdk-go-v2 v1.32.4 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect @@ -18,7 +18,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.0 // indirect github.com/aws/smithy-go v1.22.0 // indirect ) diff --git a/service/sagemaker/CHANGELOG.md b/service/sagemaker/CHANGELOG.md index 07bbeb6a366..e7340127066 100644 --- a/service/sagemaker/CHANGELOG.md +++ b/service/sagemaker/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.167.0 (2024-11-14) + +* **Feature**: Add support for Neuron instance types [ trn1/trn1n/inf2 ] on SageMaker Notebook Instances Platform. + # v1.166.2 (2024-11-07) * **Bug Fix**: Adds case-insensitive handling of error message fields in service responses diff --git a/service/sagemaker/go_module_metadata.go b/service/sagemaker/go_module_metadata.go index 14c645ab75c..0e70ed94c94 100644 --- a/service/sagemaker/go_module_metadata.go +++ b/service/sagemaker/go_module_metadata.go @@ -3,4 +3,4 @@ package sagemaker // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.166.2" +const goModuleVersion = "1.167.0" diff --git a/service/sts/CHANGELOG.md b/service/sts/CHANGELOG.md index 95fe128b0eb..9763fcb9bb8 100644 --- a/service/sts/CHANGELOG.md +++ b/service/sts/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.33.0 (2024-11-14) + +* **Feature**: This release introduces the new API 'AssumeRoot', which returns short-term credentials that you can use to perform privileged tasks. + # v1.32.4 (2024-11-06) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/service/sts/go_module_metadata.go b/service/sts/go_module_metadata.go index a7c0c282543..e1c926c8dfc 100644 --- a/service/sts/go_module_metadata.go +++ b/service/sts/go_module_metadata.go @@ -3,4 +3,4 @@ package sts // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.32.4" +const goModuleVersion = "1.33.0" diff --git a/service/transcribestreaming/internal/testing/go.mod b/service/transcribestreaming/internal/testing/go.mod index b8943416565..8947bf45d76 100644 --- a/service/transcribestreaming/internal/testing/go.mod +++ b/service/transcribestreaming/internal/testing/go.mod @@ -5,13 +5,13 @@ go 1.21 require ( github.com/aws/aws-sdk-go-v2 v1.32.4 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 - github.com/aws/aws-sdk-go-v2/service/internal/eventstreamtesting v1.5.5 + github.com/aws/aws-sdk-go-v2/service/internal/eventstreamtesting v1.5.6 github.com/aws/aws-sdk-go-v2/service/transcribestreaming v1.22.3 github.com/aws/smithy-go v1.22.0 ) require ( - github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.45 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect )